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

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

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