《電子技術應用》
您所在的位置:首頁 > 測試測量 > 設計應用 > 采用矩陣遞歸的最小測試用例集生成算法
采用矩陣遞歸的最小測試用例集生成算法
2020年電子技術應用第4期
黃孝倫,王 東
重慶市衛生信息中心,重慶401120
摘要: 符合MC/DC準則的最小測試用例集算法具有重要的實用價值。首先將布爾表達式轉換為語法二叉樹,然后采用矩陣組合邏輯運算方法逐層遞歸,從而獲得完備的MC/DC最小測試用例集。經驗證,矩陣組合邏輯運算方法是合理的、正確的。該方法對于非平凡布爾表達式可快速獲取完備的MC/DC最小測試用例集,同時也可以處理帶耦合條件的復雜布爾表達式。
中圖分類號: TN06;TP301.6
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.191029
中文引用格式: 黃孝倫,王東. 采用矩陣遞歸的最小測試用例集生成算法[J].電子技術應用,2020,46(4):71-74.
英文引用格式: Huang Xiaolun,Wang Dong. Algorithm of minimum test case set generation using matrix recursion[J]. Application of Electronic Technique,2020,46(4):71-74.
Algorithm of minimum test case set generation using matrix recursion
Huang Xiaolun,Wang Dong
Chongqing Health Information Center,Chongqing 401120,China
Abstract: The algorithm of minimum test case set conforming to MC/DC criterion has important practical value.Firstly,the Boolean expression is transformed into a syntax binary tree,and then the matrix combinational logic operation is used to recurse layer by layer to obtain a complete set of MC/DC minimum test cases.It is proved that the method of matrix combinational logic operation is reasonable and correct.The method can quickly obtain complete MC/DC minimum test case set for nontrivial Boolean expressions,and can also deal with complex Boolean expressions with coupling conditions.
Key words : MC/DC;test cases;coupling conditions;recursion;algorithms

0 引言

    更改條件/判定覆蓋(MC/DC)準則是一種軟件結構覆蓋性測試準則,非常適合大型的軟件測試領域,如國防、航空航天領域[1-2]。MC/DC與語句覆蓋、條件覆蓋、判定覆蓋等比較,能大幅減少測試用例數,如測試系統中有10個判定條件時,條件組合覆蓋需要1 024個測試用例,而MC/DC只需要11~20個測試用例[3-4]。在國內MC/DC最小測試用例集生成算法的相關研究中,比較典型的是最小真值表法[5]和快速生成法[6],但這兩種算法只適合處理非耦合條件的布爾表達式。也有學者將MC/DC準則應用于帶弱耦合條件和強耦合條件的布爾表達式中[7]。本文結合矩陣方式,從布爾表達式的語法二叉樹的葉子節點依次遞歸至根節點,直接生成完備的最小化測試用例集。

1 算法相關描述

    布爾表達式相關概念:條件表示不含有布爾操作符號的布爾表達式,記為Pi(1≤i≤n)。判定表示由條件Pi和若干布爾操作符號所組成的一個布爾表達式。

    MC/DC覆蓋準則[8]:(1)程序中,每個入口點和出口點至少被調用1次;(2)程序中判定的每個條件的所有取值至少出現1次,且能獨立影響該判定的輸出;(3)每一個判定的所有可能的輸出結果至少產生1次。

    Chilenski原則[9]:對于一個具有n個條件的判定,滿足MC/DC準則的測試用例至少有n+1組。

    MC/DC對[10]:一個MC/DC對是一對真值向量,該向量中一個條件值變化時可使得判定有不同的結果。

jsj2-gs1-s1.gif

    矩陣組合邏輯運算規則:將矩陣的條件部分進行兩兩組合,同時將結果部分按邏輯運算符進行邏輯運算,如式(1)所示:

jsj2-gs1.gif

    語法二叉樹:將一個判定從左到右依次轉化為對應的語法二叉樹,其中條件Pi采用葉子節點表示,and、or等邏輯運算符采用非葉子節點表示。以(P1 and P2)and(P3 or P4)為例,其對應的語法二叉樹如圖1所示。

jsj2-t1.gif

jsj2-t1-x1.gif

    語法二叉樹遞歸規則:從葉子節點開始往根節點逐層遞歸。左、右子樹為葉子節點時,按“語法二叉樹與矩陣對應關系”獲得對應矩陣。若某一子樹的左子樹或右子樹為非葉子節點時,利用該子樹的左、右矩陣,按“矩陣組合邏輯運算規則”進行運算:若為and運算,先將左矩陣中每一行與右矩陣中結果為1的行進行運算,然后將右矩陣中每一行與左矩陣中結果為1的行進行運算,最后合并運算結果;如為or運算時,選取相應矩陣中結果為0的行進行運算。運算結果即為該子樹對應的判定的最小測試用例集。遞歸到根節點時,即獲得整個判定的最小測試用例集。

    命題  按語法二叉樹遞歸規則可得到MC/DC最小測試用例集。

    證明  以n表示語法二叉樹的高度,當n=2時,左、右子樹為葉子節點,可直接獲得判定的矩陣,即最小測試用例集,結論成立。當n>2時,由于該子樹的左、右矩陣符合Chilenski原則,因此左、右矩陣的行集合其實就是MC/DC對集合。左、右矩陣按“矩陣組合邏輯運算規則”運算時,以and運算為例(or運算同理),左矩陣中MC/DC對分別與右矩陣中結果為1的行進行運算(此處只證明合理性,因此右矩陣中有多個結果為1的行時,只選取其中一行運算即可。實際操作時,結果為1的行均進行運算,這樣可獲得完備的最小測試用例集),實際上只是在該MC/DC對中增加了右矩陣中的同一組條件,MC/DC對數量不變。同樣原理,將右矩陣中MC/DC對與左矩陣中結果為1的行進行運算后,該MC/DC對中增加了左矩陣中的同一組條件,MC/DC對數量不變。然后合并運算結果,此時針對左、右子樹中條件的MC/DC對構造完畢,即該子樹的最小測試用例集構造完畢。遞歸至根節點時,就可獲得針對全部條件的MC/DC對,即該語法二叉樹的MC/DC最小測試用例集,證畢。

2 算法設計與驗證

2.1 算法步驟

    按照上述規則及定義,MC/CD最小測試用例集的生成算法步驟如下:

    (1)將判定轉換為語法二叉樹;

    (2)從葉子節點開始,按“語法二叉樹遞歸規則”向根節點逐層遞歸,遞歸過程按“語法二叉樹與矩陣對應關系”采用矩陣表示子樹,并按“矩陣組合邏輯運算規則”進行運算獲得子樹對應的矩陣;

    (3)遞歸至語法二叉樹的根節點時,算法結束。

2.2 算法驗證

2.2.1 零耦合條件的判定的驗證

jsj2-2.2.1-x1.gif

jsj2-2.2.1-x2.gif

2.2.2 帶耦合條件的判定的驗證

    帶耦合條件的判定是指判定中存在部分重復條件。以(P1 and P2 and P3) or (P1 and (P2 and P4))為例,條件P1、P2重復出現(判定中重復出現的條件采用P1′、P2′表示)。按照算法步驟先轉化為語法二叉樹,如圖2所示。

jsj2-t2.gif

jsj2-t2-x1.gif

jsj2-t2-x2.gif

    在處理帶耦合條件的判定時,在2.1算法步驟中增加兩個規則:(1)一致性規則。在遞歸過程中遇到重復條件時,為保證重復條件取值的一致性,在矩陣中選擇重復條件取值一致的MC/DC對進行運算。(2)構造規則。為了保證一致性,矩陣中MC/DC對數量受到了限制,不能滿足Chilenski原則,因此需要通過構造方式來滿足該原則。以左矩陣中與重復條件相關的MC/DC對為基礎,補充構造右矩陣中條件,構造時需遍歷相應子樹進行正確性驗證。構造完右矩陣中條件對應的MC/DC對后,在其基礎上反轉非重復條件,構造左矩陣中的MC/DC對。

3 實驗分析

    最小真值表法、快速生成算法等算法都是依據判定中的多種條件不斷進行判斷、歸約,從而依次生成每個用例。本算法從語法二叉樹的葉子端向根節點遞歸,每次遞歸得到的都是當前子樹的MC/DC最小測試用例集,其測試用例集始終限制在最小維度,而且遞歸過程只需進行簡單的矩陣組合邏輯運算,因此,在手動生成測試用例方面更快速、簡潔、直觀。最小真值表法、快速生成算法等算法只能獲得唯一一個最小測試用例集,無法得到其余的最小測試用例集。保證冗余的測試用例是有必要的[12]。在2.2.1的驗證中,本算法同時生成了兩個最小測試用例集,可以證明該判定有且僅有這兩個最小測試用例集,這表明本算法生成了完備的最小測試用例集,其可在不影響測試組大小范圍的情況下有效提高錯誤檢測效率。同時,在進行矩陣組合邏輯運算時,任意選取左或右矩陣中結果為1(and運算符)或0(or運算符)的一行進行運算,即可獲得唯一的最小真值矩陣。

    在判定(零耦合條件)的唯一最小測試用例的自動生成所需時間方面,本算法首先生成語法二叉樹,然后由葉子節點向根節點進行遞歸,由于左、右子樹可以實現并發遞歸,因此對于左、右子樹較對稱的、葉子節點較多的語法二叉樹而言,其所需的時間優于快速生成算法,具有快速生成測試用例的優勢。算法生成時間比較結果見表1,其中非布爾表達式分別為:(1)(P1 or P2) and (P3 and P4);(2)(P1 and P2 and P3) or (P4 and P5);(3)(P1 and P2 and P3) or (P4 and (P5 and P6));(4)(P1 and P2 and (P3 or P4)) or (P5 and (P6 and P7 or P8))。但是,本算法需要存儲空間存儲矩陣,其對存儲空間的要求高于快速生成算法。

jsj2-b1.gif

    最小真值表法、快速生成算法等算法只適合處理由標準運算符and、or構成的零耦合條件的判定,規避了對帶耦合條件的判定的分析。本算法適用于存在耦合條件的判定的分析,其在生成測試用例過程中雖需要遍歷語法二叉樹進行驗證,但生成的測試用例集滿足MC/DC要求,且遍歷時只需對部分子樹進行遍歷,因此數量遠小于全遍歷情況,對帶耦合條件的判定的分析具有一定借鑒意義。與謝祥南等[7]的耦合條件的MC/DC測試用例集生成算法相比,本算法比較簡潔直觀,但對于復雜的強耦合條件的判定的分析,本算法還有不足,需要進一步深入研究。

4 結論

    不同測試工具對于代碼的覆蓋能力是有區別的,通常能夠支持MC/DC的測試工具的價格極其昂貴[13]。本文提出的算法基于語法二叉樹,從葉子節點開始采用符合MC/DC覆蓋準則的矩陣進行遞歸,可快速、直觀、有效地處理零耦合條件的判定,并生成完備的的最小測試用例集,適合自動或手動生成。對于帶耦合條件的復雜判定,本算法也有一定適用性,其生成的測試用例集合遠遠低于全遍歷情況,這在減輕測試工程師工作量、提高工作效率方面有一定借鑒意義。下一步將對帶耦合條件的判定做進一步研究,提高其算法的生成效率。

參考文獻

[1] 朱少民.全程軟件測試(3版)[M].北京:人民郵電出版社,2019:130-132.

[2] 王吉茂,尹平.軟件測試用例執行優化研究[J].計算機工程與設計,2013,12(1):4242-4246.

[3] 王瑞,田宇立,周東紅,等.面向故障定位的基于MC/DC的測試用例約簡方法[J].計算機科學,2015,42(10):170-174.

[4] DONG L,LINGHUAN H,RUIZHI G.Improving MC/DC and fault detection strength using combinatorial testing[C].2017 IEEE International Conference on Software Quality,Reliability and Security Companion(QRS-C).Prague,Czech Republic:IEEE,2017:84-88.

[5] 朱曉波,楊偉民,葉芯.更改條件/判定覆蓋最小真值表生成算法及其應用[J].上海理工大學學報,2007,29(1):84-88.

[6] 段飛雷,吳曉,張凡,等.MC/DC最小測試用例集快速生成算法[J].計算機工程,2009,35(17):40-45.

[7] 謝祥南,魏延棟.耦合條件的MC/DC測試用例集生成算法[J].計算機系統應用,2017,26(6):164-169.

[8] 黃孝倫.基于圖的MC/DC最小測試用例集快速生成算法[J].計算機系統應用,2012,21(11):145-147.

[9] SEKOU K,ALEXIS T,MIHAELA B.Practical methods for automatic MC/DC test case generation of Boolean expressions[C].2015 IEEE Autotestcon.National Harbor,MD,USA:IEEE,2015.

[10] 周睿.基于Java編譯器的MC/DC測試覆蓋方法設計[J].軟件導刊,2016,15(8):39-41.

[11] 袁軍.基于MC/DC最小測試用例集設計方法研究[J].航空電子技術,2010,41(3):51-54.

[12] VILKOMIR S,BAPTISTA J,DAS G.Using MC/DC as a black-box testing technique[C].2017 IEEE 28th Annual Software Technology Conference(STC).Gaithersburg,MD,USA:IEEE,2017:25-28.

[13] 楊憶文.一種自動化測試系統中為I/O建模及約束提取的方法[M].北京:北京郵電大學,2014.



作者信息:

黃孝倫,王  東

(重慶市衛生信息中心,重慶401120)

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲欧美日韩在线不卡| 亚洲国产日韩欧美在线99| 国产精品久久久久久久久| 国产精品免费福利| 亚洲一区二区三区视频| 久久国产乱子精品免费女| 在线亚洲一区观看| 亚洲欧洲三级电影| 在线电影欧美日韩一区二区私密| 久久久夜精品| 欧美一区影院| 欧美成人精品一区| 亚洲免费在线精品一区| 久久国产福利| 欧美阿v一级看视频| 国产欧美一区二区三区久久人妖| 欧美精选在线| 巨乳诱惑日韩免费av| 久久久亚洲午夜电影| 欧美精品午夜视频| 亚洲欧美日韩精品| 欧美日韩视频在线一区二区观看视频| 国产精品白丝黑袜喷水久久久| 欧美在线91| 欧美专区18| 国产一区二区三区精品久久久| 狠狠色狠狠色综合| 欧美xxx在线观看| 欧美视频在线观看免费网址| 国内一区二区在线视频观看| 狼人社综合社区| 久久久精品一区二区三区| 欧美韩日视频| 国产三区精品| 亚洲视屏在线播放| 99综合精品| 日韩天堂在线观看| 亚洲精品一区在线观看香蕉| 久久精品免视看| 久久精品论坛| 久久成人免费| 麻豆乱码国产一区二区三区| 日韩视频免费看| 久久久久欧美精品| 99国产欧美久久久精品| 国产精品久久久久7777婷婷| 每日更新成人在线视频| 国产精品入口麻豆原神| 欧美巨乳在线观看| 日韩手机在线导航| 久久国产毛片| 午夜一区二区三区在线观看| 久久―日本道色综合久久| 欧美日本韩国一区二区三区| 99视频国产精品免费观看| 亚洲精品自在久久| 久久久久久噜噜噜久久久精品| 国产区欧美区日韩区| 久久人人97超碰国产公开结果| 激情五月综合色婷婷一区二区| 一本久久综合| 欧美一区二视频在线免费观看| 久久亚洲国产成人| 国产精品麻豆成人av电影艾秋| 欧美在线啊v一区| 在线观看日韩专区| 性做久久久久久免费观看欧美| 国产精品免费aⅴ片在线观看| 欧美精品高清视频| 国产在线不卡精品| 国产乱码精品一区二区三| 亚洲狼人精品一区二区三区| 欧美成人a∨高清免费观看| 在线日本成人| 亚洲综合首页| 国产精品毛片一区二区三区| 国产综合色在线| 亚洲毛片在线| 午夜精品久久久久久久久久久久| 欧美本精品男人aⅴ天堂| 欧美性猛交xxxx免费看久久久| 亚洲自拍偷拍色片视频| 日韩一级视频免费观看在线| 一区二区三区鲁丝不卡| 亚洲茄子视频| 美国三级日本三级久久99| 欧美精品一区二区视频| 欧美日韩国产小视频| 亚洲精品视频免费在线观看| 亚洲自拍偷拍福利| 久久se精品一区二区| 国产精品国产| 久久精品视频在线播放| 亚洲嫩草精品久久| 亚洲国产精品女人久久久| 免费日韩视频| 欧美一区二区三区在线视频| 黄色亚洲在线| 亚洲欧美日韩另类| 国产一区欧美| 黄色成人免费观看| 国产欧美视频一区二区| 欧美性生交xxxxx久久久| 亚洲电影免费观看高清完整版在线观看| 亚洲国产aⅴ天堂久久| 欧美精品激情在线观看| 今天的高清视频免费播放成人| 免费在线观看日韩欧美| 国产伊人精品| 亚洲一区二区三区免费在线观看| 一本色道精品久久一区二区三区| 国产精品国产三级国产| 欧美精品二区| 亚洲专区一区二区三区| 国产视频一区欧美| 国产视频一区在线| 国产一区二区三区四区在线观看| 国产一区二区三区高清在线观看| 欧美午夜在线| 欧美精品亚洲精品| 国产欧美一区二区三区沐欲| 久热re这里精品视频在线6| 午夜亚洲性色福利视频| 牛人盗摄一区二区三区视频| 欧美日韩精品免费看| 欧美日韩国产精品成人| 欧美在线观看视频一区二区| 国产精品黄色在线观看| 香港成人在线视频| 国产精品一二三四| 国产一区二区三区丝袜| 国产精品久久久久久久久免费樱桃| 欧美日韩福利视频| 欧美日韩久久| 国产精品久久久久久五月尺| 亚洲女女女同性video| 国产精品亚洲不卡a| 国产日韩欧美中文| 国产欧美视频一区二区| 欧美视频免费看| 国产精品久久久久久久久久ktv| 欧美在线一二三区| 国产亚洲福利一区| 亚洲影院污污.| 亚洲综合第一| 亚洲一区二区三区精品在线观看| 久久久久久尹人网香蕉| 亚洲精品欧洲精品| 欧美成人免费播放| 亚洲美女av电影| 欧美激情精品久久久久久黑人| 亚洲日本视频| 国产女精品视频网站免费| 欧美日韩免费观看中文| 久久高清国产| 蜜乳av另类精品一区二区| 亚洲一线二线三线久久久| 欧美精品福利视频| 国产三级精品三级| 亚洲视频一区二区免费在线观看| 欧美日韩视频一区二区| 亚洲欧美综合国产精品一区| 精品va天堂亚洲国产| 99国内精品久久久久久久软件| 国产农村妇女毛片精品久久麻豆| 狠狠噜噜久久| 欧美阿v一级看视频| 久久亚洲精选| 亚洲缚视频在线观看| 久久国产免费| 国产一区自拍视频| 中文有码久久| 欧美日韩精品一区二区| 国产伦精品一区二区三区照片91| 午夜精品福利一区二区蜜股av| 亚洲日本免费电影| 国产视频一区二区在线观看| 欧美日韩一二三四五区| 国产一区二区三区在线观看免费| 国产一区二区三区免费不卡| 新67194成人永久网站| 狠狠色综合网站久久久久久久| 欧美精品日本| 国产日产亚洲精品系列| 国产一区二区三区在线观看免费| 国产精品99一区二区| 在线视频你懂得一区| 国内在线观看一区二区三区| 国产精品一级| 久久亚洲精品中文字幕冲田杏梨| 91久久国产综合久久91精品网站| 激情欧美日韩一区| 亚洲电影在线| 一区二区三区视频在线观看| 欧美在线资源| 久久婷婷国产综合精品青草| 国产精品99一区二区| 午夜天堂精品久久久久| 亚洲视频综合| 欧美三级午夜理伦三级中文幕| 精久久久久久| 国产欧美日韩亚洲| 午夜精品三级视频福利| 精品动漫3d一区二区三区免费版| 欧美区亚洲区| 亚洲欧美日韩在线高清直播| 国产日韩欧美电影在线观看| 亚洲一区二区三区在线观看视频| 红桃av永久久久| 亚洲欧美激情在线视频| 国产精品视频xxxx| 激情成人综合| 国语自产偷拍精品视频偷| 在线亚洲美日韩| 99人久久精品视频最新地址| 欧美久久久久久久| 欧美一区二区成人6969| 国产综合自拍| 老牛国产精品一区的观看方式| 亚洲欧美日韩国产一区二区| 欧美在线网站| 欧美华人在线视频| 国产精品入口尤物| 国产欧美日本一区视频| 136国产福利精品导航| 亚洲精品一区二区三区在线观看| 亚洲美女91| 国产一区二区电影在线观看| 欧美金8天国| 欧美三区美女| 国产日韩在线一区| 精品91久久久久| 一区二区三区在线免费播放| 欧美日韩在线播放一区二区| 午夜精品免费| 欧美精品一线| 国产美女在线精品免费观看| 亚洲欧洲日本mm| 国产亚洲一区二区三区在线观看| 国产精品日韩高清| 艳女tv在线观看国产一区| 欧美日韩国产色综合一二三四| 国产精品成人观看视频国产奇米| 久久精品视频亚洲| 亚洲欧美经典视频| 国产精品色网| 亚洲欧美日韩精品在线| 亚洲欧美在线一区| 国产精品区二区三区日本| 欧美极品一区| 欧美在线3区| 欧美va亚洲va日韩∨a综合色| 欧美成人国产| 欧美亚洲在线播放| 欧美黄色影院| 国语自产精品视频在线看| 在线免费观看一区二区三区| 亚洲国产精品久久久久秋霞不卡| 国产精品在线看| 久久久久久尹人网香蕉| 日韩一级成人av| 久久一本综合频道| 欧美视频专区一二在线观看| 国产精品视频网| 悠悠资源网久久精品| 一区二区三区国产精华| 亚洲黄色av一区| 亚洲人成在线播放网站岛国| 国产精品高清在线观看| 亚洲成人直播| 欧美精品激情在线观看| 午夜激情一区| 国产欧美亚洲一区| 欧美在线日韩精品| 欧美韩国日本综合| 亚洲日本黄色| 亚洲国产精品一区二区www| 欧美日韩视频不卡| 亚洲人成77777在线观看网| 国产精品网站视频| 亚洲精品乱码久久久久久按摩观| 一区二区三区四区国产精品| 国产欧美日韩综合一区在线观看| 亚洲一区免费在线观看| 欧美女同在线视频| 国产精品v欧美精品∨日韩| 久久久久久久欧美精品| 亚洲国产精品国自产拍av秋霞| 激情欧美一区| 欧美资源在线| 欧美一区二区三区婷婷月色| 国产亚洲女人久久久久毛片| 亚洲电影一级黄| 亚洲激情国产| 国产精品国产精品国产专区不蜜| 欧美特黄一级| 一区二区不卡在线视频 午夜欧美不卡在| 精品91视频| 宅男66日本亚洲欧美视频| 亚洲国产精品欧美一二99| 日韩一区二区电影网| 国产精品99免费看| 国产精品综合av一区二区国产馆| 欧美日韩免费网站| 欧美日韩亚洲一区二区三区四区| 亚洲日本一区二区三区| 国内精品久久久久影院薰衣草| 欧美日韩一区高清| 欧美性猛交99久久久久99按摩| 亚洲私人影吧| 欧美一区二区高清在线观看| 久久精品亚洲热| aa成人免费视频| 亚洲国产裸拍裸体视频在线观看乱了中文| 国产精品国产三级国产普通话蜜臀| 国产午夜精品视频| 久久久久久久欧美精品| 尤物在线精品| 99国产精品久久久久老师| 国产精品红桃| 在线亚洲精品福利网址导航| 欧美日韩中文字幕在线| 激情欧美丁香| 一区二区三区国产精品| 在线免费精品视频| 国模私拍一区二区三区| 国产精品乱人伦一区二区| 精品96久久久久久中文字幕无|