4.4基於經驗的測試技術
在應用基於經驗的測試技術時,測試用例來自測試人員的技能和直覺,以及他們在類似應用和技術方面的經驗。這些技術有助於識別其他更系統化的技術難以識別的測試。根據測試人員的方法和經驗,該技術可以實現的覆蓋率和有效性會截然不同。這些技術難以評估覆蓋率,也難以度量。 常用的基於經驗的技術將在下個章節討論。 4.4.1 錯誤推測 錯誤推測基於測試人員的知識,是用來預測錯誤、缺陷和失效發生的技術,包括: • 應用程式在過去是如何運作的 • 開發人員傾向於犯什麼樣的錯誤 • 其他應用程式中已經發生的失效 錯誤推測法技術的一種系統化方法是是建立一個可能的錯誤、缺陷和失效列表,設計測試以發現失效以及導致失效的缺陷。這些錯誤、缺陷和失效列表的構建可以是基於經驗、缺陷和失效資料的基礎上,也可以建立在對軟體失敗原因的常識基礎上。 4.4.2 探索性測試 探索性測試在測試執行期間動態地設計、執行、記錄和評估非正式的(不是預先定義的)測試。測試結果用於更多的瞭解元件或系統,併為可能需要更多測試的區域建立測試。 探索性測試有時使用基於會話的測試來構建活動。在基於會話的測試中,探索性測試是在規定的時間內進行的,測試人員使用包含測試目標的測試章程來指導測試。測試人員可使用測試會話表記錄所採取的步驟和發現。 探索性測試在規格說明很少或不充分或測試時間壓力大的情況下是非常有用的。探索性測試是其他更正式測試技術的有益補充。 探索性測試與應對式測試策略密切相關(見第5.2.2節)。探索性測試可以與其他黑盒、白盒和基於經驗的技術結合使用。 4.4.3 基於檢查表的測試 在基於檢查表的測試中,測試人員設計、實現和執行測試,以覆蓋檢查表中的測試條件。作為分析的一部分,測試人員建立一個新的檢查表或擴充套件現有的檢查表,但測試人員也可以不加修改地使用現有的檢查表。這樣的檢查表可以建立在經驗、瞭解什麼對使用者是重要的,或者理解軟體為什麼以及如何失敗的基礎之上。 可以建立檢查表以支援各種測試型別,包括功能測試和非功能測試。在缺乏詳細測試用例的情況下,基於檢查表的測試可以提供指南和一定程度的一致性。由於這些是概要性的檢查表,實際測試中可能會出現一些變化,從而擴大覆蓋率,但降低重複性。