這次參加了由 AgileCommunity.tw 舉辦的Agile Taipei 海盜年會,這次邀請邰曉梅老師來台灣分享關於軟體品質的觀點。
昨晚參加由 AgileCommunity.tw 邀請了曉梅老師來分享『隱藏的質量』。做為軟體工程師這麼多年,也時常會遇到老闆問目前專案的開發品質為何?過去我也僅止於提出 QA 測試出來的 Bug 數、Bug 收復速度或是 Bug 正在收斂中或是擴散中這些可以被「量化」的數據。似乎只要 QA 測不出 Bug 或是 Bug 數非常少,產品的品質就是非常好。
在曉梅老師這次的分享中提到了過去我所沒注意到的觀點。
品質是主觀的
為了讓我們能夠體認這個觀點,曉梅老師讓我們以同樣的測試案例進行一次測試活動,每個人所測試出來的結果不僅不盡相符,對於品質的滿意程度也不完全相同,這樣的結果與平時工作情況是類似的。即便 QA 已經依據測試計劃完整的測試過產品,但在心裡仍不禁懷疑產品品質是否已符合客戶、使用者、老闆、團隊的要求?而我們又有多少的時間與資源去進行無止盡的測試?
常見的軟體開發流程會像是這樣
需求確認 > 需求分析 > 開發 > QA 測試 > 產品上線
絕大多數情況都是將 QA測試作為品質的最終檢查點,但這種方式一但發現產品的缺陷或系統設計上的問題時,修正它所帶來的成本是最大的。
而跑 Agile 的團隊,在 User Story 都會定義 Accept Criteria,然而有 Accept Criteria 是否就足夠呢?Accept Criteria 僅能規範這個 User Story 它的驗收標準為何,然而一個系統裡元件與元件之間的交互作用下是否會產生其他未知的 Bug 呢?
測試除了已知要測試的部份(Plan Base Test),更應該專注於「未知部份」的探索測試,配合測試左移、Test Early 去盡早找出問題,在開發過程的各階段觀注產品質量的變化,視覺化質量的趨勢(Quality Trend),而這應該是 團隊所有成員一起關注,而非只有 QA 人員做最後的把關。在關注的過程中分享已知的部份(例如已測試的部份、結果為何),也應該對於未知的部份提出進行討論(要不要做?影響程度?),除了讓每個人對於品質能夠有相同的認知外,也是讓決策者能夠有足夠的資訊做下正確的決策。
8/3 更新 曉梅老師在活動中有帶一個 “三角形測試” 的小活動,讓我們體會到即便現場有一百多人,提供了相同的測試案例,做相同的測試,每個人對於測試後的結果、感受都是不一樣的,透過這個活動更能體會到品質是主觀的論點。
有興趣可以到曉梅老師的部落格去看一看。
線上錄影觀看 當天的活動內容有請到 Tibame 來現場錄影,只要註冊 Tibame 的帳號就可以免費線上觀看當天的錄影內容。