• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      嵌入式軟件自動化測試及管理系統(tǒng)研究

      2019-09-25 09:43:34
      計算機測量與控制 2019年9期
      關(guān)鍵詞:測試人員測試用例用例

      (中國西南電子技術(shù)研究所,成都 610036)

      0 引言

      隨著信息技術(shù)的飛速發(fā)展和用戶要求的不斷提高,嵌入式軟件向綜合模塊化發(fā)展[1],規(guī)模日益擴大、復雜程度越來越高,軟件的質(zhì)量對整個產(chǎn)品的質(zhì)量起到了決定性的作用。軟件測試是保障軟件質(zhì)量的重要手段。目前嵌入式軟件的配置項測試和系統(tǒng)測試以手工測試為主,手工測試具有創(chuàng)造性,能舉一反三地對系統(tǒng)邏輯、功能進行驗證,但對于復雜嵌入式軟件,系統(tǒng)交聯(lián)復雜、接口數(shù)據(jù)眾多,采用手工測試存在以下問題:一是影響測試的準確性,二是測試效率低[2]。同時,對于一些特殊的性能測試、壓力測試和強度測試等,采用手工測試,則很難或根本無法實施。隨著軟件開發(fā)周期的日益縮短以及軟件系統(tǒng)的日趨復雜,引入自動化測試,可以縮短軟件開發(fā)周期,降低成本,同時高質(zhì)量地完成測試任務,提高軟件質(zhì)量。

      目前嵌入式軟件自動化測試的研究主要有基于GUI的自動化測試[3-4],測試模式分為錄制回放、數(shù)據(jù)驅(qū)動和關(guān)鍵字驅(qū)動[5];基于模型驅(qū)動的自動化測試[6];針對特定業(yè)務的自動化框架設計[2,7],以及基于分布式仿真測試環(huán)境的嵌入式軟件自動化測試[8]等。本文在此基礎(chǔ)上提出一種面向復雜嵌入式軟件的自動化測試方法,融入軟件工程化管理過程,將自動化測試與測試管理過程相結(jié)合,打造一個無縫連接的系統(tǒng),提高測試效率和質(zhì)量。

      1 自動化測試及管理系統(tǒng)設計

      自動化測試就是將繁瑣的、重復的手工操作利用策略、工具等實現(xiàn)自動化的測試活動[9]。自動化測試不是完美無缺的,它需要和手工測試互相配合、優(yōu)勢互補,才能發(fā)揮出各自的優(yōu)勢。手工測試是整個測試的核心和基礎(chǔ),自動化測試無法完全替代手工測試,但能夠間接輔助手工測試提高測試效率,保證測試質(zhì)量。

      針對復雜嵌入式系統(tǒng),被測軟件有著復雜的交聯(lián)環(huán)境,存在多個配測對象,配測對象可能是模擬器,也可能是真實的設備,且包含不同類型的交聯(lián)接口等。為適應這樣的現(xiàn)狀,面向復雜嵌入式軟件的自動化測試及管理系統(tǒng)的基本設計思想可以歸納為如下幾條。

      1)資源共享:開發(fā)與測試人員共享接口數(shù)據(jù):開發(fā)人員設計、修改ICD后,測試人員能第一時間獲得最新信息;開發(fā)和測試人員在同一個平臺進行軟件缺陷生命周期管理:測試人員提交軟件缺陷后,開發(fā)人員能馬上得到缺陷信息,缺陷修復后,缺陷的狀態(tài)變化和修改方法也能第一時間告知測試人員;

      2)手工測試與自動化測試互相配合:測試策劃和測試設計以手工設計為主,自動生成測試數(shù)據(jù)為輔,充分發(fā)揮人的主觀能動性和創(chuàng)造性;

      3)測試設計與測試執(zhí)行不分離:測試設計的數(shù)據(jù),通過測試腳本驅(qū)動,發(fā)送給被測軟件,作為測試執(zhí)行的輸入激勵,測試設計與執(zhí)行不再分離,測試結(jié)果自動記錄,提高測試的效率和結(jié)果的可信性;

      4)支持分布式測試:系統(tǒng)支持分布式的測試驅(qū)動和數(shù)據(jù)監(jiān)控;

      5)測試文檔自動生成:測試策劃、測試設計的用例/數(shù)據(jù),以及系統(tǒng)自動記錄的測試結(jié)果,通過導入不同的模板,自動生成符合要求的測試文檔;

      6)建立知識庫:積累可復用的測試用例和典型缺陷等知識,提升組織的測試水平。

      2 自動化測試及管理流程

      本文運用軟件工程化的思想將接口設計、測試策劃、測試設計、測試執(zhí)行、測試結(jié)果、缺陷管理和回歸測試集成到一個系統(tǒng)進行管理[10],自動化測試及管理流程如圖1所示。

      圖1 自動化測試及管理流程

      2.1 接口設計

      開發(fā)人員使用接口設計模塊進行ICD設計,基于模塊化和復用方面的考慮,接口設計的元素分為數(shù)據(jù)元、數(shù)據(jù)塊、數(shù)據(jù)組、邏輯塊和接口消息模塊幾部分,數(shù)據(jù)元為最小的數(shù)據(jù)單元,數(shù)據(jù)塊由多個數(shù)據(jù)元組成,代表一個有意義的字段,數(shù)據(jù)組由多個數(shù)據(jù)塊或數(shù)據(jù)元組成,代表一個更大的含義。一條接口消息模塊就是一條完整的ICD,由多個數(shù)據(jù)組、數(shù)據(jù)塊或數(shù)據(jù)元組成;邏輯塊用來進行特殊邏輯設計,限定不同元素之間的特殊關(guān)系,如變長設計、有效性設計等;根據(jù)項目不同,數(shù)據(jù)元和數(shù)據(jù)塊之間的級數(shù)可以配置,以方便開發(fā)人員根據(jù)項目情況進行擴展設計。每條ICD都要包括數(shù)據(jù)的源ID和目的ID,以及適用的接口類型。設計好的ICD存儲在數(shù)據(jù)庫里,后臺生成標準的XML格式文件,以供測試數(shù)據(jù)自動生成、測試數(shù)據(jù)解析和接口文檔自動生成使用。

      2.2 測試策劃

      測試人員根據(jù)開發(fā)設計的ICD、軟件研制任務書、軟件需求規(guī)格說明書、用戶手冊等相關(guān)資料,進行測試策劃。測試策劃包括建立測試交聯(lián)環(huán)境圖,制定測試類型,設計測試項或測試子項,測試用例名稱以及測試用例描述。

      在自動化測試系統(tǒng)中,測試人員的主要工作集中在測試策劃和測試設計上。在測試策劃中,首先建立測試交聯(lián)環(huán)境圖,設置被測軟件模塊之間的接口類型,并為每一個軟件模塊設置一個與ICD對應的ID號。建立環(huán)境圖后,測試人員根據(jù)需求規(guī)格說明等被測軟件的依據(jù)文檔,進行功能分解和測試分析,提取測試需求,設計測試項和測試子項。測試類型包括功能測試、性能測試、接口測試、強度測試等,測試類型下面是測試項,測試項下面是測試子項,一個測試子項包含多個測試用例,測試項和測試子項之間的級數(shù)是可配置的。測試用例在測試策劃時要填寫測試用例名稱和測試意圖,即測試用例描述。測試子項的測試描述就是其下多個測試用例的描述合在一起,每個測試用例描述的就是一個測試點。自動化測試系統(tǒng)支持根據(jù)不同格式的模板生成測試計劃中測試需求分析的內(nèi)容。

      2.3 測試設計

      測試人員對測試用例開展具體的測試輸入輸出設計。對于嵌入式軟件,大部分的測試輸入和輸出都是一系列的數(shù)據(jù)。因此測試設計的主要內(nèi)容就是給每個用例設計不同的輸入輸出數(shù)據(jù)。在用例設計之前,需設置用例的屬性,用例屬性包括獨立用例和關(guān)聯(lián)用例。新建的測試用例默認為獨立用例,如果設計的測試用例是進行場景或業(yè)務流測試,則需將其屬性設置為關(guān)聯(lián)用例。

      測試設計分為三步,第一步為測試數(shù)據(jù)自動生成,自動化測試系統(tǒng)根據(jù)ICD中的數(shù)據(jù)元素,如枚舉值、范圍值、分段枚舉等,結(jié)合特殊的邏輯關(guān)系自動生成測試數(shù)據(jù),測試數(shù)據(jù)生成策略包括等價類劃分法、邊界值分析法、正交法等,生成的測試數(shù)據(jù)包括枚舉值的所有值,范圍值的上下邊界值、中間值和邊界外的異常值,以及所有的特殊關(guān)系,對于沒有特殊關(guān)系的多個數(shù)據(jù)元素使用正交法生成測試數(shù)據(jù)。

      第二步為獨立測試用例設計,測試人員將本用例涉及到的ICD拖入到測試設計界面,界面根據(jù)ICD的源和目的ID,建立本用例的交聯(lián)運行圖,雙擊圖上的連線即可設計測試數(shù)據(jù),也可以選取自動化測試系統(tǒng)自動生成的測試數(shù)據(jù),同時可以設置每條測試數(shù)據(jù)的屬性和延時,數(shù)據(jù)屬性包括事件觸發(fā)、周期觸發(fā)、消息觸發(fā)、數(shù)據(jù)監(jiān)聽等,數(shù)據(jù)屬性可以添加和配置。自動生成的測試數(shù)據(jù)主要針對枚舉值、邊界范圍值等,其他經(jīng)驗值或故障注入的數(shù)據(jù)需要測試人員單獨進行設計。

      第三步為關(guān)聯(lián)測試用例設計,測試人員可以使用場景分析法,基于場景或業(yè)務流,將不同的測試用例通過流程圖的方式聯(lián)系在一起,設計場景或業(yè)務流測試用例,也可以對不同的狀態(tài)轉(zhuǎn)換進行測試。獨立測試用例主要針對單個功能點進行測試,關(guān)聯(lián)測試用例將不同功能點的用例連在一起,可以模仿用戶在實際使用過程中的場景,進行場景或業(yè)務流的測試。在關(guān)聯(lián)測試用例設計界面上,可以看到所有的獨立測試用例,測試人員設計好流程框圖后,將需要的獨立測試用例拖入到對應的框圖中即可。測試用例設計示意圖如圖2所示。

      圖2 測試用例設計示意圖

      在界面設計好測試數(shù)據(jù)及屬性后,自動化測試系統(tǒng)自動生成測試腳本和測試步驟,步驟的描述圍繞數(shù)據(jù)的發(fā)送、接收展開,以數(shù)據(jù)為中心,格式統(tǒng)一。自動化測試系統(tǒng)支持根據(jù)不同格式的模板生成測試說明文檔,其中測試用例的描述在測試策劃時由測試人員設計,測試步驟由自動化測試系統(tǒng)自動生成。

      2.4 測試執(zhí)行

      測試執(zhí)行平臺由測試交聯(lián)環(huán)境圖、測試用例、總線路由共同組成。測試執(zhí)行分為三步,第一步為數(shù)據(jù)分發(fā),測試人員設置執(zhí)行某個測試用例后,由總線路由的總控端根據(jù)設計的交聯(lián)環(huán)境圖和測試用例,得到涉及的模塊和接口總線類型,初始化相關(guān)的代理端,同時將輸入的激勵/測試數(shù)據(jù)分發(fā)給對應的代理端;第二步為代理端驅(qū)動接口通信模塊,代理端根據(jù)交聯(lián)環(huán)境圖,將從總控端收到的輸入測試數(shù)據(jù)發(fā)給數(shù)據(jù)接口驅(qū)動模塊,由接口驅(qū)動模塊將輸入測試數(shù)據(jù)發(fā)送給被測軟件;第三步為代理端監(jiān)控被測軟件的響應,并將響應的報文,即輸出的測試數(shù)據(jù)回傳給總控端。一個總控端可以控制多個代理端,代理端的個數(shù)與交聯(lián)環(huán)境圖中交互的模塊數(shù)有關(guān),一個代理端監(jiān)控一個點對點的數(shù)據(jù)傳輸。測試執(zhí)行示意圖如圖3所示。

      圖3 測試執(zhí)行示意圖

      測試用例的執(zhí)行支持單個測試用例的執(zhí)行和多個測試用例的順序執(zhí)行。測試人員勾選要執(zhí)行的測試用例或測試用例集,啟動測試執(zhí)行,系統(tǒng)調(diào)用腳本自動完成測試執(zhí)行。

      2.5 測試結(jié)果顯示與記錄

      總控端收到代理端傳回的數(shù)據(jù)后,進行顯示,并根據(jù)ICD進行自動解析,界面顯示所有的交互數(shù)據(jù),雙擊選中的數(shù)據(jù)后,可以看到數(shù)據(jù)的解析,直觀地讓測試人員了解測試的執(zhí)行情況,同時支持對顯示的數(shù)據(jù)進行過濾,以便于觀察。

      系統(tǒng)收到代理端傳回的數(shù)據(jù)后,與測試用例中預期的測試結(jié)果報文進行比較,如果相同則顯示用例步驟通過Pass,如果不相同則顯示該步驟失敗Fail。任意步驟Fail則判該用例Fail。所有的測試結(jié)果自動記錄到數(shù)據(jù)庫里,系統(tǒng)支持根據(jù)不同格式的模板生成測試記錄。

      2.6 缺陷管理和回歸測試

      測試人員要對測試結(jié)果進行確認,特別是批量執(zhí)行的測試用例,需對每個Fail的測試用例的每個Fail的步驟進行確認,以便排除非被測軟件的故障。確認是被測軟件缺陷的,在對應的測試用例后提交缺陷記錄單。提交缺陷記錄單后,軟件項目經(jīng)理查看到缺陷信息,對缺陷進行確認和分配,對應的開發(fā)人員可以參考缺陷追蹤的測試用例進行問題復現(xiàn),并修改缺陷,修改后的缺陷狀態(tài)標識為已修復,測試人員對已修復的缺陷進行回歸驗證。

      在回歸測試中,如果ICD沒有變更,回歸時可以復用前期設計的測試用例,并自動進行回歸測試執(zhí)行;如果ICD的數(shù)據(jù)元素發(fā)生了變化,自動化測試系統(tǒng)自動標識出受影響的測試用例,提示測試人員對用例進行修改后再執(zhí)行回歸測試。測試用例在不同測試階段所做的修改,自動化測試系統(tǒng)會將其標識為不同的版本存入數(shù)據(jù)庫,以追溯數(shù)據(jù)修改過程和版本管理。回歸測試通過后關(guān)閉已修復的缺陷。對于回歸中仍未修改到位的缺陷,rebound給開發(fā),開發(fā)再次進行修改,之后測試人員再次進行回歸。整個項目回歸完成后,缺陷的狀態(tài)有三類:已修復、撤回和遺留。自動化測試系統(tǒng)支持根據(jù)不同格式的模板導出缺陷記錄單。

      2.7 數(shù)據(jù)分析和知識庫

      測試結(jié)束后對測試過程進行總結(jié),對測試用例數(shù)、測試通過率、缺陷率等數(shù)據(jù)進行統(tǒng)計、輸出規(guī)定格式的報表;同時將設計精巧的、可復用的測試用例納入典型測試用例庫,將發(fā)現(xiàn)的有價值的缺陷納入典型缺陷庫,形成知識庫,如此沉淀、積累測試經(jīng)驗,以便于后期在做類似項目的測試時,進行借鑒,以持續(xù)提高。

      3 系統(tǒng)架構(gòu)及設計

      面向復雜嵌入式軟件的自動化測試及管理系統(tǒng)是一個面向信息和數(shù)據(jù)驅(qū)動的測試系統(tǒng),測試系統(tǒng)采用分層架構(gòu),包括測試管理層、消息服務層、總線路由層和驅(qū)動層,具體如圖4所示。

      圖4 自動化測試系統(tǒng)架構(gòu)圖

      測試管理層包括軟件接口管理模塊、總線參數(shù)配置模塊、測試環(huán)境管理模塊、測試管理模塊、腳本管理模塊、數(shù)據(jù)工廠模塊;消息服務層包括腳本執(zhí)行模塊、日志模塊、消息隊列服務模塊;總線路由層包括一個總控端和多個代理端;驅(qū)動層包括測試涉及到的不同類型的接口驅(qū)動。

      軟件接口管理模塊對接口設計進行管理;總線參數(shù)配置模塊對涉及到的不同類型的總線配置參數(shù)進行管理;測試管理模塊對測試策劃、測試用例設計、測試執(zhí)行、測試結(jié)果顯示、缺陷管理流程進行管理;測試環(huán)境管理模塊對測試環(huán)境、測試執(zhí)行策略、測試輪次等進行管理;腳本管理模塊對測試用例腳本、測試調(diào)度腳本、測試驅(qū)動腳本和公共函數(shù)進行管理;數(shù)據(jù)工廠模塊對數(shù)據(jù)庫進行管理,存儲的數(shù)據(jù)包括:測試用例/測試數(shù)據(jù)、測試執(zhí)行結(jié)果、測試缺陷、測試分析的數(shù)據(jù)、知識庫等。

      測試管理層為BS結(jié)構(gòu),包括服務器和客戶端,客戶端分布在不同的電腦上,與服務器通過以太網(wǎng)連接,支持多人同時開展接口設計、測試用例設計等。

      系統(tǒng)界面和框架采用QT語言實現(xiàn),自動化測試腳本使用Python語言。部分模塊采用開源系統(tǒng),如缺陷管理模塊集成BugFree等。

      4 實驗結(jié)果與分析

      設計的自動化測試及管理系統(tǒng)在某型機載綜合處理設備控制軟件測試中進行應用,圖5為接口設計、交聯(lián)環(huán)境、測試策劃、測試設計和測試執(zhí)行的綜合圖例。

      圖5 某型機載綜合處理設備控制軟件測試圖例

      使用自動化測試及管理系統(tǒng)開展軟件測試,開發(fā)人員設計好接口后,測試人員設計交聯(lián)環(huán)境圖,搭建測試環(huán)境,部分測試模擬器不需要再額外開發(fā);開展測試設計時,可以在系統(tǒng)中直接調(diào)用部分自動生成的測試數(shù)據(jù),也可以在此基礎(chǔ)上手動修改成需要的測試數(shù)據(jù),測試人員的主要精力集中在測試策劃和測試設計上,設計好測試用例的測試數(shù)據(jù)及屬性后,系統(tǒng)自動生成測試腳本和測試步驟;測試執(zhí)行時支持批量測試用例的執(zhí)行,可以實現(xiàn)人休息而設備不休息,白天進行測試設計晚上自動執(zhí)行測試等;測試結(jié)果由系統(tǒng)自動記錄,高效、準確,并且可以自動進行測試結(jié)果數(shù)據(jù)統(tǒng)計等。

      實踐證明,使用自動化測試及管理系統(tǒng)開展嵌入式軟件測試可以有效提高測試效率,具體如表1所示。測試執(zhí)行和回歸測試效率提高了80%,整體項目測試效率提高了65%。

      表1 自動化測試前后效率對比(單位:人日)

      5 結(jié)束語

      本文運用軟件工程化的思想,將接口設計、測試策劃、測試設計、測試執(zhí)行、測試結(jié)果、缺陷管理和回歸測試集成到一個系統(tǒng)進行管理,測試人員的主要工作集中在測試策劃和測試設計上,測試用例設計好后,系統(tǒng)自動生成測試腳本,支持批量測試用例的自動執(zhí)行,自動收集、監(jiān)控測試過程數(shù)據(jù),自動記錄測試結(jié)果,并根據(jù)模板自動生成相應的測試文檔,實現(xiàn)了一個具備過程管理、信息發(fā)布、缺陷跟蹤、知識積累等功能的高效一體化測試,測試過程設計更加簡便快捷,提高了軟件測試的效率和質(zhì)量。

      猜你喜歡
      測試人員測試用例用例
      移動應用眾包測試人員信譽度復合計算模型研究
      軟件導刊(2022年9期)2022-09-22 05:59:54
      UML用例模型中依賴關(guān)系的比較與分析
      基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
      聯(lián)鎖軟件詳細設計的測試需求分析和用例編寫
      從出土文獻用例看王氏父子校讀古書的得失
      基于混合遺傳算法的回歸測試用例集最小化研究
      高校分析測試中心測試隊伍建設方案初探
      山東化工(2018年20期)2018-04-02 16:30:53
      淺析軟件測試中的心理學應用
      基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
      犯罪心理測試人員素質(zhì)要求分析
      两当县| 平阴县| 班戈县| 高唐县| 油尖旺区| 安远县| 民乐县| 隆化县| 咸丰县| 北流市| 益阳市| 渭南市| 绥江县| 晋城| 安阳市| 渝北区| 剑阁县| 永胜县| 奉化市| 连江县| 隆尧县| 香河县| 诸城市| 阳城县| 阜康市| 夏津县| 松阳县| 定西市| 西昌市| 壶关县| 惠来县| 龙山县| 图片| 浑源县| 连州市| 德保县| 伊吾县| 日土县| 嘉鱼县| 虞城县| 库伦旗|