單元測試(unit test, ut)是乙個老生常談的話題,在對這篇文章進行部落格歸類時,我還是將其歸類為開發技術,儘管其帶有測試兩個字。如何做單元測試不是我這裡想說的,而是業界對其認識的認識及重視是我想指出的。
對於單元測試存在兩種不好的現象。第一種現象是對其不了解,或說了解只是在表面上(概念上)但並沒有那種深入骨隨的體會。只要學過或是看過軟體工程的書,我想都會了解單元測試的概念,但說到體會,那可就不是每乙個人都有的。
對於第二種現象是:太過於追求單元測試的,有的甚至要達到超過%90的**覆蓋率。近期,我看到了來自於parasoft公司的乙份報告,其中指出當**的覆蓋率超過大約%70時,付出的努力就太大了。這給我們什麼想的啟示呢?我能想到的是,我們不應當一味的追求高**覆蓋率,而是要進行一定的平衡,即做到保證一定的質量,又做到對於人力資源的合理使用。
站在程式設計師的角度來說,我想單元測試是會帶來一定的工作量的,但好處也是顯然的。好處體現在兩方面:一是,所寫的**因為經過了單元測試,所以會比較的自信,而不是提心吊膽。反之,如果沒有做過單元測試,而寄希望於測試人員來發現問題,那只會是忐忑不安。二是,有利於提高自己的聲望。因為做了單元測試,所以設計出來的**質量會相對的高,這無疑有利於提高自己的聲望。就這兩點來說,即使公司沒有要求做單元測試,程式設計師自己也應當去做。
單元測試是一種提高軟體質量非常有效的方法,但很重要的是我們要去實踐和體會。在現代的敏捷軟體開發方**只,都非常強調單元測試的重要性。為什麼呢?因為對於多次的迭代開發,我們需要通過測試來看是否新的迭代對於原有的功能是否有影響。還有就是,我們可能需要做重構,通過單元測試我們能發現重構後的**是否對原有的功能進行了改變,而這是我們做重構後所不希望看到的。單元測試在現實實踐中存在的乙個不可忽視的問題是:測試用例的維護成本比較的高。往往對其維護的工作量並不比被測**的開發量小,對於這一點我們需要有足夠的認識。
我相信一旦將單元測試的方法運用到了日常開發中,你一定會喜歡上那種對於交付的**很自信的那種感覺。
單元測試的重要性
最近專案中,仔細的debug,發現了一些隱藏的問題,平常只是說系統偶爾的不太正常,老是不知道什麼原因。debug過後,發現一些方法,估計原本就沒有測試過,或者沒有覆蓋到。測試優先,看起來比較耽誤時間,其實是磨刀不誤砍柴工,首先是準備的階段,是以後高質量的保證。只要是可以寫測試用例的,應該不留死角,否...
軟體測試的重要性
最近接手乙個新的任務 在公司產品的現有基礎上做修補.面臨的主要困難有 1.專案較大,vs的解決方案裡18個專案.雖然我只須維護其中的一兩個專案 3.某些 實現較複雜,如執行緒通訊,wmi等.這些函式的相互依賴,也就是平時說的藕合度高,現在我要將它分離,分到單獨的專案裡.但是這樣又要求我對這些複雜的函...
軟體測試的重要性
最近接手乙個新的任務 在公司產品的現有基礎上做修補.面臨的主要困難有 1.專案較大,vs的解決方案裡18個專案.雖然我只須維護其中的一兩個專案 3.某些 實現較複雜,如執行緒通訊,wmi等.這些函式的相互依賴,也就是平時說的藕合度高,現在我要將它分離,分到單獨的專案裡.但是這樣又要求我對這些複雜的函...