Facebook x

ジャンル

テスト技法・工程
テスト技法・工程 2023.10.17
x hatenabookmark

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

執筆: 永井 努

バルテス株式会社 クロス・ファンクショナル事業部 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

テスト技法・工程
x hatenabookmark

執筆: 永井 努

バルテス株式会社 クロス・ファンクショナル事業部 R&C部 リーダー

ITインストラクター・業務システムサポートを経験後、バルテスに入社。 業務系、Web系、組込系などの様々なテスト設計・実施を経験し、現在は主にテスト業務に関する研究開発(標準テスト設計プロセス構築など)および人材育成に従事。1~2か月に渡る長期テスト設計研修を、ソフトウェア開発未経験者・経験者合わせて100名以上に対して実施する。取得資格として、JSTQB Advanced Level(テストマネージャ、テストアナリスト)、初級品質技術者など。現在取り組んでいるのは、テストエンジニアに対する早期スキル習熟の為のコンテンツ作成。