摘 要:軟件測(cè)試是軟件工程中的重要環(huán)節(jié),是保證軟件產(chǎn)品質(zhì)量的重要過程和手段。該文闡述了軟件測(cè)試技術(shù)原理,探討了軟件測(cè)試技術(shù)在動(dòng)車組上的應(yīng)用,定義動(dòng)車組軟件測(cè)試過程V模型,從軟件測(cè)試工程化角度論述了動(dòng)車組軟件測(cè)試在軟件全生命周期各階段的任務(wù)。論證軟件測(cè)試是動(dòng)車組軟件產(chǎn)品質(zhì)量的重要保障。
關(guān)鍵詞:測(cè)試技術(shù) 動(dòng)車組 軟件生命周期
中圖分類號(hào):U270.16 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2016)08(a)-0025-02
隨著動(dòng)車組的廣泛應(yīng)用,動(dòng)車組各系統(tǒng)軟件內(nèi)部邏輯錯(cuò)綜復(fù)雜,運(yùn)行環(huán)境動(dòng)態(tài)變化,不同的軟件失效機(jī)理具有不同的表現(xiàn)形式。據(jù)統(tǒng)計(jì)分析,軟件錯(cuò)誤的分布大致為:軟件需求分析階段占56%,軟件設(shè)計(jì)階段占27%,編碼階段占7%,其他占10%。軟件錯(cuò)誤在軟件開發(fā)階段的早期錯(cuò)誤較多,軟件錯(cuò)誤貫穿了整個(gè)軟件生命周期。軟件測(cè)試是軟件工程中的一個(gè)重要階段,在軟件投入運(yùn)行前,對(duì)軟件需求分析、架構(gòu)設(shè)計(jì)和編碼各階段產(chǎn)品的最終驗(yàn)證,是為了保證軟件開發(fā)產(chǎn)品的正確性、可靠性和一致性,因此軟件測(cè)試技術(shù)日益受到重視[1]。
1 動(dòng)車組軟件測(cè)試概述
動(dòng)車組軟件由牽引系統(tǒng)、制動(dòng)系統(tǒng)、網(wǎng)絡(luò)控制系統(tǒng)、輔助系統(tǒng)、門控系統(tǒng)、空調(diào)系統(tǒng)、通信系統(tǒng)、信號(hào)系統(tǒng)組成,其中網(wǎng)絡(luò)控制系統(tǒng)由中央控制單元軟件,人機(jī)接口單元軟件,網(wǎng)關(guān)等軟件組成。由于動(dòng)車組軟件的應(yīng)用場(chǎng)合和領(lǐng)域多種多樣,要求的程度也不盡相同、不能一概而論,故該文僅針對(duì)軟件測(cè)試過程,結(jié)合動(dòng)車組軟件測(cè)試過程的要求和特點(diǎn)探討軟件測(cè)試技術(shù)。
2 動(dòng)車組軟件測(cè)試技術(shù)原理
2.1 軟件測(cè)試技術(shù)分類
軟件測(cè)試可通過下面幾種不同的方法劃分類別。
(1)從被測(cè)試軟件方面講,講軟件測(cè)試被分為靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試。
(2)從軟件結(jié)構(gòu)與算法方面講,講軟件測(cè)試被分為白盒測(cè)試與黑盒測(cè)試。
(3)從軟件測(cè)試不同階段方面講,講軟件測(cè)試被分為單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試和回歸測(cè)試。
2.2 白盒測(cè)試
白盒測(cè)試又稱邏輯驅(qū)動(dòng)測(cè)試,其原理是把程序看成裝在一個(gè)透明的盒子里,程序的結(jié)構(gòu)和處理過程完全可見,依據(jù)程序的內(nèi)部邏輯測(cè)試軟件程序,通過分析程序內(nèi)部的邏輯與程序執(zhí)行路線來設(shè)計(jì)測(cè)試用例的測(cè)試方法,檢查軟件程序中的每條通路是否都能按預(yù)定動(dòng)作正確工作。
白盒測(cè)試方法包括代碼檢查法、靜態(tài)結(jié)構(gòu)分析法、靜態(tài)質(zhì)量度量法、邏輯覆蓋法、基本路徑測(cè)試法等。
2.3 黑盒測(cè)試
黑盒測(cè)試又稱數(shù)據(jù)驅(qū)動(dòng)測(cè)試,其原理是把軟件程序看成一個(gè)黑盒子,不考慮程序的內(nèi)在結(jié)構(gòu)和處理方法,主要針對(duì)軟件界面、軟件功能、外部數(shù)據(jù)庫訪問以及軟件初始化等方面進(jìn)行的測(cè)試。
黑盒測(cè)試方法包括等價(jià)類劃分、邊界值分析、因果圖、錯(cuò)誤推測(cè)等。
2.4 內(nèi)存泄漏測(cè)試
內(nèi)存泄漏是一種典型的程序缺陷,它可導(dǎo)致應(yīng)用程序不斷消耗系統(tǒng)內(nèi)存,使軟件程序運(yùn)行響應(yīng)變慢,一些功能無法實(shí)現(xiàn),甚至導(dǎo)致整個(gè)系統(tǒng)癱瘓等問題。在使用C/C++語言編寫的程序中,內(nèi)存泄漏是一個(gè)極其普遍的問題,在動(dòng)車組嵌入式系統(tǒng)應(yīng)用軟件中,內(nèi)存泄漏將很快導(dǎo)致系統(tǒng)癱瘓。通過內(nèi)存泄漏測(cè)試釋放不需要再使用的內(nèi)存空間,檢查“內(nèi)存越界”現(xiàn)象是否存在。
3 軟件測(cè)試技術(shù)在動(dòng)車組上的應(yīng)用
軟件測(cè)試是軟件質(zhì)量保證的重要手段,貫穿整個(gè)軟件生命周期的每個(gè)階段。動(dòng)車組網(wǎng)絡(luò)控制系統(tǒng)應(yīng)用軟件測(cè)試過程采用V模型,依據(jù)不同的測(cè)試階段分為單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試和回歸測(cè)試。下面將以動(dòng)車組網(wǎng)絡(luò)控制系統(tǒng)為例闡述軟件測(cè)試技術(shù)在動(dòng)車組上的應(yīng)用。
3.1 單元測(cè)試
單元測(cè)試又稱模塊測(cè)試,是針對(duì)軟件設(shè)計(jì)的最小單位程序模塊進(jìn)行的正確性檢驗(yàn),其目的是驗(yàn)證每個(gè)程序單元能否正確實(shí)現(xiàn)詳細(xì)設(shè)計(jì)規(guī)范的模塊功能、性能、接口和設(shè)計(jì)約束等要求,發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種錯(cuò)誤。單元測(cè)試從程序內(nèi)部結(jié)構(gòu)出發(fā)來設(shè)計(jì)測(cè)試用例,而且可以多個(gè)模塊或單元并行進(jìn)行獨(dú)立的測(cè)試。單元測(cè)試采用白盒測(cè)試方法。
動(dòng)車組單元測(cè)試主要內(nèi)容有如下幾項(xiàng)。
(1)程序語法檢查。
(2)程序邏輯檢查。
(3)模塊接口測(cè)試。
(4)路徑測(cè)試。
(5)邏輯覆蓋法。
3.2 集成測(cè)試
集成測(cè)試是按設(shè)計(jì)要求把通過單元測(cè)試的各個(gè)模塊或單元組裝在一起之后,進(jìn)行集成測(cè)試。驗(yàn)證組成軟件系統(tǒng)的各模塊的接口和交互作用。
3.3 系統(tǒng)測(cè)試
系統(tǒng)測(cè)試是測(cè)試被開發(fā)軟件的功能要求和非功能要求,在真實(shí)環(huán)境下對(duì)系統(tǒng)的正確性和完整性進(jìn)行測(cè)試,驗(yàn)證系統(tǒng)各部分是否都能正常工作并完成任務(wù)。系統(tǒng)測(cè)試采用黑盒測(cè)試技術(shù)。動(dòng)車組軟件系統(tǒng)測(cè)試采用如下測(cè)試方法。
(1)等價(jià)類劃分。
(2)邊界值分析。
(3)因果圖。
(4)錯(cuò)誤推測(cè)。
3.4 驗(yàn)收測(cè)試
驗(yàn)收測(cè)試是驗(yàn)證系統(tǒng)是否滿足合同規(guī)定的要求,通過驗(yàn)收測(cè)試,可以進(jìn)一步發(fā)現(xiàn)軟件中的錯(cuò)誤,測(cè)試被開發(fā)軟件的易用性、兼容性、安全性和文檔資料審查驗(yàn)收。驗(yàn)收測(cè)試主要采用黑盒測(cè)試方法。
3.5 回歸測(cè)試
回歸測(cè)試是指軟件系統(tǒng)被修改后再次進(jìn)行的測(cè)試,如軟件新增了某些功能后,可能會(huì)影響軟件原來的功能和結(jié)構(gòu),使得以往可以正常工作的功能失效,因此為了保證對(duì)軟件所做的修改沒有引入新的錯(cuò)誤而再次進(jìn)行的測(cè)試。
3.6 軟件測(cè)試覆蓋率
軟件測(cè)試覆蓋率是用來度量軟件測(cè)試的完整性程度,包括基于需求的測(cè)試覆蓋和基于代碼的測(cè)試覆蓋。
3.6.1 基于需求的測(cè)試覆蓋
需求測(cè)試覆蓋率=Ts/RfT%
其中,Ts為已實(shí)施測(cè)試用例覆蓋的需求數(shù);RfT為測(cè)試需求總數(shù)。
3.6.2 基于代碼的測(cè)試覆蓋
代碼測(cè)試覆蓋率=Te/Tlic%
其中,Te為用代碼、分支、路徑、數(shù)據(jù)狀態(tài)判定點(diǎn)表示的已執(zhí)行代碼數(shù);Tlic為代碼總數(shù)。
4 結(jié)語
該文論述了軟件測(cè)試技術(shù)原理,以動(dòng)車組網(wǎng)絡(luò)控制系統(tǒng)應(yīng)用軟件為測(cè)試樣例,全面闡述了軟件全生命周期各階段軟件測(cè)試活動(dòng),動(dòng)車組軟件測(cè)試不同階段采用多種測(cè)試技術(shù),論證了軟件測(cè)試技術(shù)是動(dòng)車組軟件產(chǎn)品質(zhì)量的重要保障,可提高動(dòng)車組軟件的安全性、可靠性,對(duì)開展動(dòng)車組軟件測(cè)試工作進(jìn)行了有益的探索。
參考文獻(xiàn)
[1]熊應(yīng)高.軟件測(cè)試技術(shù)[M].北京:北京航空航天大學(xué)出版社, 2009.
[2]陳明.軟件測(cè)試[M].北京:機(jī)械工業(yè)出版社,2004.
[3]徐擁軍,王炯,郝進(jìn).軟件測(cè)試技術(shù)、方法和環(huán)境[M].北京:北京航空航天大學(xué)出版社,2012.
[4]BRUCE ECKEL.Thinking in C++[M].Prentice Hall PTR,2000.