3 個課程心得
- 隨機測試不是探索性測試:
很多人都說自己做的是探索性測試(Exploratory testing, 以下簡稱 ET ),充其量只是隨機測試(Ad hoc testing)而已。從前我也是以為隨機測試就是探索性測試,但上完課之後發現完全是兩回事。 - Session Based Testing Management 和 Scrum 好像,都有迭代
- 暴徒式測試 (Mob Testing) 雖然很變態(一切對資方有利),但改良一下應可以和團隊一起玩看看
軟體測試
測試其實包含探索 (Exploring) 和檢查(Checking),檢查又包含手動檢查、自動檢查。
什麼是探索性測試
Simultaneous learning, design and execution, with an emphasis on learning
— Cem Kaner
- 同事進行測試設計、測試執行、學習受測系統
- 藉由迭代方式、逐步探索來做測試的工作
- 強調不斷學習
- 從經驗中獲得受測系統的知識
Session Based Testing Management
- Charter (任務):Charter 不是測項,不是列出一個又一個的功能,而是你的測試想法 (test idea),通常會用幾句話來描述,也是時程的評估基礎
- 執行紀錄:沒有一個既定格式,主要是列出bug清單、可能的風險及潛在問題清單。潛在問題清單是指那些你覺得怪怪,但目前還沒有時間釐清的。
- 匯報:匯報會議中可以找PM、測試主管、RD主管一起參與
- 迭代:一次的時間可能是 60/90/120,每天最多 2–3 次(一天當中有完整的 60 分鐘不被打擾不容易啊)
Charter (任務) 到底怎麼列
一個好的 Charter 要考量的是:想找什麼風險、想涵蓋什麼、時間如何安排。可以透過現存業界好的點子框架進行參考。如果把 Charter 當作旅遊,出遊時會去很多地方,像是逛街的商業區、有參觀博物館的歷史區、晚上休息的旅館等等。各種不同的地區有不同的測試方式,可以參考書籍:Exploratory Software Testing: Tips, Tricks, Tours, and Techniques to Guide Test Design
在專案中落實探索性測試 — ST 為主,ET 為輔
ST 為主,ET 為輔,這方法比較有機會落實在實際工作狀況,先撰寫測試個案,進行個案執行測試。在測試的過程中,視情況加入更多的探索性測試。也可以利用一些輔助工具來進行探索測試,例如將測試過程中錄製下來,後續有需要追蹤時,可以參考影片進行確認。
結論
探索性測試是一門很深的學問,它不是隨機測試,不是漫無目的的隨意這裡點點、那裡點點,而是要透過列出 Charter,並進行一次又一次的測試與改進(就是迭代),找出產品的問題與風險。最後,探索性測試不是一人作業,他需要至少 2 人以上一同協作,才有辦法給予 feedback,不過,萬一只有一個人,還是可以靠 Chat GPT 輔助啦(真人永遠是最棒的)。