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

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

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

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

    軟件測試之代碼測試的簡單框架

    發布: 2009-3-24 11:18 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 59次 | 進入軟件測試論壇討論

    領測軟件測試網 寫完代碼后,你當然要測試它。有許多種方法來測試代碼:你可以在你的代碼中加些斷點,或者觀察實際發生的情況并和你預計的結果相比較,又或者寫些測試程序等等。

            給代碼寫測試通常是測試代碼的最好方法。因為寫出來的測試可以一遍又一遍地執行。當你修改了實現,你可以再次運行測試來檢查一下你是否引入了任何bug。這種方法可以將你從調試中拯救出來,并引領你生產出具有更低錯誤傾向的代碼。

            作為一個一般的方針,在開發你的測試的時候,我們建議你不要把結果打印到屏幕上;而是,根據輸入數據,用asserts創建一個后置條件指明期望得到哪些輸出數據。

            如果你在運行測試時把結果打印到了屏幕上,開始時你會去分析這些結果。然而,隨著時間延長,你會越來越不注意這些打印到屏幕上的數據。即使數據指出了一個錯誤,你也可能不會意識到。軟件測試技術

            此外,如果別的人試著運行測試,他們不得不首先弄明白這些打印出來的數據是什么意思,這可能要花不少時間。反過來,如果你用了asserts,人們就只要去運行你的測試。如果發生了錯誤,他們會被提示在哪一行發生了錯誤,他們就可以去修正它。

            這兒是一個測試例程的例子:

    #include
    #include
    // 整理一個字符串的前導和追尾空白,
    // 返回整理后的字符串
    std::string trim_spaces( const std::string & str)
    {
    /* trim_spaces 的實現*/
    }
    void testTrimSpaces()
    {
    assert( trim_spaces( \" abc\") == \"abc\");
    assert( trim_spaces( \"def \") == \"def\");
    assert( trim_spaces( \" this is a test \") == \"this is a test\");
    assert( trim_spaces( \"\") == \"\");
    assert( trim_spaces( \" \") == \"\");
    }

            怎樣建立一個測試框架,和建立它每一個步驟:

            第一步:將測試代碼和實際代碼清楚地分隔開。要做到這一步,一個很簡單的方法是把所有用來做測試的文件都放到一個特別的目錄中去。每個用來做測試的文件的名字都應該以test開頭,然后加上它所測試的模塊/類名。例如,從testWordTokenizer.cpp文件的名字就可以看出,它是用來測試一個斷詞類(word tokenizer class)的。

            測試用的代碼僅在執行測試時才被編譯。當生成實際的應用程序時,測試代碼會在預處理階段就被移除。如果我們的每個測試文件都遵循下面的模式就可以保證這一點:

    // Test.cpp
    #ifdef TESTING
    /* testing code*/
    #endif // TESTING
    // End of file

            于是,如果定義了TESTING,我們就是在做測試;否則,我們就是在從實際的代碼生成應用程序。

            第二步:所有用來測試代碼片斷的函數的名字都應該以Test或test開頭。對于你所測試的每個模塊/類,都要有一個主測試函數負責調用其他測試函數來測試模塊/類的各個代碼段。這樣你就不需要暴露出所有函數——只要暴露出主測試函數就可以了,像下面的例子:

    // TestUrlUtility –用于測試 \"Url Utility 函數族\"
    #if defined( TESTING)
    #include \"UrlUtility.h\"
    // 這個命名空間中的函數,從這個源文件外部是不可見的
    namespace // 匿名命名空間
    {
    void TestDivideURL()
    { /* 測試代碼 */ }
    void TestIsUrlValid()
    { /* 測試代碼*/ }
    void TestIsHttpUrlValid()
    { /* 測試代碼*/ }
    void TestParseHttpUrl()
    { /* 測試代碼*/ }

    延伸閱讀

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

    TAG: 代碼 框架 軟件測試

    21/212>

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