• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    為什么說每個程序員都應當做單元測試?

    發布: 2009-10-10 10:10 | 作者: 網絡轉載 | 來源: 領測軟件測試網 | 查看: 65次 | 進入軟件測試論壇討論

    領測軟件測試網 Blues Brothers的歌曲“Everybody Need Somebody”中有這樣幾句話:請人們記住,無論你是誰,無論你靠什么生活,總有一些事情我們是一樣的……”pbielicki在他的博客中認為,對于軟件開發者而言,相同的一些事情就應當包括“單元測試”。本文作者的某些觀點雖然有些絕對化,但確實介紹了單元測試的優越性,并借此來極力推薦單元測試給每個軟件工程師/程序員/開發者。

    不論是是不是敏捷開發的fans,也許你會說這種開發方法很傻、很不成熟,對軟件開發沒有任何幫助。也許你不會用也不喜歡Scrum,你會覺得XP很討厭,你這么說沒問題,因為這是個人口味的問題。但是忘掉敏捷吧,忘掉那些程序和編程方法——單元測試你的代碼吧!

    我剛回顧了另外一個很復雜的程序但是里面沒有任何的單元測試,而且沒有任何的說明文件。也許你讀得懂代碼也明白其意思,但我怎么知道它的功能就是它應該具備的功能呢?我怎么知道開發他的人沒有寫出錯誤呢?

    單元測試不僅可以作為無錯編碼一種輔助手段在一次性的開發過程中使用,單元測試必須是可重復的,無論是在軟件修改,或是移植到新的運行環境的過程中。因此,所有的測試都必須在整個軟件系統的生命周期中進行維護。也許你會覺得這很麻煩,但雖然單元測試是由程序員自己來完成,最終受益的也還是程序員自己?梢赃@樣理解,程序員有責任編寫功能代碼,同時也就有責任為自己的代碼編寫單元測試。

    單元測試可以作為規格說明來工作,測試能夠以規格說明為基礎。代碼就能夠針對它的規格說明,而不是針對自身進行測試。這樣的測試不僅能夠抓住編譯器的Bug,同時也能找到更多的編碼錯誤,甚至是一些規格說明中的錯誤,因為好的規格說明可以使測試的質量更高 。

    在這里,我概要地說一下單元測試的好處:

    1,單元測試記錄軟件系統內部和外部的結構;
    2,單元測試幫助你和其他開發者迅速地看到是否“升級”的代碼打亂了已有的代碼;
    3,單元測試是你的軟件原理bug—所有的問題都會在編寫測試時解決掉;
    4,單元測試結合“code coverage”會讓提升你軟件的質量;
    5,單元測試可以在開發過程中顯著提高團隊信心——如果所有的測試通過了,則意味著所有的特性順利運行,每個人都工作得很出色
    6,單元測試提高了效率——你不再需要惱人的手工測試,而且代碼變動后,你只需要開啟單元測試并且查看紅/綠欄即可。
    7,還有很重要的一點是:單元測試可以作為DOCUMENTATION(無論是輔助的還是主要的)
    所以我希望每個人都開始使用單元測試,我甚至認為單元測試是現代軟件開發人員的必備技能。當然,你做單元測試并不意味著你就是一個優秀的開發人員,但如果你不用單元測試,那么你一定不是。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>