はじめに
AIすごい。
すごいのですが、AIを活用したソフトウェアテストの生成事例というのは、まだそれほど多くは見かけない気がします。
なお、ここで言うソフトウェアテストとは、リリースにおける判断材料として用いたり、よりユーザに近い視点で要件との適合性を確認するためのテストを指します。(ブラックボックステストが中心になると思います)
この記事を書くに至った経緯としては、Kazuさんの以下の投稿を拝見したことがきっかけでした。
生成AIによるテストの生成、
— Kazu SUZUKI (@kz_suzuki) 2025年4月19日
➊仕様を与えたら、生成AIは直接テストケースを出す。人間はそれをレビュー・手直し・フィードバックする
➋仕様を与えたら、生成AIはテスト分析・設計・実装の結果を順番に出す。人間は出力ごとにレビューを行い、段階を追って完成させていく
どっちが適切なんだろう。
私個人としては、②の段階的に成果物を作成させ、都度人間がレビューする方法が良いのではないかと考えています。
ごく小規模なソフトウェアであれば、直接テストケースを出してもらってレビューするだけで済むかもしれませんが、複雑なビジネス要件を満たしているのかをレビューしてもらったり、設計的に弱そうな部分、実装が複雑な部分をレビューしてもらったりと、さまざまなステークホルダからレビューを受け、納得感のあるテスト*1に仕上げていく必要があります。
その時に、表形式で書くことが多いテストケースで、それらのレビューができるでしょうか?
それよりは、テスト分析から設計、実装と段階的に手段に落とし込んでいくことで、目的を追いやすくなることでレビュー容易性が向上し、ステークホルダに対して納得感のあるテストを提供できるのではないでしょうか。
どのようにして段階的にレビューをしていくのか
では、AIに生成させた成果物を段階的にレビューをしていくためには、どのような手段を取るのが良いのでしょうか。
2025年5月現在、私自身で明確な手順を持っているわけではありませんが、ぼんやりとしたイメージだけはあるので、それをお伝えします。
RDRAZeroOneを使ってみた。
— アシカ (@tyngw) 2025年4月26日
ビジネスの背景と概要を入れてビジネスアイデアの磨き込みをしながら詳細化するという従来の要件定義のツールとしての使い方だけでなく、もちろんテスト要求分析にも活用できそうだと感じた。https://t.co/jykt4MX3hN
先日、上記のような投稿を行いましたが、要件定義のツールであるRDRA*2の一部のフェーズをLLMが支援するRDRAZeroOneが一つのヒントになりうるのではないかと思いました。
自然言語ではあるものの、ある程度の構造化された文章(モデル)に落とし込むことで、人間がレビューや修正を行いながら、要件の叩き台を作成することができるのが特徴です。

ソフトウェアテストにおいても、テスト分析・設計・実装と、段階毎に異なる表現・抽象度で目的を達成するための手段を具体化していくことになりますが、上記のように、定型化されていて、尚且つ、構造化されたモデルに落とし込んで、段階的にレビューと修正を行うことで、より目的に沿ったテストが実現できるのではないかと考えています。
*1:納得感のあるテストとはなんぞやという話は、それはそれで深いテーマなので、本稿では割愛します