查看全部128種考試
軟件水平考試
 考試動(dòng)態(tài) 報(bào)考指南 歷年真題 模擬試題 復(fù)習(xí)資料 心得技巧 專業(yè)英語 技術(shù)文章 軟考論壇 考試用書
 程序員 軟件設(shè)計(jì)師 網(wǎng)絡(luò)管理員 網(wǎng)絡(luò)工程師 系統(tǒng)分析師 數(shù)據(jù)庫系統(tǒng)工程師
1
2
3
4
5
6
7
8
9
10
yanruijie  
【字體: 從企業(yè)的運(yùn)行價(jià)值鏈說起——我眼中的測(cè)試驅(qū)動(dòng)開發(fā)(TDD)
從企業(yè)的運(yùn)行價(jià)值鏈說起——我眼中的測(cè)試驅(qū)動(dòng)開發(fā)(TDD)
spks.exam8.com 來源:考試吧(Exam8.com) 更新:2007-1-25 18:11:29 軟件水平考試 考試論壇

  然后,這個(gè)類型能夠做些什么呢?我們把個(gè)人智能助理的功能進(jìn)行分類,應(yīng)該包括三個(gè)功能:
  1、定制;
  2、搜索;
  3、存儲(chǔ)。

  仔細(xì)想想,實(shí)際上只有搜索和存儲(chǔ)才是智能助理的職責(zé)所在,而定制不過是智能助理要運(yùn)轉(zhuǎn)的一個(gè)條件罷了。既然如此,從客戶應(yīng)用的順序來考慮,我們應(yīng)該先實(shí)現(xiàn)定制的功能。要定制類別,就應(yīng)該具備類別類型,而定制類別這項(xiàng)功能,則應(yīng)該由一個(gè)專門的控制器來承擔(dān)責(zé)任。
  [SetupUp]
  public void InitObject()
    {
       Category cg1;
       Category cg2;
       CategoryContainer cgContainer;
      SmartController control;
    }

  [Test]
    public void TestCategory()
    {
       cg1 = new Category(”SoftWare Engineering”,”TDD”);
       cg2 = new Category(”SoftWare Engineering”,”Design Pattern”);
       cgContainer = new CategoryContainer();
       cgContainer.Add(cg1);
       cgContainer.Add(cg2);
 
       Assert.IsNotNull(cgContainer);
       Assert.AreEqual(cg1,cgContainer[0]);
       Assert.AreEqual(cg2,cgContainer[1]);
    }

  [Test]
    public void TestController()
      {
         control = new SmartController();
         Assert.IsNotNull(control);
         Assert.IsTrue(control.CustomizeCategories(cgContainer));
      }

  上面的測(cè)試代碼完全從用戶的應(yīng)用角度來考慮的。要定制類別,必須具備類別類型Category,它應(yīng)該實(shí)現(xiàn)一個(gè)帶參的構(gòu)造函數(shù),傳遞主類別和子類別。由于定制的類別可能會(huì)很多,所以需要一個(gè)類別容器CategoryContainer。

  而定制類別,則由控制器SmartController完成。定制的方法CustomizeCategories()定制多個(gè)類別,并返回布爾型,以確定定制是否成功。通過上述的測(cè)試代碼,寫出相應(yīng)的程序應(yīng)該不難吧。

  接下來應(yīng)該考慮搜索和存儲(chǔ)功能了。在前面我提到,這兩個(gè)功能應(yīng)該是SmartAssistor類型的職責(zé)。先修改最初的測(cè)試代碼:
  [Test]
    public void TestSmartAssistor()
      {
         SmartAssistor assistor = new SmartAssistor();
         Assert.IsNotNull(assistor);
         assistor.Search(control.Categaries);
         assistor.Store();
      }

  此時(shí),我發(fā)現(xiàn)在寫Search()和Store()方法的斷言時(shí),有些問題存在。這兩個(gè)方法返回的結(jié)果應(yīng)該是什么?是布爾值嗎?那么搜索得到的結(jié)果呢?存儲(chǔ)后形成的文件呢?對(duì)于用戶而言,是否只需要這兩個(gè)行為呢?

  仔細(xì)分析,我認(rèn)為,Search()和Store()方法返回布爾值是可行的,但Search()還應(yīng)該返回搜索結(jié)果。Store()方法也應(yīng)該指定存儲(chǔ)的路徑和文件的格式。而用戶不僅僅需要搜索和存儲(chǔ),同時(shí)還應(yīng)該提供顯示的功能。所以,上面的測(cè)試代碼需要完善:
  [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);
       }

  此時(shí)根據(jù)測(cè)試代碼寫出的程序,應(yīng)該說就具備個(gè)人智能助理的雛形了(所謂智能,還應(yīng)具備自動(dòng)搜索,自動(dòng)匹配,自動(dòng)分類等諸多功能,本文只是根據(jù)該項(xiàng)目提出TDD的一些觀點(diǎn),因此這些功能省略)。

更多軟考資料請(qǐng)?jiān)L問:考試吧軟件水平考試欄目

希望與更多網(wǎng)友交流,請(qǐng)進(jìn)入考試吧軟件水平考試論壇

 

上一頁  [1] [2] [3] [4] 下一頁

轉(zhuǎn)帖于:軟件水平考試_考試吧
文章搜索  
看了本文的網(wǎng)友還看了:
網(wǎng)友評(píng)論
昵 稱: *  評(píng) 分: 1分 2分 3分 4分 5分
標(biāo)題:   匿名發(fā)表    (共有條評(píng)論)查看全部評(píng)論>>
版權(quán)聲明 -------------------------------------------------------------------------------------
  如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請(qǐng)注明出處。
關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  付款方式  站內(nèi)導(dǎo)航  客服中心  友情鏈接  考試論壇  網(wǎng)站地圖
Copyright © 2004-2008 考試吧軟件水平考試網(wǎng) All Rights Reserved    
中國(guó)科學(xué)院研究生院權(quán)威支持(北京) 電 話:010-62168566 傳 真:010-62192699
百度大聯(lián)盟黃金認(rèn)證  十佳網(wǎng)絡(luò)教育機(jī)構(gòu)  經(jīng)營(yíng)許可證號(hào):京ICP060677