📑

AIでテストケースを自動生成!Cline(Claude AI)を使ってカスタムインストラクションズ別に比較してみた

に公開

AIによるテストケース自動生成の実力を検証してみた

こんにちは、かずおです。
AI開発支援ツール「Cline(Claude AIベース)」でテストケースを日常的に作成しているのですが、
カスタムインストラクションズの与え方次第で生成品質がどう変わるのか気になりました。
そこで今回は、同じ機能を題材に5パターンの異なる指示の出し方で実験し、
どの入力データが最も実用的なテストケースを生成できるか比較してみました。


検証の概要

対象は、データを処理してCSV出力するバッチ処理です。
同じ機能に対して、Clineへの指示内容を変えながらテストケースを生成させました。

評価は以下の観点で行いました:

  • ケース数や手順の詳しさ
  • 実務で必要な観点が含まれているか
  • そのまま使えそうか

なお、粒度については主観を排除したかったので、ChatGPTとClaude AIに数値評価してもらっています。


試した5パターン

1. ルールなし

特に何も指定せず、そのまま生成。Clineの素の実力を見るため。

2. 詳細指示のみ

「目的・手順・期待結果を書いて、TC-IDも付けてね」とプロンプトで指示。

3. 独自ルール適用

プロジェクト固有のテストルールを読み込ませて生成。

4. グローバルルール適用

一般的な品質保証のルールを参照させて生成。

5. 過去実績ベース

実際に過去使ったテストケースを見本として渡して生成。


結果

順位 設定内容 粒度指標 ケース数 所感
1位 過去実績ベース 47.13 31 実務の雰囲気が出ていて使いやすい
2位 詳細指示のみ 44.98 22 構造がきれいで管理しやすい
3位 独自ルール 39.29 26 技術観点は強いが少し硬い印象
4位 グローバルルール 36.25 24 抽象的で具体性に欠ける
5位 ルールなし 14.09 9 チェックリストレベル。実用は厳しい

👉 結論:最も効果的だったのは「過去実績ベース」
ChatGPTとClaude AIの両方が高評価を付けました。
粒度指標は、ChatGPTとClaude AIの2モデルに評価させたものです(※検証では最新世代を利用)。
個人の主観を避けるため、観点を細かく指定せず「テストの粒度指数が高い順に並べて、最後に粒度指数の計算方法も出してください。」と依頼した結果をそのまま使っています。


サンプル比較(実際の出力例)

※ 以下のサンプルでは、サービス名やテーブル名など固有の情報はすべて [ ] でマスキングしています。
実務では具体的な名称が出力されます。

ルールなしの場合

- [システム名] のDB接続を確認する
- システムが正常に動作することを確認する

「何をどう確認するのか」が曖昧で、実際にテストする際に困りそうです。


詳細指示ありの場合

TC001: 正常データ処理確認
目的: 標準的なデータでの処理動作を検証
手順:
1. テストデータ(会員100件)を準備
2. バッチ処理を実行
3. 出力ファイルを確認
期待結果: CSVファイルが正常に生成される

手順と期待結果が明確になりました。ただ、業務ロジックの深い部分までは踏み込めていない印象です。


独自ルール適用の場合

### テストケース: アクセスログ制限確認
**目的**: アクセス回数の上限制御を確認する
**手順**:
1. [アクセスログテーブル] に100件以上のデータを準備
2. [データ取得メソッド] を実行
3. 出力を確認する
**期待結果**:
- アクセス回数は99として出力される

境界値チェックなど技術的な観点が強調されています。技術検証には向いていそうです。


グローバルルール適用の場合

- [連携処理] 用データが正しく取得されていることを確認する
- [出力ファイル] が正しい形式で出力されることを確認する
- エラー時に [転送スクリプト] が正しく動作することを確認する

品質観点としては網羅されていますが、具体的な手順がなく実行には使いづらいです。


過去実績ベースの場合

### テストケース: アクセス回数計算
**前提条件**: 顧客データ(100回アクセス分)を [会員テーブル] に登録済み
**手順**:
1. `[処理スクリプト] date=YYYYMMDD` を実行
2. [出力ディレクトリ] 配下のファイルを確認する
**期待結果**:
- `[出力ファイル]_YYYYMMDD.csv` にアクセス回数100が正しく出力される
- エラーログが出力されない

前提条件から期待結果まで揃っており、業務の流れも反映されています。手直しは必要ですが、そのまま使える水準に近いです。


わかったこと

試してみて感じたのは以下の点です。

  • 何も指示しないと抽象的になりがち
  • ビジネス的な観点は弱い
  • 指示や見本の質で出力が大きく変わる

カスタムインストラクションズを工夫するだけでもかなり改善しますが、過去の実績を見本にするのが最も効果的でした。


今後試してみたいこと

  • 業務ロジックをどこまで理解させられるか
  • テスト自動実行との組み合わせ
  • 蓄積したテストケースの再利用の仕組み
  • ユニットテスト向けのパターン整理(境界値、例外処理、モックなど)

まとめ

AIはテストケースの骨格を作るのは得意ですが、そのままでは実務に使うのは難しいです。
ただ、プロンプトの工夫や過去実績の活用で、実用レベルに近づけることはできました。

最終的には人がレビューして補完する前提ですが、初期作業の省力化には十分使えそうです。

We are hiring!

一緒に働く仲間を募集しています。詳しくは以下をご覧ください。

https://hrmos.co/pages/carenet5800/jobs/1826582723293220924

https://hrmos.co/pages/carenet5800/jobs/0000020

https://hrmos.co/pages/carenet5800/jobs/1826582723293220966

https://hrmos.co/pages/carenet5800/jobs/1826582723293220920

https://hrmos.co/pages/carenet5800/jobs/1826582723293220923

CareNet Engineers

Discussion