選擇性的Unit testing - 從cost和benefit的角度 (1)

Selective Unit Testing – Costs and Benefits
http://blog.stevensanderson.com/2009/11/04/selective-unit-testing-costs-and-benefits/

作者有好幾年的單元測試和TDD經驗, 他發現到unit test在某些事情上, 對於增進品質有很大幫助. 可是在某些項目上, 卻是不容易進行refacotring, 或是在enhancement上要花很大的cost.

他認為unit testing的好處和用處, 大家應該是沒有任何疑問的. 但是對於某些狀況下unit testing很沒有效率, 這件事上大家並沒有共識.

在討論這件事情時, 他先思考unit testing可以帶來什麼好處呢?

基本上作者認為有兩點
- help you to design some code while you’re writing it
- help to verify that your implementation actually does what you intended it to do.

在這裡作者問到, 你為何需要另一個系統(unit testing)來幫助你進行設計以及驗證你的程式呢? 為什麼你自己的程式本身無法解釋你的設計和解法呢? 如果unit testing只是把相同設計再重做一次, 那你希望在設計的正確性上, unit testing 能夠展示什麼價值呢?

所以根據作者的經驗, 如果你的程式無法一下了解, 這時需要有一些額外設計和一些輔助的驗證, 來確保你的程式能運作正常. 在這種狀況下你就需要unit testing, unit testing在這時候就極端有幫助.

反之, 如果你的程式是顯而易見的, 像是讀出目前系統時間或是disk space, 這時候加unit testing沒有什麼價值.

所以總結來說, 作者認為要不要做unit teting, 是要看受測程式是否很容易了解.

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 kojenchieh 的頭像
    kojenchieh

    David Ko的學習之旅

    kojenchieh 發表在 痞客邦 留言(0) 人氣()