軟體測試心得_單元測試

來源:互聯網
上載者:User

更多軟體測試技術文章請訪問  http://www.itmarks.cn/

   開始編碼的時候沒有人告訴你什麼是測試。很大的一個問題擺在我們面前,如何驗證自己編碼的正確性。當然,你可以把這些問題留給系統的使用過程之中,但那個時候發現真正的代碼中存在的問題,就變得非常困難,而這時代碼中一旦存在大量的耦合性,真正修正一個問題,就變得更為困難。於是,我們需要在更早的時候發現問題,同時我們需要把一個耦合的複雜問題轉化為多個簡單的內聚單元,由是單元測試隨之產生。

 

       傳統的軟體工程中把單元測試放在編碼之後,而單元測試的執行人通常就是程式員本人,這個時候程式員依賴自己的預期對分解了的程式單元模組(通常是一個函數或者方法),按照一定順序執行自己的期望測試,通過執行一個驅動模組,調用程式中的樁模快,得到一個預期結果,比較預期結果和期望結果,如果一致那麼測試通過,否則通過代碼走讀或者逐行調試,發現隱藏在代碼中的問題,最終使預期結果和期望結果保持一致。

 

      大型軟體開發和中小型軟體開發的差異,在軟體開發過程和軟體開發方法中國外的一些知名程式員開始對單元測試的理念進行改進。軟體工學本身就是一個自醒、改進的體系。隨著新興敏捷和xp理念的引入,Test driver development(TDD)已經成為一個單元測試的另一種理念。和傳統理念的差異是TDD把單元測試放在了代碼功能模組之前,前置測試的引入,使我們將OO令人敬畏的理解變成麵包和水,我們引入Mock Object ,而這正好是在我們尚未用代碼構建我們的系統之前。這樣的好處顯而易見,測試代碼獨立於開發的代碼單獨存在,每個測試代碼都有一個目的,在TDD的測試載入器中Xunit獨樹一幟,尤其是經典的Junit,斷言的引入,使我們明白每個程式單元究竟要完成怎樣的目的。如果寫單元測試用例的人和寫被測單元的人是同一個,前置測試,使他在編碼以前就明白自己每塊程式的目標,而且所有的目標都建立相應的成功標準。開發的時候他就會更準確的實現這些目標,在完成開發代碼之後,執行那些獨立的單元測試,我們很容易看到結果,由於斷言的引入,假設每個斷言確實反映了每個函數的目標,發現宣告失敗之後,我們需要小心的檢查代碼,找出那些造成斷言失真的問題。這樣作的另外一個好處,就是促成了單元測試的自動化,而這正是我們不再想看那些令人眼花屏顯輸出時的最好解決方案。而假設單元測試的編寫者和編碼者不是同一個人,似乎我們又找到了一種良好的監督機制,最終的結果就是讓那個被監督的人完成應有的測試目標。

更多軟體測試技術文章請訪問  http://www.itmarks.cn/

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.