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

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

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

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

    從企業的運行價值鏈說起——我眼中的測試驅動開發(TDD)

    發布: 2010-6-09 09:57 | 作者: 不詳 | 來源: 領測測試網采編 | 查看: 56次 | 進入軟件測試論壇討論

    領測軟件測試網

      SmartAssistor assistor = new SmartAssistor();

      Assert.IsNotNull(assistor);

      assistor.Search(control.Categaries);

      assistor.Store();

      }

      此時,我發現在寫Search()和Store()方法的斷言時,有些問題存在。這兩個方法返回的結果應該是什么?是布爾值嗎?那么搜索得到的結果呢?存儲后形成的文件呢?對于用戶而言,是否只需要這兩個行為呢?

      仔細分析,我認為,Search()和Store()方法返回布爾值是可行的,但Search()還應該返回搜索結果。Store()方法也應該指定存儲的路徑和文件的格式。而用戶不僅僅需要搜索和存儲,同時還應該提供顯示的功能。所以,上面的測試代碼需要完善:

      [Test]

      public void TestSmartAssistor()

      {

      SmartAssistor assistor = new SmartAssistor();

      Assert.IsNotNull(assistor);

      SearchResult result = new SearchResult();

      Assert.IsTrue(assistor.Search(control.Categaries,out result));

      Assert.IsTrue(assistor.Store(result,@”D:\Smart Assistor\”,”               result.xml”));

      assistor.List(result);

      }

      此時根據測試代碼寫出的程序,應該說就具備個人智能助理的雛形了(所謂智能,還應具備自動搜索,自動匹配,自動分類等諸多功能,本文只是根據該項目提出TDD的一些觀點,因此這些功能省略)。

      二、通過TDD進行重構)

      “發現價值”的過程遠遠沒有結束。通過測試代碼,我們從客戶的角度來考慮,會發現一些問題。在已經實現的代碼中,SmartAssistor類型實現了Search,Store和List的功能。但這些職責是否真的應該由它承擔呢?表面上來看,是這樣的。然而根據OO的思想來看,這個SmartAssistor所承擔的責任是否太多了?它和搜索的結果、顯示的方式耦合度是否太緊密了?這個設計將實現抽象出來了嗎?這些都應該是我們考慮的重點?紤]的時機,可以是設計之初,也可以是重構之時。

    延伸閱讀

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


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