秦 浩
(中航工業(yè)西安航空計(jì)算技術(shù)研究所,西安 710068)
航空軍工產(chǎn)品配套軟件定型測(cè)評(píng)
秦 浩
(中航工業(yè)西安航空計(jì)算技術(shù)研究所,西安 710068)
軟件測(cè)試是保證軟件質(zhì)量的重要手段之一。航空軍工產(chǎn)品配套軟件定型測(cè)評(píng)是定型測(cè)評(píng)機(jī)構(gòu)依據(jù)國家相關(guān)標(biāo)準(zhǔn)考核航空軍工產(chǎn)品配套軟件是否符合系統(tǒng)研制總要求(含軟件研制任務(wù)書或軟件需求規(guī)格說明),排除軟件缺陷、評(píng)價(jià)軟件質(zhì)量的過程。介紹了航空軍工產(chǎn)品配套軟件定型測(cè)評(píng)工作的目的、測(cè)評(píng)過程,詳細(xì)論述了軟件定型測(cè)評(píng)的技術(shù)和方法。
航空軍工產(chǎn)品配套軟件,定型測(cè)評(píng),測(cè)評(píng)過程,測(cè)評(píng)技術(shù)和方法
隨著現(xiàn)代航空裝備的發(fā)展,計(jì)算機(jī)技術(shù)在航空裝備中的應(yīng)用越來越廣泛,軟件系統(tǒng)在計(jì)算機(jī)系統(tǒng)中所占的比重越來越高,軟件本身也越來越復(fù)雜。軟件從最初的不到萬行規(guī)模,發(fā)展到現(xiàn)在動(dòng)輒數(shù)百萬行甚至上千萬行的規(guī)模。這么巨大規(guī)模的軟件,如果在實(shí)際使用過程中發(fā)生問題,可能會(huì)導(dǎo)致巨額的維護(hù)費(fèi)用,也會(huì)給用戶的使用帶來不便,嚴(yán)重的還會(huì)造成人員傷亡。軟件質(zhì)量保證和軟件測(cè)試是保證軟件質(zhì)量的兩種重要手段[1],尤其是軟件測(cè)試,能夠直接發(fā)現(xiàn)軟件中存在的缺陷,將軟件中的缺陷消滅在研制階段,經(jīng)過全面、完整測(cè)試的軟件,其可靠性既可以得到提高,相關(guān)功能也可以得到驗(yàn)證。航空軍工產(chǎn)品配套軟件測(cè)試按研制階段可分為內(nèi)部測(cè)試、三方測(cè)試,以及定型(含鑒定)測(cè)評(píng)。其中,定型(含鑒定)測(cè)評(píng)作為航空軍工產(chǎn)品配套軟件隨所屬武器系統(tǒng)定型的最后一道“關(guān)口”,其作用和意義尤為重要。
航空軍工產(chǎn)品配套軟件是指航空軍工產(chǎn)品定型委員會(huì)負(fù)責(zé)定型的航空軍工產(chǎn)品所涉及的配套軟件產(chǎn)品,包括計(jì)算機(jī)程序、相關(guān)的文檔和數(shù)據(jù),以及固化在硬件中的程序和數(shù)據(jù)等。
軟件定型測(cè)評(píng)結(jié)論與其它定型試驗(yàn)(試飛)結(jié)論共同構(gòu)成航空軍工產(chǎn)品配套軟件及其所屬武器系統(tǒng)定型的依據(jù)[2]。實(shí)踐表明,對(duì)航空軍工產(chǎn)品配套軟件實(shí)行定型測(cè)評(píng)制度,把好軟件定型的最后這個(gè)“關(guān)口”,可以有效地保證航空軍工產(chǎn)品配套軟件及其所屬武器系統(tǒng)的定型質(zhì)量,并且在一定程度上可以促使研制單位提高其軟件的工程化水平。
航空軍工產(chǎn)品配套軟件定型測(cè)評(píng)的程序[2]通常包括:申請(qǐng)軟件定型測(cè)評(píng);擬制軟件定型測(cè)評(píng)大綱;審批軟件定型測(cè)評(píng)大綱;實(shí)施軟件定型測(cè)評(píng);出具軟件定型測(cè)評(píng)報(bào)告。
按照航空軍工產(chǎn)品配套軟件定型測(cè)評(píng)的程序,航空軍工產(chǎn)品配套軟件定型測(cè)評(píng)的過程一般包括:測(cè)試需求分析、測(cè)試策劃、測(cè)試設(shè)計(jì)和實(shí)現(xiàn)、測(cè)試執(zhí)行、測(cè)試總結(jié)。
2.1 測(cè)試需求分析和測(cè)試策劃
2.1.1 確定測(cè)試級(jí)別和測(cè)試類型
航空軍工產(chǎn)品配套軟件定型測(cè)評(píng)的測(cè)試級(jí)別一般包括配置項(xiàng)測(cè)試和系統(tǒng)測(cè)試。
航空軍工產(chǎn)品配套軟件定型測(cè)評(píng)的測(cè)試類型一般包括:文檔審查、靜態(tài)分析、代碼審查、功能測(cè)試、性能測(cè)試、接口測(cè)試、邊界測(cè)試、人機(jī)交互界面測(cè)試、安全性測(cè)試、強(qiáng)度測(cè)試、可恢復(fù)性測(cè)試、余量測(cè)試等內(nèi)容[3]??筛鶕?jù)軟件需求對(duì)測(cè)試類型進(jìn)行裁剪,但須在測(cè)評(píng)大綱中說明理由,并給出各測(cè)試類型的測(cè)試方法。
2.1.2 確定測(cè)試策略
確定測(cè)試級(jí)別和測(cè)試類型后,要分析軟件研制任務(wù)書和軟件需求規(guī)格說明等文檔,結(jié)合軟件特點(diǎn)和測(cè)評(píng)環(huán)境,制定測(cè)試策略。
2.1.3 明確測(cè)試內(nèi)容及充分性分析
分別針對(duì)文檔審查、靜態(tài)分析、代碼審查、動(dòng)態(tài)測(cè)試等測(cè)試類型說明測(cè)試內(nèi)容,并建立各級(jí)別動(dòng)態(tài)測(cè)試項(xiàng)對(duì)測(cè)評(píng)依據(jù)文檔需求的覆蓋追蹤矩陣,進(jìn)行充分性分析。
文檔審查:列出文檔審查的全部文檔清單,依據(jù)確定的文檔檢查單,檢查文檔種類的齊全性;文檔標(biāo)識(shí)和簽署的完整性;文檔編制內(nèi)容的完備性、準(zhǔn)確性、一致性;文檔內(nèi)容的詳細(xì)性;文檔編制格式的規(guī)范性。
靜態(tài)分析:根據(jù)被測(cè)軟件的特點(diǎn),選擇軟件靜態(tài)分析工具;利用軟件靜態(tài)分析工具對(duì)程序進(jìn)行檢查,并對(duì)檢查結(jié)果作進(jìn)一步分析確認(rèn);通過軟件靜態(tài)分析工具統(tǒng)計(jì)軟件的質(zhì)量度量信息。
代碼審查:列出代碼審查的全部程序文件清單,依據(jù)確定的代碼檢查單,檢查代碼和設(shè)計(jì)的一致性,代碼的規(guī)范性、可讀性,代碼邏輯表達(dá)的正確性,代碼實(shí)現(xiàn)和結(jié)構(gòu)的合理性。
動(dòng)態(tài)測(cè)試:依據(jù)軟件研制任務(wù)書和軟件需求規(guī)格說明劃分測(cè)試項(xiàng),對(duì)每個(gè)測(cè)試項(xiàng)詳細(xì)說明測(cè)試方法、輸入條件或場(chǎng)景、預(yù)期結(jié)果、觀測(cè)手段和通過準(zhǔn)則等信息。
2.1.4 其它策劃內(nèi)容
其它軟件測(cè)試策劃內(nèi)容包括:明確軟件問題類型、嚴(yán)重性等級(jí),以及處理方法;明確測(cè)評(píng)環(huán)境軟件項(xiàng)、硬件項(xiàng)、測(cè)評(píng)場(chǎng)地、測(cè)評(píng)環(huán)境與實(shí)裝環(huán)境的差異性分析;明確測(cè)評(píng)工作安排,包括進(jìn)度、人員分工情況等;明確測(cè)評(píng)結(jié)束條件,包括測(cè)評(píng)中止及重啟條件、測(cè)評(píng)結(jié)束條件;明確軟件質(zhì)量評(píng)價(jià)內(nèi)容與方法,包括文檔質(zhì)量評(píng)價(jià)和程序質(zhì)量評(píng)價(jià);明確測(cè)評(píng)通過準(zhǔn)則;明確配置管理、質(zhì)量保證、安全保密與知識(shí)產(chǎn)權(quán)保護(hù)等措施;對(duì)測(cè)評(píng)項(xiàng)目存在的風(fēng)險(xiǎn)、概率、影響進(jìn)行分析,并給出相應(yīng)的應(yīng)對(duì)措施;明確輸出的測(cè)評(píng)文檔及要求。
最后,將以上全部測(cè)試需求分析和測(cè)試策劃結(jié)果按照GJB 6921-2009《軍用軟件定型測(cè)評(píng)大綱編制要求》編寫成為航空軍工產(chǎn)品配套軟件定型測(cè)評(píng)大綱。
2.2 測(cè)試設(shè)計(jì)和實(shí)現(xiàn)、測(cè)試執(zhí)行
按照經(jīng)過評(píng)審的航空軍工產(chǎn)品配套軟件定型測(cè)評(píng)大綱,完成全部文檔審查、靜態(tài)分析、代碼審查和測(cè)試用例設(shè)計(jì),并與軟件開發(fā)方溝通靜態(tài)測(cè)試問題和測(cè)試用例設(shè)計(jì)情況。完成靜態(tài)測(cè)試回歸后,在航空軍工產(chǎn)品配套軟件定型測(cè)評(píng)大綱確定的測(cè)試環(huán)境下開展動(dòng)態(tài)測(cè)試,記錄測(cè)試結(jié)果和發(fā)現(xiàn)的軟件缺陷,并完成回歸測(cè)試。
2.3 測(cè)試總結(jié)
航空軍工產(chǎn)品配套軟件測(cè)試總結(jié)階段應(yīng)對(duì)以下方面進(jìn)行總結(jié):
2.3.1 測(cè)評(píng)過程概述
應(yīng)按航空軍工產(chǎn)品配套軟件測(cè)評(píng)項(xiàng)目經(jīng)歷的測(cè)試需求分析、測(cè)試策劃、測(cè)試設(shè)計(jì)和實(shí)現(xiàn)、測(cè)試執(zhí)行和測(cè)試總結(jié)5個(gè)階段對(duì)測(cè)試過程進(jìn)行概述。
2.3.2 測(cè)評(píng)環(huán)境說明
應(yīng)說明實(shí)際測(cè)評(píng)使用的測(cè)試環(huán)境軟件項(xiàng)、硬件項(xiàng)、測(cè)評(píng)場(chǎng)所、測(cè)評(píng)數(shù)據(jù)、環(huán)境差異影響分析。
2.3.3 測(cè)試方法說明
對(duì)實(shí)際測(cè)評(píng)使用的各測(cè)試類型的測(cè)試方法進(jìn)行說明。
2.3.4 測(cè)試執(zhí)行情況
分別對(duì)文檔審查、靜態(tài)分析、代碼審查、配置項(xiàng)測(cè)試和系統(tǒng)測(cè)試內(nèi)容、執(zhí)行結(jié)果、發(fā)現(xiàn)的缺陷、影響分析及回歸測(cè)試的結(jié)果進(jìn)行說明。
2.3.5 軟件問題
對(duì)測(cè)試各階段發(fā)現(xiàn)的問題,按照問題類型、嚴(yán)重程度、確認(rèn)問題數(shù)、已歸零問題數(shù)和遺留問題數(shù)進(jìn)行統(tǒng)計(jì)。
2.3.6 測(cè)試有效性和充分性說明
應(yīng)分別對(duì)靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試的有效性和充分性進(jìn)行說明。
2.3.7 測(cè)試評(píng)價(jià)
按照測(cè)評(píng)大綱要求對(duì)軟件文檔質(zhì)量和程序質(zhì)量進(jìn)行評(píng)價(jià),列出被測(cè)軟件對(duì)系統(tǒng)研制總要求、軟件研制任務(wù)書、軟件需求規(guī)格說明規(guī)定內(nèi)容的完成情況的詳細(xì)對(duì)照表,并給出軟件功能、性能、接口、安全性等方面明確的結(jié)論。
2.3.8 改進(jìn)建議
針對(duì)航空軍工產(chǎn)品配套軟件定型測(cè)評(píng)過程中發(fā)現(xiàn)的軟件問題情況,向軟件開發(fā)方提出后續(xù)軟件開發(fā)過程中軟件工程化改進(jìn)方面的合理建議。
最后,將上述全部測(cè)試的總結(jié)內(nèi)容,按照GJB 6922-2009《軍用軟件定型測(cè)評(píng)報(bào)告編制要求》,編寫軟件定型測(cè)評(píng)報(bào)告。
3.1 文檔審查
文檔審查一般分兩個(gè)階段進(jìn)行,一是編寫航空軍工產(chǎn)品配套軟件定型測(cè)評(píng)大綱前的初審,二是之后的正式審查。初審主要是先對(duì)軟件研制任務(wù)書、軟件需求規(guī)格說明,以及軟件概要設(shè)計(jì)文檔進(jìn)行審查,目的主要是理解軟件需求和執(zhí)行流程,為編寫測(cè)評(píng)大綱動(dòng)態(tài)測(cè)試項(xiàng)做好準(zhǔn)備。正式審查時(shí)則需按照GJB 438B-2009《軍用軟件開發(fā)文檔通用要求》,以及航空軍工產(chǎn)品配套軟件定型測(cè)評(píng)大綱確定文檔檢查單,對(duì)全部軟件文檔進(jìn)行逐一審查。
3.2 靜態(tài)分析
靜態(tài)分析主要完成兩個(gè)方面的工作:一是質(zhì)量度量,統(tǒng)計(jì)軟件質(zhì)量度量信息,如圈復(fù)雜度、注釋率、單元行數(shù)、扇出數(shù)等,一般在定型測(cè)評(píng)報(bào)告中需要統(tǒng)計(jì)初始版本和最終版本軟件的度量信息;二是違反型號(hào)編碼規(guī)則檢查,并根據(jù)違反編碼規(guī)則的情況進(jìn)行進(jìn)一步分析,確認(rèn)軟件問題。
3.3 代碼審查
高質(zhì)量的代碼審查能夠發(fā)現(xiàn)60%以上的軟件問題,而且往往能夠發(fā)現(xiàn)很多通過工具和動(dòng)態(tài)測(cè)試無法發(fā)現(xiàn)的深層次代碼問題,如算法實(shí)現(xiàn)問題、軟件架構(gòu)問題、時(shí)序邏輯問題等。對(duì)于如何做好定型測(cè)評(píng)的代碼審查,總結(jié)了以下幾點(diǎn)方法:
3.3.1 靜態(tài)規(guī)則掃描結(jié)果確認(rèn)
對(duì)被審查代碼可用采用“以人工審查為主,靜態(tài)分析工具規(guī)則掃描確認(rèn)為輔”的方式進(jìn)行,并且應(yīng)先開展靜態(tài)規(guī)則掃描確認(rèn),這樣可以先排除代碼形式化的錯(cuò)誤。
3.3.2 人工審查方法
采用先通讀、精讀,再重點(diǎn)審查的方式進(jìn)行。
(1)通讀,即對(duì)照軟件研制任務(wù)書、需求和概要設(shè)計(jì)文檔,把握軟件整體架構(gòu)、大致執(zhí)行流程和各功能模塊劃分。
(2)精讀,即從主函數(shù)出發(fā),對(duì)照詳細(xì)設(shè)計(jì)文檔,按程序執(zhí)行流程,檢查每個(gè)函數(shù)功能實(shí)現(xiàn)的正確性、與詳細(xì)設(shè)計(jì)的一致性、程序邏輯、時(shí)序處理的正確性,以及全局?jǐn)?shù)據(jù)傳遞的正確性等。
(3)重點(diǎn)審查,對(duì)一些較復(fù)雜或完成重點(diǎn)功能的代碼段進(jìn)行重點(diǎn)審查,審查者利用自身經(jīng)驗(yàn),從用戶可見的功能出發(fā),假設(shè)一些比較復(fù)雜的使用場(chǎng)景、極端情況或異常情況,先思考可能會(huì)碰到的問題,然后帶著問題,通過審查代碼,驗(yàn)證這些問題是否被設(shè)計(jì)人員考慮到并已解決。該方法類似于代碼走查,從測(cè)試人員的角度去思考代碼邏輯的嚴(yán)謹(jǐn)性,往往能夠發(fā)現(xiàn)一些較深層次的軟件缺陷,對(duì)于一些安全性等級(jí)較高的軟件尤為重要。
3.4 動(dòng)態(tài)測(cè)試
動(dòng)態(tài)測(cè)試的技術(shù)和方法主要從實(shí)際測(cè)評(píng)經(jīng)驗(yàn)的角度出發(fā),對(duì)最常見測(cè)試類型的技術(shù)和方法進(jìn)行總結(jié):
3.4.1 功能測(cè)試
用正常值的等價(jià)類輸入數(shù)據(jù)值測(cè)試;用非正常值的等價(jià)類輸入數(shù)據(jù)值測(cè)試;對(duì)控制流程的正確性、合理性等進(jìn)行驗(yàn)證。
3.4.2 性能測(cè)試
對(duì)時(shí)間性能指標(biāo)的測(cè)量主要有3種手段:
(1)對(duì)精度要求不高的,如秒級(jí)或分鐘級(jí)性能指標(biāo)要求的,可以使用秒表。
(2)帶操作系統(tǒng)的軟件可以在調(diào)試環(huán)境下計(jì)算tick數(shù)。
(3)對(duì)精度要求較高的,如達(dá)到ms級(jí)、μs級(jí)的,可以在程序中插樁設(shè)置時(shí)間戳,用示波器進(jìn)行測(cè)量。
3.4.3 接口測(cè)試
對(duì)模擬量、離散量等接口測(cè)試,首先考慮是否能夠通過萬用表、示波器等設(shè)備直接測(cè)量,若不能,可考慮通過功能驗(yàn)證進(jìn)行測(cè)試;對(duì)數(shù)字量,如RS422、RS232、АRINС429、1553B、САN、以太網(wǎng)等接口,應(yīng)通過接口仿真軟件(如串口調(diào)試助手等),從以下幾方面進(jìn)行測(cè)試:
(1)正常命令的解析和響應(yīng):按照協(xié)議格式和內(nèi)容輸入正確命令幀,若有直接反饋命令幀,則觀察反饋命令幀是否符合協(xié)議格式和內(nèi)容;若無,則通過判斷功能響應(yīng)是否正確來間接地驗(yàn)證接口是否正確。
(2)異常命令的處理和響應(yīng),即在輸入數(shù)據(jù)異常,如狀態(tài)為非法值、數(shù)據(jù)超范圍等,輸入幀格式不滿足協(xié)議要求,如幀頭、長(zhǎng)度、命令字、校驗(yàn)和、幀尾等發(fā)生錯(cuò)誤的情況下,軟件的處理和響應(yīng)能力。
3.4.4 邊界測(cè)試
邊界測(cè)試主要指輸入、輸出數(shù)據(jù)邊界,以及狀態(tài)轉(zhuǎn)化邊界、功能界限邊界、性能界限邊界和容量界限邊界等測(cè)試;數(shù)據(jù)邊界要測(cè)試邊界上、邊界內(nèi)和邊界外3個(gè)點(diǎn),按照數(shù)據(jù)分辨率的最小精度進(jìn)行測(cè)試。
3.4.5 余量測(cè)試
存儲(chǔ)空間余量包括靜態(tài)存儲(chǔ)空間余量和動(dòng)態(tài)存儲(chǔ)空間余量。其中,靜態(tài)余量可通過計(jì)算編譯后燒寫目標(biāo)代碼量與存儲(chǔ)空間的比例得到。動(dòng)態(tài)余量一般可通過兩種方式計(jì)算:一是通過動(dòng)態(tài)地址分配函數(shù)malloc()預(yù)先分配占用要求余量的空間,觀察軟件是否正常運(yùn)行;二是通過map文件計(jì)算實(shí)際占用空間。
處理時(shí)間余量主要是指有周期處理功能的軟件的實(shí)際執(zhí)行時(shí)間余量。
3.4.6 強(qiáng)度測(cè)試
3.4.6.1 時(shí)間強(qiáng)度
測(cè)試系統(tǒng)連續(xù)運(yùn)行時(shí)間超過通常使用的最大值時(shí),軟件能否始終保持正常狀態(tài)。
3.4.6.2 性能強(qiáng)度
性能強(qiáng)度測(cè)試的主要方法包括:提供要求處理的信息量,測(cè)試超過設(shè)計(jì)允許的最大值;數(shù)據(jù)傳輸能力的飽和試驗(yàn),測(cè)試超出設(shè)計(jì)能力的數(shù)據(jù)傳輸能力,包括內(nèi)存的寫入和讀出、外部設(shè)備、其它分系統(tǒng)及內(nèi)部界面的數(shù)據(jù)傳輸?shù)?;存?chǔ)范圍(如緩沖區(qū)、表格和臨時(shí)信息區(qū))超過額定大小的能力測(cè)試。
3.4.6.3 降級(jí)能力強(qiáng)度
對(duì)設(shè)計(jì)上允許降級(jí)運(yùn)行的軟件,在部分硬件失效(或瞬間失效)時(shí),驗(yàn)證其自恢復(fù)能力。
軟件定型測(cè)評(píng)作為航空軍工產(chǎn)品配套軟件隨所屬武器系統(tǒng)定型的最后一道“關(guān)口”,具有重要的意義。因此,定型測(cè)評(píng)機(jī)構(gòu)需以《軍用軟件產(chǎn)品定型管理辦法》、《軍用軟件質(zhì)量管理規(guī)定》、《航空軍工產(chǎn)品配套軟件定型管理工作細(xì)則》及軟件工程化管理相關(guān)軍用標(biāo)準(zhǔn)為具體指南,嚴(yán)格按照規(guī)范化的測(cè)評(píng)流程,加強(qiáng)軟件定型測(cè)評(píng)管理、測(cè)評(píng)方法手段、測(cè)評(píng)隊(duì)伍及測(cè)評(píng)條件建設(shè),繼續(xù)推進(jìn)航空軍工產(chǎn)品配套軟件定型測(cè)評(píng)和軟件工程化管理工作科學(xué)發(fā)展,促進(jìn)航空軍工產(chǎn)品配套軟件研制、定型質(zhì)量提高,更好地為軍隊(duì)服務(wù)戰(zhàn)斗力生成模式轉(zhuǎn)變服務(wù)。
1 洪倫耀, 董云衛(wèi). 軟件質(zhì)量工程[M]. 西安電子科技大學(xué)出版社, 2004: 120~121
2 航空軍工產(chǎn)品定型委員會(huì). 航定〔2007〕31號(hào), 航空軍工產(chǎn)品配套軟件定型管理工作細(xì)則[S]. 2005
3 總裝電子信息部. 〔2005〕裝電字第324號(hào), 軍用軟件測(cè)評(píng)實(shí)驗(yàn)室測(cè)評(píng)過程和技術(shù)能力要求[S]. 2005
1009-8119(2017)05(1)-0053-04