「在軟弱的時刻,人很難抗拒幼稚的暗示。」——數學家暨哲學家羅素(Bertrand Russell)

落入測試「謬誤」是一回事,淪為測試「騙局(scam)」的獵物又是另一回事。兩者都源於「我們太想要某事為真」,但在騙局中,我們任由那些「因騙倒我們而獲利」的人玩弄。

「我們賣你一個神奇工具」#

工具的祕密在於:好工具會放大效能。如果你的測試效能是「負」的,加工具只會放大那份負面。工具供應商的其他宣稱,多半是某種騙局。

作者以科羅拉多州翻山越嶺的多條「收費路」比喻:當年有那麼多條收費路,正因為沒有一條真的好走。他查了十幾款暢銷測試工具的規格:

  • 工具 A 號稱省 80% 測試成本,工具 B 號稱省 75%
  • 若同時用 A、B,能省 95%?再加省 50% 的工具 C,就只剩原成本的 2.5%?

既然各工具都宣稱「獨特方法」,其效益就該獨立,那作者這套計算便成立——如此一來,根本不需要測試書、測試人員,也不需排測試時間。這顯然荒謬,正暴露了宣稱的虛假。

展示騙局(The Demonstration Scam)#

業務阿克塞(Axel)明知自家報表工具效能不如競品,於是提議「免費試用兩台機器一週,並派效能工程師菲莉絲(Phyllis)幫你做基準測試(benchmark)並排比較」。週四菲莉絲跑完十個測試案例,DataSpew 的工具在「全部十個案例」都明顯較快。

菲莉絲不是在測試,而是在展示。結果有意無意地被動了手腳——這是「展示騙局」的一個子類:效能基準騙局(The Performance Benchmark Scam)

作者坦言,他年輕時的工作之一就是設計這種銷售用基準測試:對任意兩套系統,他總能造出一個「證明」自家較優的「測試」;若他受雇於對手,也能「證明」對方較優。

不過反過來說:若菲莉絲做不出十份證明自家優越的報告,那會是有趣的新資訊——一個失敗的騙局,在負面意義上其實是一個測試。

見證、定價與「全知工具」騙局#

  • 見證騙局:銷售文宣常含偽測試結果(產品比較、認證、背書),看似有資訊,實則只是收了錢或好處而出借名號的江湖郎中。要可靠的見證就親自去取——拜訪客戶、觀察他們日常流程中如何使用、與真正的使用者交談。供應商若阻止你這麼做,就要起疑
  • 高價騙局(The High Price Scam):只賣給「大錢包」、開高價,藉認知失調讓客戶不好意思抱怨爛效能——花了大錢的人怕顯得愚蠢而把抱怨往肚裡吞
  • 低價騙局(The Low Price Scam):用「價格這麼低,工具能好到哪去?」抹黑競品。有供應商宣稱開源(免費)工具「沒有支援」很危險——這是謊言,要雇用開源作者提供支援很容易;而該供應商自己的技術支援既不足又超貴
  • 全知工具騙局(The Omniscient Tool Scam):工具以權威姿態運作,使用者便假設它真在做與人類同等細緻的測試

作者親身示範全知工具騙局:測試人員雪莉(Sherry)寫了自動測試「證明搜尋軟體沒問題」,跳出綠色的「通過」。作者問「它怎麼知道通過了?」雪莉答「它就是知道,工具夠聰明」。作者請開發者偷偷把搜尋程式換成「永遠回傳零」的假程式,再跑一次——畫面顯示「找不到紀錄」,工具卻仍宣告測試通過

真正的問題是:工具並不知道系統的回應「應該」是什麼。早年作者甚至見過一家大公司的高層,相信能花兩千五百萬美元打造「自動除錯器」——把程式 X 丟進去,就吐出移除所有 bug 的程式 X,彷彿能讀你的心。他們真的把預算加倍了。買家當心——當心你自己的願望。

「你什麼都不用做」的承諾#

「把軟體交給我們,所有測試頭痛都隨之而去」——這種測試服務的提議多誘人?

服務商或許真有能力,但就像內部測試人員一樣,他們需要知道「該蒐集什麼資訊」。有人必須想清楚這項服務的價值、能合理挖出什麼資訊,並管理合約以確保它提供專案最需要的資訊。

相關的還有外包誘餌掉包騙局(The Outsourcing Bait-and-Switch Scam):供應商用資深測試人員吸引客戶,簽約後卻換成廉價的菜鳥——還照資深的價格收費。「你什麼都不用做」的承諾永遠是騙局。

「我們暗中串通」#

當管理者夢想「從遠端、純用數字管理開發」時,就為**串通騙局(collusion scams)**打開了大門:

  • BugFest 串通:開發者與測試人員私下結盟,開發者在 BugFest 前插入 bug、夥伴「找到」並領賞金、事後分贓。作者知道有測試人員在騙局被識破前已用賞金買了快艇
  • 快速清 bug 串通:測試人員私下把 bug 告訴開發者,開發者先修好、再叫測試人員提報,一小時後就結案——開發者博得「最快清 bug」美名。作者第一次見到時,那對開發者與測試人員是夫妻

如何避免騙局#

辨認騙局的一個方法是:它們總是承諾「不勞而獲」。效能基準騙局承諾免費的大量測試工作、「你什麼都不用做」承諾只要花錢、全知工具騙局假設工具能在不知你意圖的情況下運作。

同一條鐵則對測試騙局與電話推銷一樣適用:好到不像真的,大概就不是真的。 相信有偏差或無意義的測試結果或許很誘人,吞下假結果或許比挑戰造假者更省事,但測試騙局會讓決策建立在無效資訊上。轉身拒絕一個看似划算的交易很難,但收拾接受交易後的爛攤子更難——你用「不勞」換來的唯一「所獲」,就是後悔。

小結#

每當你急著清掉 bug、把產品送出門時,你就特別容易淪為各種承諾「快速、無痛解脫」的測試騙局的獵物。

常見錯誤#

以下是面對測試騙局時最常見的失誤。

  1. 純靠數字管理專案:數字有用,但前提是經親身觀察驗證,並以一個關於它們的故事放進脈絡中
  2. 透過第三方接受見證:別指望任何「無法直接向當事人查證」的見證