iT邦幫忙

2026 iThome 鐵人賽

DAY 11
0
佛心分享-IT 人職涯歷練

測試之外的那一半:一個 QA 回頭帶當年的自己系列 第 11 篇

那份回歸清單只會變長,因為刪掉一條如果出事得有人扛

  • 分享至 

  • xImage
  •  

實習的時候,我負責一套多頁表單系統的完整回歸。跑一輪要一整個工作天。

那份清單每個 sprint 都會變長一點。新功能上線,加幾條;出過事的地方,加幾條。

從來沒有人刪過任何一條。

我當時覺得那叫嚴謹。

刪掉一條,技術上五秒

真正的難在別的地方。

你有沒有看過一條從來沒失敗過的測試,後來才發現它測的功能兩年前就下架了?你有沒有想刪掉某一條,最後收手,因為「萬一出事我要扛」?

刪除的成本不在技術,在當責。

而且還有一層更現實的:在多數團隊裡,提出「我們該精簡」的那個人,就會被指派去執行。
你得證明每一條都真的沒用、你得承擔刪錯的後果、你得在出事的時候被回頭問。

這正好是 Day 6 講的非晉升性任務的教科書案例:做了沒有人稱讚,沒做也不會怎樣,但只要出一次事,名字就在你身上。
三個計分條件一個都沒有,風險倒是全齊。

所以清單只會變長。這不是誰偷懶,是誰都沒有理由動它。

但長不等於密

Day 8 講測試是抽樣。一份清單從 100 條長到 1000 條,看起來覆蓋變好了,實際上要看那 900 條加在哪裡。

如果它們全部堆在同一條主流程上,那你只是在同一個位置重複下勺,樣本量變大,代表性沒有變。維護成本倒是實實在在地翻了十倍。

為什麼回歸清單會臃腫

我後來看到一個說法,把這件事講得很清楚:篩子理論。

把 bug 想成掉進漏斗的碎石和沙塵,測試是一層一層的篩網。

單元測試網目最細,在開發階段就攔掉大部分的小邏輯錯誤,成本最低。整合測試攔模組接起來的裂縫。UI 自動化和回歸測試在最後一層,網目最粗,本來只該負責攔核心路徑的漏網之魚。

回歸清單之所以臃腫,通常是因為前面的篩網破洞了。

因為對早期的測試沒信心,我們會產生補償心理,想在最貴、最慢、也最脆弱的那一層,架一張密不透風的鋼絲網。

換句話說:我們在最後一關,承擔了前面所有階段的失職。

我實習的時候扛的那一整天,很大一部分就是在補別人那層網的洞。而我以為那是我的本分。

還有一個代價:RD 對你的信任

UI 層外部變因太多——網路、非同步、動畫時序。在那一層跑出來的失敗,有相當比例重現不了。

而每一次你報一個無法穩定重現的 bug,都在消耗 RD 對測試的信任。次數多了,你報的東西會先被預設成「又是環境問題」。

這件事跟 Day 10 那句「我改好了,你測測看」是同一組關係的兩端。信任是雙向的,兩邊都在消耗,也都在累積。

與其在 UI 層反覆追那 1% 重現機率的東西,不如把它推回單元測試,在受控的環境裡穩定捕捉。

新增一條之前,我現在會先問四句

刪掉舊的很難,那至少別讓新的隨便長出來。

  1. 可解釋性:如果它失敗,我能在一分鐘內指出是哪一層的邏輯出錯嗎?
  2. 重複性:這個功能點,在 API 或單元測試層級已經測過了嗎?
  3. 維護性:UI 一改,我有信心快速修好它,而不是讓它變成一條 flaky?
  4. 存在感:如果它明天消失了,會有人感覺到品質下降嗎?

第四句最狠,也最有用。很多條在這一問之下站不住。

帶走的一樣東西

你手上那份只會變長的清單,不是因為它每一條都有價值。

是因為刪掉一條需要有人負責,而沒有人被指定要負這個責。

你未必有權限去刪。但你可以做一件事:把「這條為什麼存在」寫下來,寫在它旁邊。

那句話會變成以後某個人敢刪它的理由。

明天聊:篩選條件測出一個空白的結果,那到底算對還是錯。


延伸閱讀


上一篇
我改好了,你測測看。只談技術不談人際,這是能多難
下一篇
篩選出「查無資料」,那到底有沒有符合預期
系列文
測試之外的那一半:一個 QA 回頭帶當年的自己 共 17 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言