耿宏超
(曲阜師范大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,山東 日照 276826)
1.1 軟件測(cè)試概念
軟件測(cè)試的概念是,在規(guī)定條件下對(duì)程序進(jìn)行操作,以發(fā)現(xiàn)程序錯(cuò)誤,衡量軟件質(zhì)量,并對(duì)其是否能滿足設(shè)計(jì)要求進(jìn)行評(píng)估的過(guò)程。軟件測(cè)試對(duì)軟件正確性、完整性、安全性進(jìn)行檢測(cè)和糾錯(cuò),使用人工手動(dòng)檢測(cè)或自動(dòng)檢測(cè)方法對(duì)某段程序進(jìn)行運(yùn)行和測(cè)試。
1.2 軟件測(cè)試活動(dòng)的五個(gè)過(guò)程
(1)標(biāo)志測(cè)試條件和測(cè)試優(yōu)先級(jí)。測(cè)試條件是對(duì)被測(cè)環(huán)境的具體描述,可以采用表格、語(yǔ)言、圖標(biāo)等方式進(jìn)行描述。(2)設(shè)計(jì)測(cè)試用例。測(cè)試用例的設(shè)計(jì)包括測(cè)試過(guò)程中能夠用到的輸入值、期望值,以及運(yùn)行過(guò)程中涉及的相關(guān)信息。(3)開(kāi)發(fā)測(cè)試用例。開(kāi)發(fā)是設(shè)計(jì)方案的具體實(shí)施,包括測(cè)試腳本、測(cè)試輸入、測(cè)試數(shù)據(jù)及期望輸出。(4)執(zhí)行測(cè)試用例。手動(dòng)測(cè)試:將事先設(shè)計(jì)開(kāi)發(fā)好的數(shù)據(jù)輸入,并觀察結(jié)果、記錄問(wèn)題。自動(dòng)測(cè)試:?jiǎn)?dòng)測(cè)試工具,選擇測(cè)試用例,獲取測(cè)試結(jié)果。(5)將測(cè)試結(jié)果與預(yù)期輸出進(jìn)行比較。對(duì)每個(gè)測(cè)試用例的輸出和預(yù)期值進(jìn)行比較分析,判斷軟件程序運(yùn)行是否符合要求。
2.1 BVT(Build Verification Test)。BVT 是在檢入代碼并編譯生成版本之后進(jìn)行的測(cè)試類型,主要用于檢測(cè)新版本功能是否完整、特性是否正確。
2.2 Scenario Tests(基于用戶實(shí)際應(yīng)用場(chǎng)景的測(cè)試)。在進(jìn)行BVT 功能測(cè)試的同時(shí)輔助模仿用戶操作的真實(shí)環(huán)境,提供完整的用戶操作流程。
2.3 Smoke Test。當(dāng)發(fā)現(xiàn)一個(gè)程序錯(cuò)誤并由開(kāi)發(fā)人員進(jìn)行修改之后,需要重新測(cè)試問(wèn)題是否解決,這種專門(mén)測(cè)試某個(gè)修改過(guò)的錯(cuò)誤的測(cè)試就是Smoke Test。
2.4 Application Compatibility Test(兼容性測(cè)試)。軟件設(shè)計(jì)不僅要能在測(cè)試機(jī)上使用,還要能在不同平臺(tái)和系統(tǒng)中使用,兼容性測(cè)試完成才能確保新軟件能在不同環(huán)境下正常運(yùn)行。
2.5 除了上述四種主要測(cè)試類型,還有Functional Test(功能測(cè)試)、Security Test (安全性測(cè)試)、Stress Test (壓力測(cè)試)、Performance Test(性能測(cè)試)、Regression Test(回歸測(cè)試)、Setup/Upgrade Test(安裝升級(jí)測(cè)試)等類型測(cè)試,此處不做贅述。
軟件測(cè)試方法多種多樣,根據(jù)是否需要執(zhí)行被測(cè)軟件分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試; 根據(jù)測(cè)試針對(duì)角度不同分為白盒測(cè)試和黑盒測(cè)試。下面詳細(xì)介紹這幾種測(cè)試方法。
3.1 靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試
3.1.1 靜態(tài)測(cè)試。靜態(tài)測(cè)試只檢查程序代碼、界面或文檔中可能存在的Bug,不運(yùn)行被檢測(cè)軟件。它包括代碼測(cè)試、界面測(cè)試、 文檔測(cè)試三部分。代碼測(cè)試只檢測(cè)代碼邏輯是否符合標(biāo)準(zhǔn);界面測(cè)試主要測(cè)試軟件界面與用戶需求界面是否一致;文檔測(cè)試根據(jù)用戶要求檢測(cè)用戶手冊(cè)、需求說(shuō)明文檔。
3.1.2 動(dòng)態(tài)測(cè)試。與靜態(tài)測(cè)試相對(duì),動(dòng)態(tài)測(cè)試是通過(guò)運(yùn)行軟件來(lái)檢測(cè)軟件的功能、結(jié)果是否正確,應(yīng)用范圍及頻率遠(yuǎn)高于靜態(tài)測(cè)試。動(dòng)態(tài)測(cè)試在測(cè)試軟件過(guò)程中分為幾個(gè)階段: 單元測(cè)試:測(cè)試軟件中的基本組成單元,檢測(cè)軟件最基礎(chǔ)的正確性;集成測(cè)試: 首先進(jìn)行組裝測(cè)試,對(duì)單元相互聯(lián)系模塊接口進(jìn)行檢測(cè),然后確認(rèn)檢測(cè),對(duì)組裝測(cè)試結(jié)果進(jìn)行進(jìn)一步檢測(cè)和確認(rèn);系統(tǒng)測(cè)試: 對(duì)集成測(cè)試完成之后的軟件進(jìn)行軟件系統(tǒng)正確性和功能性檢測(cè),確保軟件系統(tǒng)運(yùn)行正常;驗(yàn)收測(cè)試:軟件發(fā)布使用之前的最后一道檢測(cè),也可以看做是用戶的試用階段測(cè)試;回歸測(cè)試:在軟件試用之后,對(duì)試用階段的問(wèn)題進(jìn)行修改和再檢測(cè)。
3.2 白盒測(cè)試和黑盒測(cè)試
3.2.1 白盒測(cè)試
白盒測(cè)試是在了解程序內(nèi)部結(jié)構(gòu)和實(shí)現(xiàn)代碼結(jié)果的基礎(chǔ)上設(shè)計(jì)測(cè)試用例進(jìn)行檢測(cè)的方法。它針對(duì)軟件結(jié)構(gòu)或邏輯驅(qū)動(dòng)進(jìn)行測(cè)試,僅檢測(cè)每天程序是否按規(guī)定執(zhí)行,并不對(duì)其產(chǎn)生的功能進(jìn)行檢測(cè)。
白盒測(cè)試的主要測(cè)試方法有邏輯驅(qū)動(dòng)測(cè)試和基本路經(jīng)測(cè)試兩種。其中邏輯驅(qū)動(dòng)測(cè)試以程序內(nèi)部邏輯結(jié)構(gòu)為基礎(chǔ),針對(duì)覆蓋率進(jìn)行測(cè)試,包括語(yǔ)句覆蓋、分支覆蓋、條件覆蓋、路徑覆蓋四部分。基本路經(jīng)測(cè)試是根據(jù)程序運(yùn)行流程圖設(shè)計(jì)測(cè)試用例進(jìn)行測(cè)試的方法,它的測(cè)試步驟包括畫(huà)控制流程圖、計(jì)算程序圈復(fù)雜度、導(dǎo)出測(cè)試用例、準(zhǔn)備測(cè)試用例,期間涉及的測(cè)試工具主要是圖形矩陣。
白盒測(cè)試雖然增大了檢測(cè)代碼覆蓋率、發(fā)現(xiàn)代碼中隱藏問(wèn)題、提高了代碼的正確性,但是它仍具有很多缺陷,測(cè)試路徑復(fù)雜、不能檢測(cè)軟件設(shè)計(jì)的正確性、增大了系統(tǒng)開(kāi)銷等。
3.2.2 黑盒測(cè)試
黑盒測(cè)試將軟件系統(tǒng)看做一個(gè)封閉的空間,利用測(cè)試用例輸入和輸出檢測(cè)軟件功能是否正確。黑盒檢測(cè)的目的是檢測(cè)結(jié)果正確性、需求是否滿足、邊界條件、性能穩(wěn)定性、壓力承受力、錯(cuò)誤恢復(fù)、安全性、兼容性。相比于白盒測(cè)試,黑盒測(cè)試具有簡(jiǎn)單易行、不涉及內(nèi)部結(jié)構(gòu)、關(guān)注用戶角度、測(cè)試方便等優(yōu)點(diǎn),但是同時(shí)它的代碼覆蓋率低、 自動(dòng)化測(cè)試復(fù)用性低等缺點(diǎn)也限制了它的檢測(cè)全面性。
軟件測(cè)試在軟件設(shè)計(jì)開(kāi)發(fā)過(guò)程中占有很大的比重,任何軟件的成功推行都必須有完整的測(cè)試體系來(lái)確保軟件的運(yùn)行正確性和功能完整性,是軟件系統(tǒng)的強(qiáng)有力的保障。
[1]陳汶斌.軟件測(cè)試技術(shù)基礎(chǔ)[M].北京:清華大學(xué)出版社,2008.