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

        ?

        航天嵌入式軟件測試用例典型設(shè)計缺陷研究

        2019-10-29 08:55:38虞礪琨12王小麗12黃晨12
        計算機測量與控制 2019年10期
        關(guān)鍵詞:測試用例用例指令

        虞礪琨12王小麗12黃晨12

        (1.北京控制工程研究所,北京 100190; 2.北京軒宇信息技術(shù)有限公司,北京 100190)

        0 引言

        隨著航天器在軌設(shè)計壽命的不斷延長,可靠性要求越來越高,軟件設(shè)計在滿足航天器在軌運行基本功能需求基礎(chǔ)之上,還要承擔(dān)硬件的故障診斷與重構(gòu)功能,軟件規(guī)模不斷增大、復(fù)雜度不斷提高,對軟件質(zhì)量的要求也日益嚴(yán)峻。

        軟件測試是保證軟件質(zhì)量的重要技術(shù)手段,按照是否運行被測軟件,分為靜態(tài)測試和動態(tài)測試,在航天工程實踐中,二者缺一不可、相輔相成。測試用例設(shè)計是動態(tài)測試有效性和充分性的根本保障。

        針對測試用例設(shè)計,目前研究方向多集中于測試用例自動生成技術(shù)和測試用例集約簡技術(shù),主要包括基于遺傳算法的測試用例自動生成[1-3]、基于蟻群算法的測試用例自動生成[4]、基于組合測試算法的測試用例自動生成[5]、基于符號執(zhí)行的測試用例自動生成[6]、基于專家系統(tǒng)的測試用例自動生成[7]等等。測試用例集約簡技術(shù)[8-9]則主要著力于解決測試效率問題。

        以上研究以及工程實踐中,通常以覆蓋率作為動態(tài)測試充分性的基本評價指標(biāo)。但是,通過長期的工程實踐研究,發(fā)現(xiàn)部分測試用例雖然存在設(shè)計缺陷、導(dǎo)致軟件設(shè)計缺陷未檢出,但是并不妨礙覆蓋率統(tǒng)計結(jié)果,即,存在覆蓋率分析無法發(fā)現(xiàn)的測試用例設(shè)計缺陷,而業(yè)界對此卻鮮有研究。因此,針對覆蓋率分析無法發(fā)現(xiàn)的測試用例設(shè)計缺陷開展專題研究,具有非常重要的工程實用價值。

        1 名詞解釋

        對本文用到的名詞解釋如下:

        遙測:地面觀察航天器在軌運行狀態(tài)的一種手段。通過特定的天地通路,將航天器在軌運行狀態(tài)傳送回地面,供地面觀察、分析。

        三取二:航天器常見的可靠性安全性設(shè)計手段。對重要數(shù)據(jù)分三區(qū)保存,使用前對三區(qū)內(nèi)容進行比對,任意兩區(qū)一致方可使用。

        物理輸出:特指軟件的外部接口輸出,通常表現(xiàn)為指令碼、控制脈沖等等。

        最小指令間隔:指相同指令或不同指令之間的間隔最小值。一般應(yīng)作為測試約束條件,并在測試用例設(shè)計時按照最小指令間隔設(shè)置指令輸入,從而驗證軟件對指令響應(yīng)的及時性。

        2 測試用例典型設(shè)計缺陷

        測試步驟和預(yù)期結(jié)果是測試用例設(shè)計的兩大核心要素。測試步驟主要表現(xiàn)為軟件各種輸入及其組合,預(yù)期結(jié)果主要表現(xiàn)為軟件輸出。測試步驟和預(yù)期結(jié)果的設(shè)計缺陷,將對測試有效性和充分性造成不良影響。

        2.1 指定地址范圍的操作覆蓋性缺乏驗證

        以航天嵌入式軟件常見的RAM區(qū)自檢功能需求為例,對此項典型缺陷進行說明。

        2.1.1 需求概述

        采用寫入與讀出值比對的方式,對RAM區(qū)指定地址范圍進行自檢。

        2.1.2 用例設(shè)計缺陷分析

        用例設(shè)計時,考慮寫入與讀出值比對一致和不一致的情況,執(zhí)行測試,并通過觀察相應(yīng)的遙測來確認軟件實現(xiàn)的正確性。

        用例執(zhí)行后,通過覆蓋率分析確認,自檢相關(guān)的語句和分支均已覆蓋。即,從覆蓋率分析的角度而言,用例設(shè)計不存在缺陷。

        但是,進一步分析可以發(fā)現(xiàn),以上用例無法檢出如圖1所示的軟件設(shè)計缺陷。

        圖1 讀寫比對未覆蓋指定地址范圍缺陷示例圖

        圖中,X表示未做讀寫比對。

        如圖2所示,該用例設(shè)計無法檢出以下兩個軟件設(shè)計缺陷:

        1)對指定地址范圍未覆蓋完全,僅對其中的部分地址范圍進行了自檢。

        2)自檢操作范圍超出指定地址范圍。

        圖2 讀寫比對超出指定地址范圍缺陷示例圖

        因此,該用例設(shè)計存在缺陷。

        2.1.3 用例設(shè)計缺陷修正

        針對上述用例設(shè)計缺陷,修正用例設(shè)計:考慮寫入與讀出值比對一致和不一致的情況,考慮比對不一致的地址為指定地址范圍的首地址-1、首地址、中間地址、尾地址、尾地址+1的情況,執(zhí)行測試,并通過觀察相應(yīng)的遙測來確認軟件實現(xiàn)的正確性。

        用例修正后,圖1和圖2所示的軟件設(shè)計缺陷可以被檢出,證明用例修正有效。

        2.1.4 應(yīng)用說明

        此類用例設(shè)計缺陷,較易發(fā)生的測試場景如下:

        1)指定地址范圍自檢功能測試。

        2)區(qū)域性三取二測試。

        2.2 通過修改局部變量值實施故障注入、覆蓋故障分支

        以航天嵌入式軟件常見的寄存器校驗功能需求為例,其故障分支,一般只能通過故障注入的方式才能夠激勵運行。

        2.2.1 需求概述

        對指定寄存器進行校驗,若寄存器值不為指定值,則重置寄存器。

        2.2.2 用例設(shè)計缺陷分析

        測試用例設(shè)計中常見的設(shè)計缺陷如圖3所示。

        圖3 故障注入用例設(shè)計缺陷示例圖

        如圖3所示,用例設(shè)計時,通過修改局部變量值的方式實施故障注入,存在設(shè)計缺陷。此類故障注入手段將導(dǎo)致寄存器校驗功能驗證不充分,軟件是否校驗了指定寄存器,未驗證到。

        另外,通過用例執(zhí)行后的覆蓋率分析確認,寄存器校驗相關(guān)的語句和分支均已覆蓋。即,覆蓋率分析無法發(fā)現(xiàn)此類用例設(shè)計缺陷。

        2.2.3 用例設(shè)計缺陷修正

        修正后的用例設(shè)計如圖4所示。

        圖4 修正后的故障注入用例設(shè)計示例圖

        如圖4所示,在軟件讀寄存器之前,通過修改寄存器值實施故障注入。修正后的用例設(shè)計可以檢出未讀指定寄存器(即,讀錯寄存器)的代碼設(shè)計缺陷。

        2.2.4 應(yīng)用說明

        當(dāng)軟件中存在外部接口的正常、異常輸入均無法激勵運行的語句和分支,必須采取特殊的故障注入手段執(zhí)行測試時,較易發(fā)生此類用例設(shè)計缺陷。測試場景多見于:

        1)寄存器校驗功能測試。

        2)三取二測試。

        3)指定地址范圍自檢測試。

        2.2.5 故障注入注意事項

        結(jié)合該典型缺陷分析,總結(jié)激勵故障分支運行的各種故障注入手段的優(yōu)先級依次如下:

        1)外部接口輸入流。(最高優(yōu)先級)

        2)修改外部RAM指定地址內(nèi)容、或寄存器值。

        3)修改全局變量值。

        4)修改局部變量值。(最低優(yōu)先級)

        注意,通過修改局部變量值實施故障注入的優(yōu)先級最低!僅當(dāng)排除所有高優(yōu)先級手段的可行性之后方可使用。

        2.3 連續(xù)和累計計時考慮不全面

        以航天嵌入式軟件常見的總線無通訊故障處理需求為例,對此項典型缺陷進行說明。

        2.3.1 需求概述

        連續(xù)16 s無CAN總線通訊,則重新初始化CAN總線。

        2.3.2 用例設(shè)計缺陷分析

        用例設(shè)計時,考慮連續(xù)20 s無CAN總線通訊的情況,執(zhí)行測試。測試結(jié)果表明,軟件在連續(xù)無通訊16 s時對CAN總線進行了重新初始化,測試通過。另外,覆蓋率分析確認,相關(guān)語句和分支均已覆蓋。

        但是,如果軟件設(shè)計存在缺陷,將連續(xù)計時需求設(shè)計成累計計時,則用例運行結(jié)果如圖5所示。

        圖5 考慮連續(xù)計時工況時的運行結(jié)果示例圖

        如圖5所示,針對連續(xù)計時需求,用例設(shè)計時,如果僅考慮連續(xù)計時情況,則無法檢出將連續(xù)計時需求設(shè)計成累計計時的軟件設(shè)計缺陷。

        2.3.3 用例設(shè)計缺陷修正

        對缺陷用例進行修正,分別考慮連續(xù)16 s和累計16 s無通訊的情況。則累計無通訊情況下的運行結(jié)果如下:

        如圖6所示,用例修正后,將連續(xù)計時需求設(shè)計成累計計時的軟件設(shè)計缺陷可以被檢出,證明修正有效。

        圖6 考慮累計計時工況時的運行結(jié)果示例圖

        2.3.4 應(yīng)用說明

        在所有含連續(xù)計時需求的用例設(shè)計中,均應(yīng)排除此類用例設(shè)計缺陷。

        2.4 未執(zhí)行正確與錯誤輸入的穿插測試

        錯誤格式指令測試,是軟件接口測試的基本測試要素。GJB2725A軍用軟件評測實驗室測評過程和技術(shù)能力要求5.1.2.9條款中明確規(guī)定:對每個外部輸入/輸出接口必須做正常和異常情況的測試[10]。

        測試過程中,設(shè)置錯誤輸入,執(zhí)行錯誤格式指令測試,首先是為了驗證軟件對錯誤輸入的屏蔽情況,即,軟件不應(yīng)響應(yīng)錯誤輸入;其次是為了驗證軟件對錯誤輸入的處理是否會影響其后續(xù)對正確輸入的正常響應(yīng)處理。因此,必須執(zhí)行正確與錯誤輸入的穿插測試。

        此類用例設(shè)計缺陷,一般表現(xiàn)為如下兩種形式:

        1)連續(xù)執(zhí)行錯誤輸入步驟。

        2)以錯誤輸入作為用例的最后一個測試步驟。

        上述用例設(shè)計缺陷,均應(yīng)予以修正,以確保測試有效性。

        2.5 連續(xù)若干個測試步驟的預(yù)期結(jié)果一樣

        當(dāng)連續(xù)若干個測試步驟的預(yù)期結(jié)果(或其中部分關(guān)鍵輸出的預(yù)期結(jié)果)一樣時,無法確認連續(xù)步驟中第一個步驟之外的后續(xù)步驟是否正確執(zhí)行,因為同樣的執(zhí)行結(jié)果可能意味著軟件并未正確響應(yīng)后續(xù)測試步驟,而僅僅是維持著與之前測試步驟相同的執(zhí)行結(jié)果,從而導(dǎo)致軟件未能正確響應(yīng)后續(xù)測試步驟中指定輸入的缺陷無法檢出。

        因此,在設(shè)計測試步驟時,應(yīng)使每個步驟的預(yù)期結(jié)果均不相同,以充分確認軟件對當(dāng)前測試步驟響應(yīng)的正確性,從而確保測試驗證的有效性。

        需要注意的是,初始運行狀態(tài),即,測試用例的初始設(shè)置,與測試步驟1之間,也屬于連續(xù)步驟,即,測試步驟1的預(yù)期結(jié)果應(yīng)與初始運行狀態(tài)有所不同。

        2.6 最小指令間隔測試不足

        執(zhí)行最小指令間隔測試,是為了驗證軟件對指令響應(yīng)及處理的及時性。最小指令間隔測試不足缺陷,含如下兩種情況:

        1)測試步驟未考慮最小指令間隔情況。

        2)預(yù)期結(jié)果僅觀察最后一條指令的執(zhí)行情況,或者僅觀察指令計數(shù)情況,未觀察每條指令的執(zhí)行結(jié)果。

        最小指令間隔測試不足,將導(dǎo)致軟件響應(yīng)及處理不及時缺陷無法檢出。

        針對最小指令間隔測試,測試步驟設(shè)計應(yīng)考慮如下兩種情況:

        1)相同指令的最小間隔。

        2)不同指令的最小間隔。

        最小指令間隔測試的預(yù)期結(jié)果設(shè)計,務(wù)必包含每條指令的執(zhí)行結(jié)果,這是最小指令間隔測試的核心意義所在。

        2.7 預(yù)期結(jié)果錯誤

        用例設(shè)計過程中,預(yù)期結(jié)果錯誤的原因有如下兩種:

        1)測試人員疏忽,對預(yù)期結(jié)果未考慮清楚。

        2)測試人員對需求的理解有誤。

        預(yù)期結(jié)果錯誤,在用例執(zhí)行時將面臨如下兩種情況:

        1)軟件設(shè)計正確,導(dǎo)致執(zhí)行結(jié)果與預(yù)期結(jié)果不一致。通過對結(jié)果的分析、確認,發(fā)現(xiàn)預(yù)期結(jié)果設(shè)計錯誤,更正預(yù)期結(jié)果后,用例執(zhí)行通過。

        表1 測試用例典型設(shè)計缺陷匯總表

        注:需求相關(guān)性,用于定義該項用例設(shè)計缺陷是否與特定需求相關(guān)。相關(guān)則說明該項缺陷僅當(dāng)軟件有特定需求時才會發(fā)生。

        2)軟件設(shè)計錯誤,導(dǎo)致執(zhí)行結(jié)果與預(yù)期結(jié)果一致,用例執(zhí)行通過,最終導(dǎo)致軟件缺陷未檢出。

        可見,無論是何種原因所導(dǎo)致的預(yù)期結(jié)果錯誤,均應(yīng)及早予以修正。在確保預(yù)期結(jié)果正確的前提下,執(zhí)行測試用例,否則,可能因“負負得正”而導(dǎo)致軟件缺陷無法檢出。

        2.8 預(yù)期結(jié)果僅觀察遙測、未觀察物理輸出

        針對航天嵌入式軟件而言,物理輸出才是其核心功能需求,是確保航天器在軌正常運行的根本,而遙測則是供地面觀察和分析航天器在軌運行狀態(tài)的記錄。預(yù)期結(jié)果設(shè)計時不能顧此失彼,應(yīng)同時確認物理輸出和遙測,既要確保航天器在軌運行狀態(tài)的正確性,又要確保地面可以準(zhǔn)確獲知航天器在軌運行狀態(tài)。預(yù)期結(jié)果中任一方面的缺失,都可能導(dǎo)致軟件相關(guān)設(shè)計缺陷無法檢出。

        2.9 預(yù)期結(jié)果僅確認了合法輸出、未確認非法輸出

        軟件設(shè)計,在正確響應(yīng)外部輸入產(chǎn)生合法輸出的同時,可能也產(chǎn)生了非法輸出。如果預(yù)期結(jié)果中僅確認了軟件合法輸出,對是否產(chǎn)生了非法輸出未予確認,則導(dǎo)致軟件產(chǎn)生了非法輸出的缺陷無法檢出。

        因此,預(yù)期結(jié)果中,不僅要確認軟件響應(yīng)當(dāng)前測試步驟時所應(yīng)當(dāng)有的輸出,還要確認軟件響應(yīng)當(dāng)前測試步驟時不應(yīng)當(dāng)有的輸出,即,確認軟件無非法輸出。例如,針對應(yīng)無計數(shù)累加、無控制輸出、無應(yīng)答等的測試步驟,預(yù)期結(jié)果中應(yīng)予以明確,以確保測試執(zhí)行時對非法輸出予以確認,確保測試有效性和充分性。

        2.10 預(yù)期結(jié)果無依據(jù)

        預(yù)期結(jié)果無依據(jù),指預(yù)期結(jié)果中含需求未明確規(guī)定的軟件輸出。針對這種情況,應(yīng)確認是預(yù)期結(jié)果設(shè)計缺陷,還是需求分析缺陷,并進行相應(yīng)的修正。

        總之,不能以無依據(jù)的軟件輸出作為用例的預(yù)期結(jié)果。

        2.11 小結(jié)

        作為動態(tài)測試充分性的通用評價指標(biāo),覆蓋率分析可以指出測試未覆蓋的語句和分支,供測試人員分析,從而找出測試用例中因輸入不足而導(dǎo)致的設(shè)計缺陷,并據(jù)此補充、完善測試用例設(shè)計,提高測試覆蓋率。但是,覆蓋率分析并非萬能,針對覆蓋率分析所指出的測試已覆蓋的部分,也并不能簡單地認定其測試充分性。真正的測試充分性,歸根結(jié)底,要通過完善的測試用例設(shè)計來保障。測試用例設(shè)計過程中,尤其要注意消除那些不影響覆蓋率分析結(jié)果的潛在缺陷。綜合上述研究,對具有潛在性(即,不影響覆蓋率分析結(jié)果)的測試用例典型設(shè)計缺陷匯總?cè)绫?所示。

        3 應(yīng)用分析

        3.1 統(tǒng)計數(shù)據(jù)

        針對上述測試用例典型設(shè)計缺陷,隨機抽取了3個測試項目開展同行評審,評審中發(fā)現(xiàn)的典型缺陷統(tǒng)計如表2所示。

        表2 同行評審數(shù)據(jù)統(tǒng)計表

        注:單元格中的“-”,表示缺陷條目在該項目中不涉及。

        3.2 數(shù)據(jù)分析

        對統(tǒng)計數(shù)據(jù)分析如下:

        1)通過對3個項目的同行評審,共發(fā)現(xiàn)并糾正測試用例典型設(shè)計缺陷58個,應(yīng)用效果顯著。

        2)預(yù)期結(jié)果錯誤,發(fā)生次數(shù)最多,應(yīng)予以重點關(guān)注。

        3)指定地址范圍操作覆蓋性缺乏驗證、修改局部變量值實施故障注入、連續(xù)和累計計時考慮不全面、預(yù)期結(jié)果錯誤、預(yù)期結(jié)果僅觀察遙測未觀察物理輸出、預(yù)期結(jié)果無依據(jù),上述缺陷在項目中的發(fā)生率為100%。

        4)其余缺陷,在項目中的發(fā)生率約為70%。

        應(yīng)用結(jié)果表明,上述測試用例典型設(shè)計缺陷的提出,對于確保測試充分性、提高測試質(zhì)量,是切實有效的。

        3.3 應(yīng)用說明

        工程實踐中,為了消除測試用例典型設(shè)計缺陷,可以根據(jù)表1(缺陷匯總表)建立檢查單,并通過三級質(zhì)量管控機制,實現(xiàn)測試用例典型設(shè)計缺陷的修正:

        1)一級管控,測試人員自查修正。

        2)二級管控,項目審核修正。

        3)三級管控,同行評審修正。

        消除上述覆蓋率分析無法修正的用例設(shè)計缺陷之后,再根據(jù)用例執(zhí)行后的覆蓋率統(tǒng)計數(shù)據(jù),進一步修正因輸入不足而導(dǎo)致的用例設(shè)計缺陷,通過兩種手段的互補,確保測試充分性。

        4 結(jié)束語

        測試用例設(shè)計缺陷,尤其是通過覆蓋率分析手段無法發(fā)現(xiàn)和修正的測試用例設(shè)計缺陷,不容忽視。目前對此所開展的專題研究較少,后續(xù)還需要進一步加強研究,完善缺陷庫。為提高測試效率,后續(xù)應(yīng)開展相關(guān)工具研究,通過工具自動化手段實現(xiàn)測試用例設(shè)計缺陷的自動化檢查與消除。其中,構(gòu)建由知識庫和推理機組成的專家系統(tǒng)是一個未來可探索方向。

        猜你喜歡
        測試用例用例指令
        聽我指令:大催眠術(shù)
        UML用例模型中依賴關(guān)系的比較與分析
        基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
        聯(lián)鎖軟件詳細設(shè)計的測試需求分析和用例編寫
        ARINC661顯控指令快速驗證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        電子測試(2018年18期)2018-11-14 02:30:34
        從出土文獻用例看王氏父子校讀古書的得失
        基于混合遺傳算法的回歸測試用例集最小化研究
        基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
        坐標(biāo)系旋轉(zhuǎn)指令數(shù)控編程應(yīng)用
        機電信息(2014年27期)2014-02-27 15:53:56
        一区一级三级在线观看| 大地资源中文第三页| 无码无套少妇毛多18pxxxx| 亚洲热线99精品视频| 少妇高清精品毛片在线视频| 国产亚洲精品aaaa片app| 中文字幕一区二区三区四区在线| 婷婷激情五月综合在线观看| 一区二区中文字幕蜜桃| 国产一区二区三免费视频| 美女视频黄是免费| 未满十八勿入av网免费| 国产超碰人人模人人爽人人喊| 欧美视频久久久| 偷拍熟女亚洲另类| 日韩精品一区二区三区视频| 加勒比东京热一区二区| 国产精品久久久爽爽爽麻豆色哟哟| 国产精品欧美一区二区三区| 中文字幕无码不卡免费视频| 久久久综合九色合综国产| 国产免费一区二区三区在线视频 | 国产精品亚洲在钱视频| 中文字幕乱码亚洲一区二区三区| 成人午夜高潮a∨猛片| 中文字幕欧美人妻精品一区 | 91久久久久无码精品露脸| 资源在线观看视频一区二区| 99视频一区二区日本| 亚洲天堂丰满人妻av| 中文 在线 日韩 亚洲 欧美| 免费无码成人av在线播放不卡| 韩国精品一区二区三区| 久久99精品免费国产| 人妻中文字幕一区二区视频| 国产av无码专区亚洲a∨毛片| 成人欧美一区二区三区1314| 久久精品国产亚洲不av麻豆| 国产大片在线观看三级| 五月激情综合婷婷六月久久| 午夜福利试看120秒体验区 |