• <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

    發布: 2010-9-27 13:39 | 作者: 網絡轉載 | 來源: 領測軟件測試網采編 | 查看: 185次 | 進入軟件測試論壇討論

    領測軟件測試網

    4:MILY: 宋體">該窗口中顯示的數據與你在窗口3中的選擇相對應,顯示了各個函數的測試覆蓋情況。用鼠標雙擊某一個函數,會顯示該函數的源代碼,TrueCoverage用不同的顏色標識執行過的和未被執行過的代碼,如下圖所示:

    10.jpg

    4-4 TrueCoverage用不同顏色標識執行過的和未被執行過的代碼

        TrueCoverage 默認情況下,用綠色代表已執行的代碼,用紅色代表未被執行的代碼,用黑色代表不可執行的代碼(你可以通過選擇TrueCoverage的 [program/setting]菜單命令,在啟動的對話框中的setting標簽頁中進行設置,來改變這種默認情況)。通過這些信息,我們可以有針對性的增加、修改用例,來提高測試覆蓋率。

    4.2 對內聯函數的處理

    內聯函數雖然具有函數的形式,但其機制與函數完全不同,所以,在用TrueCoverage統計測試覆蓋率時,對內聯函數需要采用不同的處理方式。

    默認情況下,TrueCoverage是不會統計內聯函數的執行覆蓋率的。如果你需要得到內聯函數的覆蓋率數據,則需要進行一些額外的設置,具體方法是,在VC++的集成環境中選擇[TrueCoverage/TrueCoverage Setting...]菜單命令,彈出如下對話框:

    11.jpg

    4-5 內聯函數設置

    選中“Instrument inline function”復選框,點擊OK。

    然后選擇[TrueCoverage/Rebuild All with TrueCoverage] 菜單命令,重新進行編譯連接,對于這個可執行程序,TrueCoverage在其執行過程中就能夠記錄內聯函數的覆蓋率數據了。

    4.3 TrueCoverage與BoundsChecker的結合使用

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

    但這里有一個限定,那就是:必須由BoundChecker打開該exe程序執行,或是在VC++集成開發環境中通過Debug來運行該exe。這樣在執行完程序后,能同時得到TrueCoverage和BoundsChecker(FinalCheck)的檢測結果,如果你通過TrueCoverage來執行程序,則只會得到TrueCoverage檢測結果。這一點請注意。

    4.4 其他

    BoundsChecker一樣,要使用TrueCoverage,一定要有被測程序的源代碼。如果沒有源碼,TrueCoverage無法統計覆蓋率。

    除了可以在VC++的集成環境中使用TrueCoverage外,從 [開始菜單] 中啟動TrueCoverage,然后打開經TrueCoverage編譯連接生成的可執行文件,也可以進行覆蓋率的統計,操作方法與集成到VC++集成開發環境中TrueCoverage的操作方法一樣,在此不再贅述。

    TrueCoverages的使用介紹到此結束了,該工具對于我們進行測試覆蓋率統計、補充測試用例的工作很有用處。




    5 TrueTime

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

    TrueTime 能夠收集、顯示應用程序運行性能的相關數據,這些數據包括每個模塊(EXE、DLL、OCX等)的運行性能,每一個函數的運行性能,對于有源代碼的部分,TrueTime還可以給出每一行代碼的運行性能。通過這些數據,我們可以確定系統的性能瓶頸,進一步優化程序的性能。

    值得一提的是,TrueTime 在收集應用程序運行性能數據時,使用了一種叫做“Quantum”的技術!癚uantum”技術能夠將你測試的應用程序所包含的線程的運行時間,與操作系統中同時運行著的其他應用程序的線程的運行時間區分開來計算,也就是說,TrueTime只會計算花費在你的應用程序的線程上的時間片。這樣一來,在同一臺計算機上對同一應用程序的性能測試結果,不會因為在該計算機系統中所運行的程序的多少而改變。所以,只要程序運行的硬件條件不發生改變, TrueTime的測試結果也基本不會變化,所以TrueTime對應用程序性能測試的結果是可復現的。

    TrueTime安裝成功后,在你的VC++集成開發環境中,會多出一個名為TrueTime的菜單,如下圖所示:

    12.jpg

    5-1 TrueTimeVC++集成開發環境中添加的菜單

    這說明,TrueTime已經完好的集成到VC++集成開發環境中了。

    下面開始介紹TrueTime的具體使用步驟。

    5.1 使用TrueTime

    TrueTime使用步驟:

    1在VC++集成開發環境中打開你所要測試的項目。

    2 為TrueTime構造一個文件夾 ,具體方法是:

    首先,點擊[ Build/Configurations...]菜單命令。

    其次,在彈出的對話框中點擊 Add 按鈕。

    然后,在Configuration 編輯框中添入你為TrueTime創建的構造文件夾的名稱,這個名稱是任意的。比如我們取名為TrueTime。

    最后,在 Copy settings from組合框中選中 XXX—Win32 Debug項,然后點擊OK按鈕,接著點擊Close按鈕。

    現在,我們為TrueTime構造好了一個文件夾。

    3 點擊[Build/Set Active Configuration…] 菜單命令,選中你剛才為TrueTime創建的文件夾, 然后點擊OK按鈕。

    4 選中[TrueTime/Rebuild All with TrueTime] 菜單命令,用TrueTime的編譯連接器對程序重新進行編譯連接。TrueTime對程序進行編譯連接生成的中間文件、可執行程序,都會被放到你為 TrueTime創建的文件夾下。在這個編譯連接過程中,TrueTime向可執行程序中插入了一些信息,這也就是TrueTime能夠記錄程序運行性能的原因。

    5點擊[TrueTime/Run with TrueTime] 菜單命令,TrueTime被啟動,接著你的程序也被啟動并執行起來。

    這時,按照事先制定好的測試用例,執行測試用例。TrueTime會記錄下被執行到的程序代碼的性能數據。

    TrueTime界面中有一個工具條,它的外觀與我們在TrueCoverage中說到的那個工具條完全一樣,實現的功能也基本一樣,只是在TrueCoverage中,它控制的是覆蓋率,在這里,它控制的是性能數據。我們現在來對它做一下說明。如下所示:

    13.jpg

    5-2 運行控制工具條

    這個工具條在程序運行起來后,會由不可用狀態變為可用狀態。工具條上各按鈕功能為:

    按鈕1:如果在程序的運行過程中你按下了該按鈕,則性能統計只計算到此,雖然還可以繼續操作程序,但此時對程序的任何操作都不再計入到性能統計中去了。

    按鈕2:如果在程序的運行過程中你按下了該按鈕,則TrueTime會馬上顯示截止到目前為止的性能統計情況。之后你可以繼續操作程序,TrueTime會繼續在后臺記錄程序的性能數據。

    按鈕3:如果在程序的運行過程中你按下了該按鈕,則TrueTime會清除在這之前所記錄的性能數據,使各項性能數據為零。你可以繼續操作,TrueTime在后臺從零開始重新記錄程序的性能數據。

    6當你退出程序時,TrueTime會顯示本次操作過程中被執行到的模塊、函數、代碼行的執行性能數據。要想對程序開始一次新的性能統計,點擊TrueTime 中的[Program / Start]菜單命令即可。

    TrueTime檢測結果的界面如下:

    14.jpg

    5-3 TrueTime的運行界面

    區域1:

    列出了多次運行應用程序后,得到的多個性能檢測結果。雙擊某一項,會在區域2、區域3中顯示應用程序在這一次運行過程中的詳細性能數據。

    區域2:

    該窗口中顯示的數據與你在區域1中選中的某一次性能檢測相對應。窗口中顯示的數據以模塊(exe、dll等)為單位,列出了程序在某一次執行過程中,各模塊的性能數據。對于各模塊更為詳細的性能數據,顯示在區域3中。

    區域3:

    該窗口中顯示的數據與你在區域2中的選擇相對應,顯示了模塊中各個函數的性能數據。在區域3中有三個標簽頁——Function List標簽頁、Source標簽頁、Session Summary標簽頁。每個標簽頁中都列出了一組性能數據。其實要使用TrueTime,也就是要了解這些性能數據的含義。下面按照標簽頁對各項性能數據的含義進行解釋:

    Function List標簽頁

    Function List標簽頁中,用鼠標左鍵雙擊某一個函數,會彈出一個對話框,如下圖所示:

    15.jpg

    5-4 性能數據查看對話框

    通過該對話框,能夠查看該函數的父函數(調用該函數的函數)、子函數(被該函數調用的函數)的性能信息。

    Function List標簽頁列出了選定模塊所包含的函數的性能數據,這些數據包括:

    Function Name——函數名稱。

    % in Function——這是一個百分比,分子為該函數執行的時間,分母為系統從開始運行到結束的時間。

    % with Children —— 這是一個百分比,分子為該函數執行的時間,其中包括在該函數中又調用的子函數的運行時間,分母為系統從開始運行到結束的時間。

    Called——函數在本次的執行過程中被調用的次數。

    Image——函數所在的模塊名稱(模塊指EXE、DLL、OCX等)。

    % in Image——這是一個百分比,分子為該函數執行的時間,分母為該函數所在的模塊(EXE、DLL、OCX)運行的時間。

    Average——函數多次運行時的平均執行時間,其中不包括該函數調用的子函數的運行時間。

    First——函數第一次執行所耗費的時間。

    Minimum——函數的多次執行中,耗費時間最短的那一次所用的時間。

    Maximum——函數的多次執行中,耗費時間最長的那一次所用的時間。

    Average with Children——函數被多次執行時,平均執行時間,其中包括該函數調用的子函數運行的時間。

    Real——函數的平均執行時間,包括該函數調用的子函數所運行的時間,除此之外,還包括了花費在系統中同時運行著的其他應用程序的線程所耗費的時間。

    Address——函數的入口地址。

    Source標簽頁

    Source標簽頁列出了選定模塊的指定源文件所包含的各行程序代碼的性能數據,這些數據包括:

    Count——該行代碼在測試過程中被執行的次數。

    % of Function——這是一個百分比,分子為該行代碼執行的時間,分母為該函數執行的時間。

    % With Children——這也是一個百分比,分子為該行代碼執行的時間,分母為系統從開始運行到結束的時間。

    Time——在系統的運行過程中,該行代碼運行時間的累計和。

    Functions——該行代碼調用的函數的數量。

    Line#——代碼所在行的行號。

    Source——源代碼。

    Session Summary標簽頁

    Session Summarye標簽頁列出了該次性能統計的概要信息,內容很好理解,在此就不詳細介紹了。

    TrueTime為性能數據提供了四種不同的單位,分別是:CPU時鐘周期、微妙、毫秒、秒。我們可通過TrueTime中的[View/Scale]菜單項進行設置,如下:

    16.jpg

    5-5 性能數據單位設置菜單

    在菜單中選中哪一項,性能數據就會以該時間單位顯示。

    5.2 其他

    TrueTime可以收集沒有源碼部分(比如第三方的DLL、OCX等)的運行性能數據,但如果我們想獲得某一個模塊的詳細運行性能數據,還是需要該模塊的源代碼。

    除了可以在VC++集成環境中使用TrueTime外,從 [開始菜單] 中啟動TrueTime,然后打開經TrueTime編譯連接生成的可執行文件,也可以進行性能數據的收集,操作方法與集成到VC++集成開發環境中TrueTime的操作方法一樣,在此不再贅述。

    TrueTime的介紹到此就結束了。





    6 結束

    至此,NuMega for Visual C++的三個子功能——BoundChecker、TrueCoverage、TrueTime的使用方法,都已經介紹完畢,F在我們應該做的就是使用NuMega去測試程序,在實踐中進一步深入了解這個白盒測試工具。

    延伸閱讀

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

    33/3<123
    軟件測試論壇

    軟件測試技術相關文章

    軟件測試技術文章排行榜
    軟件測試技術分類最新內容
    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(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>