淺談軟件測試流程linux
【摘要】軟件測試從哪裏開始到哪裏結束?中間要通過哪些環節以及各環節要注意哪些事項。本文就有關問題結合我的實際工做經驗進行闡述,鑑於每一個環節均可以作爲一個專題來進行探討,因此受篇幅和時間限制,本文對有關問題未作深刻剖析,只作一個宏觀上的介紹。網絡
【關鍵詞】測試流程、需求分析、測試用例、測試計劃、缺陷管理架構
1、概述工具
通常而言,軟件測試從項目確立時就開始了,先後要通過如下一些主要環節:單元測試
需求分析→測試計劃→測試設計→測試環境搭建→測試執行→測試記錄→缺陷管理→軟件評估→RTM.測試
在進行有關問題闡述前,咱們先明確下分工,通常而言,需求分析、測試用例編寫、測試環境搭建、測試執行等屬於測試開發人員工做範疇,而測試執行以及缺陷提交等屬於普通測試人員的工做範疇,測試負責人負責整個測試各個環節的跟蹤、實施、管理等。ui
說明:spa
1.以上流程各環節並未包含軟件測試過程的所有,如根據實際狀況還能夠實施一些測試計劃評審、用例評審,測試培訓等。在軟件正式發行後,當遇到一些嚴重問題時,還須要進行一些後續維護測試等。操作系統
2.以上各環節並非獨立沒聯繫的,實際工做變幻無窮,各環節一些交織、重疊在所不免,好比編寫測試用例的同時就能夠進行測試環境的搭建工做,固然也可能因爲一些需求不清楚而從新進行需求分析等。這就和咱們國家提出建設有中國特點的社會主義國家同樣,只因此有中國特點,那是由於國情不同。因此在實際測試過程當中也要作到具體問題具體分析,具體解決。設計
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. 搭建哪些測試環境;
c. 採起哪些測試工具以測試管理工具;
d. 對測試人員進行培訓等。
5. 測試日程
a. 測試需求分析;
b. 測試用例編寫;
c. 測試實施,根據項目計劃,測試分紅哪些測試階段(如單元測試、集成測試、系統測試階段,α、β測試階段等),每一個階段的工做重點以及投入資源等。
6. 其餘。
測試計劃還要包括測試計劃編寫的日期、做者等信息,計劃越詳細越好了。
計劃趕不上變化,一份計劃作的再好,當實際實施的時候就會發現每每很難按照原有計劃開展。如在軟件開發過程當中資源匱乏、人員流動等都會對測試形成必定的影響。因此,這些就要求測試負責人可以從宏觀上來調控了。在變化面前可以作到應對自如、處亂不驚那是最好不過了。
測試設計
測試設計主要包括測試用例編寫和測試場景設計兩方面。
一份好的測試用例對測試有很好的指導做用,可以發現不少軟件問題。關於測試用例編寫,請參見前面寫的《也談測試用例》一文,裏面有詳細闡述。
測試場景設計主要也就是測試環境問題了。
測試環境搭建
不一樣軟件產品對測試環境有着不一樣的要求。如C/S及B/S架構相關的軟件產品,那麼對不一樣操做系統,如Windows系列、unix、linux甚至蘋果OS等,這些測試環境都是必須的。而對於一些嵌入式軟件,如手機軟件,若是咱們想測試一下有關功能模塊的耗電狀況,手機待機時間等,那麼咱們可能就須要搭建相應的電流測試環境了。固然測試中對於如手機網絡等環境都有所要求。
測試環境很重要,符合要求的測試環境可以幫助咱們準確的測出軟件問題,而且作出正確的判斷。
爲了測試一款軟件,咱們可能根據不一樣的需求點要使用不少不一樣的測試環境。有些測試環境咱們是能夠搭建的,有些環境咱們沒法搭建或者搭建成本很高。無論如何,咱們的目標是測試軟件問題,保證軟件質量。測試環境問題,仍是根據具體產品以及開發者的實際狀況而採起最經濟的方式吧。
測試執行
測試執行過程又能夠分爲如下階段:
單元測試→集成測試→系統測試→出廠測試,其中每一個階段還有迴歸測試等。
從測試的角度而言,測試執行包括一個量和度的問題。也就是測試範圍和測試程度的問題。好比一個版本須要測試哪些方面?每一個方面要測試到什麼程度?
從管理的角度而言,在有限的時間內,在人員有限甚至短缺的狀況下,要考慮如何分工,如何合理地利用資源來開展測試。固然還要考慮如下問題:
1. 當測試人員測試的執行不到位、敷衍了事時該如何解決?
2. 測試效率問題,怎樣提升測試效率?
3. 根據版本的不一樣特色是隻作驗證測試仍是採起冒煙測試亦或是系統全面測試?
4. 當測試過程當中遇到一些偶然性隨機問題該怎樣處理?
5. 當版本中出現不少新問題時該怎樣對待?測試中止標準?
6. ……
總之,測試執行過程當中會遇到不少複雜的問題,仍是那句話,具體問題具體解決!本文不作過多闡述。
測試記錄
缺陷記錄總的說來包括兩方面:由誰提交和缺陷描述。
通常而言,缺陷都是誰測試誰提交,固然有些公司可能爲了保證所提交缺陷的質量,還會在提交前進行缺陷評估,以確保所提交的缺陷的準確性。
在缺陷的描述上,至少要包括如下一些方面內容:
序號 |
標題 |
預置條件 |
操做步驟 |
預期結果 |
實際結果 |
註釋 |
嚴重程度 |
機率 |
版本 |
測試者 |
測試日期 |
以上是描述一個bug時一般所要描述的內容,固然在實際提交bug時能夠根據實際狀況進行補充,如附上圖片、log文件等。
另外,一個版本軟件測試完畢,還要根據測試狀況出份測試報告,這也是所要通過的一個環節。
缺陷管理
缺陷管理方面,不少公司都採起缺陷管理工具來進行管理,常見缺陷管理工具備Test Director、Bugfree等。
下圖是一個bug從提出到close所通過的一些流程,其餘好比keep No action\keep spec等一些狀態流程都未包含在內,在此僅作示範說明。
注:軟件缺陷和bug二者在含義上有着細微差異,本文統稱缺陷。
軟件評估
這裏評估指軟件通過一輪又一輪測試後,確認軟件無重大問題或者問題不多的狀況下,對準備發給客戶的軟件進行評估,以肯定是否可以發行給客戶或投放市場。
軟件評估小組通常由項目負責人、營銷人員、部門經理等組成,也多是由客戶指定的第三方人員組成。
測試總結
每一個版本有每一個版本的測試總結,每一個階段有每一個階段的測試總結,當項目完成RTM後,通常要對整個項目作個回顧總結,看有哪些作的不足的地方,有哪些經驗能夠對從此的測試工做作借鑑使用,等等。測試總結無嚴格格式、字數限制。應該說,測試總結仍是很總要的。
測試維護
因爲測試的不徹底性,當軟件正式release後,客戶在使用過程當中,不免遇到一些問題,有的甚至是嚴重性的問題,這就須要修改有關問題,修改後須要再次對軟件進行測試、評估、發行。