談黑盒、白盒、單元測試、集成測試、系統測試

公司的項目快做完了,期間涉及到寫了AT和UT,在網上搜了很多資料,在這裏彙總一下,也算一個總結了

黑盒測試:已知產品的功能設計規格,可以進行測試證明每個實現了的功能是否符合要求。

軟件的黑盒測試意味着測試要在軟件的接口處進行。這種方法是把測試對象看做一個黑盒子,測試人員完全不考慮程序內部的邏輯結構和內部特性,只依據程序的需求規格說明書,檢查程序的功能是否符合它的功能說明。因此黑盒測試又叫功能測試或數據驅動測試。

黑盒測試主要是爲了發現以下幾類錯誤:

  1. 是否有不正確或遺漏的功能?
  2. 在接口上,輸入是否能正確的接受?能否輸出正確的結果?
  3. 是否有數據結構錯誤或外部信息(例如數據文件)訪問錯誤?
  4. 性能上是否能夠滿足要求?
  5. 是否有初始化或終止性錯誤?

白盒測試:已知產品的內部工作過程,可以通過測試證明每種內部操作是否符合設計規格要求,所有內部成分是否以經過檢查。

軟件的白盒測試是對軟件的過程性細節做細緻的檢查。這種方法是把測試對象看做一個打開的盒子,它允許測試人員利用程序內部的邏輯結構及有關信息,設計或選擇測試用例,對程序所有邏輯路徑進行測試。通過在不同點檢查程序狀態,確定實際狀態是否與預期的狀態一致。因此白盒測試又稱爲結構測試或邏輯驅動測試。

白盒測試主要是想對程序模塊進行如下檢查:

  1. 對程序模塊的所有獨立的執行路徑至少測試一遍。
  2. 對所有的邏輯判定,取“真”與取“假”的兩種情況都能至少測一遍。
  3. 在循環的邊界和運行的界限內執行循環體。
  4. 測試內部數據結構的有效性,等等。

單元測試:是開發者編寫的一小段代碼,用於檢驗被測代碼的一個很小的、很明確的功能是否正確。通常而言,一個單元測試是用於判斷某個特定條件(或者場景)下某個特定函數的行爲。
  單元測試是由程序員自己來完成,最終受益的也是程序員自己。可以這麼說,程序員有責任編寫功能代碼,同時也就有責任爲自己的代碼編寫單元測試。執行單元測試,就是爲了證明這段代碼的行爲和我們期望的一致。

單元測試的好壞在於“單元”而不在“測試”,最好的單元是返回簡單數據結構的函數:函數是最基本的抽象,可大可小,不需要mock,只依靠傳參。簡單數據結構可以判等。 最好的測試工具是Assert.Equal這種的:只是判等。

集成測試:是單元測試的邏輯擴展。它的最簡單的形式是:兩個已經測試過的單元組合成一個組件,並且測試它們之間的接口。從這一層意義上講,組件是指多個單元的集成聚合。在現實方案中,許多單元組合成組件,而這些組件又聚合成程序的更大部分。方法是測試片段的組合,並最終擴展進程,將您的模塊與其他組的模塊一起測試。最後,將構成進程的所有模塊一起測試。

系統測試:是將經過測試的子系統裝配成一個完整系統來測試。它是檢驗系統是否確實能提供系統方案說明書中指定功能的有效方法。(常見的聯調測試)
  系統測試的目的是對最終軟件系統進行全面的測試,確保最終軟件系統滿足產品需求並且遵循系統設計。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章