

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-json](https://github.com/vicentllongo/simplecov-json), .json이 아닌 [simplecov](https://github.com/simplecov-ruby/simplecov)에서 생성됨)
+ 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에서 지원되는 코드 적용 범위 보고서 파일 형식은 다음과 같습니다.
+ PyLint(.py)
+ ESLint(.js, .jsx, .ts, .tsx)
+ SARIF(.sarif, .json)