AIを活用したテスト

AI支援コーディング 上級編

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Atlasとの続き

セキュリティシールドでコードを確認するソフトウェア開発者

 

  • Wayfarer LabsへのAtlasの統合
  • ✅ コードのテスト、セキュリティ、堅牢性を確保する必要がある
  • 🤖 AIが未知のコードの評価とテストを加速させる
AI支援コーディング 上級編

AIを活用したテストの目的

 

  • 未テストのパスを発見する
  • エッジケースを見つける
  • 潜在的な脆弱性を検出する

 

🤖 まずAIにコードベースのテスト成熟度の評価を依頼する

バグアイコンとともにコードを調べる虫眼鏡

AI支援コーディング 上級編

テスト成熟度の評価

あなたはシニアQAエンジニア兼ソフトウェアアーキテクトです。

このコードベースのテスト状況を評価し、最もリスクの高いギャップを特定してください。以下の項目を0〜5のスケールで採点してください:

  • 重要なパスのカバレッジ
  • エッジケースの処理
  • 回帰保護
  • CI/CDの自動化

さらに、現在存在するテストの種類を特定してください: ユニット、統合、エンドツーエンド、回帰、プロパティ、またはファズテスト。

AI支援コーディング 上級編

テスト成熟度の結果

coverage-scores2.png

AI支援コーディング 上級編

ベースラインの確立

coverage-commands2.png

AI支援コーディング 上級編

カバレッジ結果の分析

coverage-profile2.png

AI支援コーディング 上級編

テスト戦略

 

テスト戦略の図

 

  • 探索的テスト → 動作の理解
  • 機能テスト → 出力の検証
  • 回帰テスト → 既存動作の保護
  • 自動化テスト → 迅速で再現可能なフィードバック
AI支援コーディング 上級編

テストスイートの構築

 

テストスイートとは?

👉 テスト・データ・ツール・ルールを体系的にまとめた集合体で、システムの動作が一貫して維持されることを保証します。

🤖 テストスイートのプロンプト:

あなたはシニアソフトウェアエンジニアです。このコードベースの重要なパスに対してユニットテストと統合テストを生成してください。以下を含めること:

  • 正常系
  • エッジケース
  • 異常系
  • 明確なアサーションとフィクスチャ

また、生成したすべてのテストの一覧各テストの1文による説明も提供してください。

AI支援コーディング 上級編

カバレッジ改善の確認

AIが生成したテスト一覧:

ai-generated-tests2.png

新しいコードカバレッジ:

new-coverage2.png

AI支援コーディング 上級編

ランタイム保護

 

カスタムデータを入力として注入 ➡ Atlas ❗

🤖 ランタイム保護のプロンプト:

カスタムデータを注入または処理する際に、ランタイム保護を追加してください:

  • 処理前に入力を検証する(型、必須フィールド、予期しない値)
  • パイプラインの境界ごとにスキーマを確認し、上流データがクリーンであると仮定しない
  • 何が失敗し、どこで失敗したかを特定する明確なエラーメッセージを返す
  • オプションフィールドは未定義のままにせず、安全なデフォルト値を適用する
AI支援コーディング 上級編

CI自動化

ci-coverage.png

AI支援コーディング 上級編

練習しましょう!

AI支援コーディング 上級編

Preparing Video For Download...