王夏輝
【摘 要】作為軟件質(zhì)量保證的重要手段之一,軟件測(cè)試逐漸得到重視。白盒測(cè)試技術(shù)是單元級(jí)與部件級(jí)軟件測(cè)試最常使用的技術(shù)之一,其在嵌入式軟件測(cè)試領(lǐng)域的作用無(wú)可替代。本文介紹了VectorCAST軟件,以及基于該軟件的白盒測(cè)試過(guò)程。
【關(guān)鍵詞】軟件測(cè)試;白盒測(cè)試;VectorCAST
中圖分類號(hào): TP311.52 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 2095-2457(2018)11-0022-002
DOI:10.19694/j.cnki.issn2095-2457.2018.11.008
【Abstract】as one of the important means of software quality assurance, software testing has been paid more and more attention. White box testing technology is one of the most commonly used techniques in unit and component-level software testing, and its role in the field of embedded software testing is irreplaceable. This paper introduces VectorCAST software and the white box testing process based on the software.
【Key words】Software testing; White box testing; VectorCAST
0 前言
隨著軟件技術(shù)的發(fā)展,軟件規(guī)模及軟件邏輯復(fù)雜度獲得了巨大的增長(zhǎng),而同時(shí)伴隨的是不可避免的軟件缺陷。近些年由于軟件缺陷導(dǎo)致的事故案例不時(shí)見(jiàn)諸媒體,這不僅對(duì)軟件開(kāi)發(fā)方與管理方的聲譽(yù)及經(jīng)濟(jì)造成了打擊,更有可能對(duì)軟件使用者的財(cái)產(chǎn)或生命安全造成危害。因此,軟件測(cè)試作為軟件質(zhì)量保證的重要手段之一,得以得到重視。
軟件測(cè)試是利用軟件自動(dòng)運(yùn)行或人工操作的方式,驗(yàn)證被測(cè)軟件是否滿足規(guī)定的需求的過(guò)程。軟件測(cè)試級(jí)別通常可以分為單元級(jí)、部件級(jí)、配置項(xiàng)級(jí)與系統(tǒng)級(jí),不同級(jí)別的軟件測(cè)試與軟件開(kāi)發(fā)過(guò)程的不同階段相對(duì)應(yīng)。
1 軟件測(cè)試技術(shù)
軟件測(cè)試技術(shù)可以分為白盒測(cè)試技術(shù)與黑盒測(cè)試技術(shù)兩大類。黑盒測(cè)試技術(shù)即把被測(cè)模塊視作一個(gè)黑盒,不考慮其程序邏輯結(jié)構(gòu)與內(nèi)部特性,以用戶的角度對(duì)其輸入輸出進(jìn)行驗(yàn)證,又稱為功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試。黑盒測(cè)試技術(shù)常用于高級(jí)別測(cè)試,例如配置項(xiàng)級(jí)與系統(tǒng)級(jí)測(cè)試,黑盒測(cè)試的方法有等價(jià)類劃分、邊界值分析、因果圖分析、猜錯(cuò)法等。
白盒測(cè)試技術(shù)相對(duì)于黑盒測(cè)試技術(shù)而言,將被測(cè)模塊看作一個(gè)白盒,其內(nèi)部程序邏輯結(jié)構(gòu)對(duì)于測(cè)試人員是可見(jiàn)的。測(cè)試人員通過(guò)編寫(xiě)測(cè)試用例,對(duì)程序的所有邏輯路徑進(jìn)行測(cè)試,遍歷程序中的所有邏輯判定組合,對(duì)程序內(nèi)部定義的數(shù)據(jù)結(jié)構(gòu)的有效性進(jìn)行驗(yàn)證,又稱為結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試。白盒測(cè)試技術(shù)常用于低級(jí)別的測(cè)試,如單元級(jí)與部件級(jí)測(cè)試,白盒測(cè)試的方法有語(yǔ)句覆蓋、分支覆蓋、條件覆蓋、判定/條件組合覆蓋等。白盒測(cè)試通常會(huì)使用各種測(cè)試工具輔助測(cè)試人員進(jìn)行測(cè)試,常見(jiàn)的有TestBed、C++Test、VectorCAST等。
2 基于VectorCAST軟件的白盒測(cè)試
2.1 VectorCAST介紹
VectorCAST軟件是美國(guó)VECTOR Software公司推出的軟件測(cè)試解決方案,它能為用戶提供一整套自動(dòng)化測(cè)試體系,特別適用于安全性與可靠性要求較高的嵌入式軟件。VectorCAST軟件具有的功能覆蓋了單元級(jí)測(cè)試、部件級(jí)測(cè)試、回歸測(cè)試等測(cè)試類型涉及的各個(gè)環(huán)節(jié),可以對(duì)使用C/C++和Ada語(yǔ)言開(kāi)發(fā)的項(xiàng)目進(jìn)行測(cè)試,且對(duì)嵌入式平臺(tái)與主機(jī)環(huán)境的支持較好。目前,VectorCAST軟件已應(yīng)用于歐美的軌道交通、國(guó)防軍工、電力電子、工業(yè)控制、航空航天等行業(yè)內(nèi),并獲得了NASA和TUV的認(rèn)可和認(rèn)證。
與其他同類產(chǎn)品相比,VectorCAST具有以下方面的特點(diǎn):
1)能夠支持市面上大部分嵌入式環(huán)境和編譯器;
2)得益于插裝算法的優(yōu)化,VectorCAST在嵌入式測(cè)試項(xiàng)目中的應(yīng)用更簡(jiǎn)便;
3)擁有較高的自動(dòng)化程度,能自動(dòng)生成部分測(cè)試用例,測(cè)試用例中對(duì)參數(shù)的設(shè)置方法更簡(jiǎn)單,減少了測(cè)試代碼的編寫(xiě)數(shù)量;
4)測(cè)試用例的覆蓋率顯示功能更強(qiáng)大和方便;
5)對(duì)多種高安全行業(yè)有專門的支持,包括軌道交通、國(guó)防軍工、電力電子、工業(yè)控制、航空航天等。
2.2 VectorCAST軟件測(cè)試流程
使用VectorCAST進(jìn)行白盒測(cè)試的基本流程為:1)選擇被測(cè)件運(yùn)行環(huán)境并填寫(xiě)編譯指令;2)輸入測(cè)試環(huán)境名稱;3)選擇測(cè)試類型;4)根據(jù)選擇的測(cè)試類型選擇測(cè)試方法,若上一步選擇“傳統(tǒng)單元測(cè)試”,則在此步選擇語(yǔ)句覆蓋、分支覆蓋或條件覆蓋等方法;5)添加被測(cè)件程序文件路徑;6)選擇測(cè)試文件與設(shè)置樁函數(shù);7)編寫(xiě)用戶自定義代碼,也可跳過(guò)此步驟在測(cè)試用例中編寫(xiě)代碼;8)構(gòu)建環(huán)境。至此,一個(gè)VectorCAST軟件白盒測(cè)試環(huán)境配置完成,出現(xiàn)如圖1所示界面。
在構(gòu)建測(cè)試環(huán)境時(shí),VectorCAST 會(huì)根據(jù)被測(cè)件和被測(cè)件運(yùn)行環(huán)境自動(dòng)構(gòu)建測(cè)試套件。在此基礎(chǔ)上,允許測(cè)試人員自動(dòng)生成或添加符合測(cè)試需求的測(cè)試用例,并且支持測(cè)試人員以不同方法設(shè)置輸入輸出參數(shù),如輸入不同進(jìn)制參數(shù)、輸入?yún)?shù)范圍、輸入?yún)?shù)列表及重復(fù)次數(shù)、從外部數(shù)據(jù)源導(dǎo)入?yún)?shù)等。在參數(shù)設(shè)置過(guò)程中,大部分情況下無(wú)需編寫(xiě)測(cè)試代碼,在參數(shù)設(shè)置界面即可完成所有參數(shù)設(shè)置操作。這可以很大程度的提高測(cè)試人員的白盒測(cè)試效率,使得測(cè)試人員的主要精力得以放在測(cè)試用例的設(shè)計(jì)上,提高了測(cè)試質(zhì)量。除此之外,VectorCAST軟件還可以靈活配置樁函數(shù)。它允許測(cè)試人員在用例配置界面自由勾選樁函數(shù)或者添加不同輸入輸出的樁函數(shù),設(shè)置打樁對(duì)象及其返回值,未選中函數(shù)則默認(rèn)調(diào)用該函數(shù)本身。同樣,這些操作大部分也可通過(guò)參數(shù)設(shè)置界面完成,而不需編寫(xiě)代碼或重新編譯構(gòu)建測(cè)試環(huán)境。
在執(zhí)行測(cè)試用例過(guò)程中,VectorCAST軟件采用的是數(shù)據(jù)驅(qū)動(dòng)方式,即只有執(zhí)行測(cè)試用例時(shí)才會(huì)讀取設(shè)置的測(cè)試用例參數(shù),而不是將測(cè)試用例參數(shù)與被測(cè)件代碼、樁函數(shù)、測(cè)試驅(qū)動(dòng)等一同構(gòu)建到執(zhí)行程序中。這樣可以提高測(cè)試環(huán)境構(gòu)建與測(cè)試用例執(zhí)行速度,并在僅改變測(cè)試用例參數(shù)而保持被測(cè)對(duì)象不變的情況下,減少測(cè)試環(huán)境重新編譯構(gòu)建的次數(shù),達(dá)到提高測(cè)試效率的目的。
測(cè)試用例執(zhí)行結(jié)束后,測(cè)試人員可以自由選擇測(cè)試用例以查看被測(cè)代碼的語(yǔ)句與分支覆蓋情況,并精確統(tǒng)計(jì)語(yǔ)句與分支覆蓋百分比,若函數(shù)名后出現(xiàn)“P”則表示覆蓋率為100%,若測(cè)試用例后出現(xiàn)紅色“×”則表示測(cè)試用例執(zhí)行失敗。源代碼顯示界面中可以根據(jù)測(cè)試用例選擇情況,實(shí)時(shí)顯示測(cè)試用例覆蓋結(jié)果,并使用不同顏色表示出不同的覆蓋情況,使測(cè)試結(jié)果一目了然。分支語(yǔ)句前會(huì)出現(xiàn)“(*)(*)”(“*”為“T”或“F”),表示該分支的TRUE或FALSE分支在選定的測(cè)試用例中已被覆蓋。代碼覆蓋結(jié)果顯示如圖2所示。
進(jìn)入測(cè)試用例統(tǒng)計(jì)頁(yè)面,可查看測(cè)試用例是否通過(guò)。測(cè)試用例通過(guò)準(zhǔn)則是,用例預(yù)期輸出與用例執(zhí)行后實(shí)際輸出結(jié)果一致。測(cè)試用例預(yù)期輸出可在測(cè)試用例參數(shù)設(shè)置界面進(jìn)行設(shè)置,待測(cè)試用例執(zhí)行后與實(shí)際輸出逐一比對(duì)。測(cè)試用例統(tǒng)計(jì)結(jié)果如圖3所示。
至此,一個(gè)VectorCAST基本白盒測(cè)試流程結(jié)束。
3 結(jié)束語(yǔ)
VectorCAST作為一個(gè)測(cè)試解決方案,在白盒測(cè)試方面有其固有優(yōu)勢(shì),但是相比于其他測(cè)試工具也有不足之處,因此根據(jù)不同測(cè)試項(xiàng)目的特點(diǎn),選擇合適的測(cè)試工具能夠更好地提高測(cè)試項(xiàng)目的完成質(zhì)量與效率。另外,以上所述內(nèi)容只是VectorCAST軟件的基本功能之一,其所提供的其他功能還需繼續(xù)學(xué)習(xí)研究。
【參考文獻(xiàn)】
[1]《軟件測(cè)試》[美].Paul C.Jorgensen出版社:機(jī)械工業(yè)出版社.
[2]張新玉,李寅龍.TBrun在航天嵌入式匯編軟件測(cè)試中的應(yīng)用測(cè)控技術(shù)2016年11期.
[3]https://blog.csdn.net/Trinity_Techologies/article/details/46374707 VectorCAST軟件自動(dòng)化測(cè)試方案.