2023.4.20
【第2回】:スピードと低コスト、高い網羅性の実現
「探索型×モデル」による自動テスト技法をひも解く【第2回】:スピードと低コスト、高い網羅性の実現
自動テストの適用による生産性・品質の向上は、昨今のソフトウェア開発において重要なテーマであり、多くのQA部門やテストエンジニアが様々な試みを行ってきました。しかしながら、高いQCDを担保できる自動テストの実装は容易ではなく、開発現場の多くが手動テストや検証の外部委託から脱却できない現実があります。
こうした状況の打開策として、テスト自動化に画期的なテクノロジーを取り入れる開発現場が増えてきました。その中でも、著名なIT調査会社などから高い評価を獲得し、革新的なテスト自動化ソリューションとして期待を集めているのが「Eggplant」です。高度なAI(人工知能)を搭載するEggplantは、「探索型×モデル」という新たなテスト自動化のあり方を提示しています。
探索型×モデルとは、有用なテスト技法である「探索的テスト」および「モデルベーステスト」を組み合わせたEggplant独自のテスト自動化のためのコンセプトです。探索型×モデルの要素である上記テスト技法の基本事項については、連載第1回で整理しました。詳細は、次の記事をご一読ください。
「探索型×モデル」による自動テスト技法をひも解く【第1回】:Eggplantが採用するテスト技法とは
探索的テストやモデルベーステストには、テストの効率化実現に貢献するメリットもある一方、導入にあたっての課題もあります。こうした課題の解決策に大きく寄与するのが、Eggplantの探索型×モデルによる自動化です。第2回となる本記事では、2つのテスト手法の課題とEggplantの「探索型×モデル」による解決方法について説明します。
「探索型×モデル」による探索的テスト・モデルベーステストの課題解決
第1回で解説した探索的テストとモデルベーステストの概要やメリットは下表の通りです。
テスト技法 | 概要 | メリット |
---|---|---|
探索的テスト | テスト実行の過程で次のテストケースを探索していくテスト技法 | ・速やかかつ効率的な不具合検出が可能 ・テストケースの抜け・漏れを補完可能 |
モデルベーステスト | テスト対象システム(SUT)から導出した「モデル」を用いてテストを進めるテスト技法 | ・網羅性の高いテストが可能 ・プロセスの自動化が容易 ・テストケースのメンテナンスが容易 |
探索的テストやモデルベーステストには上記のようなメリットがある一方、課題もあります。本項ではこれらの課題や、Eggplantの探索型×モデルにより解決するアプローチについて解説します。
探索的テストの課題
手動による探索的テストでは、現状のテスト結果やシステム特性などから、次に実行すべきテストケースをテスター自身が考えます。そのため、テスト品質はテスターの経験や知識、スキルに大きく左右されます。熟練したテスターの工数を確保できない場合、テスト成果を高めることは難しいのが課題です。
また、探索的テストは公式性が低いテスト技法であり、基本的にテストケースの事前定義を行いません。そのためテストのカバレッジ(網羅率)が可視化されず、テスト仕様書などからテストケースの実施状況を把握できないのも課題です。実行すべきテストを見落とした場合、見落としたことにさえ気づけない恐れもあります。
こうした性質上、探索的テストだけで品質保証のあらゆる面をカバーしようとするべきではありません。テストケースを事前定義する従来のスクリプト(記述式)テストを実施したうえで、品質確保の仕上げに行うことが一般的です。したがって探索的テストの適用は、スクリプトテストの工数削減策とはならない点に留意する必要があります。
「探索型×モデル」による探索的テストの課題解決
探索的テストの課題に対してEggplantが提示する解決策は、AIをともなうモデルベーステストの併用です。
Eggplantによるテスト自動化においては、テスト対象システム(SUT)を状態遷移などのモデルに落とし込み、それをもとにAIがテストケースを探索します。SUTの状態や画面ごとのアクションがモデルに集約されるため、モデルからテストケースを生成することで、抜け・漏れを防止することが可能です。通常の探索的テストでは把握やコントロールが困難とされるカバレッジも、モデルによって可視化されます。
また、モデルからテストケースを探索するテクノロジーとして、テストデータを蓄積し自ら知見を得る「機械学習」等のAIが採用されています。現状のテスト結果はもちろん、過去のテスト結果も考慮することでテストケース生成の精度を飛躍的に向上し、熟練したテスターに依存することのない探索的テストを可能にします。
モデルベーステストの課題
一般的なスクリプトテストでは、仕様や設計といったテストベースをもとにテスト設計を行います。一方で手動のモデルベーステストでは、テスト設計前にモデル作成(モデリング)が必要です。準備工程が増える分、最適なプロセスでなければかえって工数の増大を招くリスクもあります。
また、SUTの規模が大きいほどテストケースも増大し、手動のテストでは全てを実行することが難しくなります。十分な工数を確保できない場合、現実にはテストケースの優先順位付け・選定という追加作業が必要です。テストの成果は、これらの作業精度にも大きく左右されることになります。
また、自動化されていないモデルベーステストでは、メンテナンス担当者の作業負荷も少なくありません。仕様や設計に変更が生じるたびに、モデリングやテストケース・期待結果の作成が必要となるためです。
「探索型×モデル」によるモデルベーステストの課題解決
EggplantはAIをともなう探索的テストの併用により、モデルベーステストのテスト準備からメンテナンス作業にいたる「負荷軽減」の課題を解決します。
前述の通り、Eggplantではテストケースを高度なAIが探索するため、人手によるテストケースの優先順位付けや選定作業が不要です。膨大なテストケースの中から、不具合リスクの高いテストケースを優先的に生成・実行することで、限られたスケジュールの中でテストの成果を最大化します。
探索型×モデルでは、テストケースを生成するために必要なことは、テストするインターフェイスのシンプルなモデルを構築することだけです。Eggplantはこのモデルを実行すると、あらゆるユーザー・ジャーニーを追跡しながら膨大なテストシナリオを基にテストケースを生成します。
またEggplantは、迅速なモデル作成・メンテナンスを可能にする、操作性の高いUIを搭載しています。テストベースに変更が生じた場合でも、モデルの更新だけでテストケース・期待結果にも反映されるため、メンテナンス作業の飛躍的な効率化が可能となります。
Eggplantの具体的な自動化手法とは?
今回は、探索的テストやモデルベーステストの課題と、Eggplantのユニークな「探索型×モデル」のテスト自動化技法による解決方法について整理しました。
Eggplantは探索型×モデルの技法と合わせ、AI・ディープラーニング・予測分析等の先進技術を採用し、カバレッジとバグ検出を目的にしたテストケース作成を最適化するとともに、テストカバレッジの飛躍的な向上を可能にし、次のようなメリットを提供します。
- 膨大なテストケースの作成を自動化することで、工数と生産性を飛躍的に改善する
- バグの速やかな発見と、品質上の問題を引き起こすリスクが高い箇所を予測する
- 開発側では想定していない、使用感や課題を見つけ出すユーザー体験(UX)の向上
このようにEggplantは、探索的テストおよびモデルベーステストの併用により両者の課題をカバーするにとどまらず、それらのメリットを最大化するテクノロジーを備えています。こうしたEggplantの優位性を開発・QA現場が享受するためには、Eggplantの自動化手法をさらに掘り下げて理解することが肝要です。
次回は、Eggplantの具体的な自動化手法の1つである、テストモデルの作成に焦点をあてて解説します。
- 2023.7.20
- 【第5回】:Eggplantの適用ケース