亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        嵌入式軟件自動化測試及管理系統(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ì)量地完成測試任務(wù),提高軟件質(zhì)量。

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

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

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

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

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

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

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

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

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

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

        2 自動化測試及管理流程

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

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

        2.1 接口設(shè)計

        開發(fā)人員使用接口設(shè)計模塊進行ICD設(shè)計,基于模塊化和復用方面的考慮,接口設(shè)計的元素分為數(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ù)元組成;邏輯塊用來進行特殊邏輯設(shè)計,限定不同元素之間的特殊關(guān)系,如變長設(shè)計、有效性設(shè)計等;根據(jù)項目不同,數(shù)據(jù)元和數(shù)據(jù)塊之間的級數(shù)可以配置,以方便開發(fā)人員根據(jù)項目情況進行擴展設(shè)計。每條ICD都要包括數(shù)據(jù)的源ID和目的ID,以及適用的接口類型。設(shè)計好的ICD存儲在數(shù)據(jù)庫里,后臺生成標準的XML格式文件,以供測試數(shù)據(jù)自動生成、測試數(shù)據(jù)解析和接口文檔自動生成使用。

        2.2 測試策劃

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

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

        2.3 測試設(shè)計

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

        測試設(shè)計分為三步,第一步為測試數(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ù)。

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

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

        圖2 測試用例設(shè)計示意圖

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

        2.4 測試執(zhí)行

        測試執(zhí)行平臺由測試交聯(lián)環(huán)境圖、測試用例、總線路由共同組成。測試執(zhí)行分為三步,第一步為數(shù)據(jù)分發(fā),測試人員設(shè)置執(zhí)行某個測試用例后,由總線路由的總控端根據(jù)設(shè)計的交聯(lián)環(huán)境圖和測試用例,得到涉及的模塊和接口總線類型,初始化相關(guān)的代理端,同時將輸入的激勵/測試數(shù)據(jù)分發(fā)給對應(yīng)的代理端;第二步為代理端驅(qū)動接口通信模塊,代理端根據(jù)交聯(lián)環(huán)境圖,將從總控端收到的輸入測試數(shù)據(jù)發(fā)給數(shù)據(jù)接口驅(qū)動模塊,由接口驅(qū)動模塊將輸入測試數(shù)據(jù)發(fā)送給被測軟件;第三步為代理端監(jiān)控被測軟件的響應(yīng),并將響應(yīng)的報文,即輸出的測試數(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的步驟進行確認,以便排除非被測軟件的故障。確認是被測軟件缺陷的,在對應(yīng)的測試用例后提交缺陷記錄單。提交缺陷記錄單后,軟件項目經(jīng)理查看到缺陷信息,對缺陷進行確認和分配,對應(yīng)的開發(fā)人員可以參考缺陷追蹤的測試用例進行問題復現(xiàn),并修改缺陷,修改后的缺陷狀態(tài)標識為已修復,測試人員對已修復的缺陷進行回歸驗證。

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

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

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

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

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

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

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

        軟件接口管理模塊對接口設(shè)計進行管理;總線參數(shù)配置模塊對涉及到的不同類型的總線配置參數(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ù)器和客戶端,客戶端分布在不同的電腦上,與服務(wù)器通過以太網(wǎng)連接,支持多人同時開展接口設(shè)計、測試用例設(shè)計等。

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

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

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

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

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

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

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

        5 結(jié)束語

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

        猜你喜歡
        測試人員測試用例用例
        移動應(yīng)用眾包測試人員信譽度復合計算模型研究
        軟件導刊(2022年9期)2022-09-22 05:59:54
        UML用例模型中依賴關(guān)系的比較與分析
        基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
        聯(lián)鎖軟件詳細設(shè)計的測試需求分析和用例編寫
        從出土文獻用例看王氏父子校讀古書的得失
        基于混合遺傳算法的回歸測試用例集最小化研究
        高校分析測試中心測試隊伍建設(shè)方案初探
        山東化工(2018年20期)2018-04-02 16:30:53
        淺析軟件測試中的心理學應(yīng)用
        基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
        犯罪心理測試人員素質(zhì)要求分析
        日本免费三片在线视频| 国产特级毛片aaaaaa| 精品人妻一区二区三区四区| 97精品国产91久久久久久久| 国产精品农村妇女一区二区三区| 亚洲av日韩一卡二卡| 日本顶级片一区二区三区| 日韩中文字幕有码午夜美女| 国产女人高潮叫床视频| 精品视频入口| 亚洲美女主播一区二区| 国产区女主播一区在线| 人妻aⅴ中文字幕| 欧美激情αv一区二区三区| 亚洲阿v天堂网2021| 免费高清日本一区二区| 亚洲视频在线一区二区| 五月综合缴情婷婷六月| 国产精品大屁股1区二区三区| 性色av一区二区三区密臀av| 亚洲中文字幕高清av| 欧美变态另类刺激| 内射交换多p国产| 蜜桃一区二区三区自拍视频| 青青河边草免费在线看的视频| 亚洲av日韩av在线观看| 蜜桃av噜噜一区二区三区| 国产不卡视频一区二区在线观看 | 日韩人妻免费视频一专区| 无套内谢孕妇毛片免费看| 熟妇高潮一区二区三区| 日韩精品一区二区三区毛片| av天堂网手机在线观看| 亚洲熟妇自偷自拍另欧美| 一国产区在线观看| 加勒比久草免费在线观看| 久久综合国产精品一区二区| 无码欧美毛片一区二区三| 永久无码在线观看| 少妇人妻精品一区二区三区视| 久久久久88色偷偷|