一. 安裝說明
第一步:
開啟安裝來源程式,同普通的windows應用程式一樣,選擇安裝路徑,完成安裝。
第二步:
從案頭或者 菜單開啟C++Test,將彈出類似於下面的一個視窗:這裡的machine ID就是C++Test和主機綁定的資訊。這個machine ID需交給 華唐公司,來申請license。而由於license的種類不同,可以分為local license(單機版)和net license(網路版)。
第三步:
將相應的license和expire date粘貼到相應的位置,如果資訊正確,系統將提示license ok。如果資訊不正確,系統將提示wrong license。輸入正確的license,開啟 C++Test,就可以進入C++Test的使用者介面了。
二. 介面說明
1. 原始碼
在原始碼視窗可以看到我們所測試的代碼,介面非常友好,當選擇代碼時,被選擇的代碼也會以藍色塊的形式出 現。並且,當我們進行了靜態分析和動態分析時,這裡我們也可以非常直觀的觀測到靜態分析和動態分析的結果。代碼左側的紅色精靈帽表示靜態分析時出現問題的所在,藍色驚嘆號則表示動態分析時出現問題的所在。點擊相應的地方,會出現對問題的一個簡單描述。
2. 靜態分析
在靜態分析欄中的Results標籤是對靜態分析結果的一個羅列。每個紅色精靈帽都代表 一種違規行為,而它旁邊的數字則代表測試代碼中出現這種違規的次數。緊接著的字母表明違規行為的嚴重層級。再後面就是對這條規範的大致描述以及規則編號。
而 標籤Rules Manager則是對這些規則的管理,當使用者需要使用某條規則的時候,只需要在相應規則左側的方框內打上勾就表明選擇了該條規則。而當使用者不需要某條規則檢查的時候,只需要去掉相應規則的勾就可以了。
3. 動態分析
在動態測試中的Test Case/Results欄中,主要是對測試案例的一個總體管理。在這裡,所有的測試案例的狀態都一目瞭然,綠色表示成功,紅色表示失敗。使用者可以自己添加或修改測試案例。
而Stub Tables欄則是對樁函數的管 理,Suppressions則是對測試對象的一個管理。例如,上面的Data類有很多個成員函數,當使用者並不想全部都測,而只是測其中的幾個。這個時候 就可以通過Suppressions進行選擇。
除此之外,上面的Tree filter還提供強大的濾波器功能,可以讓使用者更好的關注他們的焦點,例如只看最近一次測試的失敗用例。
4. 過程進度
這欄就是在測試進行中,C++Test告訴使用者進度的一個對話方塊。所有的測試都分成靜態 動態兩部分。紅X表示此次測試不進行的部分,綠勾代表此次測試進行了的部分。後面的數字則是對測試案例的統計。例如(6/7)表示,總共有7個測試案例, 其中6個已經進行了測試。
三. 操作
1. 建立測試環境
(1) 開啟C++Test,選擇file/open file,選擇 C++Test安裝目錄下examples/cpptest_demo.cpp,這個cpp檔案將出現在當前的project下。
(2) 在當前project下,右擊cpptest_demo.cpp,選擇read symbols(讀入符號表),此時C++Test將parse(剖析)這個來源程式,分析出此檔案的檔案結構。
(3) 右擊cpptest_demo.cpp,選擇build test,C++Test將自動的建立測試環 境,包括測試驅動程式,樁模組。
2. 靜態測試
單擊靜態測試的按鈕,C++Test將自動完成對原始碼的靜態測試,也就是我們所說的代 碼走查,走查所用到的規範可以在靜態測試標籤的rule manage下看到。
,右側就是靜態測試(代碼走查)的結果。每條違規資訊包括對違 規的描述,該錯誤共發生的次數以及相對應的具體位置。而下面的rule desription則是對這條規則的一個比較詳細的描述。頂層的檔案夾後面的 “I=4 PV=1 V=33……”描述的是整個的對違規資訊的統計。
I表示information,通知行為
PV表示 possible violation,可能的違規行為
V表示violation,違規行為
PSV表示 possible servere violation,可能的嚴重違規行為
SV表示servere violation,嚴重違規行為。
3. 動態測試(Native)
單擊動態測試的按鈕,C++Test將自動完成代碼的動態測試。可以從 各個層面上(單個測試案例,整個函數的測試案例,整個代碼的測試案例)去看相對應代碼的覆蓋率。操作的時候,只需要右擊相應的層次(例如一個測試案例),選擇show coverage,就可以看到對應的覆蓋率了。
,右側就是對動態測試的一個整體描繪。列舉了所有的測試案例,並且用顏色來區分 成功和失敗的測試案例,綠色代表成功通過了的測試案例,而紅色代表沒有通過也就是失敗了的測試案例,對於每個錯誤的測試案例都有一個大致的描述。
每 個測試案例或者各個節點上都做到了相應的覆蓋率資訊,包括了LC(語句覆蓋),BBC(塊覆蓋),PC(路徑覆蓋),DC(決策覆蓋),MCDC(多條件 決策覆蓋)以及CC(條件覆蓋)。
此外,上面的tree filter過濾器功能可以協助使用者迅速 察看到自己關心的焦點或錯誤。
4. 動態測試(Source)
單擊動態測試的按鈕,
C++Test將自動完成代碼的動態測試 (Source)。
5. 產生報表
選擇file/generate report,根據對報表的需求,選擇適當的報表內容種類(例如 dynamic analysis1,coverage statistic1)。然後就會產生一個HTML格式的報表。
報表有多種類別和格 式。 可以按照自己的需要來挑選。