l

2015年4月16日 星期四

測試案例壞味道(16):Production Bugs

March 23 10:10~11:04
螢幕截圖 2015-03-23 11.03.01

怎麼會有這麼甜的無糖奶茶?肯定是Production Bugs

 

今天是測試案例壞味道系列文章的最後一篇,Production Bugs壞味道表示在最終的系統測試或是產品上線到production環境之後,依然發現許多bug。

相較於開發階段,當產品準備或已釋出之後,所發現的bug需要更長時間來除錯。開發團隊可能會被迫延緩產品上市時間已修正這些bug並作更詳細的測試,或是被迫丟出品質不佳的產品。無論是哪種情況,都會造成公司的損失。

***

xUnit Test Patterns: Refactoring Test Code》書中提到造成這個壞味道的原因有:

  • Infrequently Run Tests:開發人員沒有經常執行測試案例,主要原因可能是測試案例執行時間太久、執行步驟太繁瑣、測試案例不穩定等原因。
  • Lost Test:測試案例的數目並沒有隨著production code的增加而相對應的增加。造成此現象的原因可能是開發人員忘了把測試案例加到test suite裡面,或是原本作用中的測試案例被disabled,導致沒有抓到應該找出的bug。
  • Missing Unit Test:所有的單元測試都通過但是有一個功能測試失敗。後來開發人員修改了某個類別的程式碼讓功能測試通過,但卻沒有增加相對應的單元測試來驗證剛剛修改的類別。
  • Untested Code:沒有被測試到的程式碼,換句話說測試函蓋率太低。雖然測試涵蓋率100%不代表程式就不會出問題,但根據「莫非定律」,凡是沒有測試到的程式碼,就很可能會出問題。
  • Untested Requirement:從功能測試的角度來看,沒有被自動化測試案例所涵蓋到的需求,也很可能導致錯誤發生。
  • Neverfail Test:有時候你知道production code明明有錯,但測試案例卻全部通過。測試案例從來都沒發生錯誤通常並不是很好的症狀,可能代表所設計的測試案例不痛不癢,沒有找出真正的問題,或是測試案例太少,該測的地方沒測到。

***

Production Bugs壞味道可以說是所有壞味道累積之後的綜合結果。一但專案晚期發現很多bug,專案的品質已進入「癌症末期」,神仙難救。就算救的起來也是事倍功半,好了也不完全。為了避免這個問題,平常就應該要隨時保持測試案例的「整潔性」。一旦發現測試案例壞味道,要儘速將其移除,如此才有可能得到一個頭好壯壯的系統。

***

友藏內心獨白:程式就是資料結構加演算法加bug加眼淚挑眉質疑

沒有留言:

張貼留言