龍建祥 王宏風(fēng) 姚申茂
(海軍705廠1) 湛江 524016)(海裝艦船技術(shù)保障部2) 北京 100841)
各國武器裝備發(fā)展的實踐表明,武器裝備實行“三化”(通用化、系列化、模塊化)不僅是發(fā)展武器裝備的需要,而且對推動國防科技進步也起到非常重要的作用。它的目的就是為了最大限度地利用先進科技成果,最大限度地減少同一水平上的重復(fù)勞動,以最小的投入和有限的品種、規(guī)格的單元研制出滿足多樣化需求的武器裝備,以達(dá)到縮短研制周期、降低成本、提高質(zhì)量和可靠性、簡化維修和后勤裝備保障、提高戰(zhàn)斗力的目的。VXI總線測試方案就是“三化”建設(shè)中的一個很好的例子,它具有電磁兼容性好、可移植性強和組建系統(tǒng)容易等優(yōu)點,當(dāng)前各國武器裝備的維修設(shè)備中普遍采用了VXI總線的測試方案。
新技術(shù)的應(yīng)用往往也伴隨著對該項新技術(shù)的測試課題的研究。如:基于VXI總線的測試軟件如何進行軟件測試?基于VXI總線的測試軟件的可靠性與可用性如何評估?
VXI總線是 VME總線在儀器領(lǐng)域的擴展(VMEbus eXtensions for Instrumentation),是計算機操縱的模塊化自動儀器系統(tǒng)。經(jīng)過十多年的發(fā)展,它依靠有效的標(biāo)準(zhǔn)化以及VXI總線儀器的互換性和互操作性。目前,全世界有近400家公司在VXI總線聯(lián)合會申請了制造VXI總線產(chǎn)品的識別代碼(ID號)。大約有1300多種VXI產(chǎn)品,其門類幾乎覆蓋了數(shù)據(jù)采集和測量的各個領(lǐng)域。
軍事部門不僅把VXI用于基地設(shè)備的修理與維護,而且也用于作戰(zhàn)系統(tǒng)。目前,許多政府機構(gòu)和軍事機構(gòu)正在把VXI看作測試標(biāo)準(zhǔn),美國軍方開始由定做逐步轉(zhuǎn)向使用現(xiàn)成的商用VXI系統(tǒng),這一行動正在把更多的民用部門導(dǎo)向VXI。VXI總線已成為公認(rèn)的21世紀(jì)儀器總線系統(tǒng)和自動測試系統(tǒng)的優(yōu)秀平臺。
軟件測試(Software testing)是軟件生命周期(Software life cycle)中的一個重要階段,是軟件質(zhì)量保證的關(guān)鍵步驟。軟件測試就是在軟件投入運行前,對軟件需求分析、設(shè)計規(guī)格說明和編碼進行最終復(fù)審的活動,軟件測試的目的是為了檢驗軟件系統(tǒng)是否滿足需求[2]。
軟件測試從測試方法上分可以分為“白盒測試”和“黑盒測試”兩種。白盒測試是根據(jù)程序的內(nèi)部邏輯來設(shè)計測試用例(test case),檢查程序中的邏輯通路是否都按照預(yù)定的要求正確工作。而黑盒測試是根據(jù)規(guī)格說明書規(guī)定的功能來設(shè)計測試用例,檢查程序的功能是否符合規(guī)格說明書的要求[3]。
從測試的順序和規(guī)模上分,又可分為單元測試、集成測試、確認(rèn)測試和系統(tǒng)測試。單元測試是測試軟件模塊級的功能和算法,單元測試應(yīng)該在編碼和詳細(xì)設(shè)計階段應(yīng)用白盒測試的方法進行測試。集成測試是測試軟件模塊間的接口和通訊,集成測試應(yīng)該在設(shè)計階段應(yīng)用黑盒測試的方法進行測試,確認(rèn)測試是以規(guī)格說明書為依據(jù),對軟件的功能、性能等進行的黑盒測試,而系統(tǒng)測試則是對軟件與硬件和其他相關(guān)因素的功能測試。
對各個階段的測試必須選用相應(yīng)的測試工具來完成,常用的軟件測試工具有測試數(shù)據(jù)生成程序、動態(tài)分析程序、靜態(tài)分析程序和文件比較程序。測試數(shù)據(jù)生成程序可以為被測試系統(tǒng)自動生成大量輸入數(shù)據(jù);動態(tài)分析程序是分析被測程序中每個語句的執(zhí)行次數(shù),利用它可以發(fā)現(xiàn)測試過程中沒有執(zhí)行的語句,以便增加測試數(shù)據(jù);靜態(tài)分析程序不需要執(zhí)行被測試的程序,它僅僅掃描被測程序的正文,從中尋找可能導(dǎo)致錯誤的異常情況。在這些自動測試工具中,NuMega公司的NuMega測試軟件最具權(quán)威性,該測試軟件由一個靜態(tài)分析程序(BoundsChecker)和兩個動態(tài)分析程序(T rueCoverage和T rueTime)組成。
為了對基于VXI總線測試軟件進行較為完備的測試,結(jié)合VXI平臺的主要功能,我們擬訂以下測試方法:
1)文件管理功能的測試,主要進行文件的存儲、文件打開、文件新建、文件訪問和文件合并等文件功能進行測試。
2)程序運行及調(diào)試功能的測試,這部分的測試用例將運行源程序并進入界面,單步執(zhí)行并設(shè)斷點功能進行測試。
3)編程控件的測試,這部分的測試用例將對基本控件,包括流程設(shè)計控件、函數(shù)調(diào)用控件、輸入輸出控件、數(shù)據(jù)控件以及顯示控件進行功能測試。
4)對VXI平臺重要的常用功能的測試,這部分的測試用例將對儀器管理與控制、子程序與子函數(shù)的調(diào)用、測試數(shù)據(jù)的分析與顯示、測試結(jié)果的存儲與取回、操作界面的建立以及生成測試報告六個常用功能進行測試。
5)在進行上述的測試的同時,用NuMega公司的NuMega測試工具對源程序進行靜態(tài)分析和動態(tài)分析。
軟件測試主要依據(jù)是被測試系統(tǒng)的研制任務(wù)書和技術(shù)規(guī)格書,是對軟件整體功能和性能的綜合測試與評估。測試用例的合理性對于軟件的測試與評估具有關(guān)鍵作用,所以應(yīng)該與軟件的研制人員以及最終用戶一起,有針對性地研究實際操作環(huán)境并加以描述,形成合理的測試用例。另一方面,軟件運行環(huán)境的復(fù)雜程度對軟件評估具有重要作用,所以應(yīng)產(chǎn)生盡量逼真的運行背景[4]。
軟件維護是軟件生命周期的最后一個階段,也是持續(xù)時間最長,代價最大的一個階段。測試的主要目的就是提高軟件的可維護性,降低軟件維護的成本。軟件維護通常包括四類:為了糾正在使用過程中暴露出來的錯誤而進行的改進性維護;為了適應(yīng)外部環(huán)境的變化而進行的適應(yīng)性維護;為了改進原有的軟件而進行的完善性維護;以及為了改進將來的可維護性和可靠性而進行的預(yù)防性維護。
軟件的可理解性、可測試性和可修改性是決定軟件可維護性的基本因素。軟件生命周期每個階段的工作都和軟件可維護性有密切的關(guān)系。良好的設(shè)計、完善的文檔資料以及一系列嚴(yán)格的復(fù)審和測試,使得一旦發(fā)現(xiàn)錯誤是比較容易診斷和糾正。因此,在軟件周期的每個階段都必須充分考慮可維護性問題,并且為軟件維護作好準(zhǔn)備。
文檔是影響軟件可維護性的決定因素,因此,文檔甚至比可執(zhí)行代碼更為重要。文檔可分為用戶文檔和系統(tǒng)文檔兩大類。不管是那一類文檔都必須和源代碼同時維護,只有與程序完全一致的文檔才是真正有價值的文檔。根據(jù)軟件行業(yè)的有關(guān)標(biāo)準(zhǔn),軟件研制過程中形成的文檔主要有:《軟件開發(fā)計劃》、《軟件需求規(guī)格說明》、《接口需求規(guī)格說明》、《接口設(shè)計文檔》。
可靠性(reliability)是產(chǎn)品在規(guī)定的條件下和規(guī)定的時間內(nèi)完成規(guī)定功能的能力,它的概率度量稱為可靠度。軟件可靠性(software reliability)是軟件系統(tǒng)的固有特性之一,它表明了一個軟件系統(tǒng)按照用戶的要求和設(shè)計的目標(biāo),執(zhí)行其功能的正確程度。軟件可靠性與軟件缺陷有關(guān),也與系統(tǒng)輸入和系統(tǒng)使用有關(guān)。理論上說,可靠的軟件系統(tǒng)應(yīng)該是正確、完整、一致和健壯的。但是實際上任何軟件都不可能達(dá)到百分之百的正確,而且也無法精確度量。一般情況下,只能通過對軟件系統(tǒng)進行測試來度量其可靠性。
軟件測試的根本目的是消除故障,提高軟件的可靠性。軟件可靠性涉及到兩個概念,即軟件的可靠性和軟件的可用性。軟件可靠性是程序在給定的時間間隔內(nèi),按照規(guī)格說明書的規(guī)定成功運行的概率。軟件可用性是程序在給定的時間點,按照規(guī)格說明書的規(guī)定成功運行的概率。
在一段時間內(nèi),軟件系統(tǒng)故障停機時間分別為tdown1,tdown2,tdown3…,正常運行時間分別為tup1,tup2,tup3…,則系統(tǒng)的穩(wěn)態(tài)可靠性為:
如果引入系統(tǒng)平均無故障時間MTBF和平均維修時間MTBR的概念,則As s可以變?yōu)?
平均維修時間MTBR是修復(fù)一個故障平均需要的時間,它取決于維護人員的技術(shù)水平和對系統(tǒng)的熟練程度,也和系統(tǒng)的可維護性有重要的關(guān)系。平均無故障時間MTBF是系統(tǒng)按規(guī)格說明書規(guī)定成功地運行的平均時間,它主要取決于系統(tǒng)中潛伏的故障的數(shù)目。
軟件的平均無故障時間MTBF是一個重要的質(zhì)量指標(biāo),往往作為對軟件的一項要求。MTBF可以用以下的公式進行估計:
其中:ET為測試之前程序中故障總數(shù);IT為程序長度(機器指令總數(shù));τ為測試(包括調(diào)式)時間;Ec(τ)為在0到 τ期間改正的錯誤數(shù) 。K 為常數(shù),它的值應(yīng)該根據(jù)經(jīng)驗選取,K的典型值是200。
在上述公式中的ET(故障總數(shù))是一個十分重要的量,它既是直接標(biāo)志軟件的可靠性程度,又是計算軟件平均無故障時間的重要參數(shù)。ET與程序規(guī)模、類型、開發(fā)環(huán)境、開發(fā)方法、開發(fā)人員的技術(shù)水平和管理水平等都有密切的關(guān)系。估計ET有兩種方法,即置入故障法和分別測試法[6]。
實踐證明,盡管人們在開發(fā)軟件的過程中使用了許多保證軟件質(zhì)量的方法和技術(shù),但開發(fā)出的軟件中還會隱藏許多錯誤和缺陷。這對于規(guī)模大、復(fù)雜性高的軟件更是如此。所以,嚴(yán)格的軟件測試對于保證軟件質(zhì)量具有重要作用。軟件測試與可靠性評估工程雖然得到了普遍的重視,但還處于不成熟階段,特別是軍方軟件的測試與可靠性評估管理還沒有建立較完善較權(quán)威的管理和規(guī)范。加上國內(nèi)對于軟件可靠性模型的研究多集中在軟件的研制階段,而很少有涉及測試與評估階段,所以加大軟件測試與可靠性評估研究具有重要意義。本文設(shè)計了基于VXI總線的測試軟件的軟件測試與可靠性評估方法,可用于當(dāng)前基于VXI總線的測試軟件的測試、可靠性、可用性做出初步的鑒定的參考。
[1]Dr.Linda Rosenberg,Ted Hammer,Jack Shaw.Software Metrics and Reliability Unisys/NASA GSFC,Bld 6 Code 300.1
[2]徐曉春.軟件測試的方法和工具[J].計算機世界,1999(12)
[3]淡艷.如何設(shè)計黑盒測試的測試用例[J].成都教育學(xué)院學(xué)報,2005,19(11)
[4]李海鷗,張忠亭,姜守達(dá).基于VXI總線的通用測試軟件研究[J].高技術(shù)通訊,2000(12)
[5]陳光禹.VXI總線測試平臺技術(shù)[M].北京:電子科技大學(xué)出版社,1996,10
[6]魏震生,張義忠,于振江.基于VXI總線的測試平臺與故障診斷系統(tǒng)設(shè)計[J].計算機自動測量與控制,2001(10)