<ruby id="h6500"><table id="h6500"></table></ruby>
    1. <ruby id="h6500"><video id="h6500"></video></ruby>
          1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>
            • 軟件測試技術(shù)
            • 軟件測試博客
            • 軟件測試視頻
            • 開(kāi)源軟件測試技術(shù)
            • 軟件測試論壇
            • 軟件測試沙龍
            • 軟件測試資料下載
            • 軟件測試雜志
            • 軟件測試人才招聘
              暫時(shí)沒(méi)有公告

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

            如何在Visual C++ 2010中實(shí)踐測試驅動(dòng)開(kāi)發(fā)

            發(fā)布: 2011-2-23 11:36 | 作者: 陳良喬 | 來(lái)源: it168 | 查看: 89次 | 進(jìn)入軟件測試論壇討論

            領(lǐng)測軟件測試網(wǎng)

             對Salary類(lèi)進(jìn)行重構之后,所有測試都可以通過(guò)了,這樣也就實(shí)現了用測試來(lái)驅動(dòng)開(kāi)發(fā)。當然,我們這里只是對設計中的第一個(gè)功能進(jìn)行了足夠的測試,完成了第一個(gè)功能的開(kāi)發(fā)。我們還可以在這個(gè)基礎上編寫(xiě)更多的測試,進(jìn)入下一個(gè)以測試驅動(dòng)開(kāi)發(fā)的迭代。我們可以按照上面的過(guò)程以測試來(lái)驅動(dòng)第二個(gè)功能的實(shí)現:

              [TestMethod]

              void TestInvalidInput()

              {

              std::unique_ptr pClass(new Salary(2003));

              // 測試第二個(gè)功能點(diǎn):能夠對錯誤的輸入年份返回相應的錯誤代碼

              Assert::AreEqual(-1, pClass->GetSalary(2001));

              // 測試臨界輸入是否返回正確結果

              Assert::AreEqual(1000, pClass->GetSalary(2003));

              };

              為了讓這個(gè)測試通過(guò),我們必須對Salary進(jìn)行重構,讓它對錯誤的輸入進(jìn)行處理并返回相應的錯誤代碼:

              class Salary

              {

              public:

              Salary(int nBaseYear)

              :m_nBaseYear(nBaseYear)

              {};

              public:

              int GetSalary(int nNow)

              {

              int nYears = nNow - m_nBaseYear;

              // 對錯誤的輸入進(jìn)行處理并返回相應的錯誤代碼

              if( nYears < 0 )

              {

              return -1;

              }

              else

              {

              // 正確的輸入返回相應的計算結果

              return 300*(nNow - m_nBaseYear) + 1000;

              }

              }

              private:

              int m_nBaseYear;

              };

              經(jīng)過(guò)重構之后,測試項目中的所有測試都可以順利通過(guò),這也宣告了我們這一次的代代已經(jīng)順利完成。而通過(guò)不斷地進(jìn)行這樣的迭代,我們可以實(shí)現設計中的所有功能。

              經(jīng)過(guò)簡(jiǎn)單的幾次迭代,我們就以測試驅動(dòng)了Salary的實(shí)現。整個(gè)過(guò)程完美地體現了測試驅動(dòng)開(kāi)發(fā)的強大優(yōu)勢:這種從使用者角度對代碼進(jìn)行的設計通常更符合后期開(kāi)發(fā)的需求。因為關(guān)注用戶(hù)反饋,可以及時(shí)響應需求變更,同時(shí)因為從使用者角度出發(fā)的簡(jiǎn)單設計,也可以更快地適應變化。同時(shí),測試驅動(dòng)開(kāi)發(fā)將測試工作提到編碼之前,并頻繁地運行所有測試,可以盡量地避免和盡早地發(fā)現錯誤,極大地降低了后續測試及修復的成本,提高了代碼的質(zhì)量。在測試的保護下,不斷重構代碼,以消除重復設計,優(yōu)化設計結構,提高了代碼的重用性,從而提高了軟件產(chǎn)品的質(zhì)量。

              測試驅動(dòng)開(kāi)發(fā)的優(yōu)勢自不待言,從整個(gè)過(guò)程中我們也可以體會(huì )到,有了Visual C++ 2010的支持,面向C++的測試驅動(dòng)開(kāi)發(fā)也可以同樣的快捷而簡(jiǎn)便。測試驅動(dòng)開(kāi)發(fā)的優(yōu)勢如此誘人,而我們又有了Visual C++ 2010這個(gè)工具的強力支持,我們不妨一試,讓測試驅動(dòng)開(kāi)發(fā)使得我們的生活更加輕松。

            延伸閱讀

            文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/

            33/3<123

            關(guān)于領(lǐng)測軟件測試網(wǎng) | 領(lǐng)測軟件測試網(wǎng)合作伙伴 | 廣告服務(wù) | 投稿指南 | 聯(lián)系我們 | 網(wǎng)站地圖 | 友情鏈接
            版權所有(C) 2003-2010 TestAge(領(lǐng)測軟件測試網(wǎng))|領(lǐng)測國際科技(北京)有限公司|軟件測試工程師培訓網(wǎng) All Rights Reserved
            北京市海淀區中關(guān)村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
            技術(shù)支持和業(yè)務(wù)聯(lián)系:info@testage.com.cn 電話(huà):010-51297073

            軟件測試 | 領(lǐng)測國際ISTQBISTQB官網(wǎng)TMMiTMMi認證國際軟件測試工程師認證領(lǐng)測軟件測試網(wǎng)

            老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
              <ruby id="h6500"><table id="h6500"></table></ruby>
              1. <ruby id="h6500"><video id="h6500"></video></ruby>
                    1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>