25
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

生成AIでテスト設計の手作業を半減させた話【Claude Code × Notion】

Last updated at Posted at 2025-12-22

はじめに

こんにちは!KIYOラーニング株式会社でQAエンジニアをしている坪根です。

突然ですが、QAエンジニアの皆さん、こんな経験はありませんか?

  • テスト観点表からテストケースへのコピペ作業が終わらない
  • テストケース番号の採番ミスで手戻りが発生
  • 単純作業に時間を取られて、本来注力すべきテスト設計に集中できない

私もこれらの課題に悩まされていました。そこで生成AIを導入したところ、手作業にかかる時間を約50%削減できました。

案件規模 導入前 導入後
小規模案件 2時間 1時間
大規模案件 20時間 10時間

※体感値であり、案件の内容によって変動します

本記事では、生成AIを活用してテスト設計を効率化する方法と、導入時につまずいたポイントを紹介します。

本記事で学べること

  • テスト設計における手作業を削減する方法
  • 生成AIを使ったテストケースの自動生成手順
  • 運用上の課題と解決策

従来のテスト設計における課題

これまでのテスト設計では、以下のような手作業が発生していました。

  1. コピペ地獄:テスト観点から期待結果などをテストケースに手動でコピペ
  2. 採番作業:ルールに従ってテストケース番号を手動で採番
  3. データ・手順の記入:テストデータやテスト手順を手動で記入

正直なところ、これらは「やらなければいけないけど、頭を使う作業ではない」ものばかり。生成AIに任せられるのでは?と考えたのが導入のきっかけです。

テスト観点例
image.png

テストケース例
image.png

生成AIを使ったテストケース作成手順

実行環境

本記事で紹介する手順は、以下のツールを使用しています。同様のツールであれば代替可能です。

用途 使用ツール
生成AIサービス Claude Code
コードエディタ VSCode
ソースコード管理 GitHub
テストケース管理 Notion

必要なもの

  • テスト観点をまとめたマークダウン形式のファイル
  • テストケースファイル生成プロンプト

テスト観点ファイル例

## 1. グループ作成画面
| No | 要素(大) | 要素(中) | 要素(小) | テストで確認すること | テスト種別 | 備考 |
|:---|:---------|:---------|:---------|:--------------------|:-----------|:-----|
| 1 | グループ作成 | 入力フォーム | テキスト入力 | テキスト入力が正しく動作すること | 手動リグレッションテスト |  |
| 2 | グループ作成 | 入力フォーム | テキスト装飾 | テキスト装飾機能が正しく動作すること | 手動リグレッションテスト |  |
| 3 | グループ作成 | ラベル選択 | - | ラベル選択が正しく動作すること | 機能テスト |  |
| 4 | グループ作成 | 保存ボタン | - | 保存ボタンが正しく動作すること | 手動リグレッションテスト |  |

テストケースファイル生成プロンプト例

テスト観点表と以下のテストケースルールを守って、テストケースを生成する。

## テストケースルール
0. テスト観点を元にテストケースを生成する。
1. 一つのテストケースに期待結果は一つだけにする。一つのテストケースに複数のテスト観点やテスト要素を含めない。
2. テストケースのヘッダーは、番号、テストケース、機能分類、画面種別、画面名、要素(大)、要素(中)、要素(小)、前提条件、テストデータ、手順、期待結果、確認担当者、確認結果(PC)、確認結果(SP)、テスト種別、備考、バグチケットURLとする。
3. テスト観点は漏らさずテストケースに落とし込む。複数の画面で同じ観点がありますが、すべて漏らさず完全なテストケースを生成する。
4. テスト種別はテストケースのもとになったテスト観点を元に記入する。一つのテストケースにテスト種別は一つだけにする。複数のテスト種別が当てはまる場合は最も適当なテスト種別を一つだけ記入する。
   テスト種別例:機能テスト、表示テスト、性能テスト、互換性テスト、負荷テスト、手動リグレッションテスト
5. 備考はテストケースについての申し送り事項があれば記入する。
6. テストケースをNotionに一度にまとめてインポートしたいので、CSV形式のファイル一つを生成する。句読点の代わりにカンマを使うとインポートできなくなるので、必ず句読点を利用する。
7. 番号は以下の通りにする。
   ・1桁目…テスト対象画面の番号にする。番号が定義されてなければ、1から順に『画面』ごとに採番する。
   ・2桁目…テスト対象画面のテスト観点表のテスト観点の番号にする。
   例)1-1, 1-2, 2-1 など
8. PCの互換性テストについては、Windows 11/Chrome 最新版、Windows 11/Microsoft Edge 最新版、macOS Ventura/Safari 最新版、macOS Sonoma/Safari 最新版、macOS Sequoia/Safari 最新版、macOS Tahoe/Safari 最新版用のテストケースを一つずつ生成する。
9. SPの互換性テストについては、iOS 17/アプリ、iOS 18/アプリ、iOS 26/アプリ、iPadOS 17/アプリ、iPadOS 18/アプリ、iPadOS 26/アプリ、Android 12 スマホ/アプリ、Android 13 スマホ/アプリ、Android 14 スマホ/アプリ、Android 15 スマホ/アプリ、Android 16 スマホ/アプリ、Android 12 タブレット/アプリ、Android 13 タブレット/アプリ、Android 14 タブレット/アプリ、Android 15 タブレット/アプリ、Android 16 タブレット/アプリ、iOS 17/Safari 最新版、iOS 18/Safari 最新版、iOS 26/Safari 最新版、iPadOS 17/Safari 最新版、iPadOS 18/Safari 最新版、iPadOS 26/Safari 最新版、Android 12 スマホ/Chrome 最新版、Android 13 スマホ/Chrome 最新版、Android 14 スマホ/Chrome 最新版、Android 15 スマホ/Chrome 最新版、Android 16 スマホ/Chrome 最新版、Android 12 タブレット/Chrome 最新版、Android 13 タブレット/Chrome 最新版、Android 14 タブレット/Chrome 最新版、Android 15 タブレット/Chrome 最新版、Android 16 タブレット/Chrome 最新版用のテストケースを一つずつ生成する。

手順

  1. テスト観点ファイルとソースコード、プロンプトを元に、テストケースファイルを生成します
  2. 生成したテストケースファイルをCSVファイル形式でエクスポートします
  3. エクスポートしたファイルをNotionにインポートします

たったこれだけです。

テスト観点ファイルを元にテストケースファイルを生成し、テストケース管理ツールにインポートすることで、手動のコピペ作業がなくなりました。テストケース番号や手順、テストデータなども生成AIが自動で生成してくれます。

生成されたテストケースファイル例

番号,テストケース,機能分類,画面種別,画面名,要素(大),要素(中),要素(小),前提条件,テストデータ,手順,期待結果,確認担当者,確認結果(PC),確認結果(SP),テスト種別,備考,バグチケットURL
1-1,テキスト入力が正しく動作すること,グループ作成,管理画面,グループ作成画面,グループ作成,入力フォーム,テキスト入力,グループ作成画面を表示していること,任意のテキスト,1. テキスト入力欄にテキストを入力する,入力したテキストが正しく表示されること,,,, 手動リグレッションテスト,,
1-2,テキスト装飾機能が正しく動作すること,グループ作成,管理画面,グループ作成画面,グループ作成,入力フォーム,テキスト装飾,グループ作成画面を表示していること,任意のテキスト,1. テキストを入力する。2. テキストを選択し装飾(太字など)を適用する,選択したテキストに装飾が正しく適用されること,,,, 手動リグレッションテスト,,
1-3,ラベル選択が正しく動作すること,グループ作成,管理画面,グループ作成画面,グループ作成,ラベル選択,-,グループ作成画面を表示していること,選択可能なラベル,1. ラベル選択欄をクリックする。2. 任意のラベルを選択する,選択したラベルが正しく設定されること,,,,機能テスト,,
1-4,保存ボタンが正しく動作すること,グループ作成,管理画面,グループ作成画面,グループ作成,保存ボタン,-,グループ作成画面で必要項目を入力していること,入力済みのグループ情報,1. 保存ボタンをクリックする,入力した内容でグループが保存されること,,,, 手動リグレッションテスト,,

テストケースインポート例
image.png
image.png

運用上の課題と解決策

導入は簡単でしたが、運用する中でいくつかの課題に直面しました。同じ問題でつまずく方の参考になれば幸いです。

解決できた課題

⚠️ テスト観点の一部が反映されない

課題
テスト観点ファイルの一部がテストケースに反映されない問題が発生しました。

原因
調査したところ、表の一行に複数のテスト観点が含まれる場合、最初のテスト観点のみが反映されていました。

解決策
表の各行には、テスト観点を一つだけ記入する運用に変更したところ、反映漏れを防げました。

💡 ポイント:生成AIは「一行=一項目」と解釈しやすいようです。入力データの構造はシンプルに保つのがコツです。


⚠️ 最大トークン数の超過エラー

課題
テストケース生成時に、以下のエラーが発生しました。

API Error: Claude's response exceeded the 32000 output token maximum. To configure this behavior, set the CLAUDE_CODE_MAX_OUTPUT_TOKENS environment variable

原因
生成されたレスポンスが許可されている最大トークン数(32,000トークン)を超えました。大規模な案件でテスト観点が多い場合に発生しやすいです。

解決策
テスト観点ファイルを分割し、分割したファイルごとにテストケースを生成しました。分割して生成したファイルは、既存のデータベースに追加する形でインポートすることで、一つのテストケースとして統合できました。


対応中の課題

🔧 生成内容の精度向上

課題
生成されたテストデータやテスト手順に、誤った記載が含まれることがあります。

現在の対応
生成内容を目視で確認し、誤りがあれば再生成しています。同じような誤りが再発しないよう、プロンプトに指示を追加して改善を進めています。

💡 ポイント:生成AIの出力品質はプロンプト次第。「なぜ間違えたのか」を分析してプロンプトを改善するサイクルが重要です。

まとめ

生成AIを活用したテスト設計により、以下の効果が得られました。

効果 詳細
⏱️ 作業時間の短縮 手作業が約50%削減
✅ ヒューマンエラーの削減 コピペミスや採番ミスがなくなった
📋 テストケースの標準化 フォーマットが統一され、レビューしやすくなった

「生成AIにテスト設計を任せる」と聞くと不安に感じる方もいるかもしれません。しかし、実際に任せているのは「コピペ」「採番」「転記」といった単純作業です。テスト観点の検討や品質の判断といった本質的な業務は、引き続きQAエンジニアが担います。

むしろ、単純作業から解放されることで、より重要な業務に集中できるようになりました。

次回予告

今回の記事では触れませんでしたが、テストケース生成以外にも以下のファイル生成にもAIを活用しています。

  • テスト対象画面一覧ファイル
  • 画面要素一覧ファイル
  • テスト観点ファイル

これらについても、別の記事で詳しく紹介したいと思います。お楽しみに!

KIYOラーニング株式会社について

当社のビジョンは『世界一「学びやすく、分かりやすく、続けやすい」学習手段を提供する』ことです。革新的な教育サービスを作り成長させていく事で、オンライン教育分野でナンバーワンの存在となり、世界に展開していくことを目指しています。

プロダクト

  • スタディング:「学びやすく・わかりやすく・続けやすい」オンライン資格対策講座
  • スタディングキャリア:資格取得者の仕事探しやキャリア形成を支援する転職サービス
  • AirCourse:受け放題の動画研修がついたeラーニングシステム(LMS)

KIYOラーニング株式会社では一緒に働く仲間を募集しています

25
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?