測試用例設(shè)計工具PICT詳細使用教程

“如何讓有限的測試具有代表整體的測試覆蓋率”

在測試工作中眷射,經(jīng)常會遇到這樣的場景:一個軟件功能有多個輸入項妖碉,每個輸入項有多個可選項欧宜;一個接口有多個參數(shù),每個參數(shù)有多個值匹中。這樣的情況在平時非常常見挂绰,如果按照排列組合焊切,得到的測試用例數(shù)目非常龐大专肪。

舉個直觀的例子就很容易明白了。有一個接口函數(shù)芽死,該函數(shù)有3個參數(shù)关贵,每個參數(shù)又可以取值4個揖曾,那如果要驗證所有參數(shù)傳入情況的話則需要測試4*4*4=64種情況炭剪。如果參數(shù)和取值狀態(tài)更多話奴拦,那將是一個災難绿鸣。

有沒有一種更好的辦法枚驻,少做一些測試再登,同時可以滿足測試覆蓋率呢锉矢?答案是有的,就是我們今天要講的“因子組合測試覆蓋Pairwise”绵估,下面先來簡單的介紹一下什么Pairwise国裳。

Pairwise是L.L.Thurstone(29 May1887–30 September 1955)在1927年首先提出來的。他是美國的一位心理統(tǒng)計學家渺杉,Pairwise也正是基于數(shù)學統(tǒng)計和對傳統(tǒng)的正交分析法進行優(yōu)化后得到的產(chǎn)物是越。

Pairwise基于如下2個假設(shè):每一個維度都是正交的挽放,即每一個維度互相都沒有交集辑畦;根據(jù)數(shù)學統(tǒng)計分析,73%的缺陷(單因子是35%暂筝,雙因子是38%)是由單因子或2個因子相互作用產(chǎn)生的,19%的缺陷是由3個因子相互作用產(chǎn)生的鸵赖。因此,Pairwise基于覆蓋所有2因子的交互作用產(chǎn)生的用例集合性價比最高而產(chǎn)生的茫打。

軟件測試分為黑盒測試和白盒測試,Pairwise算法是針對軟件測試中的黑盒測試提出來的一個行之有效的測試方法抬旺。

概念往往是晦澀難懂的荣堰,下面舉一個簡單的例子振坚,看完你就明白Pairwise算法是怎么挑選測試case的。

現(xiàn)有接口S宏娄,有三個輸入變量X窥淆、Y扛伍、Z,取值分別為:D(X)?=?{x1, x2}; D(Y)?=?{y1, y2}; D(Z)?=?{z1,z2}作媚,如下圖:

轉(zhuǎn)換樣例

Pairwise算法過程:從表的最后一行開始,如果這行的兩兩組合值能夠在上面的行或此表中找到,那么這行就可從用例集中刪除境蔼。

例如灶平,TC8包含的兩兩組合值為(X2-Y2,X2-Z2,Y2-Z2),X2-Y2在TC7中存在箍土,X2-Z2在TC6中存在逢享,Y2-Z2在TC4中存在,則此行刪除吴藻;

TC7包含的兩兩組合值為(X2-Y2,X2-Z1,Y2-Z1)瞒爬,X2-Y2在此表中已找不到重復的值,所以保留沟堡。依此方法侧但,最后得到的測試用例集如上面的右圖。很明顯航罗,經(jīng)過Pairwise過程禀横,測試用例數(shù)減少了一半。

那么如果每次都要進行手工計算除了非常浪費時間外粥血,也容易出錯燕侠,一旦參數(shù)多起來的話手工也無能為力了。那是不是可以開發(fā)一個自動化程序立莉,讓它自動輸出結(jié)果绢彤。這個想法非常好,但是不需要我們在重復造輪子了蜓耻,市面上已經(jīng)有了非常好用的工具茫舶,那就是PICT工具。

安裝與使用

進入安裝目錄刹淌,在目錄下新建一個txt文件如text.txt饶氏。

有一個登錄頁面,有用戶名有勾、密碼疹启、驗證碼、是否保存密碼選項蔼卡,其中用戶名喊崖、密碼、驗證最多只有1個為空雇逞。如果組合的話有5*3*4*2-3=117種情況荤懂,在txt中輸入與測試用例相關(guān)的所有參數(shù),如下圖1所示:


新建文件

test.txt的參數(shù)內(nèi)容塘砸,如下:

username:? 手機號,郵箱, 昵稱, 非空字符, 空

password: ? 正確密碼, 錯誤密碼, 空

captcha: ? ? 正確驗證碼, 錯誤驗證碼, 超時正確驗證碼, 空

save_password:? 是, 否

在保存的適合將編碼改為ANSI否則會亂碼

在安裝目錄運行cmd命令符节仿,輸入pict test.txt,結(jié)果如下圖:

命令運行結(jié)果

看起來不是很美觀掉蔬,可以通過命令pict test.txt >test.xls命令將結(jié)果輸出到text.xls文檔中廊宪,結(jié)果如下:

生成的文件

是從要求中知道矾瘾,用戶名、密碼箭启、驗證碼最多只有1個為空壕翩,那怎么處理呢?這個時候就需要用到PICT的約束條件了册烈。

PICT約束:

子模型約束: ?

{ Para1, Para2, Para3 } @ 2? #必須覆蓋任意的兩兩參數(shù)組合情況戈泼,不能有分號

條件約束(LIKE, IN, AND, OR, NOT)婿禽,必須分號結(jié)束:

[username]<>“空”;

[age] < 120 ;

[username]<>“空”O(jiān)R [age] < 120;

[nickname] LIKE “李*”;

IF [username] = “空”THEN NOT [password] = “空”;

IF [Cluster size] in {512, 1024, 2048} THEN [Compression] = "Off";

IF [username] = “空”THEN ?[password]<>“空”AND [captcha] <>“空”;

所以赏僧,為了滿足用戶名、密碼扭倾、驗證碼最多只有1個為空淀零,更改text.txt中的參數(shù)約束條件如下:

txt文件

輸出結(jié)果如下,可以發(fā)現(xiàn)沒有用戶名膛壹、密碼驾中、驗證碼最多只有1個為空的情況:

生成的文件樣例

如果要求覆蓋所有用戶名、密碼模聋、驗證碼組合測試項該怎么處理肩民?可以增加如下參數(shù)約束:

txt文件

以上就是關(guān)于約束的內(nèi)容了,在編輯test.txt文件的時候切記一定不要在中文情況下編輯空格链方、冒號持痰、逗號,否則會一直報錯無法得到正確的結(jié)果祟蚀。

上面的組合都是兩兩兩組合覆蓋工窍,如果要更改組合組合順序參數(shù)值怎么辦?這個時候只需要將在運行命令的時候增加參數(shù) /o:3即可,如pict test.txt /o:3前酿。其它的命令參數(shù)選項含義如下:

/ o :N ?- 組合數(shù)患雏,默認值為2

/ d :C ?- 值與值之間的分隔符,默認為逗號(,)

/ a :C ?-別名間的分隔符罢维,默認是管道符(|)

/ n :C ?- 無效數(shù)值或者是非法數(shù)值的前綴淹仑,默認值為(~)

/ e :file - 定義種子文件,作用是可以指定組合方式

/ r [:N]? - 隨機生成肺孵,N -種子

/ c?????? - 參數(shù)的值完全區(qū)分大小寫

/ s?????? - 顯示模型統(tǒng)計數(shù)據(jù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末攻人,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子悬槽,更是在濱河造成了極大的恐慌怀吻,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件初婆,死亡現(xiàn)場離奇詭異蓬坡,居然都是意外死亡猿棉,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門屑咳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來萨赁,“玉大人,你說我怎么就攤上這事兆龙≌人” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵紫皇,是天一觀的道長慰安。 經(jīng)常有香客問我,道長聪铺,這世上最難降的妖魔是什么化焕? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮铃剔,結(jié)果婚禮上撒桨,老公的妹妹穿的比我還像新娘。我一直安慰自己键兜,他們只是感情好凤类,可當我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著普气,像睡著了一般谜疤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上棋电,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天茎截,我揣著相機與錄音,去河邊找鬼赶盔。 笑死企锌,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的于未。 我是一名探鬼主播撕攒,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼烘浦!你這毒婦竟也來了抖坪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤闷叉,失蹤者是張志新(化名)和其女友劉穎擦俐,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體握侧,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡蚯瞧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年嘿期,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片埋合。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡备徐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出甚颂,到底是詐尸還是另有隱情蜜猾,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布振诬,位于F島的核電站蹭睡,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏贷揽。R本人自食惡果不足惜棠笑,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一梦碗、第九天 我趴在偏房一處隱蔽的房頂上張望禽绪。 院中可真熱鬧,春花似錦洪规、人聲如沸印屁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽雄人。三九已至,卻和暖如春念赶,著一層夾襖步出監(jiān)牢的瞬間础钠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工叉谜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留旗吁,地道東北人。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓停局,卻偏偏與公主長得像很钓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子董栽,可洞房花燭夜當晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容