テストケース作成に生成AIを導入した効果と課題

こんにちは!チケット領域でQAを担当している青柳です。

今回は、生成AIを活用したテストケース作成の事例を紹介させていただきます。

現状のテスト設計における課題

ソフトウェア開発において、テスト設計は重要な工程であり、品質を保証するために欠かせない部分であると思います。しかし、テストケースの作成には時間と手間がかかるため、効率的で精度の高い方法を検討しなければ、日々成長するプロダクトの品質担保・精度向上が難しくなってきてしまうと感じていました。

課題解決のために

自身の課題でもあったテストケース作成工数、精度向上を図るため、近年話題となっている生成AIを活用したテストケース作成を試してみました。

アソビューではQAは各開発チームに所属する形となっていますが、横軸の繋がりもあり、定例MTGなどを通じてナレッジ共有も行っています。QA内でも生成AI活用の議論が進み、すでに利用しているメンバーからも効果が見込める話を聞いていたため、私も試してみることにしました。今回の記事では、ChatGPTを利用しましたが、過去に何度か使用した経験があり、取っ掛かりやすいと感じたため選定しました。

まずは限定的ですが、テストケース作成の一部(組み合わせテスト・デジションテーブルの作成)をトライしました。限定的とした理由は、効果がありそうな部分からトライアルすることですぐにテストケース作成工数の削減に繋げられそうな点、現状のテスト設計フォーマットを網羅させようとすると検証するケースも多くなり、成果を出すまでに時間を要してしまう点からです。

生成AIにテストケース作成を任せてみた

どの部分を切り出してテストケース作成させるのが効果的か

チケットシステムの検証では、因子がとても多く、複雑な条件や制約のある仕様もあるため、組み合わせパターンを視覚的に分かりやすく整理できるデジションテーブル、実際のテストケース作成を行う中で時間を使ってしまっていた、因子間の組み合わせテストに絞ってトライしてみました。

因子間の組み合わせテスト

チケットの購入パターンを指示してみます。

以下の因子から組み合わせによる購入パターンのテストケースを作成してください。

  • 券種は大人、小人の2種類
  • 決済手段はクレジットカード、QRコード、電子マネーの3種類
  • ポイント利用有無
  • クーポン利用有無

結果 特に指示はしていませんでしたが、ChatGPTは組み合わせ最適化のアプローチとして直交表を採用した結果を返してくれました。購入のパターンとしては、大人のみ、小人のみ、大人&小人の3パターンがあるため、大人&小人のパターンが抜けていました。ChatGPTの出力を補完するため、追加の指示を出しました。

追加指示

大人と小人が両方含まれるケースも追加してください。

結果 手動では時間がかかる作業を、わずか数分で完了できました。

デジションテーブルのテストケース作成

以下の条件からデジションテーブルの作成を指示してみます。

あるテーマパークにおける料金の仕様からデジションテーブルを作成してください。

  • 平日大人の料金は2,000円
  • 平日小人の料金は1,000円
  • 平日シニアの料金は1,500円
  • 土曜、日曜、祝日は+500円
  • クーポン利用時は合計料金から10%OFF
  • ポイントは購入するゲストが保有するポイント内で利用可能(割引可能)
  • クーポン・ポイントの併用不可

結果 これらの得た回答をベースに内容の精査・追加の指示を行い、テストケースへの反映や参考にできそうです。

試行錯誤してみて得られたものとして、ChatGPTに指示するときは以下の点に意識すると上手くいきました。

  • 何をしてほしいのか明確にする
  • 条件は詳細に提示する
  • アウトプットの形を明確にする

また、生成AIと対話するように、『他のテスト観点も考慮できますか?』や『エッジケースも含めて作成してください』といった追加の指示を出すことで、より詳細なテストケースが生成されます。質問を投げてみると参考になる内容が返ってくるので是非試してみてください。今回の記事では、因子間の組み合わせ・デジションテーブルの紹介をさせていただきましたが、他にも境界値分析、ユースケーステストなどのブラックボックステストにも応用することも可能だと思います。実際に検証した結果は後日ご紹介させていただきます。

成果・今後に向けて

生成AIを活用することでテストケース作成の効率化・精度向上に役立てられる兆しが見えてきました。今まで因子間の組み合わせを書き出したり、パターンを検討したりしていた作業が、わずか数秒で完了するようになりました。さらに、生成AIの精度が高いため、ケアレスミスも減らせるのではないかと感じました。生成AIの出力は、そのまま活用できるものもあれば、参考程度にとどめるべきものもあります。そのため、AIはあくまでツールとして捉え、最終的な判断は人間が行う必要があると認識することが大事です。

また、テストで扱う情報は機密情報も含まれるため、生成AIを活用するうえでのセキュリティ面には細心の注意が必要です。自分が入力した個人情報や機密情報などがChatGPTに学習・記録され、不特定多数にその情報が流出するリスクを減らすために設定することを推奨します。

設定 > データコントロール > すべてのユーザー向けにモデルを改善するをOFF

今回はテストケース作成の一部に生成AIを活用しましたが、今後は適用範囲を広げ、さらなる効率化や精度向上を目指したいと考えています。そのため、生成AIでできること・できないことを含め、継続的に検証を行っていく予定です。また、次回テストケースを作成する際には今回のトライアルを活かして、どれぐらい作成工数を削減できるのかなど定量的な部分も測っていきたいです。

最後に

アソビューではより良いプロダクトを世の中に届けられるよう共に挑戦していくエンジニアを募集しています。 カジュアル面談もやっておりますので、お気軽にエントリーください! お待ちしております。 www.asoview.co.jp