SW Testing

2장 테스트 레벨의 상세 설명

이찰리 2022. 2. 8. 15:42
반응형

|테스트 레벨

테스트 레벨은 함께 그룹화되고 관리되는 테스트 활동 세트를 나타냅니다. 각 테스트 수준은 단일 장치 또는 구성 요소에서 전체 시스템 또는 경우에 따라 시스템 시스템에 이르기까지 해당 개발 수준에서 소프트웨어에서 수행되는 전체 테스트 프로세스의 인스턴스입니다. 테스트 수준은 소프트웨어 개발 수명 주기의 다른 활동과도 관련이 있습니다.

모든 테스트 레벨에는 적절한 테스트 환경이 필요합니다. 예를 들어 실제 환경과 유사한 환경은 수락 테스트에 이상적이지만 대부분의 경우 개발자는 장치 테스트를 위해 자체 개발 환경을 사용합니다.

 

1. Component Testing (컴포넌트 테스팅)

컴포넌트 테스트(단위 또는 단위 테스트라고도 함)는 개별적으로 테스트할 수 있는 구성 요소에 중점을 둡니다. 목표는 위험을 줄이고 구성 요소의 기능적 및 비기능적 동작이 설계 및 사양을 준수하는지 확인하고 구성 요소의 품질 수준에 대한 확신을 얻는 것입니다. 버그는 종종 공식적인 버그 관리 프로세스 없이 발견되는 즉시 수정됩니다. 그러나 개발자가 버그를 보고할 때 근본 원인 분석 및 프로세스 개선에 사용할 수 있는 귀중한 정보를 제공합니다. 일반적으로 구성 요소 테스트는 코드를 작성한 개발자가 수행하지만 다른 사람이 수행하더라도 최소한 테스트 중인 코드는 사용할 수 있어야 합니다. 개발자는 구성 요소 개발과 버그 찾기 및 수정 사이를 전환할 수 있습니다. 개발자는 종종 구성 요소 코드를 작성한 후 테스트를 작성하고 실행합니다. 그러나 특히 애자일 개발에서 자동화된 구성 요소 테스트 케이스는 종종 애플리케이션 코드보다 먼저 작성됩니다.

 

2. Integration Testing (통합 테스팅)

통합 테스트는 구성 요소 또는 시스템 간의 상호 작용에 중점을 둡니다. 통합 테스트의 목적은 위험을 줄이고, 인터페이스의 기능적 및 비기능적 동작이 설계 및 사양을 준수하는지 확인하고, 인터페이스 품질에 대한 확신을 얻고, 버그를 감지하는 것입니다(버그는 인터페이스 자체 또는 내부에 있을 수 있음, 존재하는 구성 요소 또는 시스템) 이렇게 하면 오류가 다음 수준으로 진행되는 것을 방지할 수 있습니다.

구성 요소 통합 테스트는 통합 구성 요소 간의 상호 운용성과 인터페이스에 중점을 둡니다. 구성 요소 통합 테스트는 장치 테스트 후에 수행되며 종종 자동화됩니다. 반복적인 증분 개발에서 구성 요소 통합 테스트는 지속적인 통합 프로세스의 일부로 수행됩니다.
시스템 통합 테스트는 시스템, 패키지 및 마이크로 서비스 간의 상호 운용성과 인터페이스에 중점을 둡니다. 시스템 통합 테스트에는 기존 구성 요소와의 상호 운용성 또는 인터페이스도 포함됩니다. 이 경우 개발 조직은 외부 인터페이스에 대한 제어 권한이 없으므로 다양한 테스트 문제가 발생할 수 있습니다. 시스템 통합 테스팅은 시스템 테스팅 후에 또는 진행 중인 시스템 테스팅 활동과 병행하여 수행할 수 있습니다.

 

3. Acceptance Testing (인수 테스팅)

시스템 테스트와 마찬가지로 승인 테스트는 종종 전체 시스템 또는 제품의 동작이나 용량에 중점을 둡니다. 승인 테스트의 목적은 전체 시스템의 품질에 대한 확신을 얻고 완성된 시스템이 예상대로 작동하는지 확인하며 시스템의 기능적/비기능적 동작이 사양에 따라 작동하는지 확인하는 것입니다.
승인 테스트의 결과로 고객(최종 사용자)이 시스템을 배포하거나 사용할 준비가 되었는지 평가하는 데 사용할 수 있는 정보를 생성할 수 있습니다. 수락 테스트를 통해 버그를 발견할 수 있지만 대부분의 경우 목표는 버그를 찾는 것이 아니며 수락 테스트에서 상당한 수의 버그를 발견하면 심각한 프로젝트 위험으로 인식되기도 합니다. 승인 테스트는 법적 및 규제 요구 사항 또는 표준도 충족할 수 있습니다.

시스템에 대한 사용자 승인을 테스트할 때 실제 또는 시뮬레이션된 운영 환경에서 의도된 사용자가 사용하기에 얼마나 적합한지 결정하는 것이 일반적입니다. 가장 중요한 목표는 사용자가 필요에 따라 요구 사항을 충족하는 최소한의 어려움, 비용, 위험 등으로 비즈니스 프로세스를 수행할 것이라는 확신을 얻는 것입니다.

 

4. System Testing (시스템 테스팅)

시스템 테스트는 전체 시스템 또는 제품의 동작이나 기능, 일반적으로 시스템의 종단 간 성능과 이러한 작업을 수행할 때 발생하는 비기능 동작에 관한 것입니다. 시스템 테스트의 주요 목적은 위험을 최소화하고, 계획 및 지정된 대로 시스템의 동적 및 비기능적 동작을 확인하고, 완성된 시스템이 예상대로 작동하는지 확인하고, 전체 시스템 품질에 대한 확신을 얻고, 테스트로 이동하는 오류를 감지 및 방지하는 것입니다. 또는 생산 단계.
시스템에 따라 한 가지 목표는 데이터 품질을 확인하는 것일 수 있습니다. 단위 테스트 또는 통합 테스트와 마찬가지로 자동화된 시스템 회귀 테스트는 때때로 기존 기능 또는 종단 간 성능의 변경으로 인해 문제가 발생하지 않는다는 확신을 제공할 수 있습니다. 시스템 테스트는 파트너가 공유 결정을 내리는 데 사용하는 정보를 제공하는 경우가 많습니다. 시스템 테스트는 법적 및 규제 요구 사항 또는 표준도 충족할 수 있습니다.
이상적으로는 테스트 환경이 최종 사용 환경과 일치해야 합니다.

시스템 테스트는 일반적으로 사양에 크게 의존하는 독립적인 테스터에 의해 수행됩니다. 특정 오류로 인해 예상되는 시스템 동작에 대한 오해나 불일치가 발생할 수 있습니다. 이 상황은 오류 감지의 효율성을 줄이는 데 시간이 걸리는 위양성 또는 위음성 결과로 이어질 수 있습니다. 테스터가 사용자 스토리 개선 또는 리뷰와 같은 일관된 테스트 활동에 참여하도록 하면 이를 방지할 수 있습니다.

 

출처 : KSTQB 사이트 CTFL 참고문서

728x90
반응형