標籤:
軟體測試方法從不同的角度去看有很多定義的方法。
靜態&動態劃分
靜態測試包括代碼檢查,靜態結構分析,代碼品質度量等。代碼檢查包括代碼走查、案頭檢查、代碼審查等,主要檢查代碼和設計的一致性,代碼對標準的遵循、可讀性,代碼的邏輯表達正確性,代碼結構的合理性等方面;可以發現違背程式編寫標準的問題,程式中不安全、不明確和模糊的部分,找出程式中不可移植部分、違背程式編寫風格問題,包括變數檢查、命名和類型審查、語法檢查和程式結構檢查等內容。在實際使用中,代碼檢查比動態測試更有效,能快速找到缺陷,發現30~70%的邏輯設計和編碼缺陷;代碼檢查看到的是問題本身而非徵兆。但是代碼檢查是非常耗費時間的,而且代碼檢查需要知識和經驗的積累。代碼檢查應在編譯和動態測試之前進行,在檢查前,應準備好需求描述文檔、程式設計文檔、程式源碼清單、代碼編碼通訊協定和代碼缺陷檢查表等。靜態測試具有發現缺陷早、降低返工成本、覆蓋重點和發現缺陷機率高的優點,缺點是耗時間長度、對技術能力要求高,不能測試依賴。
動態測試是指通過運行被測程式,檢查運行結果與期望結果的差異,並分析運行效率和健壯性,主要包含三種方法:構造測試執行個體、執行程式、剖析器的輸出結果。目前動態測試也是多數公司的測試工作的主要方式。
“盒子”劃分
軟體測試方法傳統上可以分為白盒測試跟黑箱測試。所謂白盒或者黑盒,最簡單的區別就是程式原始碼是否對測試人員可見。
白盒測試
又稱結構測試,透明盒測試、邏輯驅動測試或基於代碼的測試。白盒法全面瞭解程式內部邏輯結構,對所有邏輯路徑進行測試。白盒法是窮舉路徑測試。在使用這一方案時,測試者必須檢查程式的內部結構,從檢查程式的邏輯著手,得出測試資料。白盒測試方法有API測試,程式碼涵蓋範圍測試,錯誤注射測試,程式變異測試以及靜態測試。
白盒測試的覆蓋標準有邏輯覆蓋、迴圈覆蓋和基本路徑測試。其中邏輯覆蓋包括語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋。
黑箱測試
黑箱測試也稱功能測試,它是通過測試來檢測每個功能是否都能正常使用。在測試中,程式被看做一個不能開啟的黑盒子,在完全不考慮程式內部結構和內部特性的情況下,在程式介面進行測試,它只檢查程式是否按照需求規格說明書規定的正常使用,程式是否能適當地接收輸入資料併產生正確的輸出資訊。主要針對軟體介面和軟體功能進行測試。黑箱測試方法主要包含等價類別劃分法,邊界值分析法,決策表法,因果圖法,模組測試,模糊測試,用例測試,探勘測試還有根據需求規格制定的測試等。
灰盒測試
灰盒測試,是介於白盒測試與黑箱測試之間的,可以這樣理解,灰盒測試關注輸出對於輸入的正確性,同時也關注內部表現,但這種關注不象白盒那樣詳細、完整,只是通過一些表徵性的現象、事件、標誌來判斷內部的運行狀態,有時候輸出是正確的,但內部其實已經錯誤了,這種情況非常多,如果每次都通過白盒測試來操作,效率會很低,因此需要採取這樣的一種灰盒的方法。
軟體測試基礎(二) 測試方法