韓 韜
(山西職業(yè)技術(shù)學(xué)院 山西 太原 030006)
對(duì)于軟件測(cè)試的定義有兩種說(shuō)法,一種認(rèn)為軟件測(cè)試就是通過(guò)測(cè)試手段對(duì)某個(gè)系統(tǒng)進(jìn)行運(yùn)行測(cè)定,判斷該系統(tǒng)是否可以滿足規(guī)定的需求,或者發(fā)現(xiàn)預(yù)期結(jié)果和實(shí)際結(jié)果之間的差別。另一種認(rèn)為軟件測(cè)試是為了發(fā)現(xiàn)程序錯(cuò)誤而執(zhí)行程序的過(guò)程??偟膩?lái)說(shuō),軟件測(cè)試就是選擇合適的測(cè)試手段,然后對(duì)某一個(gè)軟件進(jìn)行分析檢驗(yàn),發(fā)現(xiàn)實(shí)際結(jié)果和預(yù)期結(jié)果之間的差別,并評(píng)價(jià)該軟件的特性。
軟件測(cè)試方法眾多,比較常用到的測(cè)試方法有等價(jià)類劃分、場(chǎng)景法,偶爾會(huì)使用到的測(cè)試方法有邊界值和判定表,還有包括不經(jīng)常使用到的正交排列法和測(cè)試大綱法。其中等價(jià)類劃分、邊界值分析、判定表等屬于黑盒測(cè)試方法;只對(duì)功能是否可以滿足規(guī)定要求進(jìn)行檢查,主要用于軟件的確認(rèn)測(cè)試階段。白盒測(cè)試也叫做結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試,是基于覆蓋的全部代碼和路徑、條件的測(cè)試,通過(guò)測(cè)試檢測(cè)產(chǎn)品內(nèi)部性能,檢驗(yàn)程序中的路徑是否可以按照要求完成工作,但是并不對(duì)功能進(jìn)行測(cè)試,主要用于軟件的驗(yàn)證。
軟件測(cè)試策略和軟件測(cè)試方法不同,軟件測(cè)試方法指的是一種具體的對(duì)軟件進(jìn)行檢驗(yàn)的手段,而測(cè)試策略則是針對(duì)不同的階段應(yīng)該選擇怎樣的測(cè)試方法,或者應(yīng)該如何合理配置不同測(cè)試方法而制定的方案。在掌握了不同測(cè)試方法之后應(yīng)該如何應(yīng)用到具體的測(cè)試項(xiàng)目中就需要制定相關(guān)策略,比如在單元測(cè)試中應(yīng)該選擇技術(shù)評(píng)審法,在集成階段應(yīng)該選擇三明治法,在系統(tǒng)測(cè)試階段應(yīng)該選擇場(chǎng)景法,在針對(duì)功能進(jìn)行測(cè)試的時(shí)候應(yīng)選擇合適的黑盒測(cè)試方法制定相應(yīng)的測(cè)試用例,在開(kāi)展單元測(cè)試和集成測(cè)試時(shí)則應(yīng)該選用白盒測(cè)試方法制定相應(yīng)測(cè)試用例,測(cè)試策略的任務(wù)或者功能是指導(dǎo)測(cè)試工作順利完成。
上文已經(jīng)談到過(guò),根據(jù)軟件測(cè)試方法來(lái)分,可以分成黑盒測(cè)試和白盒測(cè)試。如果靜態(tài)測(cè)試指的是不實(shí)際運(yùn)行被測(cè)試軟件,而只是對(duì)測(cè)試軟件的程序代碼、界面或者文檔等進(jìn)行檢查,然后發(fā)現(xiàn)其中錯(cuò)誤的過(guò)程。主要包括代碼測(cè)試、界面測(cè)試和文檔測(cè)試。代碼測(cè)試主要是通過(guò)對(duì)代碼的檢查判斷其是否滿足規(guī)定標(biāo)準(zhǔn)和要求,界面測(cè)試則是對(duì)被測(cè)試軟件的實(shí)際界面和需求中對(duì)于界面的要求進(jìn)行比較,文檔測(cè)試主要是對(duì)用戶手冊(cè)和需求說(shuō)明等進(jìn)行檢查,檢驗(yàn)這些是否滿足用戶的實(shí)際需求。動(dòng)態(tài)測(cè)試指的是實(shí)際運(yùn)行被測(cè)試軟件,通過(guò)測(cè)試數(shù)據(jù)的輸入來(lái)判斷實(shí)際輸出結(jié)果和預(yù)期輸出結(jié)果之間的差別。此外,如果根據(jù)測(cè)試階段來(lái)劃分,軟件測(cè)試又可以分成單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試幾種。
軟件測(cè)試策略是指在掌握了具體的不同種類的測(cè)試方法之后,針對(duì)什么時(shí)間和什么任務(wù)應(yīng)該采取哪種測(cè)試方法,或者進(jìn)行怎樣的組合而制定的測(cè)試方案。本文主要是針對(duì)不同測(cè)試階段對(duì)軟件測(cè)試策略進(jìn)行簡(jiǎn)要分析。
3.2.1 單元測(cè)試階段 單元測(cè)試是指對(duì)軟件的基本組成單位,如某個(gè)模塊、某個(gè)過(guò)程等進(jìn)行測(cè)試,屬于動(dòng)態(tài)測(cè)試類別,也是動(dòng)態(tài)測(cè)試中最為基礎(chǔ)和關(guān)鍵的部分。單元測(cè)試的目的是為了檢測(cè)基本組成單位是否正確合理,通過(guò)對(duì)軟件內(nèi)部程序設(shè)計(jì)和編碼的認(rèn)識(shí),借助開(kāi)發(fā)測(cè)試驅(qū)動(dòng)模塊或樁模塊來(lái)進(jìn)行單元測(cè)試,一般由軟件程序員執(zhí)行完成。在單元測(cè)試階段主要采用的測(cè)試方法應(yīng)該是白盒測(cè)試方法,先靜態(tài)檢查代碼,然后動(dòng)態(tài)運(yùn)行代碼,檢查被測(cè)試軟件實(shí)際的運(yùn)行結(jié)果。
3.2.2 集成測(cè)試階段 集成測(cè)試指的是在軟件系統(tǒng)所開(kāi)展的測(cè)試過(guò)程,目的是為了檢查軟件單位間各個(gè)接口是否正確,所組成系統(tǒng)的各個(gè)部分是否合理。集成測(cè)試階段的策略主要有自頂向下測(cè)試和自底向上測(cè)試兩種,具體該使用何種策略需要根據(jù)實(shí)際測(cè)試項(xiàng)目的情況制定測(cè)試計(jì)劃,然后在將單元模塊或軟件單元進(jìn)行組合集合成為系統(tǒng)的過(guò)程中,同時(shí)又要對(duì)該所形成的系統(tǒng)進(jìn)行運(yùn)行檢驗(yàn),判斷所形成的系統(tǒng)是否滿足要求,其中各個(gè)部分是否正確合理。
3.2.3 確認(rèn)測(cè)試階段 在單元測(cè)試階段,往往只能確保軟件局部的正確性,對(duì)于各個(gè)單元模塊之間接口的問(wèn)題無(wú)法及時(shí)解決。而集成測(cè)試則可以使相互獨(dú)立的不同模塊連接起來(lái),形成完整的程序。只有滿足客戶所需的軟件才是合格的,主要測(cè)試步驟包括:首先在測(cè)試之前先要確認(rèn)測(cè)試的準(zhǔn)則,也就是達(dá)到什么樣的要求才算是合格的,在測(cè)試中應(yīng)該注意哪些問(wèn)題。此外,要對(duì)所開(kāi)發(fā)的軟件的配置進(jìn)行審核評(píng)價(jià),檢驗(yàn)其是否滿足合格性標(biāo)準(zhǔn)。
3.2.4 系統(tǒng)測(cè)試階段 系統(tǒng)測(cè)試是一種綜合性的測(cè)試,是對(duì)軟件系統(tǒng)中的所有組成部分再次進(jìn)行檢驗(yàn),保證之前所有的測(cè)試都滿足測(cè)試要求,系統(tǒng)中的每一個(gè)部分都完成了合理的集成,不管是在功能上、配置上還是結(jié)構(gòu)上都是滿足測(cè)試標(biāo)準(zhǔn)的。
綜上所述,現(xiàn)階段不管是國(guó)外軟件測(cè)試的發(fā)展,還是國(guó)內(nèi)發(fā)展現(xiàn)狀,軟件測(cè)試工作將進(jìn)一步向前推進(jìn)。在未來(lái),軟件測(cè)試的重點(diǎn)將傾向于測(cè)試需求上的精確性和完整性,軟測(cè)測(cè)試人員和程序開(kāi)發(fā)人員將形成相互合作的關(guān)系。隨著信息技術(shù)和軟件技術(shù)的快速發(fā)展,軟件測(cè)試方法和測(cè)試策略將得到更加廣泛的應(yīng)用和發(fā)展,也將被越來(lái)越多的企業(yè)所重視。