生成AIを使ってテストケースを大量に作ってみた

生成AIを使ってテストケースを大量に作ってみた

目次

    はじめに

    こんにちは、デジタルエンジニアリング部の磯野修一です。
    今回は生成AIを使ってテスト仕様書のテストケースを作ったので、その手順と気づきを紹介します。

    やりたいこと

    開発中のアプリについてテスト仕様書を作成します。
    今回作るテスト仕様書は、アプリの画面操作が問題ないかを確認するチェックリストのようなものです。

    アプリ内のUIコンポーネント(ボタン、フォーム、入力要素など)の数はとても多く、それらを手書きでリスト化するのは非常に大変です。
    ということで、「生成AIにテストケースを作ってもらおう」というのが今回やりたいことです。

    手順

    実際にサンプル画面を使った手順を紹介していきます。
    画面イメージはこんな感じです。
    サンプル画面イメージ

    生成AIへの入力として以下の設計書を使います。
    請求書イメージ

    設計書をNotebookLMに追加します。

    NotebookLMとは、Google提供の生成AIツールです。アップロードされたファイルの内容を読み取って様々な形式(テキスト、音声、動画など)で要約したり、チャット形式で質問ができたりします。
    入力はテキスト、PDF、webサイトのURLなど様々なものがありますが、Excelファイルは非対応ですのでPDF化してからアップロードします。

    以下のプロンプトでテストケースを作るよう指示します。

    [画面名称]に関する設計書を参照して結合テストを作成したいです。以下のテスト観点をもとにテストケースを可能な数だけ出力してください。
    各テストケースには「ケース名、確認内容、確認条件、確認手順、期待値」を含めてください。
    テスト観点は初期表示、画面操作(クリック時に発生するイベント)です。
    出力内容は表形式にせず、番号付きリストで列挙するようお願いします。

    そうすると、以下のようにテストケースを作ってくれます。
    NotebookLでテストケースを出力している画像

    今回は9件ですが、設計書の内容がもっと細かい場合はこの方法で一気に40件ほど作ることが可能です。
    フォーム送信時の入力チェック処理も、設計書に書いてあればケースに反映してくれます。

    これで完成としたいところですが、テキストのままでは仕様書としては使いづらいです。
    ですが、NotebookLMのチャットではテキスト形式しか出力してくれません。

    ということで、Geminiにお願いし、テキストからCSV形式に変換してもらいました。

    Geminiも同じくGoogle提供の生成AIツールです。こちらもチャット形式で質問ができます。NotebookLMとは異なり、ネットのソースから回答を生成するため、調べものに向いています。

    以下がプロンプトです。

    テスト仕様書の項目のメモを添付しましたので、これをもとにテスト項目のcsvファイルの作成をお願いします。
    他条件は以下のようにお願いします。
    ・ヘッダー行は
    「ケース名、確認内容、確認条件、確認手順、期待値」
    の5項目とすること
    ・次以降の行に番号がついているケースを入れていき
    対応する列に対応する内容を入れること。
    例えば、以下の入力の場合、
    1. ケース名: A
        ◦ 確認内容: B
        ◦ 確認条件: C
        ◦ 確認手順: D
        ◦ 期待値: E
    csvファイルには
    ケース名,確認内容,確認条件,確認手順,期待値
    A,B,C,D,E
    と記載すること。

    これでCSV形式に変換することができました。
    Geminiでcsvに変換した画像

    あとはそのままExcelにコピペすればテスト仕様書ベースの完成です。
    これでゼロからケースを書く必要がほとんどなくなりました。あとは内容をチェックし、手直しするだけです。
    完成したテスト仕様書のベース

    動作の項目に書いてあったラジオボタンの色変化までケースにしてくれています。賢いですね。

    以上、設計書から生成AIでテストケースを作る手順でした。

    効果・効用

    出力内容が大きくずれていなければ、テストケースの半分以上は生成AIに作成を任せることができます。
    実際の案件ではテストケースが1000件近くありました。そのうち700ケース程度は生成AIにベースを作ってもらいました。

    以下、使っていて感じたメリットを紹介します。

    アウトプットの量と質が上がる

    生成AIを使うことで、手作業では困難な量のテストケースが作れるようになりました。また、文章を書く作業が減る分、内容チェックと修正作業に労力を割けるようになりました。

    生成されたテストケースを見てキャッチアップできる

    筆者はテスト作成から案件にアサインされたため、アプリの動作に詳しくなかったのですが、生成されたテストケースを見ることで動作を理解することがありました。設計書から読み始めると時間がかかる部分を、テストケースから読むことで理解がスムーズになりました。

    課題

    間違った出力が混じってしまう

    生成AIの出力が設計書に依存しているため、設計書に間違いがあるとテストケースも間違ったものを出力します。また、取り消し線が入った文章を「削除された仕様」として読んでくれないため、設計書不備でなくても出力が間違っていることがあります。これらの問題については、ドキュメントの管理を適切に行うことで軽減できます。

    再現性が高くない

    上記手順を他の人にも試してもらったのですが、明らかにおかしな出力になることがありました。 そのため、自分の環境で使える手順があっても他の人に引き継げない場合があります。

    まとめ

    今回一番言いたいことは、生成AIは難しいことをしなくても気軽に使えるということです。

    実際、上記の手順を確立するまで1時間もかけていません。また、プログラミングの専門知識もいりません。プロンプトを精錬したら時間がかかりますが、そこまでしなくても大丈夫です。必要なのはアイデアと課金AIだけです。

    むしろテストケース生成後の修正やテスト仕様書の運用方法を整備する方が大変でした。
    今後は生成したものをどう制御していくか、どう業務に組み込んでいくかが1つの課題になると思います。

    要するに「生成AIを使ってみる」だけなら本記事のようにすぐできます。
    本記事の手順も最初は軽い思いつきでしたが、実際やってみて「できるんだこれ」って感動しました。
    機会があれば、ぜひ活用してみてください。

    アジアクエスト株式会社では一緒に働いていただける方を募集しています。
    興味のある方は以下のURLを御覧ください。