仕様書からテストケースを自動生成! Autify Genesisが変えるソフトウェアテストの未来
システム開発での生成AI活用が急速に進んでいる。ソフトウェアテストにおいては自動テストだけでなく、テストケースの自動作成まで可能になってきた。9月27日に開催された「Think IT Day AI for DevOps ~AIはアプリケーション開発・運用をどう変えるのか?~」(主催:インプレス Think IT)のオーティファイのセッションでは、Autify Co-founder & 代表取締役CEO 近澤 良氏と、Autify Genesisプロダクトマネージャ兼エンジニアリングマネージャー 松浦 隼人氏が登壇。「AIが変革するシステム開発」と題して、テストワークフローの現場で起こっている「変革」のリアルを紹介した。
ノーコードで誰でも簡単にテストを自動化
生成AIがソフトウェア開発の現場を大きく変えはじめている。これまでもAIを活用したコード補完やコード生成、自動テストの実行などの仕組みは提供されてきたが、従来型の機械学習(ML)・AIでは適用できるシーンが限られていた。この流れを大きく変えたのが、生成AIだ。
なかでも、ソフトウェアテストの領域で生成AIによる新しい仕組みやサービスを提供しているのがオーティファイだ。同社は、米国サンフランシスコで創業し、日本に支社を置く日本企業で、AIによるソフトウェアテスト自動化・効率化ソリューションを展開する。
創業者の近澤氏は、米国トップ5のスタートアップアクセラレーターAlchemist Acceleratorを日本人で初めて卒業した人物だ。近澤氏はこう語る。 「主力プロダクトは、AIを用いたWeb/モバイルアプリのエンドツーエンドのテスト自動化サービス『Autify NoCode』です(図1)。ノーコードで誰でも簡単にテスト自動化が可能で、AIがそれをメンテナンスします。UIを変更するとその度に必要なテストが変わっていましたが、その変化をAIが見つけて自動でテストを直します。世界中で多くの企業に採用いただいており、Fortune Global 500に載る日本企業の25%以上がユーザーです」(近澤氏)
Autify NoCodeは従来型のML/AIを活用している。近澤氏は、生成AIの活用は始まったばかりだとし、今後ますます発展していくと指摘する。
「ソフトウェア開発には、翻訳業界に起こったような変化が到来するでしょう。翻訳業界では、2016年にNeural Translationが出現し、今では、AIが下地の翻訳を行い、人が修正するPost Editingが主流になりました。同じようにソフトウェア開発は、AIが下地を作り、人がそれを修正していくプロセスに移行します」(近澤氏)
生成AIによる変化が急速に進展しているのがソフトウェアテストの領域だ。
テストの負荷やコストが増加、
テストスキルを持つ人材も不足
近澤氏は、ソフトウェアテストの領域で生成AI活用が進む背景として、開発予算の3分の1ほどがテストに使われていることや、繰り返しの作業が多いため自動化による効率化に向いていることなどを挙げる。実際、オーティファイ社内でも製品の開発に生成AIを活用しており、テストケース作成時間を55%も削減することができたという。
そのうえで近澤氏は、実際にテストで課題になっていることとして「システム開発をベンダーに依頼しているがコストがかかりすぎて頻繁な修正ができない」「アジャイルな開発をしているがテストがボトルネックになりリリース頻度が上がらない」「社内システムの移行においてテストの負荷が高い」「ソフトウェア開発に強い人材が採用・育成できず、ベンダーの業務管理ができない」などがあると指摘した。
「こうした生成AIの未来や、ソフトウェアテストの領域で抱えている課題に対して、オーティファイでは、AIや生成AIを活用したプロダクトを提供しながら、品質保証のプロフェッショナルとしてテストプロセスのすべてをサポートしていこうとしています。そのために『Autify Genesis』という新しいプロダクトを提供しています」(近澤氏)
Autify NoCodeがこれまで提供してきたのは、テストケース作成、テスト実行(自動化)、レビュー、それによるコードの保守、改善、運用支援というサービスだ。これに対し、新製品となるAutify Genesisは、テストケース作成などのさらに上流となる、テスト戦略・計画やテスト設計を支援するツールとなる。
「Autify Genesisを利用すると、仕様書や設計図、モックアップなどを入力して、それをテストするためのテストケースを作成します。そのテストケースをAutify NoCodeによる自動テストが可能なかたちで翻訳します」(近澤氏)
さらに、QA/テスト自動化コンサルティング・リソース支援として「Autify Pro Service」の提供も行う。3つの製品・サービスを活用することで、ソフトウェアテストのライフサイクル全体での支援が可能になるわけだ(図2)。
生成AI活用することで、
より抽象度の高いテストが実施できるように
続いて、Autify Genesisプロダクトマネージャの松浦氏が、Autify NoCodeとAutify Genesisがそれぞれどのような領域をカバーし、どのような機能を提供するのかを解説した。
松浦氏によると、ソフトウェアテストライフサイクルは大きく6つに分けられる。1. 要件分析、2. テスト計画の作成、3. テストケースの開発、4. テスト環境の作成、5. テストの実行、6.テストサイクルの完結だ。このうち、4.〜6.までがAutify NoCodeの、1.〜3.までがAutify Genesisのカバー領域となる。
「例えば、テスト対象のアプリケーションになんらかの変更が加わると、テストの流れを変える必要があります。もしそれをコード化しているとコード自体も使えなくなります。ここで、Autify NoCodeでは、Webアプリケーションをテストする場合にHTMLの中から前回のテスト実行時との要素認識のずれを検知し、自動的に修正することができます」(松浦氏)
Autify NoCodeは従来型のML・AIを利用してきたが、生成AI活用すると、より抽象度の高いテストをこなせるようになる。
「コードから離れるほど、抽象度・難易度が上がります。生成AIを利用すると、従来型ML・AIでは難しかったシステムやユーザーの振る舞いのテストや、製品知識や仕様書の理解、テスト手法の理解を踏まえたテストができるようになります。具体的には、仕様書を読み込んで何をテストすべきかを明確化したり、これまで熟練のQAエンジニアが行っていた同値分割や網羅表などのテクニックを使った網羅性の高いテストケースの開発を行なったりできます」(松浦氏)
こうした機能を誰でも簡単に利用できるようにしたのがAutify Genesisだ(図3)。
人にしかできないことと
AIによる自動化を組み合わせて事業に集中
Autify Genesisを利用すると、読み込んだプロダクト仕様書や設計書から、何をテストするかというテストケースを自動生成したり、どのようにテストするかというテストシナリオを自動生成したりできる。
「知識を持った方がAutify Genesisが生成したテストケース、テストシナリオをレビューすることで、完全な形で近づけることができます。単にシナリオをつくるだけでなく、最終的にテストを自動化できるコードや、Autify NoCodeのようなコードを使わないで繰り返しテストを実行できる仕組みにつなげることができます。これによりテストにおけるライフサイクルのほとんどをカバーすることができるようになります」(松浦氏)
松浦氏は、実際にAutify Genesisを使って、ECサイトのカート機能をテストするデモを示した。デモでは、PDFの仕様書や画面の仕様書をアップロードすると、何をテストすべきかの一覧が表示され、さらにそれをレビューして、テストを生成していく様子が示された。生成AIとエージェントのやりとりは自動化されており、ユーザーは必要なときに必要なレビューだけをすればよい。
「入力として利用できるのは、テスト対象の振る舞いが書かれた文書です。概要設計書や外部設計書などの仕様書のほか、バグチケット、操作マニュアルなども利用できます。出力されるのは、テストケース、テストシナリオ、テストコードです。実際に、オーティファイ社内でAutify Genesisを活用したところ、あるケースでは55%の時間を削減できることができました」(松浦氏)
最後に近澤氏は「Autify Genesisのコード生成はAutopilotです。コードをAIが書いてくれるのでおかしなところだけを人が直せばいい。AIが下地を作って人がそれを補完することを実現しています。人にしかできないところとAIによる自動化・効率化を組み合わせて、時間を有効活用し事業に集中できるようにする。そうした環境を作ることを目指します」と述べ、講演を締めくくった。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- 生成AIはソフトウェアテストをどのように変えるのか 〜mablに聞く、テスト自動化におけるLLM活用の展望と課題
- Visual Studio 2005による開発とテスト環境
- 構造を浮き彫りにするテスト
- エンジニアの業務を効率化する生成AIによる「プログラミング支援」
- Template Methodパターンの事例
- チーム開発とVisual Studio 2005 Team Foundation Server
- 【9/27開催】生成AIによる開発・運用の変化を探るイベント「Think IT Day」先着100名に書籍プレゼント!
- 結合テストと総合テスト
- JUnitの利用
- Visual Studio 2005 Team Systemで補うテスト駆動開発