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

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

  • <strong id="5koa6"></strong>
  • Parasoft C++ Test簡介

    發表于:2008-01-22來源:作者:點擊數: 標簽:Testtest
    C++ Test是 Parasoft 公司出品的一個針對C/C++源代碼進行自動化 單元測試 的工具。它可以對源代碼進行三種測試:白盒測試、黑盒測試以及回歸功測試。 白盒測試 C++ Test對C/C++源代碼進行分析,針對所有的類的成員函數(包括:公共的、保護的以及私有類型的)進
    C++ Test是Parasoft公司出品的一個針對C/C++源代碼進行自動化單元測試的工具。它可以對源代碼進行三種測試:白盒測試、黑盒測試以及回歸功測試。

      白盒測試

      C++ Test對C/C++源代碼進行分析,針對所有的類的成員函數(包括:公共的、保護的以及私有類型的)進行測試。測試的方法是判斷當輸入一個非法的參數時,有關函數能否正確處理。(Record命令)在此狀態下軟件針對指定的文件、類或者是函數自動生成測試用例。

      黑盒測試

      不對源代碼進行分析,并且只針對類的公共接口函數進行測試。(Play命令)

      在此狀態下軟件不自動生成測試用例,而是直接運行在"測試用例編輯器"中當前已有的測試用例(手工添加的)。

      回歸功測試

      在修改源代碼后用原有的測試用例進行重新測試。(Play命令)

      建議在實際使用中首先用Record命令執行一遍白盒測試,讓軟件根據函數自動生成相應的測試用例,然后再根據需要手工添加一些測試用例,最后再通過Play命令執行一遍黑盒測試。

      示例一

      假設我們要測試如下一個類的成員函數:int mode2(int nParam),則在進行白盒測試時軟件會自動為我們生成如下6個測試用例:

      nParam = 1, 0, -1, 2147483647, -2147483647, 230

      可以看出,軟件測試用例的生成主要還是測試一些邊界值,例如最大值、最小值、0等。

      示例二

      假設我們要測試如下一個類的成員函數:void strcpy(char* dest, char const * src),則軟件會自動生成如下9個測試用例:

      (1) dest = NULL, src = NULL

      (2) dest = "yPqKIJ!u_", src = NULL

      (3) dest = "", src = NULL

      (4) dest = NULL, src = "h)zn9b"

      (5) dest = "BsmC,/i=zI6CT}pX", src = "HcI{BeP(J"

      (6) dest = "", src = "% i?~TnON"

      (7) dest = NULL, src = ""

      (8) dest = "($MN

      (9) dest = "", src = ""

      可見,如果我們的代碼在實現時沒有對各種可能情況(尤其是邊界條件)進行特殊處理的話,則通過C++Test可以方便地發現這些潛在的問題。此外,對于一些特殊的測試情況,我們還可以手工創建測試用例。此外,采用C++ Test也可以幫助我們檢查程序的編碼情況,判斷是否嚴格按編碼規范進行開發。

      使用

      C++ Test的使用比較簡單,即可以針對一個VC工程進行全面的測試,也可以一次只對一個C/C++源文件進行測試。

      在試用中發現,如果項目比較大時,最好不要直接對一個工程進行自動測試,而應按文件一個一個地測試,否則可會會導致程序死掉。由于其是采用JAVA技術開發的,所以在使用時最好使用運算速度較快的機器。

    原文轉自:http://www.kjueaiud.com

    評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
    老湿亚洲永久精品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>