Bug and Tester’s Responsibility

 

近幾年陸續看到一種新的”軟體測試外包”方式: 外包給社群的測試工程師測試. 簡單的說, 就是有一些公司, 提供一個平台仲介全世界的測試工程師社群和需要測試服務的客戶. 由客戶提出測試的需求, 讓測試工程師自己選擇要不要接這個CASE, 計價方式是算BUG 和TEST SCRIPT 的數量.

這就出現幾個有趣的問題: BUG 有重要的和不重要的. 不重要可以不修的BUG, 或不能在這個專案時程內修掉且不影響專案發行的BUG, 客戶要付錢嗎? 如果要, 要算多少錢? SHIPSTOPPER 和這種”可忽略”的BUG的價錢是否相同? 如果沒有找到 BUG, 也沒有提供新的 TEST SCRIPT, 客戶就不用付錢. 但就算測試工程師真的找不到 BUG (或沒有一定要修的 BUG), 難道就表示這個測試工程師沒有做好工作所以不可以有收入?

要討論這些問題, 首先要想一下所謂 Software Test Engineer, 或更廣泛的稱呼, Software Tester, 的工作職責是什麼. 這些提供測試社群平台的公司宣稱利用這種平台, 客戶甚至可以完全不用有自己的測試團隊 (我這裏指的”自己的測試團隊”, 包括自己公司的正式員工, 和自己外包給專門提供測試服務的公司或個人, 但不包括這種測試社群的服務), 但這真的可行嗎?

由這種公司的商業模式, 我們可以簡單的認為, 如果所有測試真的可以透過這樣的方式完成, 那測試工程師的工作只有兩樣, 找 BUG 和寫 TEST SCRIPT, 頂多再加上一些 USABILITY 的建議. 但事實上, 我認為測試工作不只是這樣, 尤其是找 BUG 這件事在我看來, 根本是測試工程師執行工作後所必然得到的”結果”, 而不是測試工程師執行工作的”原因”或”動機”.

如果要用簡短幾句話來講測試工程師的工作, 大致上測試工程師要負責提供資料讓發行團隊評估發行軟體的風險, 決定發行軟體的功能是否達到計畫目標, 並且要利用工程方法改進軟體開發的全部過程, 減少缺失產生的可能性. 如此看來, 一個好的測試工程師, 應該要讓軟體經過精心設計和執行測試工程後, 使其”品質”達到或超過客戶的預期, 雖然從以上的工作內容, 測試工程師並未直接”確保品質”.

所以回頭看這種外包給社群的計價方式, 其實並沒有真的針對測試工程師的主要內容計價, 這樣的”測試”工作,其實和直接把軟體開放給部份客戶"試用"沒有太大的不同. 如果測試工程師只專注於找到更多的BUG來得到收入, 也並不能真正提升軟體的品質.