軟體測試步驟按照研發階段一般分為5個部分:單元測試、內建測試、确認測試、系統測試、驗收測試,下面将不同階段需要的一些工作内容做一下梳理希望可以幫助到大家。
一、單元測試的内容:(白盒為主,黑盒為輔)
單元測試又稱為子產品測試,是針對軟體設計的最小機關程式子產品進行正确性檢查的測試工作,單元測試需要從程式内部結構出發設計測試用例,多個子產品可以平行地獨立進行單元測試。
1、子產品接口測試
- 應對通過所測子產品的資料流進行測試
- 調用所測子產品時的輸入參數與子產品的形式參數的個數、屬性和順序是否比對
- 所測子產品調用子子產品時,輸入子子產品的參數與子子產品的形式參數在個數、屬性和順序上是否比對。
- 輸出給标準函數的參數的個數、屬性和順序是否正确。
- 全局變量的定義在各個子產品中是否一緻。
- 當子產品通過外部裝置進行輸入/輸出操作,檔案屬性是否正确、open和close語句是否正确,規定的I/O格式說明與I/O語句是否比對;緩沖區容量是否與記錄長度比對,在讀寫之前是否打開了檔案,讀寫之後是否關閉了檔案,對I/O錯誤是否做了處理。
2、 局部資料結構測試
- 局部資料結構是最常見的錯誤來源
- 不一緻的資料類型
- 不正确或不一緻的資料說明
- 使用尚未指派或尚未初始化的變量
- 錯誤的初始值或錯誤的預設值
3、 路徑測試
運算的優先次序、常見的比較和控制流
4、錯誤處理測試
遇見出錯的條件,并設定适當的出錯處理
5、邊界測試
例如循環的次數,最大或最小值
二、單元測試步驟:
- 利用設計文檔設計測試用例;
- 建立被測子產品的樁子產品或驅動子產品;
- 利用被測試子產品、驅動子產品和樁子產品來建立測試環境,進行測試
- 驅動子產品:相當于所測子產品的主程式,它接收測試資料,把這些資料傳送給所測子產品,最後再輸出實際結果
- 樁子產品:用以代替所測子產品調用的子子產品。
三、內建測試(白盒和黑盒結合)
內建測試又稱為組裝測試或聯合測試,在單元測試的基礎上,需要将所有子產品按照概要設計說明書和詳細設計說明書的要求進行組裝。
- 在把各個子產品連接配接起來的時候,穿越各個子產品的接口的資料時候會丢失
- 一個子產品的功能是否會對另一個子產品的功能産生不利的影響
- 各個子功能組裝完成後,能否達到預期的父功能
- 全局資料結構是否有問題
- 單個子產品産生的誤差累計起來是否會放大
內建測試層次:子系統内內建測試;子系統間內建測試;子產品間內建測試。
子產品組裝成系統的方式:一次性組裝方式和增殖式組裝方式
1、一次性組裝方式(非增殖式內建)
先對子產品分别進行測試,再把所有子產品組裝進行測試
缺點:發現錯我不容易定位
2、增殖式組裝測試:自頂向下;自底向上;分層內建;三明治內建;基層內建;高頻內建。
先對一個個子產品進行子產品測試,然後将這些子產品逐漸組裝成系統,分為兩種方式:自頂向下的增殖方式和自底向上的增殖方式
(1)自頂向下的增殖方式(不需要驅動子產品)
将子產品铵系統程式結構,嚴控制層次自頂向下進行組裝。
首先以主子產品作為被測子產品兼驅動子產品,所有直屬主子產品的下屬子產品全部用樁子產品代替,對主子產品進行測試。再采用深度優先或廣度優先的政策,用實際子產品代替樁子產品,再用樁子產品代替它們的直接下屬子產品,與已經測試的子產品構成新的子系統。然後進行回歸測試。
(2)自底向上的增殖方式(不需要驅動子產品)
由驅動子產品控制最底層子產品的并行測試。
(3)混合增殖式
- 自頂向下增殖方式:
優點:能夠較早的發現主要控制方面的問題
缺點:需要建立樁子產品,增加了一些附加的測試,涉及算法和輸入輸出的子產品一般在底層,這些底層子產品要到組裝和測試的後期才能發現。一旦發現問題就會出現過多的回歸測試。
- 自底向上增殖方式:
優點:不需要建立樁子產品,建立驅動子產品要比建立樁子產品要簡單得多,同時涉及到算法已近輸入輸出的子產品要先測試,把最容易出現問題的部分在早期解決。
缺點:程式一直未能作為一個實體存在,直到最後一個子產品加上才能形成一個實體,控制方面最後才能接觸。
3、內建測試完成的标志:
1)成功執行了測試計劃中規定的所有內建測試
2)修改了所發現的錯誤
3)測試結果通過專門小組的評審
4)內建測試需要送出的測試報告:
5)內建測試計劃、內建測試規格說明書以及內建測試分析報告
四、确認測試(黑盒)
确認測試的目标是驗證軟體的功能和性能以及其他特性是否與使用者的要求一緻。确認測試一般包括有效性測試和軟體配置複查。一般有第三方測試機構進行。
1、進行有效性測試
現軟體确認要通過一系列黑盒測試。确認測試同樣需要制訂測試計劃和過程,測試計劃應規定測試的種類和測試進度,測試過程則定義一些特殊的測試用例,旨在說明軟體與需求是否一緻。
無是計劃還是過程,都應該着重考慮軟體是否滿足合同規定的所有功能和性能,文檔資料是否完整、準确人機界面和其他方面(例如,可移植性、相容性、錯誤恢複能力和可維護性等)是否令使用者滿意。
确認測試的結果有兩種可能,一種是功能和性能名額滿足軟體需求說明的要求,使用者可以接受;
另一種是軟體不滿足軟體需求說明的要求,使用者無法接受。項目進行到這個階段才發現嚴重錯誤和偏差一般很難在預定的工期内改正,是以必須與使用者協商,尋求一個妥善解決問題的方法
2、軟體配置複查
保證軟體配置的所有成分齊全,品質都符合要求。應該遵守使用者手冊和操作手冊中的規定步驟。
五、系統測試 通常意義上的系統測試包括 壓力測試(也稱為強度測試),容量測試,負載測試,性能測試,安全測試,容錯測試等。
軟體作為計算機系統的一部分,與硬體、網絡、外設、支撐軟體、資料以及人員結合在一起,在實際或模拟環境下,對計算機系統進行測試,
目的在于與系統需求比較,發現問題。
利用程式的使用者文檔或書面材料。通過分析目标文檔來設 計系統測試,分析使用者文檔來闡明測試用例。
由于沒有一個方法,系統測試需要大 量的創造性。事實上,設計好的系統測試用例比設計系統或程式需要更多的創造性、 智慧和經驗。
為了避免有所遺漏,設計測試用例時應考慮全部的 15 種類型。
能力測試、容量測試、強度測試、易用性測試、安全性測試、
性能測試、存儲測試、配置測試、相容性/配置/轉換測試、安裝測試、
可靠性測試、可恢複性測試、适用性測試、文檔測試、過程測試。
六、驗收測試 包括:正式驗收,alpha測試,Beta測試。
以使用者為主的測試,軟體開發人員和品質保證人員參加,由使用者設計測試用例。
不是對系統進行全覆寫測試,而是對核心業務流程進行測試。
根據合同、《需求規格說明書》或《驗收測試計劃》對産品進行驗收測試。