• <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-3-30 13:03 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 33次 | 進入軟件測試論壇討論

    領測軟件測試網 摘要
      這篇文章主要闡述這樣一個問題:為什么要進行煩人的單元測試?那些剛剛接觸完全測試概念的開發人員常常遇到這個問題。我們這里將采用"反調論證"的方法來回答這個問題, 先提出一些反對單元測試的普遍論點, 然后我們會證明這些論點是站不住腳的。那些公開發表的文章和數據充分證實了單元測試的有效性。
      IPL是一個獨立的軟件開發機構,成立于1979年,基地設在Bath。IPL在1988年通過了ISO9001認證,并在1991年通過TickIT認證。IPL開發并提供AdaTEST和Cantata等軟件驗證產品。AdaTEST和Cantata的開發遵循了這些標準的要求。
    簡介
      在使新的產品和業務的開發過程工業化的嘗試中,軟件的質量可靠性常常被看作是薄弱環節。
      在最近的十年里,隨著越來越多的人在開發過程中采用了設計方法論和使用CASE工具,軟件質量和可靠性的問題越來越受到重視。大多數軟件設計人員都接受了這方面的培訓,并且在這些正規的軟件設計方法的使用中取得了很多經驗。
      但不幸的是,軟件測試并沒有得到同樣的重視。很多使用這些軟件設計方法的開發活動并沒有使軟件質量和可靠性得到控制。修改最初的軟件開發活動遺留的Bug一般要在軟件維護費用中占到50%的比例,這是不正常的,這些Bug應該在有效的軟件測試過程中被排除掉。
      這篇文章主要闡述這樣一個問題:為什么要進行煩人的單元測試?那些剛剛接觸完全測試概念的開發人員常常遇到這個問題。我們這里將采用"反調論證"的方法來回答這個問題,先列出一些反對單元測試的普遍論點,然后我們會證明這些論點是站不住腳的。那些公開發表的文章和數據充分證實了單元測試的有效性。
    什么是單元測試
      單元測試是在軟件開發過程中要進行的最低級別的測試活動,在單元測試活動中,軟件的獨立單元將在與程序的其他部分相隔離的情況下進行測試。
      在一種傳統的結構化編程語言中,比如C,要進行測試的單元一般是函數或子過程。在象C++這樣的面向對象的語言中, 要進行測試的基本單元是類。對Ada語言來說,開發人員可以選擇是在獨立的過程和函數,還是在Ada包的級別上進行單元測試。單元測試的原則同樣被擴展到第四代語言(4GL)的開發中,在這里基本單元被典型地劃分為一個菜單或顯示界面。
      單元測試不僅僅是作為無錯編碼一種輔助手段在一次性的開發過程中使用,單元測試必須是可重復的,無論是在軟件修改,或是移植到新的運行環境的過程中。因此,所有的測試都必須在整個軟件系統的生命周期中進行維護。
      經常與單元測試聯系起來的另外一些開發活動包括代碼走讀(Code review),靜態分析(Static analysis)和動態分析(Dynamic analysis)。靜態分析就是對軟件的源代碼進行研讀,查找錯誤或收集一些度量數據,并不需要對代碼進行編譯和執行。動態分析就是通過觀察軟件運行時的動作,來提供執行跟蹤,時間分析,以及測試覆蓋度方面的信息。
    一些流行的誤解
      在明確了什么是單元測試以后,我們可以進行"反調論證"了。在下面的章節里,我們列出了一些反對單元測試的普遍的論點。然后用充分的理由來證明這些論點是不足取的。
    它浪費了太多的時間
      一旦編碼完成,開發人員總是會迫切希望進行軟件的集成工作,這樣他們就能夠看到實際的系統開始啟動工作了。 這在外表上看來是一項明顯的進步,而象單元測試這樣的活動也許會被看作是通往這個階段點的道路上的障礙, 推遲了對整個系統進行聯調這種真正有意思的工作啟動的時間。
      在這種開發步驟中,真實意義上的進步被外表上的進步取代了。系統能夠正常工作的可能性是很小的,更多的情況是充滿了各式各樣的Bug。在實踐中,這樣一種開發步驟常常會導致這樣的結果:軟件甚至無法運行。更進一步的結果是大量的時間將被花費在跟蹤那些包含在獨立單元里的簡單的Bug上面,在個別情況下,這些Bug也許是瑣碎和微不足道的,但是總的來說,他們會導致在軟件集成為一個系統時增加額外的工期, 而且當這個系統投入使用時也無法確保它能夠可靠運行。
      在實踐工作中,進行了完整計劃的單元測試和編寫實際的代碼所花費的精力大致上是相同的。一旦完成了這些單元測試工作,很多Bug將被糾正,在確信他們手頭擁有穩定可靠的部件的情況下,開發人員能夠進行更高效的系統集成工作。這才是真實意義上的進步,所以說完整計劃下的單元測試是對時間的更高效的利用。而調試人員的不受控和散漫的工作方式只會花費更多的時間而取得很少的好處。
      

    延伸閱讀

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

    TAG: 單元

    21/212>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(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>