軟件測試分類


軟件測試分類

一、按階段分類

1、單元測試

單元測試是最微小規模的測試,測試的是某個功能或代碼塊。典型地由程序員而非測試員來做,因為它需要知道內部程序設計和編碼的細節知識。

  • 測試階段:編碼后或者編碼前
  • 測試對象:模塊
  • 測試人員:白盒測試工程師或開發人員
  • 測試依據:代碼和注釋+詳細文檔
  • 測試方法:白盒測試
  • 測試內容:模塊接口測試、局部數據測試、路徑測試、錯誤處理測試、邊界測試

補充說明:
(1)學習測試依據時,我們可以對比軟件測試的“V”模型結合記憶
(2)白盒測試不是單元測試,單元測試是白盒測試
(3)測試驅動開發:測試人員先編寫測試用例,開發人員根據測試用例寫程序

2、集成測試

集成測試是指一個應用系統的各個部件的聯合測試,以決定他們能否在一起共同工作並沒有沖突。部件可以是代碼塊、獨立的應用、網絡上的客戶端或服務器端程序。這種類型的測試尤其與客戶服務器和分布式系統有關。一般集成測試以前,單元測試需要完成。

集成測試也稱聯合測試(聯調)、組裝測試:將程序模塊采用適當的集成策略組裝起來,對系統的接口及集成后的功能進行正確性檢測的測試工作。集成主要目的是檢查軟件單位之間的接口是否正確。

  • 測試階段:一般是單元測試之后
  • 測試對象:模塊間的接口
  • 測試人員:白盒測試工程師或開發工程師
  • 測試依據:單元測試的文檔+概要設計文檔
  • 測試方法:黑盒測試與白盒測試(灰盒測試)
  • 測試內容:模塊之間數據傳輸、模塊之間功能沖突、模塊組裝功能的正確性、全局數據結構、單模塊缺陷對系統的影響
    補充說明:
    單元測試是一個模塊內部的測試,集成測試是在模塊之間進行測試(至少兩個)

3、系統測試

系統測試是將整個軟件系統看做一個整體進行測試,包括對功能、性能,以及軟件所運行的軟硬件環境進行測試。

系統測試:將軟件系統看成是一個系統的測試。包括對功能、性能以及軟件所運行的軟硬件環境進行測試。時間大部分在系統測試執行階段,包括回歸測試和冒煙測試。

  • 測試階段:集成測試階段之后
  • 測試對象:整個系統(軟件、硬件)
  • 測試人員:黑盒測試工程師
  • 測試依據:需求規格說明文檔
  • 測試方法:黑盒測試
  • 測試內容:功能、界面、可靠性、易用性、性能、兼容性、安全性等
    補充說明:
    (1)系統測試是從完整的角度,廣面去看待問題,不再看模塊
    (2)雖然系統測試包括冒煙測試和回歸測試,但三者之間是有嚴格的先后順序的,即:先冒煙、再系統、后回歸。

1)冒煙測試(smoke testing):該術語來自硬件,指對一個硬件或一組硬件進行更改或修復后,直接給設備加電。如果沒有冒煙,則該組件就通過了測試,也可以理解為該種測試耗時短,僅用一袋煙的功夫就足夠了。

冒煙測試的對象是每一個新編譯的需要正式測試的軟件版本,目的是確認軟件基本功能正常,可以進行后續正式的測試工作。
冒煙測試的執行者是版本編譯人。
冒煙測試一般在開發人員開發完畢后送給測試人員來進行測試時,測試人員會先進行冒煙測試,保證基本功能正常,不阻礙后續測試。

2)回歸測試(Regression Testing):指修改了舊的代碼之后,重新進行測試以確認修改沒有引入新的錯誤或導致其他代碼產生錯誤。(自動回歸測試將大幅度降低系統測試、維護升級等階段的成本)。

在整個軟件測試過程中占有很大的工作比重,軟件開發的各個階段都會進行多次回歸測試。隨着系統的龐大,回歸測試的成本越來越大,通過正確的回歸測試策略來改進回歸測試的效率和有效性是很有意義的。

4、驗收測試

1)α測試:Alpha 是內測版本,通常只在軟件開發者內部交流,也可以是公司內部的用戶在模擬實際操作環境下進行的測試,或忠實的粉絲之間發布,該版本軟件的bug較多,普通用戶最好不要安裝,測試的目的是評價軟件產品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。

2 )β測試:Beta是公測版本,也是一種驗收測試,是對所有用戶開放的測試版本,免費發布,因為里面還會有一些bug的存在

3) γ測試:Gamma版本就是正式版的候選版本

二、按方法分類(或是否查看源代碼分類)

2.1、黑盒測試

image

黑盒測試也稱功能測試,它是通過測試來檢測每個功能是否都能正常使用。在測試中,把程序看作一個不能打開的黑盒子,在完全不考慮程序內部結構和內部特性的情況下,在程序接口進行測試,它只檢查程序功能是否按照需求規格說明書的規定正常使用,程序是否能適當地接收輸入數據而產生正確的輸出信息。黑盒測試着眼於程序外部結構,不考慮內部邏輯結構,主要針對軟件界面和軟件功能進行測試。

黑盒測試是以用戶的角度,從輸入數據與輸出數據的對應關系出發進行測試的,並不考慮程序的源代碼。很明顯,如果外部特性本身設計有問題或規格說明的規定有誤,用黑盒測試方法是發現不了的。黑盒測試分為功能測試和性能測試:

1)功能測試(function testing),是黑盒測試的一方面,它檢查實際軟件的功能是否符合用戶的需求。包括邏輯功能測試、界面測試、易用性測試和兼容性測試。

2)性能測試(performance testing),軟件的性能主要有時間性能和空間性能兩種。其中,時間性能主要指軟件的一個具體事務的響應時間,而空間性能主要指軟件運行時所消耗的系統資源。

參考:https://baike.baidu.com/item/黑盒測試/934030?fr=aladdin

2.2、白盒測試

白盒測試是把測試對象看作一個打開的盒子。利用白盒測試法進行動態測試時,需要測試軟件產品的內部結構和處理過程,不需測試軟件產品的功能。與黑盒測試相反,這種測試就要研究程序里面的源代碼和程序結構。

白盒測試又稱結構測試、透明盒測試、邏輯驅動測試或基於代碼的測試。白盒測試是一種測試用例設計方法,盒子指的是被測試的軟件,白盒指的是盒子是可視的,你清楚盒子內部的東西以及里面是如何運作的。"白盒"法全面了解程序內部邏輯結構、對所有邏輯路徑進行測試。"白盒"法是窮舉路徑測試。在使用這一方案時,測試者必須檢查程序的內部結構,從檢查程序的邏輯着手,得出測試數據。貫穿程序的獨立路徑數是天文數字。
采用什么方法對軟件進行測試呢?常用的軟件測試方法有兩大類:靜態測試方法動態測試方法

靜態測試:不要求在計算機上實際執行所測程序,主要以一些人工的模擬技術對軟件進行分析和測試;
動態測試:是通過輸入一組預先按照一定的測試准則構造的實例數據來動態運行程序,而達到發現程序錯誤的過程。在動態分析技術中,最重要的技術是路徑和分支測試。

參考:https://baike.baidu.com/item/白盒測試/934440?fr=aladdin

2.3、灰盒測試

灰盒測試,是介於白盒測試與黑盒測試之間的一種測試,灰盒測試多用於集成測試階段,不僅關注輸出、輸入的正確性,同時也關注程序內部的情況。灰盒測試不像白盒那樣詳細、完整,但又比黑盒測試更關注程序的內部邏輯,常常是通過一些表征性的現象、事件、標志來判斷內部的運行狀態。

參考:https://baike.baidu.com/item/灰盒測試/1906276?fr=aladdin

三、按是否運行分類

3.1、靜態測試

靜態方法是指不運行被測程序本身,僅通過分析或檢查源程序的語法、結構、過程、接口等來檢查程序的正確性,對需求規格說明書、軟件設計說明書、源程序做結構分析、流程圖分析、符號執行來找錯。分析如下:

檢查項:代碼風格和規則審核;程序設計和結構的審核;業務邏輯的審核;走查、審查與技術復審手冊。
靜態質量:度量所依據的標准是ISO9126。在該標准中,軟件的質量用以下幾個方面來衡量,即功能性(Functionality)、可靠(Reliability)、可用性(Usability)、有效性(Efficiency)、可維護性(Maintainability)、可移植性(Portability)。

3.2、動態測試

動態測試是指通過運行被測程序,檢查運行結果與預期結果的差異,並分析運行效率、正確性、健壯性、等性能。

(1)動態測試有三部分組成:構造測試用例、執行程序、分析程序的輸出結果。
(2)大多數軟件測試都屬於動態測試。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM