隨筆 - 3, 文章 - 152, 評(píng)論 - 17, 引用 - 0
          數(shù)據(jù)加載中……

          Test-Driven Development

           

          Test-Driven Development

          http://www.xprogramming.com/xpmag/whatisxp.htm#test

          Extreme Programming is obsessed with feedback, and in software development, good feedback requires good testing. Top XP teams practice "test-driven development", working in very short cycles of adding a test, then making it work. Almost effortlessly, teams produce code with nearly 100 percent test coverage, which is a great step forward in most shops. (If your programmers are already doing even more sophisticated testing, more power to you. Keep it up, it can only help!)

          It isn't enough to write tests: you have to run them. Here, too, Extreme Programming is extreme. These "programmer tests", or "unit tests" are all collected together, and every time any programmer releases any code to the repository (and pairs typically release twice a day or more), every single one of the programmer tests must run correctly. One hundred percent, all the time! This means that programmers get immediate feedback on how they're doing. Additionally, these tests provide invaluable support as the software design is improved.

          在上面的圖中,列出的的是XP的12個(gè)團(tuán)隊(duì)實(shí)踐。Test-Driven Development是其中之一。
          Kent Beck 的著作TDD(Test Driven Development) 中詳細(xì)講述了測試驅(qū)動(dòng)開發(fā)。
          在XP中測試是一種設(shè)計(jì),不是簡單的為了測試你的功能是否實(shí)現(xiàn)。測試先行一個(gè)目的
          是可以在代碼編寫之前,保證測試已經(jīng)寫好;其實(shí)這些測試的另一個(gè)目的就是設(shè)計(jì)接口,
          保證接口在以后的修改過程中能夠滿足測試(設(shè)計(jì))。當(dāng)你有意或無意修改接口的時(shí)候,你必須同時(shí)
          修改測試 要改動(dòng)接口的時(shí)候,也應(yīng)該是先修改測試,再修改代碼。而不是修改代碼等著報(bào)錯(cuò)再修改
          測試(設(shè)計(jì))。(測試必須100%通過才能進(jìn)行下一個(gè)功能),這樣測試也是在提醒你,接口已經(jīng)改變。
          實(shí)際上,設(shè)計(jì)已經(jīng)改變。當(dāng)你修改單元測試的時(shí)候,可能就會(huì)遭到抱怨。為什么?你修改了設(shè)計(jì)
          ,別人的代碼是依賴你修改前的測試(設(shè)計(jì)),那么新的測試(設(shè)計(jì))中的變動(dòng)可能要影響到
          別人已有的代碼。
           
          當(dāng)你使用TDD的時(shí)候一定要說明是測試驅(qū)動(dòng)開發(fā)還是測試驅(qū)動(dòng)設(shè)計(jì)。這兩者是有區(qū)別的。測試驅(qū)動(dòng)
          開發(fā),是通過測試定義所要開發(fā)的功能的接口,然后實(shí)現(xiàn)功能的開發(fā)過程。對(duì)于測試驅(qū)動(dòng)設(shè)計(jì),在XP中似乎
          已經(jīng)消失了,而是被測試驅(qū)動(dòng)開發(fā)所取代。另外在XP中有用于描述設(shè)計(jì)的,SimpleDesign ,Design Improvement.
          在XP中測試是一種設(shè)計(jì),設(shè)計(jì)之后才有開發(fā),這也就是為什么要測試先行了。
          在XP中測試是一種文檔,用于描述設(shè)計(jì)。

          posted on 2005-07-25 12:22 閱讀(173) 評(píng)論(0)  編輯  收藏 所屬分類: Test-Driven Development

          主站蜘蛛池模板: 西畴县| 临清市| 平遥县| 德化县| 茂名市| 兴化市| 江华| 寻乌县| 静海县| 肃宁县| 盐边县| 洪雅县| 皋兰县| 晴隆县| 天祝| 山丹县| 察隅县| 沁阳市| 闸北区| 鄱阳县| 衡东县| 建宁县| 中超| 韶山市| 锡林浩特市| 饶河县| 交口县| 得荣县| 沂水县| 白银市| 东方市| 福建省| 盐源县| 乐东| 吉林省| 大渡口区| 新晃| 章丘市| 荣成市| 漳州市| 兰考县|