2023.4.6
【第1回】:Eggplantが採用するテスト技法とは
ソフトウェア開発においてテスト工程の比重は非常に大きく、全工数の30~40%以上がテストに費やされると言われています。DX推進のためのアジャイル開発への移行による開発期間の短縮と、アプリケーションの高機能化・複雑化にともないその工数は増加の一途をたどり、熟練したテスト担当者の技量でもカバーが難しくなりつつあります。
従来、手動テストに費やす工数を削減すべく、開発現場では様々なテスト自動化の試みが行われてきました。しかしながら、現実には期待ほどテスト工程の生産性向上・工数削減につながらず、結果として手動テストや社外への検証委託に甘んじている開発現場が少なくありません。
こうした一方で、自動テストの実現に画期的なテクノロジーを活用する開発現場も徐々に増えてきました。その中でも、グローバルなIT調査会社や国内外の企業などから高い評価を受けているのが「Eggplant」です。Eggplantは高度なAI(人工知能)搭載のテスト自動化ツールであり、「探索型×モデル」という革新的なソリューションを提供します。
しかし、Eggplantの自動テストにおいて要所となる「探索型×モデル」に関する解説は多くありません。そこで今回のADOC TESLABブログでは、Eggplantの「探索型×モデル」による自動テスト技法に関して、シリーズで分かりやすく解説。第1回となる本記事では、Eggplantが採用するテスト技法の基本要素について整理します。
Eggplantが採用する2つのテスト技法
Eggplantは、次の2つのテスト技法を組み合わせることでテスト自動化を実現する、唯一のテスト自動化ツールです。
- 探索的テスト
- モデルベーステスト
Eggplantのユニークな特徴である「探索型×モデル」を理解する前に、これらの理解が欠かせません。それぞれの基本的なポイントについて解説します。
探索的テスト
探索的テストとは、テストケースを探索しながらテスト実行を進めていくテスト技法です。テスト実行のアウトプット(結果)を次のテスト設計にインプットする点で、従来のテスト技法と大きく異なります。
従来のスクリプト(記述式)テストやシナリオテストは、直線的にプロセスが流れていくアプローチであり、テストベース(仕様や設計など)をもとにテストケースを作成し、それに沿ってテストを実行します。
一方で探索的テストは、テストケース作成・テスト実行をサイクル化し、繰り返していくアプローチです。テスターがテストを実行する中で、次に実行すべきテストケースを探索・作成します。そのため、スピードを重視するケースではメリットが大きく、スクリプトテストに比べコストや工数を削減しやすいアプローチといえます。
また、探索的テストはアジャイル開発と相性が良いとされますが、テスターの経験やスキルへの依存性が高いことや、テストの結果どの程度の網羅性が担保されたのか判断することが難しい、その柔軟さから管理やテスト資産の再利用が困難などの問題も指摘されています。
なお探索的テストについては、以前のADOC TESLABブログでも論じてきました。詳細は、次の記事をご一読ください。
今こそ求められる探索的テストとは?【第1回】:探索的テストの基礎知識
探索的テストを自動化するメリット
探索的テストの特長を最大化する、自動化のメリットは主に次の2点です。
- 効率的な不具合検出が可能
- テストケースの抜け・漏れを補完可能
スクリプトテストやシナリオテストでは、テスト仕様書などの作成に多くの工数を要します。一方で探索的テストは、こうしたテスト文書を事前に固めることなくテストを進めます。テスト文書の作成に費やす工数をテストケースの消化に充てられるのみならず、スクリプトテストでは膨大なテストケースの設定が必要となるクリティカルなテスト項目を最短ルートで策定・実行するため、効率的な不具合検出が可能となります。
また、テスト担当者が手動でテストケースを作成する場合、人間の不注意や判断ミスによる抜け・漏れの発生はまず避けられません。しかし自動化された探索的テストでは、熟練したテスターに頼ることなく、テスト結果(過去も含む)やシステムの特性なども考慮してテストケースを自動作成し、抜け・漏れを補完することができます。
モデルベーステスト
モデルベーステストとは、テスト対象システム(SUT)から導出した「モデル」を用いてテストを進めるテスト技法です。モデルの種類は様々ですが、一例として下図のような状態遷移モデルが挙げられます。この例は、ストップウォッチの状態遷移をモデルに落とし込んだものです。
「停止中からSTARTボタンを押下すると、計測中に遷移する」のように、モデルの各状態遷移がテストケースと期待結果の双方を内包します。これらのテストケースを、テスト手順やテストスクリプトに変換してテスト実行。そして、テスト結果と期待結果を比較することで合否を判定する、というのが基本的な流れとなります。
モデルベーステストを自動化するメリット
モデルを用いてテストケースを設計するモデルベーステストを自動化に適用するメリットは、主に次の3点です。
- 網羅性の高いテストが可能
- プロセスの自動化が容易
- テストケースのメンテナンスが容易
前項で挙げた状態遷移モデルから分かる通り、SUTの振る舞いはモデルによって可視化されます。これによって必要なテストケースが明確となるため、人的ミスによる抜け・漏れの抑制につながり、網羅性の高いテストが可能です。
また、仕様や設計といった人間の主観が介在するテストベースを、モデルという論理的な概念に落とし込むことで、プロセスの自動化が容易となります。たとえばEggplantでは、モデルからテストケース・期待結果の自動生成や、カバレッジ(網羅率)などの可視化・分析が可能です。
さらに、テストケースの追加・変更が生じた場合でも、モデルを主軸とすることでメンテナンスが容易となります。テストケースや期待結果の生成を自動化している場合は、モデルを更新するだけでテストケースのメンテナンスが済み、煩雑なテスト仕様書の編集に神経を使う負荷も軽減されます。また設計・製造プロセスとテストプロセスとの意思疎通が緊密かつスムーズになることも効果の1つと言えます。
Eggplantの「探索型×モデル」で解決できる課題とは?
今回は、Eggplantが採用するテスト技法「探索型×モデル」のベースとなる、探索的テストとモデルベーステストの基本的なポイントについてお伝えしました。
探索的テストやモデルベーステストを各々自動テストに適用するメリットは大きいものの、現実には多くの課題があります。こうした課題を解決するうえで重要となるのが、両者を組み合わせた独自の「探索型×モデル」のコンセプトです。
Eggplantが提供する高度な自動化の活用において、比類のない網羅性の実現に寄与するAIテクノロジーとともに、このユニークな自動化テスト技法の理解が欠かせません。次回は、Eggplantの「探索型×モデル」がメリットを発揮する、自動化の課題と解決についてご紹介します。また、Eggplantに関してさらに理解を深めるために、以下についても順次説明します。
- Eggplantによる自動化手法
- Eggplantの適用ケース
- 2023.7.20
- 【第5回】:Eggplantの適用ケース