📖

デシジョンテーブルテストを用いたQA活動

2024/07/08に公開

はじめに

今回は2023年5月に株式会社ビットキーに入社(参画)しました、Software QAチーム所属の中川が担当します。

ビットキーでは毎日のようにテスト活動が行われています。
私はその活動の中でテスト技法の一つである「デシジョンテーブルテスト」について学びテスト活動に取り入れた際、下記のようなメリットを感じました。

  • テスト条件の確認がしやすい
  • テスト実装時の漏れを見つけやすい
  • テスト実行を分業しやすい

次にテスト技法が使われる理由について記載します。

プロダクトの多くには複雑な機能が組み込まれており、少し特殊な操作をしただけで期待値通りに動作しない・致命的な不具合が発生する可能性が大いにあります。しかし、多機能になればなるほどテストの観点は複雑なものとなり、テストを実装するのに膨大な工数を用いる場合が少なくありません。

このような場合に有効となるのがテスト技法です。

私が実際に活用している「デシジョンテーブルテスト」は複雑な要素を含んだ仕様に対し様々な組み合わせを設けることで、抜け・漏れが起きにくいテスト設計ができるものです。

テスト技法の詳細に関しては下記を参照

ソフトウェアテスト基礎講座
参考URL:https://www.veriserve.co.jp/news/pdf/sm-traning-text-191031.pdf

対象読者

  • これからテスト設計を行うQAエンジニア
    • テスト観点や実施条件、手順決めなどテスト設計に関するプロセスを効率よく進めるための手助けになります。
  • テスト設計に詳しくないが、QA業務に関与する場面のある開発エンジニア
    • QAエンジニアとコミュニケーションを取る際に、QA側からの手法やテクニックを理解するための手助けになります。

デシジョンテーブルを使ったテストの紹介

ここで、弊社プロダクトの「workhub App」のテスト例を「デシジョンテーブルテスト」を使って紹介したいと思います。
内容としては、例題に対するテストプロセスの説明とテスト実装の流れとなります。

今回の例題は「アプリアイコンを変更した際に、workhub Appに変更が反映されること」という機能変更があったとします。
workhub App

【テスト分析】何をテストするのかを決める

テスト分析はテストベースを分析して、テスト可能なフィーチャーを識別し関連するテスト条件を定義して優先順位を付けるとともに、関連するリスクとリスクレベルを分析します。
また、テストベースとテスト対象を評価し、それらに含まれている可能性のある欠陥を識別したり、試験性のアセスメントをしたりするプロセスです。
今回の例で言うと、アプリアイコンの変更操作と反映確認がテスト対象となります。

テスト対象
 ┗アプリアイコンを変更できること
 ┗アプリアイコンの変更が各画面に反映されること

【テスト設計】どのようにテストするのかを決める

テスト設計はテスト条件をテストケースやその他のテストウェアに落とし込むプロセスで、ここでテスト技法である「デシジョンテーブルテスト」を使用します。
「デシジョンテーブルテスト」ではテスト対象に関わる因子と水準を決める必要があるため、下記の流れで洗い出していきます。
因子:「テストすべき条件」のこと
水準:「因子の選択値」のこと

今回の例ではアイコンの変更手段と、アイコンを確認する画面の2つが因子として該当します。
変更導線(因子1) → アイコンの変更手段を変更導線とする
確認導線(因子2) → アイコンを確認する画面を確認導線とする

上記のように表現します。

また、それぞれにの因子に関連する画面を水準として洗い出していきます。

workhub Appの各種画面:アイコン変更と画面確認
workhub Appの各種画面
PCの管理画面:アイコン変更と画面確認
PCの管理画面

洗い出した因子と水準は一旦下記のようにまとめます。
変更導線(因子1)
┗マイページ画面 (水準1-1)
┗プロフィール画面(水準1-2)  
┗PCの管理画面 (水準1-3)

確認導線(因子2)
┗マイページ画面(水準2-1)
┗プロフィール画面(水準2-2)
┗PCの管理画面 (水準2-3)

次に「デシジョンテーブル」の作成に入ります。
「デシジョンテーブル」は下記手順にて因子と水準を表にし、パターンとして一覧できるように作成します。
・条件記述部に因子と水準をそれぞれ入力する
・動作記述部に期待値を入力する
・条件指定部および動作指定部にパターンを入力する
デシジョンテーブル

【テスト実装】テスト実行に必要なものを準備する

テスト実装は、主にテスト実行に必要なデータや手順作成といったテスト環境を構築するプロセスです。
「デシジョンテーブルテスト」では作成した「デシジョンテーブル」の各パターンを用いて、下記の通りテストを構築して行きます。
・手順:実施に必要な操作手順を入力する
・パターン:P1-◯といった形式でパターンの番号を定めていく
・パターン内容:パターンの指定部で◯に該当する因子と水準を入力する
・期待値:パターン表の期待値を入力する
テストケース
以降のパターンも同様に作成していくことでテストを作成していきます。

終わりに

デシジョンテーブルテストは、特に条件が複雑なテストにおいて情報を整理する上でも有効なテスト技法だと思います。
該当するテストを行う機会がありましたら、是非挑戦してみて下さい!

Bitkey Developers

Discussion