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

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

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

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

    NuMega在測試過程中的應用

    發布: 2007-5-20 22:00 | 作者: 秋陽 | 來源: 秋陽的軟件測試專欄 | 查看: 249次 | 進入軟件測試論壇討論

    領測軟件測試網

    1 前言

    MILY: 宋體">我在本文中介紹NuMega Devpartner Studio 6.5測試工具套件(以下簡稱NuMega)在測試過程中應用的問題,以使該工具能更好的輔助我們的測試工作。

    文中所介紹的NuMega,專指NuMega for Visual C++版,對于NuMega for Visual Basic版和NuMega for Delphi版的使用說明,不在本文的介紹范圍之內,這一點請注意。

    2應用方案

    NuMega for Visual C++版共提供了三個工具BoundsChecker、TrueCoveragesTrueTime。我們也分三部分分別介紹BoundsChecker、TrueCoverages、TrueTime在測試過程中的應用。因為本文只討論工具與測試過程的結合,所以對工具功能只做簡單介紹。如果想要詳細了解工具的功能和使用,請參見我Blog中的另一篇文章——《單元測試工具Numega》。

    好了,現在就開始,先來說BoundsChecker。

    2.1 BoundChecker

    BoundsChecker主要定位程序在運行時期發生的各種錯誤。BoundsChecker能檢測的錯誤包括:內存泄露;資源泄露;對指針變量的錯誤操作;內存讀、寫溢出;  使用未初始化的內存;API函數使用錯誤等等。

    BoundsChecker是一個動態、白盒測試工具,最適合在單元測試階段、集成測試階段使用。在使用BoundsChecker對程序進行檢測時,要求有程序的源代碼。

    在單元測試階段、集成測試階段使用BoundsChecker的基本步驟是:

    1 為被測試程序制定測試用例。這一步很重要,因為BoundsChecker只能檢查被執行過的代碼中是否存在錯誤,如果某一部分的代碼沒有被執行到,即使這部分代碼有問題,BoundsChecker也不能發現。所以,在開始使用BoundsChecker前,為被測程序制定覆蓋全面的測試用例非常重要。

    2 執行測試用例。打開BoundsChecker功能,運行被測試的程序,按照制定好的測試用例,逐個執行。在操作被測試程序時,就象操作平常的程序一樣,輸入數據,點擊鼠標,觀察預期的結果,BoundsChecker會在后臺跟蹤、監視程序的運行情況,一旦發現錯誤,會馬上記錄下錯誤的相關信息。

    這個時候,BoundsChecker的價值就體現出來了。反映在功能上的錯誤,我們通過觀察馬上就可以發現,但對于象內存泄露這樣的“癌癥”,光從程序運行的外表是不能發現的,所以這種錯誤也就更可怕。通過BoundsChecker,能增強我們對程序內部正常運行的信心。

    3第三步就是分析錯誤了。根據BoundsChecker列出的錯誤列表,分析錯誤產生的原因。對于每一個錯誤,BoundsChecker會給出該錯誤的類型、描述、發生位置等信息。

    4除了用BoundsChecker檢查程序中的Run-Time錯誤外,還可以使用BoundsChecker檢測程序中使用的Win32 API函數在不同平臺上的兼容性。能檢測的平臺包括:Windows2000、Windows NT 4.0、Windows NT 3.51、Windows 98、Windows 95、Windows CE 2.0,除此之外,還可以檢測代碼是否符合標準C和擴展標準C的要求。

    5最后,根據發現的問題,提交檢測報告。

    BoundsChecker的應用就是這些內容。再重申一遍,使用該工具時,制定覆蓋全面的測試用例非常重要,因為BoundsChecker只能檢查被執行過的代碼中是否存在錯誤,對于沒有被執行過的代碼,BoundsChecker不會有任何反映。

    2.2 TrueCoverage

    覆蓋率對于測試來說是一項重要數據。在我們執行了針對一個功能模塊的所有測試用例后,非常想了解測試對于模塊代碼的覆蓋情況,也就是測試覆蓋率達到了多少,以此來判斷測試工作是否可以結束,如果還未達到測試目標,如何進一步補充測試用例。對于這些問題,如果沒有覆蓋率統計工具的幫助是很難進行的。

    TrueCoverage的功能就是統計測試覆蓋率,它恰好能為我們就上面這個問題提供幫助。在使用TrueCoverage記錄程序的覆蓋情況時,要有程序的源代碼。

    TrueCoverage統計測試覆蓋率時是針對代碼級的,所以只適合應用于單元測試階段和集成測試階段,將TrueCoverage(包括類似的覆蓋率統計工具)應用到系統測試上去是不適宜的。

    在單元測試、集成測試階段使用TrueCoverage的基本步驟是:

    1制定出盡可能完善的測試用例。這一步和是否使用TrueCoverage沒有太大的關系,不管你是否統計覆蓋率,對于測試來說,制定出完善的測試用例都是必要的。

    2打開TrueCoverage,啟動被測試的程序,依次執行測試用例。你就象往常那樣操作程序,按照測試用例進行輸入,觀察實際輸出,并與預期輸出進行比較,最后記錄下每個測試用例的執行結果。TrueCoverage會在后臺記錄程序的執行覆蓋情況。

    3查看、分析測試覆蓋情況。在執行完事先制定好的測試用例后,根據TrueCoverage提供的測試覆蓋率信息,決定測試工作是否可以結束,如果還未達到測試目標,我們可以根據TrueCoverage提供的測試覆蓋率信息,進一步補充測試用例。TrueCoverage用不同的顏色標識被執行的代碼和未被執行的代碼,這很有利于我們補充測試用例。

      4最后,達到事先要求的覆蓋率。

    TrueCoverage給出的覆蓋率是“語句覆蓋”,是一種低強度的覆蓋率,所以我們測試的項目,用TrueCoverage統計覆蓋率后,應使其盡量趨近100%。

    TrueCoverage在我們的測試工作中是一個輔助、引導的角色,它本身并不能發現程序中的錯誤。它的作用是使我們能夠了解當前測試達到的狀況,并為進一步增強測試提供依據。

    2.3 TrueCoverage和BoundsChecker的結合使用

    TrueCoverage和BoundsChecker這兩個工具可以結合起來使用。NuMega集成到VC++ IDE后,在TrueCoverage和BoundsChecker菜單下,都有一個菜單項[Rebuild with BoundsChecker and TrueCoverage],通過這一菜單命令編譯連接生成的可執行文件,在程序運行結束后,能同時得到TrueCoverage和BoundsChecker(FinalCheck)的檢測結果。

    2.4 TrueTime

    如何提高代碼的運行效率,是開發過程中的一個重要問題。程序運行速度慢,但不容易找到是在哪里出了問題,查找性能瓶頸的位置就成為解決問題的關鍵。TrueTime 就是一個對應用程序的運行性能進行分析,查找程序性能瓶頸的工具。

    TrueTime 能收集、顯示應用程序運行性能的相關數據,這些數據包括每個模塊(EXE、DLL、OCX等)的運行性能, 每一個函數的運行性能,對于有源代碼的部分,TrueTime還可以給出每一行代碼的運行性能。這些正是我們進行性能測試所需要的數據。

    使用TrueTime的基本步驟是:

    1制定測試用例。TrueTime只能給出被執行過的代碼的性能數據,未被執行的代碼不會顯示性能數據。

    這一步看起來好象與使用BoundsChecker、TrueCoverages的第一步一樣,其實不然。在BoundsChecker、TrueCoverages中,要求測試用例制定的盡可能詳細、全面,但在TrueTime 中沒有這個要求,這是因為使用TrueTime的目的與前兩者不一樣。TrueTime用來測試程序的運行性能,但我們并不是對程序任何部分的性能都感興趣,因此,我們只需要那些覆蓋了想要了解其性能的功能部分的測試用例,比如:實際運行速度較慢的功能部分、需提供給用戶性能指標的功能部分等。所以,在使用TrueTime測試程序的性能數據時,制定的測試用例是有針對性的,并不要求有多么多么的全面。

      2 打開TrueTime,啟動被測試的程序,執行測試用例。TrueTime會在后臺記錄下程序的性能數據。

     3 查看、分析、報告性能數據。在執行完有針對性的測試用例后,根據TrueTime提供的性能數據,可以得出程序的性能測試報告。

    3結束

    BoundsChecker、TrueCoveragesTrueTime在測試中的應用就介紹到這了。這三個工具,最適合應用的測試階段是單元測試、集成測試階段,當進行這兩個測試階段的工作時,可考慮使用這些工具。

    延伸閱讀

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

    TAG: 白盒測試 單元測試 numega boundschecker truecoverages truetime


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(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>