自動テスト生成
単体テスト、統合テスト、E2E テスト——コードを OpenClaw に渡すと、テスト ケースが自動生成されます
テスト作成は誰もが頭を抱える
テストはいつも最後に後回し
機能は上線を急いでいて、テストはいつも「次のバージョンで補足」。結果は上線時にバグが発生し、エッジケースがまったくカバーされていないことに気づきます。
mock を書いていると、人生に疑問を感じます。1 つのインターフェイスが 3 つのサービスに依存していて、mock データを書くだけで 30 分かかってしまい、ビジネス コードより多いです。
カバレッジ レポートを見ると 30% で、上司に聞かれると「コア ロジックはテスト済み」と強気に言うしかありません。実際には happy path さえ完全にテストされていません。
OpenClaw はテスト作成をどのようにサポートしますか?
あなたのコードを理解して、信頼性の高いテストを生成
OpenClaw はテスト ケースを数個生成してあなたをごまかすわけではありません。関数シグネチャ、分岐ロジック、例外処理パスを分析し、エッジ条件と異常シナリオを自動識別します。
関数に null チェックがありますか?null 入力のテストを生成します。ループがありますか?空配列、単一要素、大量データをテストします。try-catch がありますか?例外をトリガーできる入力を構築します。
さらに、プロジェクトで使用しているテスト フレームワーク——Jest、Pytest、JUnit、Vitest を理解していて、生成されたコードはすぐに実行でき、形式を手動で変更する必要はありません。
すぐに使えるテスト Prompt
3 つの Prompt が単体テスト、E2E テスト、負荷テストをカバーしています。必要に応じて選択してください。
単体テスト完全カバレッジ
ゴールデンプロンプト
このモジュールのすべてのエクスポート関数とクラス メソッドを分析してください。
それぞれの関数に完全な単体テストを生成してください。要件:
1. カバレッジ目標 90% 以上(ステートメント カバレッジ + 分岐カバレッジ)
2. 各関数について少なくとも次をテスト:正常入力、エッジ値、異常入力
3. 外部依存関係に mock を使用して、実際のデータベースやネットワークに依存しない
4. テスト命名を明確にして、「should xxx when xxx」形式を使用
5. 必要な setup/teardown を追加
このプロジェクトの既存テスト フレームワークとアサーション ライブラリを使用して、スタイルを一貫させてください。
これが最も一般的に使用されています。ファイルを放り込むと、数秒でテストが出てきます。90% のカバレッジは大げさではなく、あなたが考えなかったエッジ ケースも含まれます。
E2E ログイン フロー テスト(Playwright)
高度なテクニック
以下のログイン フローに対して Playwright を使用して E2E テストを記述してください:
テスト シナリオ:
1. 正常ログイン:正しいユーザー名とパスワードを入力して、ホームページへのリダイレクトを検証
2. パスワード誤り:パスワードを間違えて、エラー メッセージの表示を検証
3. 空白フォーム送信:何も入力していない状態で送信をクリックして、フォーム検証を検証
4. パスワード保存:「私を覚えておいて」をチェックして、閉じて再度開いて、ログイン状態を検証
5. ログアウト:ログイン後、終了をクリックして、ログイン ページへの戻りを検証
要件:
- Page Object Model パターンを使用してコードを構成
- 合理的な待機戦略を追加して、sleep を使用しない
- デバッグ用に失敗シナリオのスクリーンショットを撮成
Playwright の E2E テスト作成は非常に面倒で、特に待機戦略とセレクターが大変です。AI に初版を作成してもらい、実際のページに合わせて調整すれば、効率が 2 倍になります。
API 負荷テスト スクリプト
高度なテクニック
以下の API インターフェイス用の負荷テスト スクリプトを生成してください(k6 または Artillery を使用):
テスト設定:
1. 段階的な負荷増加:10 並行接続から開始して、30 秒ごとに 10 を追加し、最大 200 並行
2. 継続時間:合計 5 分
3. リクエスト分布:70% 読取操作、20% 書込操作、10% 更新操作
4. 記録メトリクス:P50/P95/P99 遅延、エラー率、スループット
結果分析スクリプトを生成して、パフォーマンス ボトルネック レポートを出力してください。
P99 > 500ms またはエラー率 > 1% の場合は、最適化が必要とマークしてください。
負荷テスト スクリプトを一から書くには半日かかります。この Prompt は本番品質の設定を直接提供し、結果分析スクリプトも含まれています。
テスト生成:OpenClaw vs Copilot
どちらもテストを生成できますが、生成品質は大きく異なります。
OpenClaw
- 完全な関数ロジックと分岐パスを分析して、エッジ ケースは完全にカバー
- ファイル間の依存関係を理解して、mock 生成は正確
- カバレッジ目標を指定でき、達成しない場合はテスト ケースを補足
- E2E、負荷テストなどの複雑なシナリオの完全なスクリプトを生成
VS
Copilot
- 現在のファイルに基づいて生成して、ファイル間依存関係を見落としやすい
- 主に happy path テストを生成して、エッジ カバレッジが不十分
- mock は手動で修正が必要なことが多い
- 複雑なテスト シナリオ(E2E、負荷テスト)のサポートは限定的
実際のシナリオ:上線直前に緊急でテストを補足
金曜日の午後 4 時、上司が「今夜中に上線しなければいけない」と言った
新機能を 2 週間開発したのに、テスト カバレッジは 20% だけです。QA は少なくとも 70% 必要だと言っています。あなたは 3 時間しかありません。
OpenClaw
コア モジュールを OpenClaw に渡して、1 つの Prompt で完全なテスト スイートを生成します。カバレッジされていない分岐を自動分析して、エッジ テストと例外処理を補足します。3 時間で 80% カバレッジを達成して、QA が満足に署名します。
手動テスト作成
狂ったようにテストを書き始めますが、依存関係を整理するだけで 1 時間かかります。mock を 3 回間違えて、テストが動きません。最後にカバレッジは 45% で勉強強制不可。QA が許可しない場合、深夜まで加班します。
いくつかの実用的なテクニック
テスト生成後、1 回実行して通過することを確認してください。失敗したテスト ケースがある場合は、エラー メッセージを OpenClaw に貼り付けて、修正を支援してもらってください。
すべてのテストを一度に生成するのではなく、モジュール別に段階的に生成してください。毎回 1 つのファイルに焦点を当てると、テスト品質がより高くなります。
テスト生成は Claude Opus 4.6 が最も効果的で、特に複雑なビジネス ロジックに関わる場合。簡単なユーティリティ関数のテストは DeepSeek V3.2 で十分、お金を節約できます。