技術とか戦略とか

証券レガシーシステムを8年間いじった普通のSEによるブログ。技術のみではなく趣味の戦略考察についても。PCから見た方が色々見やすいと思います。

情報処理技術者試験対策「ブラックボックステストのテストケース設定」

目次

https://1drv.ms/b/s!AivF3bzWXOzuhG1Xk5hscKYqkLkM

-------------------------------
前回の記事で予告した通り、今回はブラックボックステストの話をします。
 
ある変数の値の大小により分岐が行われる場合に、下記の2つの考え方によりテスト設計を行います。

  • 同値分割
    各々の分岐先について、任意の値を一つ抽出し代表値として採用する。
    (怖い上司度≧6か否かで分岐が行われる場合、怖い上司度が5以下の任意の値のケースと、怖い上司度が6以上の任意の値のケースでテストする)
  • 境界値分析
    分岐先が変わる境界となる値を代表値として採用する。
    (怖い上司度≧6か否かで分岐が行われる場合、怖い上司度=5のケースと怖い上司度=6のケースでテストする)

 

試験対策としては以上を覚えておけば良いのですが、バグは境界値で起こる可能性が高いことから、実務では境界値分析しか使いません。
また、テストケースも2ケースでは不十分で、実務では定数項-1、定数項と同じ、定数項+1の3ケースでテストすることが望ましいです。
(コーディングミスで≧を=と書いてしまった場合に、2ケースでは見つからないことがあります(というかありました)。怖い上司度の例だと、怖い上司度=7のケースをテストしないとミスが見つかりません。)
 
前回の記事の繰り返しになるのですが、実務では複数の判定条件の組み合わせを考える必要がある場合があります。
この場合、組み合わせを漏らさないようにするためには、デシジョンテーブルを作成することが有効です。
例えば、以下のような例の場合、

f:id:akira2kun:20180704231623j:plain

以下のようにデシジョンテーブルを作る必要があります。
(3×2×2=12通りの組み合わせを記述)f:id:akira2kun:20180704232428j:plain

実際に全ての組み合わせをテストするわけではないですし、実際にはデシジョンテーブル作成時にいくつかのケースを端折ったりするのですが、慣れない内は全組み合わせをデシジョンテーブルに書くべきです。
デシジョンテーブルに全組み合わせを記述しておけば、必要なテストケースを選定する時に頭が整理されますし、他の人(先輩や有識者)に見てもらうこともできます。