探索式測試的思維模型
上一章介紹了探索式測試的定義。在實際項目的測試執行過程中,讀者是否曾遇到如下的幾個現象:
測試人員按照一個測試用例來執行測試,得到的程序輸出與預期輸出不一致。
測試人員判斷程序的行為并不是缺陷,但根據新的輸出想到了新的測試思路。
測試人員根據新的測試思路采用不同的輸入并檢查程序輸出。
測試人員再次根據新的測試結果選擇新的輸入,反復地探索下去,最終發現了一個程序缺陷。
測試人員發現該缺陷的測試思路或測試用例并沒有出現在最初的測試設計或測試用例文檔中。
相信有很多讀者熟悉上述的情景,也許有些人認為這是測試設計的遺漏,但筆者要告訴讀者的是,千萬不要懷疑你的測試設計能力,因為這是非常正常的現象。由 于我們還沒有真正深入地了解產品,不可能在測試設計的時候想到所有測試場景,且在需求分析階段不可能評審到所有的隱含需求,所以最初的測試設計并不能捕獲 程序的所有缺陷。為了發現盡可能多的缺陷,測試人員需要在測試過程中,根據測試反饋持續地優化測試模型、調整測試設計。這是一個研究、實踐和探索的過程。 了解探索式測試的思維將有助于測試人員更有效地測試。
根據測試專家Erik Petersen對于探索式測試的理解,筆者抽象出探索式測試的思維模型 CPIE(Collation,Prioritization,Investigation,Experimentation),如圖2.1所示。該測試 模型包含迭代的4個階段:整理、排序、調查和實驗。
圖2.1 探索式測試的思維模型
整理(Collation):盡最大可能收集關于被測產品的信息,去了解和理解它們。
排序(Prioritization):確定所有測試任務的優先級。
調查(Investigation):對即將執行的測試任務進行仔細的分析并確定測試輸入和預期輸出。
實驗(Experimentation):實際地去測試,驗證我們的預測是否正確,檢查我們在整理階段獲取到的信息是否正確。根據實驗結果,測試人員將收集更多的信息,并調整測試任務的優先級。
對于探索式測試的思維過程,測試專家 James Bach提出了如圖2.2所示的思維模型。該模型包含一組啟發式問題,以推動測試人員在知識(Knowledge)、分析(Analysis)、實驗 (Experiment)和測試故事(Testing Story)上深入探究。
知識:掌握產品特性、開發技術、測試技術和領域規則等測試需要的知識。
分析:分析產品風險、測試覆蓋、測試方法、測試先知 和產品缺陷等測試相關因素。
實驗:配置、操作、觀察和評估被測產品。
測試故事:用測試計劃、測試報告和可工作的產品等組成測試報告,以準確地反映測試狀態和產品質量。
圖2.2 探索式測試的思維過程
從圖2.1和圖2.2可以看出James Bach和Erik Petersen的觀點都強調通過實驗(Experiment)來持續改進測試設計。他們認為瀑布式的測試設計和用例編寫并不會產生優質的測試設計,測試 人員還需要在測試執行的時候持續擴展新的測試思路,完善測試設計。在探索式測試過程中,測試學習、測試設計、測試執行和測試評估是互相支持和驅動的活動。第4章將講述幾個案例來說明探索式測試這種迭代優化的測試風格。
posted on 2012-09-19 09:37 順其自然EVO 閱讀(527) 評論(0) 編輯 收藏 所屬分類: 敏捷測試