闞丹丹
摘要:為了解決測(cè)試工作中開(kāi)發(fā)人員由于對(duì)測(cè)試工作流程不了解而配合不到位等問(wèn)題,該文對(duì)軟件測(cè)試的基本流程進(jìn)行了介紹,對(duì)測(cè)試過(guò)程的測(cè)試需求分析、測(cè)試策劃、測(cè)試設(shè)計(jì)和實(shí)現(xiàn)、測(cè)試執(zhí)行以及測(cè)試總結(jié)各階段的實(shí)際操作過(guò)程分別進(jìn)行了闡述,以便初學(xué)者更容易上手和開(kāi)發(fā)人員在測(cè)試全過(guò)程中更好地配合。
關(guān)鍵詞:軟件測(cè)試;測(cè)試流程;測(cè)試過(guò)程
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)03-0094-03
Review of the Software Testing Process
KAN Dan-dan
(Jiangsu Automation Research Institute,Lianyungang 222006, China)
Abstract: In order to solve problems of developers due to working process of the test does not understand and cooperate with such problems as inadequate, this paper introduces the basic process of software testing, test requirements analysis of the test process, test planning, test design and implementation, test execution and test summary in different stages of the actual operation process are expounded, so that beginners are easier to get started and developers to better cooperation in the whole test process.
Key words: software testing; testing process
由于計(jì)算機(jī)系統(tǒng)的復(fù)雜性以及開(kāi)發(fā)過(guò)程和涉及的人員易于出錯(cuò),所以即使是保證一個(gè)相對(duì)簡(jiǎn)單的程序沒(méi)有缺陷也是不可能的[[1]]。對(duì)一個(gè)給定系統(tǒng)進(jìn)行充分地測(cè)試以確定其沒(méi)有缺陷是不可能實(shí)現(xiàn)的。為了盡可能多地發(fā)現(xiàn)并改正缺陷,測(cè)試人員必須集中精力使測(cè)試過(guò)程盡可能地高效和有效。
有效測(cè)試的關(guān)鍵是使過(guò)程盡可能地高效。正規(guī)的軟件測(cè)試工作過(guò)程應(yīng)包括:編制測(cè)評(píng)大綱(或測(cè)試需求和測(cè)試計(jì)劃)、編寫(xiě)測(cè)試用例、準(zhǔn)備測(cè)試數(shù)據(jù)、搭建測(cè)試環(huán)境、測(cè)試執(zhí)行、編寫(xiě)測(cè)評(píng)報(bào)告進(jìn)行測(cè)試總結(jié)和評(píng)估等多項(xiàng)內(nèi)容。各階段流程及生成的主要文檔如圖1所示:
圖1 測(cè)試流程及主要產(chǎn)品
1 測(cè)試需求分析與策劃階段
測(cè)試需求分析與策劃階段是軟件測(cè)試提綱挈領(lǐng)的一個(gè)階段,在該階段對(duì)軟件需求及可測(cè)性進(jìn)行分析,提取出測(cè)試項(xiàng),規(guī)定測(cè)試環(huán)境、測(cè)試類(lèi)型、測(cè)試范圍及主要測(cè)試方法,在該階段生成的測(cè)試文檔測(cè)評(píng)大綱(或者是測(cè)試需求和測(cè)試計(jì)劃)往往需要經(jīng)過(guò)委托方、用戶代表和開(kāi)發(fā)方代表等的審查認(rèn)可。
軟件要提交測(cè)試(這里指成型的軟件產(chǎn)品的確認(rèn)測(cè)試或系統(tǒng)測(cè)試)首先需要有完整齊套的過(guò)程文檔。除了測(cè)試所依據(jù)的標(biāo)準(zhǔn)、規(guī)范外,一般軟件測(cè)試的輸入文檔應(yīng)包括:
1)軟件需求規(guī)格說(shuō)明書(shū)(根據(jù)軟件具體情況,可分為軟件需求、接口需求和數(shù)據(jù)庫(kù)需求);
2)軟件設(shè)計(jì)說(shuō)明書(shū)(根據(jù)軟件具體情況,可分為概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)、接口設(shè)計(jì)等);
3)軟件使用說(shuō)明書(shū)或用戶手冊(cè)。
1.1測(cè)試需求分析
針對(duì)一個(gè)待測(cè)軟件,可以依據(jù)軟件需求規(guī)格說(shuō)明等文檔,逐條提取出測(cè)試需求,主要包括功能測(cè)試需求、接口測(cè)試需求、性能測(cè)試需求、強(qiáng)度測(cè)試需求、邊界測(cè)試需求、人機(jī)交互界面測(cè)試需求、安裝性測(cè)試需求、安全性測(cè)試需求、恢復(fù)性測(cè)試需求等。測(cè)試需求的提取需要遵循的原則是:測(cè)試需求要對(duì)軟件需求進(jìn)行全面的覆蓋。
測(cè)試需求分析階段在實(shí)際實(shí)施的過(guò)程中主要是依據(jù)軟件需求規(guī)格說(shuō)明的內(nèi)容逐項(xiàng)進(jìn)行分析,從軟件需求規(guī)格說(shuō)明文檔的相關(guān)章節(jié)中提取各測(cè)試類(lèi)型的測(cè)試項(xiàng)。
1)功能性測(cè)試需求
功能性測(cè)試需求來(lái)自于軟件需求規(guī)格說(shuō)明的軟件功能描述。每個(gè)功能模塊至少提取一個(gè)功能測(cè)試項(xiàng),每個(gè)測(cè)試項(xiàng)至少生成一個(gè)測(cè)試用例。為了避免由于軟件需求文檔描述不完整而導(dǎo)致的測(cè)試需求提取不全面問(wèn)題,還需要通過(guò)與用戶和承研單位交流獲取軟件測(cè)試需求。
2) 性能測(cè)試需求
性能測(cè)試需求來(lái)自于軟件相關(guān)文檔的技術(shù)指標(biāo)或性能要求。通常包括系統(tǒng)響應(yīng)時(shí)間、資源利用率、系統(tǒng)容量、并發(fā)訪問(wèn)量、配置要求等,尤其要注意的是同一個(gè)軟件系統(tǒng)針對(duì)不同配置或不同目標(biāo)有不同性能要求的情況。軟件需求規(guī)格說(shuō)明中的每項(xiàng)性呢指標(biāo)均要提取一個(gè)性能測(cè)試需求。
3)其它測(cè)試需求
其它測(cè)試需求包括強(qiáng)度測(cè)試、邊界測(cè)試、安裝性測(cè)試、安全性測(cè)試、恢復(fù)測(cè)試等測(cè)試需求通??梢詮南鄳?yīng)需求中發(fā)現(xiàn)與其對(duì)應(yīng)的描述。每一個(gè)描述信息可以生成至少一個(gè)測(cè)試需求。同樣需要注意與用戶和承研單位交流以獲取一些軟件需求文檔中未描述到的內(nèi)容。
常見(jiàn)的測(cè)試類(lèi)型主要有:代碼審查、代碼走查、文檔審查、靜態(tài)分析、功能測(cè)試、性能測(cè)試、余量測(cè)試、接口測(cè)試、人機(jī)交互界面測(cè)試、強(qiáng)度測(cè)試、邏輯測(cè)試、邊界測(cè)試、安全性測(cè)試、安裝性測(cè)試、恢復(fù)性測(cè)試、兼容性測(cè)試、內(nèi)存使用缺陷測(cè)試、容量測(cè)試、數(shù)據(jù)處理測(cè)試。
1.2測(cè)試策劃階段
測(cè)試需求分析確定了要進(jìn)行的測(cè)試類(lèi)型和測(cè)試項(xiàng),下面需要進(jìn)行的就是測(cè)試策劃,制定測(cè)試策略。
軟件開(kāi)發(fā)的最終目的是為了滿足客戶需求,以客戶需求作為評(píng)判軟件質(zhì)量的標(biāo)準(zhǔn),則軟件缺陷可以包括下面幾個(gè)因素:
1)軟件未滿足客戶要求的所有功能和性能(即部分功能未實(shí)現(xiàn));
2)軟件實(shí)現(xiàn)了客戶不需要的功能(即實(shí)現(xiàn)了多余功能);
3)軟件功能實(shí)現(xiàn)錯(cuò)誤;
4)軟件的用戶好性不好。
測(cè)試策劃階段就是制定適合的測(cè)試方案,盡可能地發(fā)現(xiàn)軟件的各類(lèi)缺陷。
在測(cè)試策劃階段可以依據(jù)軟件功能等需求和測(cè)試需求分析設(shè)計(jì)測(cè)試項(xiàng),即需要測(cè)試的點(diǎn)。每個(gè)測(cè)試項(xiàng)需要追蹤到相應(yīng)的測(cè)試需求,規(guī)定測(cè)試內(nèi)容、測(cè)試范圍、測(cè)試環(huán)境要求、前提約束、數(shù)據(jù)準(zhǔn)備及該測(cè)試項(xiàng)的結(jié)束條件,制定好相應(yīng)的測(cè)試方法,還要分析測(cè)試環(huán)境與軟件實(shí)際使用環(huán)境的差異和對(duì)測(cè)試結(jié)果的影響。
2 測(cè)試用例設(shè)計(jì)階段
測(cè)評(píng)大綱確定了軟件需要進(jìn)行的測(cè)試類(lèi)型和每個(gè)類(lèi)型要測(cè)試的點(diǎn),而測(cè)試說(shuō)明則是對(duì)測(cè)評(píng)大綱的拆分、細(xì)化和具體化,是測(cè)試項(xiàng)的具體設(shè)計(jì)和實(shí)現(xiàn)。在測(cè)試說(shuō)明中,針對(duì)每一個(gè)測(cè)試項(xiàng)至少設(shè)計(jì)一個(gè)測(cè)試用例。
測(cè)試用例(TestCase)目前沒(méi)有經(jīng)典的定義。比較通常的說(shuō)法是:指對(duì)一項(xiàng)特定的軟件產(chǎn)品進(jìn)行測(cè)試任務(wù)的描述,體現(xiàn)測(cè)試方案、方法、技術(shù)和策略。內(nèi)容包括測(cè)試目標(biāo)、測(cè)試環(huán)境、輸入數(shù)據(jù)、測(cè)試步驟、預(yù)期結(jié)果、測(cè)試腳本等[[1]]。
設(shè)計(jì)測(cè)試用例首先要對(duì)測(cè)試項(xiàng)進(jìn)行分解,然后根據(jù)一定的測(cè)試用例設(shè)計(jì)方法設(shè)計(jì)測(cè)試用例,確定測(cè)試用例執(zhí)行順序,進(jìn)行測(cè)試數(shù)據(jù)準(zhǔn)備、測(cè)試資源準(zhǔn)備、測(cè)試程序開(kāi)發(fā)、測(cè)試環(huán)境建立和校核等工作。
由于測(cè)試用例規(guī)定了測(cè)試的前提、方法甚至是操作步驟,直接關(guān)系到測(cè)試質(zhì)量的好壞,關(guān)系到整個(gè)測(cè)試工作的成效,因此測(cè)試用例設(shè)計(jì)階段是軟件測(cè)試過(guò)程中非常重要的一個(gè)階段。
下面是一個(gè)測(cè)試用例的模板:
軟件測(cè)試根據(jù)測(cè)試級(jí)別和類(lèi)型的不同可能有不同的分類(lèi)方法,不同的叫法和不同的解釋。比如,從軟件是否執(zhí)行角度看,可分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試。從對(duì)應(yīng)的軟件開(kāi)發(fā)過(guò)程角度看,可分為單元測(cè)試、集成測(cè)試、配置項(xiàng)測(cè)試和系統(tǒng)測(cè)試。從代碼透明度方面來(lái)分,可分為黑盒測(cè)試,白盒測(cè)試。各種類(lèi)型的測(cè)試設(shè)計(jì)測(cè)試用例時(shí)都要使用一定的測(cè)試技術(shù)。常用的測(cè)試技術(shù)功能分解法、等價(jià)類(lèi)劃分、因果圖法、猜錯(cuò)法等,如圖2所示。
圖2 常用的測(cè)試技術(shù)
3 測(cè)試執(zhí)行階段
測(cè)試執(zhí)行前,需要搭建滿足測(cè)試需求的環(huán)境。在搭建測(cè)試環(huán)境時(shí),要盡量減少測(cè)試環(huán)境和實(shí)際使用環(huán)境之間的差異。可以通過(guò)實(shí)裝、模擬(通用接口測(cè)試工具)有機(jī)結(jié)合構(gòu)建被測(cè)軟件外圍測(cè)試環(huán)境,實(shí)現(xiàn)被測(cè)軟件與外部設(shè)備的數(shù)據(jù)通信;使用相應(yīng)的測(cè)評(píng)驅(qū)動(dòng)環(huán)境構(gòu)建測(cè)評(píng)流程,完成相應(yīng)的功能輸入、關(guān)鍵數(shù)據(jù)的處理,以及通過(guò)接口人工干預(yù)的異常功能流程的測(cè)評(píng),實(shí)現(xiàn)構(gòu)建最小差異的測(cè)評(píng)環(huán)境。測(cè)試工作具體實(shí)施的階段,直接關(guān)系到測(cè)試的真實(shí)效果。該階段主要包括如下內(nèi)容:
圖3 測(cè)試執(zhí)行過(guò)程
在軟件測(cè)試具體執(zhí)行的過(guò)程中,有可能發(fā)現(xiàn)測(cè)試用例設(shè)計(jì)階段未考慮到的地方,這時(shí)可以增加一些實(shí)際操作且對(duì)用例進(jìn)行補(bǔ)充或者根據(jù)軟件的特殊場(chǎng)景,對(duì)某些測(cè)試用例進(jìn)行反復(fù)執(zhí)行,以確保測(cè)試的充分性。
4 測(cè)試總結(jié)階段
在測(cè)試完成后,需要對(duì)測(cè)試結(jié)果進(jìn)行總結(jié),對(duì)軟件質(zhì)量進(jìn)行評(píng)估,以利于軟件改進(jìn)和后續(xù)開(kāi)發(fā)軟件質(zhì)量的提升。測(cè)試總結(jié)主要是依據(jù)測(cè)試工作產(chǎn)品對(duì)測(cè)試工作過(guò)程進(jìn)行總結(jié),對(duì)被測(cè)軟件及其文檔進(jìn)行評(píng)價(jià)。
測(cè)試工作總結(jié)除了對(duì)正常的測(cè)試工作進(jìn)行總結(jié)外,有幾點(diǎn)內(nèi)容需要重點(diǎn)分析,如:
1)測(cè)試需求規(guī)格說(shuō)明、測(cè)試計(jì)劃和測(cè)試說(shuō)明的變化情況及其原因;
2)因測(cè)試異常終止未實(shí)施的測(cè)試;
3)無(wú)法解決的測(cè)試問(wèn)題;
4)測(cè)試數(shù)據(jù)和文檔分析。
對(duì)被測(cè)軟件的分析和評(píng)價(jià)主要包括:
1)被測(cè)軟件與軟件需求之間的差異;
2)被測(cè)軟件評(píng)價(jià);
3)被測(cè)軟件文檔評(píng)價(jià);
4)性能評(píng)估。
5 結(jié)論
本文對(duì)軟件測(cè)試的基本流程進(jìn)行了介紹,對(duì)測(cè)試過(guò)程的測(cè)試需求分析、測(cè)試策劃、測(cè)試設(shè)計(jì)和實(shí)現(xiàn)、測(cè)試執(zhí)行以及測(cè)試總結(jié)各階段的實(shí)際操作過(guò)程分別進(jìn)行了闡述,對(duì)于初入軟件測(cè)試行業(yè)者具有很好的指導(dǎo)意義,同時(shí)有利于軟件開(kāi)發(fā)人員在測(cè)試的各個(gè)階段根據(jù)需求在環(huán)境搭建、數(shù)據(jù)準(zhǔn)備、產(chǎn)品評(píng)審等方面的配合,促進(jìn)測(cè)試工作的順利開(kāi)展。
參考文獻(xiàn):
[1] 朱少民.全程軟件測(cè)試[M] .北京:電子工業(yè)出版社,2007.
[2] ALAN ZHOU軟件系統(tǒng)測(cè)試工作指南 Version 2.2[Z].