宋彥博,許波強,楊 苗
(陜西凌云電器集團(tuán)有限公司 設(shè)計所,陜西 寶雞 721006)
隨著航空電子系統(tǒng)的發(fā)展,軟件在機載航空設(shè)備產(chǎn)品中所占的比重越來越大,伴隨著RTCA DO-178B、CMMI V1.2 等國外先進(jìn)軟件管理標(biāo)準(zhǔn)、規(guī)范的逐步引入,標(biāo)志我國航空機載設(shè)備在軟件開發(fā)測試方面也開始步入規(guī)范化和常態(tài)化管理。如何對軟件測試進(jìn)行更有效的管理和控制成為軟件測試執(zhí)行過程中面臨的主要問題。本文通過對軟件測試過程以及軟件測試管理流程的研究,結(jié)合工程實際管理環(huán)境,對軟件測試執(zhí)行過程中的管理方法、測試文檔的要求、在實踐中常出現(xiàn)的問題以及目前我國軟件測試現(xiàn)狀等方面做了簡要的分析和闡述。
軟件測試執(zhí)行過程管理是一種對過程進(jìn)行約束的管理活動,可以對各階段的測試計劃、測試說明,測試用例、測試流程、測試文檔等進(jìn)行追蹤、管理并記錄,使其整個過程系統(tǒng)化、完整化、規(guī)范化,從而減少后續(xù)工作的混亂和重復(fù),提高軟件測試效率和軟件質(zhì)量的一個過程管理活動。
首先,在進(jìn)行軟件測試時,測試人員在軟件源代碼及軟件相關(guān)文檔的提取方面應(yīng)遵照一定的流程來進(jìn)行規(guī)范化操作,使提取出的文檔是合法、受控、可管、可查,使軟件從源頭上保證其測試過程的規(guī)范化、合法化。軟件的提取可以是從受控的軟件庫、文檔庫中進(jìn)行登記、審批并提?。ㄇ疤崾潜締挝灰呀?jīng)建立了此類軟件及文檔的受控庫),避免直接從軟件開發(fā)者手中直接提取軟件代碼和軟件文檔。
其次,提取相關(guān)軟件和文檔后,然后對軟件執(zhí)行相關(guān)的單元測試。單元測試中如果發(fā)現(xiàn)問題必須經(jīng)過討論、修改、回歸測試,往復(fù)這三個過程直到單元測試的所有問題解決后,才可以對單元測試產(chǎn)生的文檔進(jìn)行評審。評審?fù)ㄟ^后,將通過的單元測試軟件源代碼和文檔入受控庫進(jìn)行管理。
最后,進(jìn)行下一步的軟件配置項測試,同樣的過程再對軟件配置項測試中發(fā)現(xiàn)的問題進(jìn)行討論、修改、回歸測試,往復(fù)這三個過程直到所有問題歸零后,便編寫出相關(guān)測試文檔和總結(jié)性文檔進(jìn)行評審,在評審?fù)ㄟ^后對通過的軟件配置項測試軟件源代碼和文檔入受控庫管理,至此便完成了軟件的整個測試過程。其整個軟件測試執(zhí)行過程管理如圖1 所示。

圖1 軟件測試執(zhí)行過程管理流程圖Fig.1 Management flow chart of the software testing process
軟件文檔內(nèi)容是產(chǎn)品設(shè)計思想、靈魂的具體體現(xiàn),是開發(fā)者思路的展現(xiàn),思路清晰、明了的文檔有助于需方、第三方或測試人員對軟件產(chǎn)品的透徹理解,并有利于指導(dǎo)具有追蹤關(guān)系文檔的編寫,例如: 由軟件需求規(guī)格說明文檔直接衍生輸出的文檔: 軟件設(shè)計說明、軟件接口設(shè)計說明、軟件數(shù)據(jù)庫設(shè)計說明、軟件配置項測試計劃等;由軟件設(shè)計說明文檔直接衍生輸出的文檔: 軟件概要、詳細(xì)設(shè)計說明、軟件單元測試計劃等。所以若頂層需求文檔不明確或功能缺失,將直接導(dǎo)致向下產(chǎn)生輸出的文檔內(nèi)容丟失和后須測試計劃相關(guān)功能的缺少;若頂層文檔內(nèi)容不詳細(xì),其測試執(zhí)行難度也將加大,在設(shè)計軟件測試用例時將不能完整或不能達(dá)到真正測試軟件功能的目的。所以各種測試文檔的編制應(yīng)當(dāng)保持前后一致、統(tǒng)一且內(nèi)容追溯完整、詳實,同時建議按照一定的格式進(jìn)行規(guī)范編制,可以參考GJB 438B-2009《軍用軟件開發(fā)文檔通用要求》中提供的類型模板來進(jìn)行編寫。
對于軟件測試的執(zhí)行過程,測試人員應(yīng)嚴(yán)格按照文檔的要求設(shè)計測試用例,必須對需求文檔里的所有指標(biāo)、性能、功能、接口等要求進(jìn)行完整無遺漏的覆蓋,此處需要特別說明的是,進(jìn)行軟件單元測試時應(yīng)嚴(yán)格參考軟件設(shè)計說明(含概要設(shè)計說明、詳細(xì)設(shè)計說明、接口設(shè)計說明、數(shù)據(jù)庫設(shè)計說明等)來進(jìn)行測試用例的設(shè)計和執(zhí)行;進(jìn)行軟件配置項測試則應(yīng)完全嚴(yán)格參考軟件需求規(guī)格說明(含接口需求規(guī)格說明、數(shù)據(jù)庫需求規(guī)格說明等)中的條款設(shè)計測試用例和執(zhí)行。所以其追溯關(guān)系主要是軟件設(shè)計說明指導(dǎo)軟件單元測試,軟件需求規(guī)格說明指導(dǎo)軟件配置項測試。軟件測試執(zhí)行對應(yīng)文檔及其追溯關(guān)系如圖2所示。
在軟件測試執(zhí)行過程工作中,經(jīng)常能遇到測試過程執(zhí)行不下去,執(zhí)行不徹底,或測試用例無法設(shè)計或設(shè)計不準(zhǔn)確、功能追溯不完全等問題,經(jīng)分析其大多數(shù)問題是由于文檔編寫不完善、不完整、不準(zhǔn)確所造成。在實際工作中常出現(xiàn)的文檔問題有:
(1)文檔描述不清或軟件功能和系統(tǒng)功能描述混淆,區(qū)分和界定模糊不清?,F(xiàn)在機載設(shè)備軟件大部分為嵌入式軟件,由硬件和內(nèi)嵌式軟件相互配合完成,有些功能為硬件功能完成(如匹配/帶通濾波、差分解調(diào)、鑒頻、信號檢波等功能),應(yīng)當(dāng)歸屬在系統(tǒng)(或硬件)文檔中描述,但在軟件文檔中仍然描述,導(dǎo)致軟件測試用例無法設(shè)計,使軟件測試和系統(tǒng)測試含混不清,不利于軟件測試的執(zhí)行和操作。

圖2 軟件測試文檔關(guān)系圖Fig.2 The relation diagram of the software testing documentation
(2)文檔描述功能不完善或丟失,前后追蹤關(guān)系丟失。從系統(tǒng)文檔中提取出軟件功能不完善或丟失,軟件文檔從系統(tǒng)需求中提取出的軟件功能部分丟失或不完善,導(dǎo)致在后續(xù)進(jìn)行文檔追溯測試時,功能缺失或功能驗證不徹底、不完整。如在軟件需求規(guī)格說明中描述的功能,在進(jìn)行下一階段的軟件設(shè)計說明文檔中則沒有相應(yīng)的體現(xiàn),將致使文檔追蹤關(guān)系丟失,測試也將不能完整執(zhí)行。
(3)文檔性能指標(biāo)定義描述不嚴(yán)謹(jǐn)。如進(jìn)行邊界測試時,某一指標(biāo)在通用國軍標(biāo)中有要求: 邊界精度可放寬范圍要求,但在編寫的軟件文檔中沒有明確描述,導(dǎo)致在邊界測試時出現(xiàn)指標(biāo)超范圍的假不合理現(xiàn)象發(fā)生。其次,在進(jìn)行性能指標(biāo)描述時不能用大約、大概、約等于3s、10s 等概數(shù)來描述指標(biāo),此類概數(shù)將會對軟件的測試造成定性困難。如: 實時響應(yīng)速度約500ms 將在軟件測試時造成時間界定模糊。
(4)文檔描述軟件功能前后不一致。有時一個大型軟件可能由有多個開發(fā)者共同編寫,文檔的形成也由多人合力完成,某開發(fā)者在文檔功能改進(jìn)或內(nèi)容添加時,沒有及時通知軟件主管對總體文檔進(jìn)行調(diào)整,以致在軟件測試文檔審查時能夠發(fā)現(xiàn)明顯前后不一致等低級錯誤的重復(fù)出現(xiàn)。
對于以上問題,有的是由于對頂層文件內(nèi)容認(rèn)識不到位所致,有的是由于對軟件文檔編寫標(biāo)準(zhǔn)理解偏差所致,有的是由于工作疏忽所致。為此,需要開發(fā)、測試人員增強對頂層文檔的學(xué)習(xí),加強對軟件相關(guān)標(biāo)準(zhǔn)方面的深入理解,提高思想認(rèn)識,重視軟件文檔在軟件開發(fā)中所起到的積極重要作用,用科學(xué)嚴(yán)謹(jǐn)?shù)乃季S編寫出高質(zhì)量的軟件文檔,使其能夠更好的指導(dǎo)軟件設(shè)計和開發(fā),提高軟件的設(shè)計質(zhì)量,使得軟件在產(chǎn)品的應(yīng)用中更加可靠和安全。
首先,專業(yè)的軟件測試工具主要依賴于國外引進(jìn),國內(nèi)還沒有自己獨立的專業(yè)軟件測試工具。航空機載軟件應(yīng)用領(lǐng)域有著一定的特殊性和獨特性,它對軟件一般具有: 高實時性、高安全性、高可靠性等的要求,且其程序一般規(guī)模大、結(jié)構(gòu)復(fù)雜、應(yīng)用面廣及嵌入式等特點,其應(yīng)用環(huán)境較特殊,在測試中需要解決的技術(shù)難點很多,為提高測試效率,常需要借助一些專業(yè)的軟件測試工具,而目前國際市場上先進(jìn)的軟件測試工具均已被美國和歐洲所占領(lǐng),先進(jìn)軟件測試工具引進(jìn)會受到一定的限制。例如: 現(xiàn)國內(nèi)引進(jìn)的測試工具僅有對C、C++語言編制的軟件有單元及代碼測試工具,而對于硬件描述語言如VHDL、匯編、able 語言產(chǎn)生的軟件沒有相應(yīng)測試工具的引進(jìn)。目前,對于此類軟件國內(nèi)僅局限于從代碼走讀、邏輯測試、語句覆蓋等,白盒靜態(tài)分析方面進(jìn)行人工測試,在軟件規(guī)模較大時,軟件測試效率將受到極大制約。
其次,我國軟件測試起步較晚,測試技術(shù)落后,測試人員匱乏,測試管理不完善等還存在很多問題。軟件測試在軟件業(yè)中的比重和質(zhì)量與歐、美、日、印度等有著較大的差距。目前,國內(nèi)的軟件測試總體設(shè)計欠缺,缺乏系統(tǒng)的分析和整體設(shè)計,過程管理隨意性較大,所有的審查和評審活動都是在設(shè)計文檔、規(guī)格說明和設(shè)計說明的基礎(chǔ)上,針對成型軟件產(chǎn)品而開展,如果對需求理解不充分或設(shè)計文檔中有缺陷錯誤等,測試對總體軟件質(zhì)量就難以保證??傮w上,國內(nèi)軟件項目過程不規(guī)范,導(dǎo)致重視編碼和輕視測試的現(xiàn)象,對于測試過程的管理重要性、管理方法等方面還存在很多錯誤的認(rèn)識,國內(nèi)軟件測試現(xiàn)狀在軟件業(yè)中尚處于弱勢地位。
雖說我國無論是在軟件測試?yán)碚撨€是測試管理實踐上都和國外發(fā)達(dá)國家存在不小的差距,但隨著我國軟件產(chǎn)業(yè)的蓬勃發(fā)展以及對軟件質(zhì)量的重視,軟件測試過程管理也將日趨完善,將更加深入、細(xì)致的貫標(biāo)和規(guī)范化,軟件測試過程管理正在逐步成為一個新興的產(chǎn)業(yè)。
隨著開發(fā)的軟件越來越復(fù)雜,軟件測試的規(guī)范化管理也將顯得越來越重要,只有對測試進(jìn)行科學(xué)的管理,才能促進(jìn)軟件開發(fā)效率和軟件質(zhì)量得到提高。我們通過對軟件測試過程管理的研究,以及在測試過程中的實踐,從中發(fā)現(xiàn)了不少問題,至此需要我們在以后的實踐中對其進(jìn)一步完善,來使我們的軟件測試管理工作更加有效和完善。
[1] 中華人民共和國國家質(zhì)量監(jiān)督檢驗檢疫總局;中國國家標(biāo)準(zhǔn)化管理委員會.GB-T 15532-2008[S].2008,9.
[2] 美國航空無線電技術(shù)委員會(RTCA)第167 號特別委員會制訂.《RTCA DO-178B 機載系統(tǒng)和設(shè)備合格審定中的軟件考慮》[S].1992,12.
[3] 《CMMI for Development Version 1.2》[S] by CMMI Product Team August,2006.
[4] 總裝電子信息基礎(chǔ)部等12 單位聯(lián)合起草;閆宇華,等.GJB5000A-2008《軍用軟件研制能力成熟度模型》[S].2008.
[5] 宋彥博.Q/WQ.B36.201.-2012《軟件基本開發(fā)過程》[S].陜西凌云電器集團(tuán)有限公司企標(biāo)文件,2012,4.
[6] 楊寶明,等.GJB 438B-2009《軍用軟件開發(fā)文檔通用要求》[S].2009,8.