本文是「測試之外的那一半:一個 QA 回頭帶當年的自己」系列第 29 篇。
我在測一個篩選功能。
四個條件、每個三到四個值,光是基本組合就上百種。再加上排序、分頁、清除按鈕、預設值的交互。
整整兩天,我坐在那裡一組一組點下去、等載入、比對結果、寫紀錄。
第二天下午,我手指發麻、眼睛酸、開始打瞌睡。但更難受的是另一件事。
每組條件的點擊規則,我一句話講得完。
每組結果該長什麼樣,我寫得出一個明確的判斷式。
每跑一組之間,我什麼都不需要思考。按下去、等、比對。
那一刻我看清楚一件事:我不是在測試,我是在人肉執行一個迴圈。
越無聊的測試越要細、越累的迭代越要跑完、不能因為煩就跳步驟。
這個紀律是對的。
它只說了一半。 另一半是:有些煩,是任務在告訴你它放錯位置了。
煩有兩種。
第一種來自工作本身的張力:要面對不確定、要承擔風險判斷、要拒絕不該做的妥協。這種煩不該被自動化給取代,它就是這份工作的核心。
第二種來自機器做得比你好的重複勞動。 這種煩該被自動化,留著只是在消耗腦力庫存。
敬業不是能忍多少煩。敬業是有能力分辨哪些煩值得忍。
我後來用三個問題判斷:
規則講得完嗎? 我能不能用一句話講完這件事的操作規則。講得完的,機器做得到。
預期結果寫得出判斷式嗎? 這就是 Day 12 那個 oracle 的問題。寫得出來的可以交出去,寫不出來的交出去也只是在重複動作。
兩次之間我需要思考嗎? 需要的話,那個思考就是我存在的理由。不需要的話,我在那裡只是提供手指。
三個答案都指向機器,那個煩就是訊號。
這裡要補一句,不然這篇會被讀成「重複的事都該自動化」。
我有一位前輩的做法影響我很深:每天擠一支小腳本。
不是停下手上的事去做一個大工程,是在日常任務裡每天摳出一小塊,把它變成一支能重複用的東西。
那個做法背後的認知是:日常任務不是主線的對手,是主線的礦場。你想做的那些東西,材料就埋在你每天覺得煩的事情裡。
所以認出第二種煩之後,下一步不是「我要做一個大平台把它全自動化」。
Day 5 我講過自己怎麼把一件事拖了兩個月。我認出了一個該被自動化的東西,然後想一次做對,去推一個需要跨部門對齊的方案。
Day 19 是同一個岔路口的第二次。那次我選了醜但現在能動的路。
認出訊號跟選對規模,是兩件事。訊號告訴你「這裡不該放人」,它不會告訴你「所以要蓋多大的東西」。
那兩天的篩選組合,我最後做的不是一個測試平台。是一支只跑那四個條件的腳本,一百多行,醜,但它讓我下一次不用再坐兩天。
覺得一件事很煩的時候,先別責怪自己不夠敬業。問三句:
規則我一句話講得完嗎?預期結果我寫得出判斷式嗎?兩次之間我需要思考嗎?
前兩個是、第三個否,那個煩就是訊號,不是你的問題。
然後從最小的那一塊開始摳。不要等一個完整的方案,那個等待通常比那件煩事更貴。
明天是最後一篇。