「錯誤不會因為被廣為傳播就變成真理,真理也不會因為沒人看見就變成錯誤。」——甘地(Mahatma Gandhi)
資訊為何令人感到威脅#
測試的目的是提供資訊,但人們常把資訊視為威脅。這些反應背後都藏著恐懼:
- 專案經理:「這麼多 bug,我的排程要開天窗了。」
- 開發者:「這個蠢錯誤會讓人看出我沒我以為的那麼厲害。」
- 行銷經理:「這產品 bug 一堆,賣不好,我的業績就達不到。」
- 測試人員:「都這麼晚了還回報這個錯,主管會咬下我的頭。」
正因為資訊可能令人感到威脅,我們都發展出一套「免疫系統」,用來保護自己不去聽見不想聽的資訊。這種**資訊免疫(information immunity)**會讓你關於 bug 的訊息石沉大海,從而瓦解你最好的測試努力。
恐懼來自規則受到威脅#
當我們害怕時就會防衛。作者引用湯姆・克魯姆(Tom Crum)對恐懼(FEAR)的定義:Fantasy Experienced As Reality——把想像當成現實。
家族治療師薩提爾(Virginia Satir)指出,當自尊低落、且某互動觸動了「生存規則(survival rule)」時,我們就會豎起防衛。測試特別容易觸動這類規則:
- 有人指出你程式的 bug → 觸動「我必須永遠完美」
- 你用不好某程式 → 觸動「我絕不能顯得愚蠢」
- 測試挖出大量 bug、專案延宕 → 觸動「我必須準時」「我必須兌現承諾」
- 身為專業測試人員 → 觸動「沒好話就別說話」
- 抱持「找不到問題就是失職」→ 開始找各種雞蛋裡挑骨頭的問題
心理學家把防衛分成六類,本章逐一說明。
六種防衛機制#
作者刻意採用來自世界各地的案例,說明這些防衛是普世的人類反應,到處都會發生。
- 壓抑(repression):否認或忽視我們認為不可接受的想法。例如測試人員拒絕記錄崩潰問題:「使用者不該那樣做,而且開發者手上 bug 已經夠多,我不想在他們修完之前再找出更多。」最常聽到的壓抑是開發者那句「我什麼都沒改」——其完整含意是「我沒改任何我認為重要的東西,除了我確實改的那些」
- 合理化(rationalization):把無意義、愚蠢或不理性的行為說得頭頭是道。例如某系統用按鈕登出會跳確認視窗、用選單登出卻立即生效,開發者辯稱「這是功能,提供兩種登出方式」——典型的「修不好就當成功能(if you can’t fix it, feature it)」
- 投射(projection):把自己討厭的特質歸咎於他人。例如搜尋時螢幕全黑長達數分鐘,沒耐性的開發者反過來說「使用者得學會耐心、體會程式做了多少工作」,把自己的沒耐性投射到所有使用者身上
- 轉移(displacement):責怪並非真正問題來源的人事物以卸責。例如系統加到第 64 個使用者就當機,開發者先合理化(「只准 63 個,這是功能」),接著轉移:「他們該知道不能超過,當機幾次就學乖了。」常見的轉移話術包括「無法重現我就沒辦法」「是他們的程式」「不是我的程式」「這是系統的限制,所有系統都有限制」
- 過度補償(overcompensation):誇張地彌補真實或想像的缺陷。例如測試人員 Avery 漏了測試「備份到 CD」,被指出後竟為 140 多種硬體(包括幾十年沒人用的紙帶)建立測試案例
- 強迫(compulsiveness):無法脫離反效果的行為模式。例如開發者繞過組態管理插補丁,測試人員 Nigel 卻堅持「開發者不准試東西,因為流程手冊裡沒有條文允許」。Nigel 真正怕的是「一旦開始破例,我就會失去對一切的掌控」——他其實本來就沒掌控,但有條「我必須永遠(感覺)在掌控中」的規則
小結#
資訊是中立的,但人對資訊的反應很少中立。要評估測試資訊,你必須把人的情緒防衛——壓抑、合理化、投射、轉移、過度補償、強迫——一併納入考量。保持警覺、深思與務實,能幫你化解情緒混亂,防止不合邏輯的流程瓦解測試努力。
常見錯誤#
以下是面對資訊免疫時最常見的失誤。
- 沒注意到人在害怕:若你刻意尋找,防衛機制通常很容易辨認
- 製造充滿恐懼的環境:若你責怪帶來壞消息的信差,你得到的「回報」就是聽不到你該聽的消息
- 決策時讓恐懼凌駕事實:你得意識到自己的規則如何扭曲你對資訊的接收
- 決策時讓希望凌駕事實:抱任何希望都行,但「希望」不等於「預期」
- 沉溺於強迫行為:一個人的強迫往往在他人身上引發恐懼與防衛,你的首要之務是力求合理
- 假定任何反對你觀點的論點都是病態:合理化可能聽起來像好論點,好論點也可能聽起來像合理化。學著同理地傾聽異議——「那太難修了」也許真的意味著「我不知道怎麼又快又省地修,也不認為這值得我花時間」,這或許真有道理,值得談談
- 徹底否認:印度有開發者用「Works As Designed(依設計運作,WAD)」駁回連螢幕凍結的 bug,被追問設計文件在哪時,竟答「我不知道在哪,但我很懂」並以「你是約聘測試人員,設計文件機密」搪塞
- 以為這不會發生在我們這裡:這些防衛是普世的人類反應,任何地方都可能發生