2021.7.8
【第5回】:課題解決のために ②AIを活用したテスト自動化
「探索的テスト」は、テスト設計およびテスト実行を並行するテスト技法です。テスト実行しながら次に実行するテスト項目を選定することで、テスト設計工数の削減や効率的なバグ検出が可能となります。一方で、有力なテスト技法であるにもかかわらず、さまざまな課題により開発の現場では適用が進んでいないことも連載第3回で解説しました。
私たちは探索的テスト適用における課題の有用な解決策として、2つのアプローチが存在すると考えています。連載第4回では、1つ目の解決策として「モデルベーステストの適用」について解説しました。しかし、モデルベースの手法だけでは探索的テスト自動化における以下3つの課題を十分に解決できません。
・スキルの高いテスターの確保が困難
・高精度な結果判定技術の実現
・開発ドキュメントに依存しないモデリング技術の実現
そこで探索的テストの連載第5回である本記事では、2つ目の解決策である「AIを活用したテスト自動化」についてご紹介します。
今こそ求められる探索的テストとは? 【第4回】:課題解決のために ①モデルベーステストの適用
AIの適用により、探索的テスト自動化の課題を解決できる3つの理由
AIとはArtificial Intelligence (人工知能) の略称であり、思考や推測といった人間の脳における働きをコンピュータにより再現する技術です。近年では、自動運転など様々なAI技術が社会に大きな変化をもたらしています。デジタル技術の活用によりビジネスモデルを変革する「DX」に取り組む企業も多く、その中でもAIは特に有力な技術のひとつといえます。
そして、開発現場におけるテストも例外ではありません。AIの活用により、探索的テスト自動化の障壁となる多くの課題を解決できます。ここでは、AIを用いることで探索的テスト自動化の課題を解決できる3つの理由について解説します。
理由1:過去の経験から学習し、テスターの探索技術を再現可能
探索的テストにより高い成果を得るためには、テスターが持つ経験や知識の活用が必要不可欠です。スキルの高いテスターは、多くの経験や知識をもとにバグの検出リスクが高い箇所を見極め、少ない工数で多くのバグを検出します。しかし、これは非常に繊細な判断が求められる属人性の高い能力であり、テスト自動化のハードルを著しく高める要因ともなり得ます。
こうしたテスターの探索技術を再現し、さらにテスターも予測しない “ユーザー視点” からテストを実行するには、AIに「深層学習」と呼ばれる手法を適用するのが有力です。具体的には、開発履歴や過去のバグ情報といった膨大なデータをインプットとして、AIに学習させます。
AIが大量の経験データを蓄積・分析することで、バグの検出リスクが高い箇所を正確に導き出すことが可能です。また、AIは大量のテストケースを短時間で自動生成することにより、テストのカバレッジ (網羅率) を飛躍的に高めます。
検出した新たなバグはAIの経験として蓄積され、以降の開発でテスト項目選定の判断材料として活用されます。つまり、テストを繰り返すごとに探索精度が向上するため、アジャイル開発のように短いサイクルでテストが繰り返されるケースで特に有効です。
理由2:画像認識・文字認識により、正確な結果判定が可能
探索的テストでは、それまでのテスト結果を判断材料のひとつとして次のテスト項目を選定するため、テスト結果の判定ミスが許されません。しかし、期待する表示に対して数ピクセルのずれが発生するケースも考えられ、テスト期待値とのわずかな差異を正確に判定することは困難です。
AIの画像認識や文字認識といった技術を用いることで、正確なテスト結果判定が可能となります。画面上に表示される画像や文字をAIが認識し、期待する表示内容や表示位置と差異がないか判定することで、僅かなずれも見逃しません。さらに、判定した結果を経験データとして蓄積することで、以降のテスト項目選定がより正確となります。
理由3:開発ドキュメントに依存せず、柔軟なモデリングが可能
探索的テストにモデルベーステストを併用する場合、モデリングのインプットとして仕様書や設計書を用いることが一般的です。こうした開発ドキュメントが不十分なケースでは、テスト対象システム自体をもとにモデリングすることとなります。しかし現代のシステムは複雑化しており、すべての状態やアクションを網羅してモデリングするためには、膨大な工数が必要です。
AIを活用することで、開発ドキュメントに依存しない柔軟なモデリングが可能となります。AIは、状態遷移モデル内のあらゆる状態やアクションの関係性を正確に把握し、自ら考え探索します。モデルの構成によらず柔軟にテスト自動化シナリオを生成できるため、モデリング時に自動化を意識する負担が大幅に軽減できるのです。
とはいえモデリングを効率化する上で、テスト対象システムを状態遷移モデルに落とし込むためのUIは欠かせません。探索的テスト自動化実装サービス『ADOC Testing Service (ATS) for Eggplant』は、視覚的なモデリングを容易にするUIを備えています。こうしたサービスの利用によって、モデルベーステストを併用した探索的テスト自動化は容易となります。
探索的テスト自動化の有力な選択肢となるプラットフォームとは
今回は、探索的テスト適用の課題に対する2つ目の解決策である「AIを活用したテスト自動化」についてご紹介しました。
このようにモデルベーステストを併用してAIにより自動化することで、探索的テスト適用の課題を解決に導くことはできます。とはいえ、探索的テストやモデルベーステストの自動化には高度なテクノロジーやプログラミングスキルの習得が必要不可欠です。開発サイクルの短い今日の現場では、優秀なエンジニアの工数をテスト自動化のために確保することは容易ではありません。
テスト自動化の早期実現には、導入効果検証からコンサルティングを含むATS for Eggplantの採用が有力な選択肢となります。同サービスは、米キーサイト・テクノロジーズが開発した世界初の探索的テスト自動化ツール『Eggplant』をコア・プロダクトとして採用。先鋭的なモデリング技術やAIのラーニングアルゴリズムを駆使して、探索的テスト自動化プラットフォーム構築の工数を大幅に削減することが可能です。
一般的な自動化ツールのようなテストの実行だけでなく、あらゆるプロセスを自動化してテストサイクル全体の生産性を向上するなど、ATS for Eggplantには多くの優位性があります。詳細については、別の機会にしっかり論じたいと考えています。
■ ADOC Testing Service for Eggplantの概要へ
■ ADOC Testing Service for Eggplantの資料請求へ
- 2021.7.8
- 【第5回】:課題解決のために ②AIを活用したテスト自動化