Tester vs QA

上一篇談 Tester 的職責是什麼, 這一篇談另一個觀念, Tester  不應該被叫做 QA (quality assurance), 因為基本上, Tester 沒辦法真的確保 "Quality".

很奇怪? 驚世駭俗? 推卸責任? 嗯, 當然不是啦, 上一篇才講過要追查到底才算盡忠職守, 怎麼這一篇突然說 Tester 不確保 Quality, 你可能會問, 那老闆雇用你幹嘛?

這個問題, 其實要從什麼是 "Quality" 談起. 為方便中文讀者, 我暫且把它稱為品質. 首先, 我們要先想一下, 到底是誰在決定產品的品質? 是 tester 嗎? 我今天執行一個 test pass, 有 99% 的 pass rate, 還有很好的 code coverage %, 就表示我的產品品質很高嗎? 假如事情有這麼簡單, 我們就一定不會聽到有人報怨微軟產品的品質了. "有人" 報怨產品的品質, 是因為 "有人" 使用產品的經驗不好而來, 不管這個不好的經驗, 是因為 bug, 還是產品本身的 design. 而這個 "有人", 就是 customer. 所以我們可以推論, 使用經驗決定品質, 而顧客決定使用經驗的好壞, 所以顧客才能決定產品的品質到底好不好, 不是 tester.

那既然 tester 無法決定產品的品質好不好, 要 tester 幹嘛? Tester 的職責, 是提供正確資訊, 來衡量產品發行的風險. 一個好的 tester 可以利用很好的工程技術, 提供正確的資訊, 給決策單位衡量產品發生後產生問題的風險, 而這個工程技術執行的愈好, 提供的資訊愈正確, 產品"壞掉"的機會就愈小, 如果這些利用工程技術做的測試, 能涵蓋愈多使用者使用的 scenarios, 那顧客遭遇到壞的使用者經驗的風險也愈小, 但縱然如此, 我們 tester 還是無法保證品質, 因為 engineering bug 並不一定等於 user experience bug, 而 design 更不等於 bug, tester 並不負責提供 user scenarios, 那是 pm (或 ba) 的事. 所以, tester 不是 qa, 因為我們不能 assure quality. 我們的工作, 是 provide information to measure risk. 各位 pm, 下次顧客抱怨產品品質不好的時候, 先不要急著怪 tester, 品質是一種感覺, 是沒辦法真正被量化測量的東西, 所以不妨想想真正讓顧客不滿的原因, 說不定是產品的設計根本和顧客的期望不一致也不一定.

本來幾年前我剛開始我 tester 的 career 的時候, 我也以為我是 "qa", 我的終極目標就是確保品質, 直到瞭解什麼是品質後, 想法才改變. 如果你對這個問題有興趣, 或完全不認同我說的, 以下提供兩篇不同的資深 testers 的文章給大家參考. 其實我也是聽了資深 tester, Bj Rollison, 的教誨後才改變想法的.

Testing and Quality by Alan Page

Testing is not responsible for quality by Bj Rollison

 

關於