【關(guān)鍵詞】測試流程、需求分析、測試用例、測試計劃、缺陷管理
一、概述
一般而言,軟件測試從項目確立時就開始了,前后要經(jīng)過以下一些主要環(huán)節(jié):
需求分析→測試計劃→測試設(shè)計→測試環(huán)境搭建→測試執(zhí)行→測試記錄→缺陷管理→軟件評估→RTM.
在進(jìn)行有關(guān)問題闡述前,我們先明確下分工,一般而言,需求分析、測試用例編寫、測試環(huán)境搭建、測試執(zhí)行等屬于測試開發(fā)人員工作范疇,而測試執(zhí)行以及缺陷提交等屬于普通測試人員的工作范疇,測試負(fù)責(zé)人負(fù)責(zé)整個測試各個環(huán)節(jié)的跟蹤、實(shí)施、管理等。
說明:
1.以上流程各環(huán)節(jié)并未包含軟件測試過程的全部,如根據(jù)實(shí)際情況還可以實(shí)施一些測試計劃評審、用例評審,測試培訓(xùn)等。在軟件正式發(fā)行后,當(dāng)遇到一些嚴(yán)重問題時,還需要進(jìn)行一些后續(xù)維護(hù)測試等。
2.以上各環(huán)節(jié)并不是獨(dú)立沒聯(lián)系的,實(shí)際工作千變?nèi)f化,各環(huán)節(jié)一些交織、重疊在所難免,比如編寫測試用例的同時就可以進(jìn)行測試環(huán)境的搭建工作,當(dāng)然也可能由于一些需求不清楚而重新進(jìn)行需求分析等。這就和我們國家提出建設(shè)有中國特色的社會主義國家一樣,只所以有中國特色,那是因為國情不一樣。所以在實(shí)際測試過程中也要做到具體問題具體分析,具體解決。
二、測試流程
需求分析
需求分析(Requirment Analyzing)應(yīng)該說是軟件測試的一個重要環(huán)節(jié),測試開發(fā)人員對這一環(huán)節(jié)的理解程度如何將直接影響到接下來有關(guān)測試工作的開展。
可能有些人認(rèn)為測試需求分析無關(guān)緊要,這種想法是很不對的。需求分析不但重要,而且至關(guān)重要!
一般而言,需求分析包括軟件功能需求分析、測試環(huán)境需求分析、測試資源需求分析等。
其中最基本的是軟件功能需求分析,測一款軟件首先要知道軟件能實(shí)現(xiàn)哪些功能以及是怎樣實(shí)現(xiàn)的。比如一款Smartphone包括VoIP、Wi-Fi以及Bluetooth等功能。那我們就應(yīng)該知道軟件是怎樣來實(shí)現(xiàn)這些功能的,為了實(shí)現(xiàn)這些功能需要哪些測試設(shè)備以及如何搭建相應(yīng)測試環(huán)境等,否則測試就無從談起!
既然談了需求分析,那么我們根據(jù)什么來分析呢?總不能憑空設(shè)想吧。
總得說來,做測試需求分析的依據(jù)有軟件需求文檔、軟件規(guī)格書以及開發(fā)人員的設(shè)計文檔等,相信管理一些規(guī)范的公司在軟件開發(fā)過程中都有這些文檔。
測試計劃
測試計劃(Test Plan)一般由測試負(fù)責(zé)人來編寫。
測試計劃的依據(jù)主要是項目開發(fā)計劃和測試需求分析結(jié)果而制定。測試計劃一般包括以下一些方面:
1. 測試背景
a. 軟件項目介紹;
b. 項目涉及人員(如軟硬件項目負(fù)責(zé)人等)介紹以及相應(yīng)聯(lián)系方式等。
2. 測試依據(jù)
a. 軟件需求文檔;
b. 軟件規(guī)格書;
c. 軟件設(shè)計文檔;
d. 其他,如參考產(chǎn)品等。
3. 測試資源
a. 測試設(shè)備需求;
b. 測試人員需求;
c. 測試環(huán)境需求;
d. 其他。
4. 測試策略
a. 采取測試方法;
b. 搭建哪些測試環(huán)境;
d. 對測試人員進(jìn)行培訓(xùn)等。
5. 測試日程
a. 測試需求分析;
b. 測試用例編寫;
c. 測試實(shí)施,根據(jù)項目計劃,測試分成哪些測試階段(如單元測試、集成測試、系統(tǒng)測試階段,α、β測試階段等),每個階段的工作重點(diǎn)以及投入資源等。
6. 其他。
測試計劃還要包括測試計劃編寫的日期、作者等信息,計劃越詳細(xì)越好了。
測試設(shè)計
測試設(shè)計主要包括測試用例編寫和測試場景設(shè)計兩方面。
一份好的測試用例對測試有很好的指導(dǎo)作用,能夠發(fā)現(xiàn)很多軟件問題。關(guān)于測試用例編寫,請參見前面寫的《也談測試用例》一文,里面有詳細(xì)闡述。
測試場景設(shè)計主要也就是測試環(huán)境問題了。
測試環(huán)境搭建
不同軟件產(chǎn)品對測試環(huán)境有著不同的要求。如C/S及B/S架構(gòu)相關(guān)的軟件產(chǎn)品,那么對不同操作系統(tǒng),如Windows系列、unix、linux甚至蘋果OS等,這些測試環(huán)境都是必須的。而對于一些嵌入式軟件,如手機(jī)軟件,如果我們想測試一下有關(guān)功能模塊的耗電情況,手機(jī)待機(jī)時間等,那么我們可能就需要搭建相應(yīng)的電流測試環(huán)境了。當(dāng)然測試中對于如手機(jī)網(wǎng)絡(luò)等環(huán)境都有所要求。
測試環(huán)境很重要,符合要求的測試環(huán)境能夠幫助我們準(zhǔn)確的測出軟件問題,并且做出正確的判斷。
為了測試一款軟件,我們可能根據(jù)不同的需求點(diǎn)要使用很多不同的測試環(huán)境。有些測試環(huán)境我們是可以搭建的,有些環(huán)境我們無法搭建或者搭建成本很高。不管如何,我們的目標(biāo)是測試軟件問題,保證軟件質(zhì)量。測試環(huán)境問題,還是根據(jù)具體產(chǎn)品以及開發(fā)者的實(shí)際情況而采取最經(jīng)濟(jì)的方式吧。
測試執(zhí)行
測試執(zhí)行過程又可以分為以下階段:
單元測試→集成測試→系統(tǒng)測試→出廠測試,其中每個階段還有回歸測試等。
從測試的角度而言,測試執(zhí)行包括一個量和度的問題。也就是測試范圍和測試程度的問題。 比如一個版本需要測試哪些方面?每個方面要測試到什么程度?
從管理的角度而言,在有限的時間內(nèi),在人員有限甚至短缺的情況下,要考慮如何分工,如何合理地利用資源來開展測試。當(dāng)然還要考慮以下問題: 1. 當(dāng)測試人員測試的執(zhí)行不到位、敷衍了事時該如何解決? 2. 測試效率問題,怎樣提高測試效率? 3. 根據(jù)版本的不同特點(diǎn)是只做驗證測試還是采取冒煙測試亦或是系統(tǒng)全面測試? 4. 當(dāng)測試過程中遇到一些偶然性隨機(jī)問題該怎樣處理? 5. 當(dāng)版本中出現(xiàn)很多新問題時該怎樣對待?測試停止標(biāo)準(zhǔn)? 6. …… 總之,測試執(zhí)行過程中會遇到很多復(fù)雜的問題,還是那句話,具體問題具體解決!本文不做過多闡述。
測試記錄
缺陷記錄總的說來包括兩方面:由誰提交和缺陷描述。
一般而言,缺陷都是誰測試誰提交,當(dāng)然有些公司可能為了保證所提交缺陷的質(zhì)量,還會在提交前進(jìn)行缺陷評估,以確保所提交的缺陷的準(zhǔn)確性。
在缺陷的描述上,至少要包括以下一些方面內(nèi)容:
以上是描述一個bug時通常所要描述的內(nèi)容,當(dāng)然在實(shí)際提交bug時可以根據(jù)實(shí)際情況進(jìn)行補(bǔ)充,如附上圖片、log文件等。
另外,一個版本軟件測試完畢,還要根據(jù)測試情況出份測試報告,這也是所要經(jīng)過的一個環(huán)節(jié)。
缺陷管理
缺陷管理方面,很多公司都采取缺陷管理工具來進(jìn)行管理,常見缺陷管理工具有Test Director、Bugfree等。
下圖是一個bug從提出到close所經(jīng)過的一些流程,其他比如keep No action\keep spec等一些狀態(tài)流程都未包含在內(nèi),在此僅做示范說明。
注:軟件缺陷和bug兩者在含義上有著細(xì)微差別,本文統(tǒng)稱缺陷。
件進(jìn)行測試、評估、發(fā)行。 |
軟件評估 這里評估指軟件經(jīng)過一輪又一輪測試后,確認(rèn)軟件無重大問題或者問題很少的情況下,對準(zhǔn)備發(fā)給客戶的軟件進(jìn)行評估,以確定是否能夠發(fā)行給客戶或投放市場。 軟件評估小組一般由項目負(fù)責(zé)人、營銷人員、部門經(jīng)理等組成,也可能是由客戶指定的第三方人員組成。 測試總結(jié) 每個版本有每個版本的測試總結(jié),每個階段有每個階段的測試總結(jié),當(dāng)項目完成RTM后,一般要對整個項目做個回顧總結(jié),看有哪些做的不足的地方,有哪些經(jīng)驗可以對今后的測試工作做借鑒使用,等等。測試總結(jié)無嚴(yán)格格式、字?jǐn)?shù)限制。應(yīng)該說,測試總結(jié)還是很總要的。 測試維護(hù) 由于測試的不完全性,當(dāng)軟件正式release后,客戶在使用過程中,難免遇到一些問題,有的甚至是嚴(yán)重性的問題,這就需要修改有關(guān)問題,修改后需要再次對軟件進(jìn)行測試、評估、發(fā)行。
聯(lián)系客服