Recap Series
- セッション 02:TerraformによるAWSコンプライアンス
- セッション 03:初心者からビルダーへ――素晴らしいクラウドの旅
- セッション 04:LaravelとBrefによるチームファーストのサーバーレスエンジニアリング
- セッション 05:イベント開会式:AWS Community Day Hong Kong 2025
- セッション 06:Agent-to-Agent:AWS 上で相互運用可能な AI を構築する
- セッション 07:別のテレメトリデータを AI エージェントで活用し、改善を加速する
- セッション 08:バイブコーディングからの卒業:Kiro による仕様駆動開発
- セッション 09:MCP と AI エージェントを活用した自動テスト
- セッション 10:通信セキュリティのモダナイゼーション:機械学習を活用したアプローチ
- セッション 11:GenAIエージェントの再考:RAGとMCP
- セッション 12:TAKとAWSを活用した災害・緊急対応
- セッション 13:テストの観点からサーバーレスアプリケーションのワークフローを再考する
- セッション 14:クラウド成功のための実践的なAWS FinOps
録画
https://www.youtube.com/watch?v=cgoFdt8ybwY&t=1296s
準備と計画
基盤:テストデータ
- 見落とされがちですが、極めて重要です。
- タスク管理システム(Jira など):Webhook を使用し、更新内容を Amazon S3 に保存します。
- Swagger ドキュメント:API の仕様とパラメーターを提供します。
- 過去のテストケース:以前のケースを検証し、再テストできるようにします。
データソースの接続
- 従来の方法では、関係性を見つける能力に限界があります。
- つながりを補完するため、大規模言語モデル(LLM)を導入します。
- 例:
- Mariana(AWS で AI を活用したクラウドコンピューティングに従事)
- Dario(AI 企業 Entropic の共同創業者)
- Entropic は、AWS Bedrock で利用できる一連の LLM を開発しました。
実行
AI 駆動のテストワークフロー
- AI を活用してテストプロセスを自動化し、高度化します。
- AI と既存のテストフレームワークを連携する方法を詳しく説明します。
レポート
包括的なレポート
- 自動テストから有益なレポートを生成します。
- AI を活用して、実行可能な知見や推奨事項を提供します。
- AI による従来のテストワークフローの変革を重視します。
- 紹介したアイデアに対するフィードバックと議論を呼びかけます。
ナレッジグラフによる関係性の把握
- ナレッジグラフは、単純なテキスト検索では捉えられない複雑な関係性を表現します。
- 例:Mariana(AWS でのキャリア)と Entropic(Dario が設立した AI 企業)の関係
- ナレッジグラフは、単純な検索では見つからない隠れたつながりを明らかにします。
自動テストにおけるナレッジグラフの重要性
- タスクとテストケースの自動生成に不可欠です。
- データソースからエンティティを抽出し、関連する項目同士を接続します。
- 例:
- 要件チケット
- API 仕様
- 過去のテストケース
ナレッジグラフの作成
- 従来の方法(PostgreSQL など)はウィジェットが多く、視認性が低くなります。
- ノーコードソリューション(DynamoDB など)は非効率です。
- グラフデータベース(AWS Neptune、Neo4j など)はより適していますが、ノード、エッジ、プロパティといった新しい概念を学ぶ必要があります。
ソリューション:Amazon Neptune Analytics
- グラフデータベースの機能を基盤モデルおよび AWS Bedrock と組み合わせます。
- 複雑な構文を使用せずに、情報を登録、取得できます。
- データを可視化する見やすいグラフビューを提供します。
グラフ検索拡張(RA)
- AI が参照ドキュメントを取得して応答を生成する手法です。
- Graph RA は、単純なテキスト検索ではなくナレッジグラフを検索に使用します。
AI 駆動のテストパイプライン
- ナレッジグラフの基盤上に構築します。
- テストケースには、Gherkin 形式による振る舞い駆動開発(BDD)を使用します。
- Gherkin のシナリオでは Given、When、Then などのキーワードを使用し、機能の初期状態、アクション、期待される結果を指定します。
- テストケースの例:前提条件とシナリオを用いてホームページのタイトルを確認します。
- 効果的な自動テストにはナレッジグラフが不可欠です。
- Amazon Neptune Analytics は、グラフデータベースの管理と可視化を簡素化します。
- Graph RA は、AI 駆動のテストケース生成と実行を強化します。
AI 駆動のテストケース生成
目標
- AI エージェントを使用し、テストケースの網羅性と一貫性を向上させます。
AI エージェントの能力
- テスト目標を達成するため、実行すべき最適なアクションを選択します。
- ビジネスフローを分析し、ナレッジグラフから要件を読み取ります。
例
サブスクリプション管理機能
ビジネスフローの分析
- ナレッジグラフから以下を特定します。
- UI での支払い方法の検証
- 支払い API の呼び出し
競合の検出
- AI エージェントが要件の競合を検出します。
- 旧ルール:プレミアム機能へアクセスする前に、ユーザーはメールアドレスを確認する必要があります。
- 新ルール:体験版ユーザーはメールアドレスを確認しなくても、7 日間プレミアム機能へアクセスできます。
- 関連するテストケースを適宜更新します。
API 詳細の検出
- グラフ DB からエンドポイント、必須/任意パラメーター、エラーレスポンスを抽出します。
- 記録済みデータ(サブスクリプション作成の成功、支払いの失敗など)から API の依存関係を特定します。
テストデータの生成
- 以下を網羅するテストデータを作成します。
- 正常系(成功するシナリオ)
- エッジケース(境界条件)
- エラー条件(失敗するシナリオ)
まとめ
- AI エージェントは以下の方法でテストケース生成を強化します。
- ビジネスフローを分析する
- 競合を検出してテストケースを更新する
- API の詳細と依存関係を検出する
- 網羅的なテストデータを生成する
テストケースの改善と実行
ビジネスルールによるテストケースの改善
- ビジネスフローの分析結果と特定したルールを使用して、シナリオを強化します。
- 改善したシナリオをシナリオベースのテストケースに変換します。
Human-in-the-Loop による検証
- AI は網羅的なテストケースを生成できますが、その検証には人間の専門家が必要です。
- 人間による検証によって、エッジケースやビジネス上のコンテキストが確実に反映されます。
- Jira のチケットシステム、API ドキュメント、過去のテストケースだけでは、すべてのシナリオを網羅できない場合があります。
Playwright による実行
- Playwright:高速で信頼性の高いエンドツーエンドテストを実現します。
- Playwright は Chromium、WebKit、Firefox を含む最新のレンダリングエンジンをすべてサポートします。クロスプラットフォームに対応し、Windows、Linux、macOS 上でローカルテストを実行できます。
- テストの実行に Playwright を活用します。
- 広く知られたオープンソースの自動テストフレームワークです。
- ブラウザと直接通信し、効率的にテストします。
- 複数の言語(Java、Python、C、JavaScript、TypeScript)をサポートします。
- GitHub で 78,900 件のスターを獲得しており、強力なコミュニティの支援があります。
- 自然言語による指示のための MCP(Model-Based Continuous Planning)をネイティブサポートします。
- 組み込み機能:
- 効率を高める並列実行
- 包括的なトレーシング機能とデバッグ機能
- スクリーンショットと動画の自動記録
- テストプロセスを文書化し、後から検証できるようにする詳細なログ記録
まとめ
- AI はテストケース生成を強化しますが、人間による検証が不可欠です。
- Playwright は効率的かつ汎用性が高く、機能豊富なテスト実行環境を提供します。
AI エージェントによるテストケースの実行
タスク実行エージェント
- 実行フェーズを担当する AI エージェントです。
- 生成されたタスクからテストパラメーターを抽出します。
- 後から参照できるよう、Playwright スクリプトを作成してデータベースに保存します。
- テストを自動的に実行します。
Playwright を使用した AI 駆動テストの例
- フロントエンドとバックエンドのテスト
- Playwright MCP と Amazon Q Developer CLI を使用した実験
- シンプルな E コマース Web サイトに対する 3 つのテストケース:
- 配送情報を入力して商品を購入し、注文手続きを完了する
- ログインして商品ページを開き、それ以上の操作は行わない
- 商品をショッピングカートに追加し、それ以上の操作は行わない
実行後の検証
- テストケースをデータベースに保存します。
- 後から検証できるよう、動画記録などの機能を活用します。
- テスターは録画された動画を確認し、期待される動作と一致していることを検証できます。
テスト実行フロー全体の振り返り
- 3 つの AI エージェントが連携します。
- テストケース生成エージェント
- テストケース実行エージェント
- レポート生成エージェント(結果と録画を取得)
- モジュール化されたアプローチにより、柔軟性とスケーラビリティが得られます。
複数の MCP の活用
- テストのさまざまなニーズに応じて、複数の MCP を使用します。
- 現実的なデータを生成する MySQL MCP
- 最近使用したテストケースを保存する Redis MCP
- テストプロセスを簡素化します。
重要なメッセージ:シフトレフトテスト
- 開発サイクルの早い段階で自動テストを組み込みます。
- メリット:
- 品質の向上
- 効率の向上
- コストの削減
- 技術的負債の削減
まとめ
- AI 駆動の自動テストは時間とコストを削減します。
- テスターはテストケース生成ではなく、検証に集中できます。
