ソフトウェアテスト [6] ホワイトボックステス ト Software Testing [6] White Box Testing Techniques あまん ひろひさ ひろひさ 阿萬 裕久 裕久( AMAN Hirohisa ) aman@ehime-u.ac.jp (C) 2007-2022 Hirohisa AMAN テストの分類分類 第 回で説明,第5回に演習で説明,第5回に演習説明,第5回で説明,第5回に演習に基づいた演習 ブラックボックステスト プログラムの中身は見ないもの(ブラックボッの分類中身は見ないもの(ブラックボッは見ないもの(ブラックボッ見ないもの(ブラックボッないもの分類(ブラックボッ クス)として,仕様に基づいたに基づいた基づいたづいた動作テストを行テストを行行 う ホワイトボックステスト プログラムの中身は見ないもの(ブラックボッの分類内部構造(主にフローチャート)に基づいたフローチャート) に基づいた基づいたづいた動作テストを行テストを行行う ランダムの中身は見ないもの(ブラックボッテスト テストケースを行ランダムの中身は見ないもの(ブラックボッに基づいた(無作テストを行為に)作成に基づいた)作テストを行成し て動作テストを行テストを行行う (C) 2007-2022 Hirohisa AMAN ホワイトボックステスト法 仕様に基づいたで説明,第5回に演習は見ないもの(ブラックボッなくソースプログラムの中身は見ないもの(ブラックボッの分類構造(中 身は見ないもの(ブラックボッ)に基づいた注目してテストケースを設計する方してテストケースを行設計する方する方方 法 要求仕様に基づいたに基づいた沿ったテストではないったテストで説明,第5回に演習は見ないもの(ブラックボッない ソースプログラムの中身は見ないもの(ブラックボッで説明,第5回に演習の分類構造の分類複雑さ(条件のさ(条件のの分類 組合せ等)に対処するものせ等)に対処するもの等)に基づいた対処するものする方もの分類 ブラックボックステストを行補足するテストする方テスト (C) 2007-2022 Hirohisa AMAN ホワイトボックステスト法(1) 命令網羅法 すべての分類命令文を1回以上実行を行1回で説明,第5回に演習以上実行する方 1個のテストケース(実行パス)だけでは無の分類テストケース(実行パス)だけで説明,第5回に演習は見ないもの(ブラックボッ無 理な場合もあるな場合せ等)に対処するものもある方 しかし,異なるテストケースなる方テストケースを行いくつか実行 し,その分類集合せ等)に対処するものを行考えれば網羅は可能えれば網羅は可能網羅は見ないもの(ブラックボッ可能 実行で説明,第5回に演習きた命令の分類割合せ等)に対処するものを行命令網羅率という これを行 C0 ともいう (C) 2007-2022 Hirohisa AMAN テスト対象の例の分類例 void foo(int x, int y){ int sum, n; sum = 0; for ( n = 0; n < x; n++ ){ sum += n; } if ( sum < y ){ printf("%dn", sum); } else{ printf("%dn", y); } } 【入力】 引数 x, y 【出力】 printf で説明,第5回に演習出力される方 値 (C) 2007-2022 Hirohisa AMAN 命令網羅の分類例: x = 1, y = ソースコード 実行の分類有無 void foo(int x, int y){ int sum, n; ○ sum = 0; ○ for ( n = 0; n < x; n+ + ){ sum += n; } printf("%dn", sum); } } else{ else{ printf("%dn", y); } } 命令網羅率( C0 ) ○ ○ ○ if ( sum < y ){ } } - ☓ ○ -AMAN (C) 2007-2022 Hirohisa ← sum = なの分類で説明,第5回に演習 【注意】 あらかじめ「どれを行実 行可能な命令として数 える方か」を行定義しておしてお く必要がある方 命令網羅率 100% の分類例 ソースコード x=1, y=0 x=1, y=1 total - - - int sum, n; ○ ○ ○ sum = 0; ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ☓ ○ ○ ○ ☓ ○ - - void foo(int x, int y){ for ( n = 0; n < x; n+ + ){ sum += n; } if ( sum < y ){ printf("%dn", sum); } } else{ else{ printf("%dn", y); } } } } - AMAN (C) 2007-2022 Hirohisa フローチャートを行描いた場合いた場合せ等)に対処するもの テストケース① x = 1, y = START 一部の分類命令が 実行されていない sum = F sum < y n=0 n