RAC0164_draft RENTACO (4)MC/DCテストケースを探す Copyright© 2013-2014 RENTACO. All Rights Reserved. 46 RENTACO RAC0164_draft 構造網羅度の相違 網羅度を満たすために必要なテストケース 網羅 変数 A Z=A and B and C Z=1 命令⽂ Z=0 B C Z 1 0 0 0 0 2 0 0 1 0 3 0 1 0 0 4 0 1 1 0 5 1 0 0 0 6 1 0 1 0 7 1 1 0 0 8 1 1 1 1 命 令 判 定 条 件 条 件/ 判 定 MC /D C 複 合 条 件 X X X X X X X X X X X X X X X X X X X X MC/DC: 1)判定(分岐)網羅と条件網羅が満たされ、 2)全条件に対して単独で判定を決定するペアをテスト。 Copyright© 2013-2014 RENTACO. All Rights Reserved. 48 RENTACO RAC0164_draft MC/DCを満⾜するテストケースの導出法 判定: Z=A and B and C 番 号 単⼀条件で判定が 異なるテスト番号 変数 A B C Z 1 0 0 0 0 2 0 0 1 0 3 0 1 0 0 4 0 1 1 0 5 1 0 0 0 6 1 0 1 0 7 1 1 0 0 8 1 1 1 1 A B C 8 X 8 4 MC/DC テスト ケース 6 X 8 X 7 X 判定(分岐)網羅と条件網羅を満たし、全条件に対して単独で判定を決定するペアをテスト。 条件数 + 1 ≦ テストケース数 ≦ 条件数 × 2 Copyright© 2013-2014 RENTACO. All Rights Reserved. 49 RENTACO RAC0164_draft 条件式の状態とその遷移 条件A 条件B 判定Z 条件式 条件C 状態: (Ai,Bi,Ci),Zi どれかひとつの条件を変えたときの組、 それに対応する判定 どれかひとつの条件を変える Copyright© 2013-2014 RENTACO. All Rights Reserved. どれかひとつの条件を変える 50 RENTACO RAC0164_draft テストに関する状態遷移 初期状態: (A0,B0,C0),Z0 ひとつの条件だけを変える (A1,B0,C0),Z1 Z2!=Z1であれば、 (A1,B0,C0),(A1,B2,C0)のペア が、条件Bに対するMC/DCテスト ケースとなる ひとつの条件だけを変える (A1,B2,C0),Z2 ひとつの条件だけを変える 順次、他の条件に対するMC/DCテ ストケースを探し、すべての条件に対 するMC/DCテストケースを⾒つけれ ば、MC/DC網羅度は100%になる ⾒つけた物の中から最⼩限の 組み合わせを選ぶ。 Copyright© 2013-2014 RENTACO. All Rights Reserved. 51 RAC0164_draft RENTACO テストケース探索のためのPromela記述 inline decide(a,b,c,z){ z = ((a && c) || (!a && b && c)) } bool a, b, c, z; bool a_done=0, b_done=0,c_done=0; active proctype MCDC(){ bool a0, b0, c0, z0; a = 0; b = 0; c = 0; decide(a,b,c,z); do ::a0 =a; b0 = b; c0 = c; z0 = z; /* before value*/ if ::a = !a0 ::b = !b0 ::c = !c0 fi; decide(a,b,c,z); if ltl p1 {!<>(a_done && ::z != z0 -> if ::a != a0 -> a_done = true b_done && c_done)} ::b != b0 -> b_done = true ::c != c0 -> c_done = true fi; elseの前にprintfを追加する ::else -> skip fi; od } Copyright© 2013-2014 RENTACO. All Rights Reserved. 54
© Copyright 2024 ExpyDoc