Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Test - Driven Development (TDD)

Test - Driven Development (TDD)

真實世界的測試開發技術導論
by Ruddy Lee老師,in 2009 Microsoft TechDays (Taiwan)

hatelove

March 26, 2012
Tweet

More Decks by hatelove

Other Decks in Programming

Transcript

  1. 如何開始寫程式? 列出與題目有關的程式組件  作一張清單 將清單變成方塊圖示(模組化)  Function Diagram 決定開發順序後,取出 一個模塊,再細分功能

    一直到它適合寫程式的地步。  作一張測試清單 依這張清單變成我們的清單,然後開始: 先寫 測試程式 後 寫程式
  2. TDD測試開發法 如何開始寫程式 針對客戶的需求,先腦力激盪出一張清單。 再將清單依功能分類後模組化。 -- Function Diagram 功能圖 依 Input

    – Process – Output 再細分功能模組。 -- HIPO 結構圖 當細化到可以開始撰寫程式的地步時,請先列一份 『測試清單』。 有了這份清單後便可以開始,TDD測試開發的程序 Function Diagram功能圖 或 HIPO結構圖都只是用來協助我們 作整體架構思維的工具圖,並非絕對必要的文件,測試清單才是。
  3. TDD 為什麼要先寫測試? 讓思慮更為周詳 (second thought) 就如同試用產品一般,沒試用過我們怎會知道產品的缺 點在那,程式也是一樣。先寫測試碼就是先想像要如何 使用即將要寫的函式,在寫測試碼的同時,我們同時也 在設計函式。有時會發現難以測試,而想出更簡潔的介 面。當我們能輕鬆寫出測試碼時,也意味著目標函式易

    於使用,之後才方便重用。 先寫測試,相當於先寫範列一樣,輸入是甚麼?預期輸 出是甚麼?可能有什麼例外的情況?這個時候,我們再 來寫的程式,一定會比較有用。我們也不會任意的加油 添醋。 先寫測試,能夠確保之後所寫出來的每一行程式碼都是有意 義的。 除了可以幫助我們的設計更明確化及減少寫多餘程式碼 的機會外,。沒有測試碼的重構是很危險的,而沒重構 的程式碼是很難驗證他的效率的 ,就像在底層不穩的地 基上不斷加蓋偷工減料的高樓一般。先寫測試的好處還 有一點,就是能提供自動化驗證,省去了手動驗證。
  4. Test-Driven Development in Microsoft® .NET Test first — 是先寫測試程式,然後再編碼使其通過測試。 Extreme

    Program 『計畫好一個小功能』後就馬上測試,這叫做”測試先行” (Code the unit test first)。它的好處是程式寫完,單元測試(unit test)也 做完了,因為邊寫邊做測試,較不會忽略什麼功能沒有測試到。 Document your code with tests, rather than paper Use test lists to generate explicit requirements and completion criteria Refactor—and improve the design of existing code Alternate programmer tests with customer tests Change how you build UI code—a thin layer on top of rigorously tested code Use tests to make small, incremental changes—and minimize the debugging process – Keep it simple. Deliver software that’s verifiable, reliable, and robust
  5. 相關課程與內容 GuideLine for Test Driven Development http://msdn.microsoft.com/en-us/library/aa730844(VS.80).aspx (Jeffrey Palermo )

    http://msdn.microsoft.com/en-us/library/ms379625(VS.80).aspx (Unit test) http://www.youtube.com/watch?v=G9gfU0uOSiA ( TDD on youtube) 9/22/2009 4:30PM – 5:45PM Room 409 http://dannorth.net/introducing-bdd (Behaviour Driven Development )
  6. http://technet.microsoft.com/zh- tw/default.aspx Resources for IT Professionals http://msdn.microsoft.com/zh- tw/default.aspx Resources for

    Developers www.microsoft.com/learning (產品相關連結1) Microsoft Certification and Training Resources (連結名稱1) 其他資源 http://support.microsoft.com/default.aspx?ln=ZH-TW (產品相關連結2) Microsoft 技術支援與服務 (連結名稱2) http://www.microsoft.com/taiwan/security/default.mspx (產品相關連結3) Microsoft 資訊安全首頁 (連結名稱3)
  7. © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows

    Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.