探索式測試的思維模型

玄學醬發表於2017-07-10

上一章介紹了探索式測試的定義。在實際專案的測試執行過程中,讀者是否曾遇到如下的幾個現象:

  測試人員按照一個測試用例來執行測試,得到的程式輸出與預期輸出不一致。

  測試人員判斷程式的行為並不是缺陷,但根據新的輸出想到了新的測試思路。

  測試人員根據新的測試思路採用不同的輸入並檢查程式輸出。

  測試人員再次根據新的測試結果選擇新的輸入,反覆地探索下去,最終發現了一個程式缺陷。

  測試人員發現該缺陷的測試思路或測試用例並沒有出現在最初的測試設計或測試用例文件中。

   相信有很多讀者熟悉上述的情景,也許有些人認為這是測試設計的遺漏,但筆者要告訴讀者的是,千萬不要懷疑你的測試設計能力,因為這是非常正常的現象。由 於我們還沒有真正深入地瞭解產品,不可能在測試設計的時候想到所有測試場景,且在需求分析階段不可能評審到所有的隱含需求,所以最初的測試設計並不能捕獲 程式的所有缺陷。為了發現儘可能多的缺陷,測試人員需要在測試過程中,根據測試反饋持續地優化測試模型、調整測試設計。這是一個研究、實踐和探索的過程。 瞭解探索式測試的思維將有助於測試人員更有效地測試。

  根據測試專家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章將講述幾個案例來說明探索式測試這種迭代優化的測試風格。








====================================分割線================================



最新內容請見作者的GitHub頁:http://qaseven.github.io/


相關文章