View a markdown version of this page

CI/CD パイプラインのテスト - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

CI/CD パイプラインのテスト

デプロイパイプラインで一般的に言及される 2 つのタイプの自動テストは、ユニットテスト統合テストです。ただし、コードベースや開発環境に対して実行できるテストには多くのタイプがあります。「AWS Deployment Pipeline Reference Architecture」では、次のタイプのテストを定義しています。

  • ユニットテスト – これらのテストは、アプリケーションコードをビルドおよび実行し、それが期待どおりに動作していることを検証します。これらのテストでは、コードベースで使用されているすべての外部依存関係をシミュレートします。ユニットテストツールの例としては、JUnitJestpytest などがあります。

  • 統合テスト – これらのテストは、プロビジョニングされたテスト環境に対してテストを実行することにより、アプリケーションが技術的要件を満たしていることを検証します。統合テストツールの例としては、CucumbervRest NGinteg-tests ( AWS CDK用) などがあります。

  • 受け入れテスト – これらのテストは、プロビジョニングされたテスト環境に対してテストを実行することにより、アプリケーションがユーザー要件を満たしていることを検証します。受け入れテストツールの例としては、CypressSelenium などがあります。

  • 合成テスト – これらのテストはバックグラウンドで継続的に実行され、トラフィックを生成し、システムが正常であることを検証します。合成テストツールの例としては、Amazon CloudWatch SyntheticsDynatrace Synthetic Monitoring などがあります。

  • パフォーマンステスト – これらのテストは、本番環境のキャパシティーをシミュレートします。アプリケーションがパフォーマンス要件を満たしているかどうかを判定し、メトリクスを過去のパフォーマンスと比較します。パフォーマンステストツールの例としては、Apache JMeterLocustGatling などがあります。

  • 耐障害性テストカオステストとも呼ばれるこれらのテストは、リスク領域を特定するために環境に障害を注入します。その後、障害が注入された期間と障害のない期間を比較します。耐障害性テストツールの例としては、AWS Fault Injection ServiceGremlin などがあります。

  • 静的アプリケーションセキュリティテスト (SAST) – これらのテストは、SQL インジェクションクロスサイトスクリプティング (XSS) などのセキュリティ違反がないか、コードを分析します。SAST ツールの例としては、Amazon CodeGuruSonarQubeCheckmarx などがあります。

  • 動的アプリケーションセキュリティテスト (DAST) – これらのテストは、ペネトレーションテスト (またはペンテスト) とも呼ばれます。プロビジョニングされたテスト環境において、SQL インジェクションや XSS などの脆弱性を特定します。DAST ツールの例としては、Zed Attack Proxy (ZAP)HCL AppScan などがあります。詳細については、「ペネトレーションテスト」を参照してください。

すべての完全な CI/CD パイプラインがこれらすべてのテストを実行するわけではありません。ただし、少なくとも、パイプラインはコードベースに対してユニットテストおよび SAST テストを実行し、テスト環境に対して統合テストおよび受け入れテストを実行する必要があります。