1. 程式人生 > >使用PICT生成全面組合覆蓋的測試用例

使用PICT生成全面組合覆蓋的測試用例

綜述

PICT(The Pairwise Independent Combinatorial Testing Tool),是 Microsoft 內部使用一款測試用例設計工具。在實際使用過程中,需要輸入測試用例相關的引數,然後PICT可以有效的按照兩兩測試的原理來建立和設計測試用例,以獲得引數的全面組合覆蓋。

關於兩兩組合測試:
黑盒測試中,經常會遇到多種輸入引數的取值相互組合的情況,實踐證明及研究發現,大約70%的軟體故障是由一個或兩個引數共同作用引起的。所以組合測試,尤其是兩兩組合測試,在實際工程的軟體測試中被公認為是一種非常有效的測試方法。
但是實際工作過程中有成對組合量太大,PICT就很好的解決了這一問題。

安裝

點選官網下載,安裝後即可使用。

PICT安裝程式會將PICT路徑新增到系統變數,所以我們可以從系統上的任何路徑執行它。

簡單例項

PICT是一個命令列工具。執行前需要準備一份純文字的Model File,用來詳細描述被測介面的引數(或配置集、資料集等)。要說明的一點是:PICT的使用層面是非常廣的,不僅僅侷限於介面測試、功能測試等方面。
PICT生成一組簡潔的引數值選項,用來組成組合覆蓋測試用例。舉一個簡單的例子,現在有一個介面,它的支援的引數有:
params

首先新建一個test.txt檔案當做Model File,然後在文字工具中輸入引數集,要注意所有的標點都必須為英文標點:

page:int,string,
rows:int,string,
sekContract:string,int,
sekPm:string,int,

儲存後,在此文件目錄下按住shift後滑鼠右鍵,選擇”在此處開啟命令視窗”,執行命令pict test.txt,如下:
image.png

此時pict會把引數自由組合的情況,列印在螢幕上;為了方便檢視,我們也可以將輸出重定向一下:
輸出重定向

引數組合.txt
引數組合.xls

模型檔案(Model File)

模型選項(Model Sections)

一個模型檔案的標準定義格式如下,[sections]表示非必選:

#引數定義
parameter definitions
#子模組定義
[sub-model definitions] #約束定義 [constraint definitions]

模型的項應該始終按照上面所示的順序指定,不能重疊。引數定義部分首先出現,然後是可選的子模型和約束定義。如果使用它們的話,選項之間不需要任何特殊的分隔符。空行可以出現在任何地方。我們可以通過字首“#”字元來標識註釋。

約束定義

可用的操作符有:=, <>, >, >=, <, <=和模糊匹配萬用字元LIKE,模糊匹配表示式中,’*’匹配任何數量的字元,’?’匹配單個字元。為了更改預設操作符優先順序,也允許使用圓括號;邏輯運算子支援IN,IF,THEN,ELSE,NOT,AND,OR;
舉例:

[Size] < 10000
[Compression] = "OFF"
[File system] like "FAT*"
IF [Cluster size] in {512, 1024, 2048} THEN [Compression] = "Off";
IF [File system] in {"FAT", "FAT32"}   THEN [Compression] = "Off";
IF [File system] <> "NTFS" OR
 ( [File system] =  "NTFS" AND [Cluster size] > 4096 )
THEN [Compression] = "Off";

IF NOT ( [File system] = "NTFS" OR
       ( [File system] = "NTFS" AND NOT [Cluster size] <= 4096 ))
THEN [Compression] = "Off";