先說結論:
沒人可以知道什麼是好的測試
但是測得不好, 是可以看得出來
很多人在問, 何謂好的測試?
因為每個人都想要把測試給做好.
那問大家好的測試是什麼, 大多數人會說出以下條件
(1) 抓到所有 bug
(2) 不會有誤判的 bug
(3) 可以以較低的代價完成 (1) 和 (2)
我想這樣的條件, 應該大多數人都算滿意和認同.
如果上述條件是對的話, 那就是宣判好的測試是做不到的.
為什麼呢? 因為沒人知道 實際上 這個受測程式有多少 bug.
所以你無法判斷這個測試是不是抓到了所有 bug.
那有人說抓到所有 bug 真的很難,
那我們把 (1) 改成抓到大多數重要的 bug 如何呢?
其實還是你一樣的,
因為你不知道實際上有多少 bug
所以你還是不知道是否大多數重要的 bug 有被發現
例如在出貨時, 有時候你覺得你已經抓到了幾乎所有 bug
但是在幾年後忽然間爆出一些致命的 bug,
然後你的程式受到嚴重批評, 甚至下架
例如或者是某種不在你規劃的測試環境
但是客戶真的有, 而且這個客戶還真的很大
這時候你的程式也是會被退件的
另外, 還有件有趣的事情.
如果受測程式寫得很好時, 一個壞的測試(抓不到什麼問題) 其實也會被視為是好的測試.
因為你分辨不出他是測不好, 還是受測程式寫的太好.
更可悲的是, 如果是一個好的測試, 他對上不太有問題的受測程式
好的測試可能會找不到什麼問題
而被視為是做不好
因為很多人會認為沒有資訊, 等於沒有價值
然後他們就不被重視, 甚至被視為冗員給 fire 掉了
哎, 測試真的好難 .....
全站熱搜
留言列表