【システム開発技術】中身を見るか、見ないか?ホワイトボックステストの手法|情報処理問題1000本ノック
プログラムの内部構造(ロジック)に着目して、すべてのルートが正しく実行されるかを確認する「ホワイトボックステスト」。代表的な手法と、混同しやすい手法を整理しましょう。
1. 問題:ホワイトボックステストの手法ではないもの
【 問題 】 次に挙げるテスト手法の中で、ホワイトボックステストの手法に該当しないものはどれでしょうか?
① 命令網羅 ② 判定条件網羅 ③ 同値分割 ④ 条件網羅
2. 正解:テスト手法の分類に関する正解
正解: ③ 同値分割
3. 解説:内部ロジックの「網羅性」がカギ
ホワイトボックステストは、プログラムのソースコード(内部構造)が「どう書かれているか」に基づいてテストケースを作成します。一方、正解の「同値分割」は、内部構造に関わらず「入力と出力」の関係に着目するブラックボックステストの代表的な手法です。
【図解:テスト手法の2大分類】
■ ホワイトボックステスト(中身を見る)
・プログラムの分岐やループを網羅するのが目的。
・手法:命令網羅、判定条件(分岐)網羅、条件網羅、複数条件網羅など。
■ ブラックボックステスト(中身を見ない)
・機能仕様通りに動くかを確認するのが目的。
・手法:同値分割、境界値分析、意思決定テーブル、原因結果グラフなど。
■ ホワイトボックステスト(中身を見る)
・プログラムの分岐やループを網羅するのが目的。
・手法:命令網羅、判定条件(分岐)網羅、条件網羅、複数条件網羅など。
■ ブラックボックステスト(中身を見ない)
・機能仕様通りに動くかを確認するのが目的。
・手法:同値分割、境界値分析、意思決定テーブル、原因結果グラフなど。
[ ホワイトボックステストの網羅基準(例) ]
・命令網羅:すべての命令を少なくとも1回は実行する。
・判定条件網羅:すべての分岐(Yes/No)を少なくとも1回は実行する。
・条件網羅:分岐内の個々の条件式が真・偽の両方を取るように実行する。
・命令網羅:すべての命令を少なくとも1回は実行する。
・判定条件網羅:すべての分岐(Yes/No)を少なくとも1回は実行する。
・条件網羅:分岐内の個々の条件式が真・偽の両方を取るように実行する。
1. 理解のコツ: 「〇〇網羅」という名前がついていたら、それはプログラムの中身を隅々までチェックする「ホワイトボックステスト」だと判断してほぼ間違いありません。対して、データをグループ分けして代表値を調べるのが「同値分割」です。
2. 試験対策の視点: 「命令網羅 < 判定条件網羅 < 複数条件網羅」の順でテストの強度が上がる(網羅性が高まる)という関係性もよく問われます。まずは「網羅」はホワイト、「分割・分析」はブラック、という棲み分けを完璧にしましょう。
4. まとめ
「プログラムのロジックを追いかけて、すべての道を通る」。これがホワイトボックステストの本質です。内部構造を知っている開発者が行う単体テストなどで主に使用される手法であることを押さえておきましょう!
PR