カテゴリで絞り込む

トレンドワード

テストツール
more
テストケース生成ツール
テスト自動化ツール
実機テストのクラウドサービス
テスト管理ツール
Qbookについて
Facebook x

システム内部構造をベースにテストする「構造テスト」の概要と技法
テスト用語

更新日:

2023.10.17
x hatenabookmark
1

システム内部構造をベースにテストする「構造テスト」の概要と技法

執筆: 永井 努

バルテス・ホールディングス株式会社 R&C部 リーダー

テストの観点として、システムが要求や仕様通りに動くことは最低要件であり、より品質を高めるためにはシステムの構造を評価する構造テストが重要になってきます。構造テストの知識について理解しておくと、効率良く品質を作り込めるでしょう。そこで本稿では、「構造テスト」の定義と、活用されるテスト技法についてご紹介していきます。

もくじ
  1. ソフトウェアの内部構造を検証する「構造テスト」
    1. 構造テストとは
    2. 構造テストの対象範囲
  2. 構造テストのテスト技法
    1. 条件テスト
    2. 判定条件テスト
    3. 改良条件判定カバレッジ(MC/DC)テスト
    4. 複合条件テスト
  3. まとめ

1.ソフトウェアの内部構造を検証する「構造テスト」

1-1 構造テストとは

構造テスト(構造ベースドテスト)とは、コードやアーキテクチャ、データなどのシステム内部の構造を元にテストケースを作成していく手法です。定義によってはホワイトボックステスト技法と同一とされる場合もあります。

構造テストは、設計書や仕様書で示されたソフトウェアの内部構造を起点とし、発生しうるパターンや条件分岐の網羅性を上げることに焦点が置かれています。実施済みのテストがテスト対象システムの構造をどの程度網羅できたか計測し、その網羅度を向上させるために構造テストが実施されることもあります。

1-2 構造テストの対象範囲

構造テストは、ホワイトボックステストの性質が強く、単体テスト寄りの手法だと思われがちです。

しかし、システムテストなどのテスト工程の終盤で実施されることもあります。
単体テストの場合はコード、システムテストではメニューや画面などの構造をベースにテストを行います。

2.構造テストのテスト技法

構造テストで活用されるテスト技法は、ソフトウェアの構造をベースにテストを設計する手法です。実施するテストがテスト対象であるソフトウェアの構造の何割を網羅できているかを検証します。具体的には、ホワイトボックステストで活用されるコードカバレッジ技法のように、コード上の分岐条件や判定結果などを根拠に測定を行います。この章では、代表的な網羅度の計測方法について4つご紹介します。

ホワイトボックステストのコードカバレッジについての詳細はこちらをご確認ください。

2-1 条件テスト

個別の分岐条件の網羅に対応した技法です。条件によって導かれた結果判定には着目せず、純粋に条件単体の真偽の網羅を測定します。

8607-00037_pic1

上記のように、2つの入力値をテストすれば、個別の分岐条件は、両方とも真と偽を網羅しますが、複合条件の判定は偽のみしかテストされません。そのため、実際には条件テストの技法のみでは行われず、次以降の技法が使われます。

2-2 判定条件テスト

個別の分岐条件の網羅だけでなく、判定の網羅にも対応した技法です。そのため、ホワイトボックステスト技法におけるブランチカバレッジも網羅します。

8607-00037_pic2

上記の例では、条件テストとテストケース数が変わりませんが、通常、条件テストよりも件数が増加することが多く、より厳格なテストになるため、ある程度重要性の高いシステムに利用されます。

2-3 改良条件判定カバレッジ(MC/DC)テスト

改良条件判定カバレッジ(MC/DC)テストは、判定条件テストに加え、ある分岐条件の真偽を変更すると複合条件の判定が変わるケースをすべてテストする技法です。判定条件テストよりさらにテストケースの件数を多く、厳格になるため、不具合が人命に関わるようなシステムなどに利用されます。

8607-00037_pic3

2-4 複合条件テスト

各個別条件の真偽の組合せをすべてテストする技法です。ホワイトボックステストのマルチコンディションカバレッジと同様の考え方になります。テストケース数が非常に多くなってしまうため、代わりに改良条件判定カバレッジテストを採用されることが多いです。

8607-00037_pic4.jpg

まとめ

本稿では、構造テストの概念や利用できるテスト技法についてご紹介しました。

構造テストは、システムが仕様や設計に即しているかを確認するホワイトボックステストの性質が強く、システムの構造をベースに条件分岐や判定を適切に網羅できるように設計されます。

テスト対象となるシステムがどの程度の安全性が必要なのかに合わせて適切なテスト技法を選択することが重要です。効率良く必要十分な構造テストを実現しましょう。

参考URL

関連記事

お役立ち資料

QAエンジニアって何?

QAエンジニアって何?

「QAエンジニア」とは、ソフトウェアやシステムの品質を保証するために、テストや検証を行うエンジニアのことです。 本資料では、QAエンジニアの主な仕事内容や、求められるスキルや資格、キャリアパスについて解説します。 ※こちらの資料は会員登録不要でダウンロードいただけます。

ソフトウェアテスト実施はじめてガイドブック

ソフトウェアテスト実施はじめてガイドブック

実際に「テスト実施」・「不具合報告」をする際の正しい流れを解説したガイドブックです。ソフトウェアテストを初めて実施する人に向けて、その作業内容や用語、心構えをまとめています。

ソフトウェアテスト効率化 カオスマップ(2025年版)

ソフトウェアテスト効率化 カオスマップ(2025年版)

ソフトウェアテスト効率化カオスマップは、ソフトウェアテストに関連するサービスを提供する事業者や、自動化ツールをはじめとしたツール・サービス類について、独自の調査をもとにまとめたものです。 自社のサービス選定のご参考にご利用ください。

テストツール

テストのプロであるQbook監修の講師陣が提供する

Qbookの品質教育サービス

もっと見る

開催中の講座

一般向け

これから学びたい方・スキルアップを目指す方

事前ヒアリングに基づき、品質課題に沿ったカリキュラムを提供します。実務で使える品質管理手法を学べます。

企業向け講座

企業向け

社員教育をご検討中の方

事前ヒアリングに基づき、品質課題に沿ったカリキュラムを提供します。実務で使える品質管理手法を学べます。

eラーニング

一般向け

資格・試験対策をしたい方

事前ヒアリングに基づき、品質課題に沿ったカリキュラムを提供します。実務で使える品質管理手法を学べます。

バルデミー

企業向け

社員教育をご検討中の方

「バルデミー」は、より実践的で質の高いソフトウェアテストのオンライン教育プログラムです。