淺談測試流程(摘)
【摘要】軟體測試從哪裡開始到哪裡結束?中間經過哪些環節以及各個環節要注意哪些事項。
【關鍵詞】測試流程、需求分析、測試用例、測試計劃、缺陷管理
一、概述
一般而言,軟體測試從專案確立就開始了,前後要經過以下一些主要環節:
需求分析 -> 測試計劃 -> 測試設計 -> 測試環境搭建 -> 測試執行 -> 測試記錄 -> 缺陷管理 -> 軟體評估 -> RTM
說明:
1.以上這些環節未包含軟體測試過程的全部,如根據情況還可以實施一些測試計劃評審、用例評審、測試培訓等。在軟體正式發行後,當遇到一些嚴重問題時,還需要進行後續維護測試等。
2.以上各個環節並不是獨立沒有聯絡的,實際工作變化很多,各個環節一些交織、重疊在所難免,比如編寫測試用例的同時就可以進行測試環境的工作,當然也可能因為一些需求不清楚而重新進行需求分析等。
3.在實際測試過程中要做到具體問題具體分析,具體解決。
其中,一般而言,需求分析、測試用例編寫、測試環境搭建、測試執行等屬於測試開發人員工作範疇,而測試執行以及缺陷提交等屬於普通測試人員的工作範疇,測試負責人負責整個測試各個環節的跟蹤、實施和管理等。
二、測試流程
需求分析
需求分析(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. 搭建哪些測試環境;
c. 採取哪些測試工具以及哪些測試管理工具;
d. 對測試人員進行培訓。
5.測試日程
a. 測試需求分析;
b. 測試用例編寫;
c. 測試實施,根據專案計劃,測試分成哪些測試階段(如單元測試、整合測試、系統測試階段,α、β測試階段等),每個階段的工作重點以及投入資源等。
6.其他
測試計劃還要包括測試計劃編寫的日期、作者等資訊,計劃越詳細越好。
計劃趕不上變化,一份好的計劃做的再好,當實際實施的時候就會發現往往很難按照原計劃開展。如在軟體開發過程中資源匱乏、人員流動等都會對測試造成一定的影響。所以,這些就要求測試負責人能夠進行巨集觀調控了,能夠應對自如、處亂不驚。
測試設計
測試設計主要包括測試用例編寫和測試場景設計兩方面。
一份好的測試用例對測試有很好的知道作用,能夠發現很多軟體的問題。測試場景設計就是測試環境的問題了。
測試環境搭建
不同軟體產品對測試環境有著不同的要求。如C/S及B/S架構相關的軟體產品,那麼對不同作業系統,如windows系列、unix\linux系列甚至蘋果OS等,這些測試環境都是必需的。而對於一些嵌入式軟體,如手機軟體,如果我們想測試一下有關功能模組的耗電情況,手機待機時間等,則需要我們搭建相應的電流測試環境。當然測試中對於如手機網路等環境都有所需求。
測試環境很重要,符合要求的測試環境能夠幫助我們準確的測出軟體的問題,並且做出正確的判斷。
為了測試一款軟體,我們可能根據不同的需求點要使用不同的測試環境。有些測試環境我們可以自己搭建,有些環境我們無法搭建或者搭建成本很高。不管如何,我們的目標是測試軟體問題,保證軟體質量。測試環境問題,還是應該具體產品以及開發者的實際情況而採取最經濟的方式。
測試執行
測試執行的過程可以分以下幾個階段:
單元測試 -> 整合測試 -> 系統測試 -> 出廠測試,其中每個階段還有迴歸測試等。
從測試的角度而言,測試執行包括一個量和度的問題。也就是說測試範圍和測試程度的問題。比如一個版本需要測試哪些方面?每個方面要測試到什麼程度?
從管理的角度而言,在有限的時間內,在人員有限甚至短缺的情況下,要考慮如何分工,如何合理地利用資源來開展測試。
測試記錄
缺陷記錄總的來說包括兩方面:由誰提交和缺陷描述。
一般而言,缺陷都是誰測試誰提交,當然有些公司虎會為了保證所提交缺陷的質量,還會在提交之前進行缺陷評估,以確保所提交的缺陷的準確性。
缺陷管理
缺陷管理方面,很多公司採取管理工具來進行管理,常見缺陷管理工具有Test Director、Bugfree等。
軟體評估
這裡評估指的是經過一輪又一輪測試後,確認軟體無重大問題或很少問題的情況下,對準備發給客戶的軟體進行評估,以確認是否能夠發行給客戶或投放市場。
測試總結
每個版本有每個版本的測試總結,每個階段有每個階段的測試總結,當專案完成RTM後,一般要對整個專案做個回顧總結,看哪些做的不足的地方,有哪些經驗可以對今後的測試工作有借鑑使用。測試總結無嚴格的格式要求,但測試總結還是很重要的。
測試維護
由於測試的不完全性,當軟體正式release後,客戶在使用過程中,難免遇到一些問題,有時甚至是嚴重性的問題,這就需要修改相關問題,修改後再次對軟體進行測試、評估、發行。