【摘要】 軟件測試從哪里開始到哪里結束?中間要經過哪些環節以及各環節要注意哪些事項。本文就有關問題結合個人實際工作經驗進行闡述,鑒于每個環節都可以做為一個專題來進行探討,所以受篇幅和時間限制,本文對有關問題未做深入剖析,只做一個宏觀上的介紹。
一、概述
一般而言,軟件測試從項目確立時就開始了,前后要經過以下一些主要環節:
需求分析→測試計劃→測試設計→測試環境搭建→測試執行→測試記錄→缺陷管理→軟件評估→RTM.
在進行有關問題闡述前,我們先明確下分工,一般而言,需求分析、測試用例編寫、測試環境搭建、測試執行等屬于測試開發人員工作范疇,而測試執行以及缺陷提交等屬于普通測試人員的工作范疇,測試負責人負責整個測試各個環節的跟蹤、實施、管理等。
說明:
1.以上流程各環節并未包含軟件測試過程的全部,如根據實際情況還可以實施一些測試計劃評審、用例評審,測試培訓等。在軟件正式發行后,當遇到一些嚴重問題時,還需要進行一些后續維護測試等。
2.以上各環節并不是獨立沒聯系的,實際工作千變萬化,各環節一些交織、重疊在所難免,比如編寫測試用例的同時就可以進行測試環境的搭建工作,當然也可能由于一些需求不清楚而重新進行需求分析等。這就和我們國家提出建設有中國特色的社會主義國家一樣,只所以有中國特色,那是因為國情不一樣。所以在實際測試過程中也要做到具體問題具體分析,具體解決。
二、測試流程
需求分析
需求分析(Requirment Analyzing)應該說是軟件測試的一個重要環節,測試開發人員對這一環節的理解程度如何將直接影響到接下來有關測試工作的開展。
可能有些人認為測試需求分析無關緊要,這種想法是很不對的。需求分析不但重要,而且至關重要!
一般而言,需求分析包括軟件功能需求分析、測試環境需求分析、測試資源需求分析等。
其中最基本的是軟件功能需求分析,測一款軟件首先要知道軟件能實現哪些功能以及是怎樣實現的。比如一款Smartphone包括VoIP、Wi-Fi以及Bluetooth等功能。那我們就應該知道軟件是怎樣來實現這些功能的,為了實現這些功能需要哪些測試設備以及如何搭建相應測試環境等,否則測試就無從談起!
既然談了需求分析,那么我們根據什么來分析呢?總不能憑空設想吧。
總得說來,做測試需求分析的依據有軟件需求文檔、軟件規格書以及開發人員的設計文檔等,相信管理一些規范的公司在軟件開發過程中都有這些文檔。
測試計劃
測試計劃(Test Plan)一般由測試負責人來編寫。
測試計劃的依據主要是項目開發計劃和測試需求分析結果而制定。測試計劃一般包括以下一些方面:
1. 測試背景
a. 軟件項目介紹;
b. 項目涉及人員(如軟硬件項目負責人等)介紹以及相應聯系方式等。
2. 測試依據
a. 軟件需求文檔;
b. 軟件規格書;
c. 軟件設計文檔;
d. 其他,如參考產品等。
3. 測試資源
a. 測試設備需求;
b. 測試人員需求;
c. 測試環境需求;
d. 其他。
4. 測試策略
a. 采取測試方法;
b. 搭建哪些測試環境;
d. 對測試人員進行培訓等。
5. 測試日程
a. 測試需求分析;
b. 測試用例編寫;
c. 測試實施,根據項目計劃,測試分成哪些測試階段(如單元測試、集成測試、系統測試階段,α、β測試階段等),每個階段的工作重點以及投入資源等。
6. 其他。
測試計劃還要包括測試計劃編寫的日期、作者等信息,計劃越詳細越好了。
計劃趕不上變化,一份計劃做的再好,當實際實施的時候就會發現往往很難按照原有計劃開展。如在軟件開發過程中資源匱乏、人員流動等都會對測試造成一定的影響。所以,這些就要求測試負責人能夠從宏觀上來調控了。在變化面前能夠做到應對自如、處亂不驚那是最好不過了。
測試設計
測試設計主要包括測試用例編寫和測試場景設計兩方面。
一份好的測試用例對測試有很好的指導作用,能夠發現很多軟件問題。關于測試用例編寫,請參見前面寫的《也談測試用例》一文,里面有詳細闡述。
測試場景設計主要也就是測試環境問題了。
測試環境搭建
不同軟件產品對測試環境有著不同的要求。如C/S及B/S架構相關的軟件產品,那么對不同操作系統,如Windows系列、unix、linux甚至蘋果OS等,這些測試環境都是必須的。而對于一些嵌入式軟件,如手機軟件,如果我們想測試一下有關功能模塊的耗電情況,手機待機時間等,那么我們可能就需要搭建相應的電流測試環境了。當然測試中對于如手機網絡等環境都有所要求。
測試環境很重要,符合要求的測試環境能夠幫助我們準確的測出軟件問題,并且做出正確的判斷。