為什麼你找不到 bug

很多人在進行軟體測試時, 不知道測試的目的為何

你在網路上找一下, 可以看到不少定義, 大多重點如下面所寫:

“Program testing can be used to show the presence of bugs, but never to show their absence!” [Dijkstra, 1972]

“The goal of a software tester is to find bugs, find them as early as possible, and make sure that they get fixed“ [Ron Patton]

也就是說, 測試的目的在找到 bug.

可以是很多人測試是為了證明沒有 bug, 這種想法就會有很大的問題.

你有聽過 確認偏差 嗎?

所謂的確認偏差, 就是”尋找、解讀和記住對自己信念有利的資訊, 並漠視否定信念的相關資訊”

當你的心思在證明沒有Bug, 自然這個過程就會一直在說服自己, 自己寫出來的 code 沒有 bug.

不相信的話, 你可以看看你是否有以下現象:

(1) 不周全的 test case

大多數都是 happy path 的測法. 不通過只是說明了連基本都沒顧好.

但是除了基本的之後, 還有很多狀況需要考慮. 但是你就沒有想要測那些複雜易錯的場景

(2) 確認執行結果時很少追根究底

很多時候測試是發生在細微處, 當你發現怪怪的, 或是不小心當掉, 或是有些地方似乎不如預期, 很多人是會放棄, 或者重開機就好. 但是這裡往往是問題所在.

(3) 假設需求規格是對的

覺得需求規格寫的一切都沒問題, 如果有人覺得怪怪的, 那一定是用戶錯誤使用, 一定是測試人員不會用.

(4) 假設需求規格包含一切

你會假設需求已經列出所有要注意的事情, 或者騙自己說我只需要處理這些. 如果出現規格以外的東西, 那就說當初沒說要做

你們常犯哪一個錯誤呢?

發表迴響

探索更多來自 轉念學 - 敏捷三叔公的學習之旅 的內容

立即訂閱即可持續閱讀,還能取得所有封存文章。

Continue reading