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

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

  • <strong id="5koa6"></strong>
  • 談談Java程序的單元測試[2]

    發表于:2010-05-21來源:作者:點擊數: 標簽:javaJAVAJava單元程序
    談談Java程序的 單元測試 [2] 軟件測試 簡而言之,如果程序設計師要寫一段代碼: 先用 junit 寫測試,然后再寫代碼; 寫完代碼,運行測試,如果測試失敗, 修改代碼,運行測試,直到測試成功。 如果以后對程序進行修改,優化 ( refactoring ),只要再運行測試

             談談Java程序的單元測試[2]   軟件測試

      簡而言之,如果程序設計師要寫一段代碼:

      先用 junit 寫測試,然后再寫代碼;

      寫完代碼,運行測試,如果測試失敗,

      修改代碼,運行測試,直到測試成功。

      如果以后對程序進行修改,優化 ( refactoring ),只要再運行測試代碼。如果所有的測試都成功,則代碼修改完成。

      3. 單元測試與Java Team開發的結合

      Java下的team開發,一般采用cvs(版本控制) + ant(項目管理) + junit(單元測試、集成測試)的模式:

      每天早上上班,每個開發人員從 cvs server 獲取一個整個項目的工作拷貝。

      拿到自己的任務,先用 junit 寫今天的任務的測試代碼。

      然后寫今天任務的代碼,運行測試(單元測試),直到測試通過。

      任務完成在下班前一兩個小時,各個開發人員把任務提交到cvs server。

      然后由主管對整個項目運行自動測試(集成測試),哪個測試出錯,就找相關人員修改,直到所有測試通過。下班......

      4.測試控制工具中要有甚么?

      無論誰來撰寫單元測試或何時撰寫單元測試,我們的焦點應該放在檢驗程序代碼;主要是在于產生錯誤的風險。如果設計文件包含被測試對象的使用情節;便可成為好的測試來源。不管如何,這些情節寫得不是很明確;因為這些情節實際上是以設計觀點所寫的--因此適當的測試應該有對等的情節,換句話說,也就是測試設計應該盡可能的包含用戶實際使用程序時可能產生的動作或者過程。

      另一個測試案例好的來源是在整合后從產品程序代碼當中找到的問題,維修問題的處理方式往往值得封裝成為測試案例。

      5. 為什么要使用Junit等工具呢?

      前面的論述說明為什么我們需要測試控制工具,但為什么我們使用Junit這些工具呢?

      首先,它們是完全Free的!

      第二點,使用方便。

      在你提升程序代碼的品質時JUnit測試仍允許你更快速的撰寫程序!

      那聽起來似乎不是很直覺,但那是事實。當你使用JUnit撰寫測試,你將花更少的時間除蟲,同時對你程序代碼的改變更俱有信心。這個信心讓你更積極重整程序代碼并增加新的功能。沒有測試,對于重整及增加新功能你會變得沒有信心;因為你不知道有甚么東西會破壞產出的結果。采用一個綜合的測試系列,你可以在改變程序代碼之后快速的執行多個測試并對于你的變動并未破壞任何東西感到有信心。在執行測試時如果發現臭蟲,原始碼仍然清楚的在你腦中,因此很容易找到臭蟲。在JUnit中撰寫的測試幫助你以一種極大(extreme)的步伐撰寫程序及快速的找出缺點。

      JUnit非常簡單

      撰寫測試應該很簡單--這是重點!如果撰寫測試太復雜或太耗時間,便無法要求程序設計師撰寫測試。使用JUnit你可以快速的撰寫測試并檢測你的程序代碼并逐步隨著程序代碼的成長增加測試。只要你寫了一些測試,你想要快速并頻繁的執行測試而不至于中斷建立設計及開發程序。使用JUnit執行測試就像編譯你的程序代碼那么容易。事實上,你應該執行編譯時也執行測試。編譯是檢測程序代碼的語法而測試是檢查程序代碼的完整性(integrity)。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品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>