

Amazon CodeCatalyst は新規のお客様には提供されなくなりました。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、「[CodeCatalyst から移行する方法](migration.md)」を参照してください。

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

# ワークフローを使用したテスト
<a name="test-workflow-actions"></a>

CodeCatalyst では、ビルドやテストなど、さまざまなワークフローアクションの一環としてテストを実行できます。これらのすべてのワークフローアクションでは、品質レポートを生成できます。*テストアクション*は、テスト、コードカバレッジ、ソフトウェア構成分析、静的分析の各レポートを生成するワークフローアクションです。これらのレポートは CodeCatalyst コンソールに表示されます。

**Topics**
+ [品質レポートのタイプ](#test-reporting)
+ [テストアクションの追加](test-add-action.md)
+ [テストアクションの結果の表示](test-view-results.md)
+ [アクション内で失敗したテストのスキップ](test.error-handling.md)
+ [universal-test-runner との統合](test.universal-test-runner.md)
+ [アクションにおける品質レポートの設定](test-config-action.md)
+ [テストのベストプラクティス](test-best-practices.md)
+ [サポートされている SARIF プロパティ](test.sarif.md)

## 品質レポートのタイプ
<a name="test-reporting"></a>

Amazon CodeCatalyst テストアクションでは、次のタイプの品質レポートがサポートされています。これらのレポートを YAML 形式で設定する方法の例については、「[品質レポートの YAML 例](test-config-action.md#test.success-criteria-example)」を参照してください。

**Topics**
+ [テストレポート](#test-reports)
+ [コードカバレッジレポート](#test-code-coverage-reports)
+ [ソフトウェア構成分析レポート](#test-sca-reports)
+ [静的分析レポート](#test-static-analysis-reports)

### テストレポート
<a name="test-reports"></a>

CodeCatalyst では、ユニットテスト、統合テスト、システムテストを設定し、ビルド中に実行できます。その後、CodeCatalyst でそのテストの結果を含むレポートを作成できます。

テストレポートは、テストに関する問題のトラブルシューティングに役立ちます。複数のビルドで生成されたテストレポートが多数ある場合、テストレポートを使用して失敗率を確認し、ビルドを最適化できます。

以下のテストレポートファイル形式を使用できます。
+ Cucumber JSON (.json)
+ JUnit XML (.xml)
+ NUnit XML (.xml)
+ NUnit3 XML (.xml)
+ TestNG XML (.xml)
+ Visual Studio TRX (.trx、.xml)

### コードカバレッジレポート
<a name="test-code-coverage-reports"></a>

CodeCatalyst で、テストのコードカバレッジレポートを生成できます。CodeCatalyst では、次のコードカバレッジメトリクスが提供されます。

[ラインカバレッジ]  
テストでカバーされるステートメントの数を測定します。ステートメントは、コメントを含まない単一の命令です。  
`line coverage = (total lines covered)/(total number of lines)`

[ブランチカバレッジ]  
コントロール構造のすべてのブランチのうち、テストでカバーされるブランチの数を測定します (`if` または `case` ステートメントなど)。  
`branch coverage = (total branches covered)/(total number of branches)`

以下のコードカバレッジレポートファイル形式がサポートされています。
+ JaCoCo XML (.xml)
+ SimpleCov JSON ([simplecov](https://github.com/simplecov-ruby/simplecov) によって生成された .json であり、[simplecov-json](https://github.com/vicentllongo/simplecov-json) ではありません)
+ Clover XML (バージョン 3、.xml)
+ Cobertura XML (.xml)
+ LCOV (.info)

### ソフトウェア構成分析レポート
<a name="test-sca-reports"></a>

CodeCatalyst では、ソフトウェア構成分析 (SCA) ツールを使用してアプリケーションのコンポーネントを分析し、既知のセキュリティ脆弱性を確認できます。重要度や修正方法がさまざまに異なる脆弱性を詳細に説明する SARIF レポートを検出して解析できます。有効な重要度の値は、重要度が高い順に、`CRITICAL`、`HIGH`、`MEDIUM`、`LOW`、`INFORMATIONAL` です。

以下の SCA レポートファイル形式がサポートされています。
+ SARIF (.sarif、.json)

### 静的分析レポート
<a name="test-static-analysis-reports"></a>

静的分析 (SA) レポートを使用して、ソースレベルのコード欠陥を特定できます。CodeCatalyst では、SA レポートを生成して、デプロイする前にコードの問題を解決できます。これらの問題には、バグ、セキュリティの脆弱性、品質の問題、およびその他の脆弱性が含まれます。有効な重要度の値は、重要度が高い順に、`CRITICAL`、`HIGH`、`MEDIUM`、`LOW`、`INFORMATIONAL` です。

CodeCatalyst では、次の SA メトリクスが提供されます。

バグ  
ソースコードで検出される可能性のあるバグの数を識別します。これらのバグには、メモリの安全性に関する問題が含まれることがあります。バグの例を次に示します。  

```
// The while loop will inadvertently index into array x out-of-bounds
int x[64];
while (int n = 0; n <= 64; n++) {
  x[n] = 0;
}
```

セキュリティの脆弱性  
ソースコードで検出される可能性のあるセキュリティ脆弱性を特定します。これらのセキュリティ脆弱性には、シークレットトークンをプレーンテキストで保存するなどの問題が含まれることがあります。

品質に関する問題  
ソースコードで検出される可能性のある品質問題を特定します。これらの品質問題には、スタイルの規則に関する問題が含まれることがあります。品質問題の例を次に示します。  

```
// The function name doesn't adhere to the style convention of camelCase
int SUBTRACT(int x, int y) {
  return x-y
}
```

その他の脆弱性  
ソースコードで検出される可能性のあるその他の脆弱性を特定します。

CodeCatalyst では、以下の SA レポートファイル形式がサポートされています。
+ PyLint (.py)
+ ESLint (.js、.jsx、.ts、.tsx)
+ SARIF (.sarif、.json)