정답: D
선택한 소프트웨어 개발 모델과 상관없이 적용할 수 있는 우수한 테스트 관행을 언급하는 진술은 옵션 D로, 조기 테스트 원칙을 활용하기 위해 작업 제품 검토에 테스터를 참여시키는 것은 가능한 한 일찍 이루어져야 한다고 말합니다. 작업 제품 검토는 정적 테스트 기술로, 요구 사항, 설계, 코드, 테스트 사례 등과 같은 소프트웨어 개발 프로세스의 작업 제품을 작성자와 함께 또는 작성자 없이 한 명 이상의 검토자가 검토하여 결함, 위반 또는 개선 사항을 식별합니다. 작업 제품 검토에 테스터를 참여시키면 테스트 품질, 테스트 효율성 및 테스트 커뮤니케이션을 개선하는 등 테스트 프로세스에 다양한 이점을 제공할 수 있습니다. 조기 테스트 원칙은 테스트 활동이 소프트웨어 개발 수명 주기에서 가능한 한 일찍 시작되어야 하며 수명 주기 내내 반복적이고 지속적으로 수행되어야 한다고 명시합니다. 조기 테스트 원칙을 적용하면 결함을 조기에 예방, 감지 및 제거하는 데 도움이 될 수 있으며, 이때 결함을 수정하기가 더 쉽고 저렴하며 빠를 뿐만 아니라 테스트 프로세스의 위험, 비용 및 시간을 줄일 수 있습니다. 다른 옵션은 선택한 소프트웨어 개발 모델과 관계없이 적용할 수 있는 좋은 테스트 관행이 아니라, 테스트 활동의 맥락과 목표에 따라 테스트에 적용 가능하거나 유익할 수도 있고 그렇지 않을 수도 있는 특정 테스트 관행입니다. 예를 들어 다음과 같습니다.
* 테스트는 코드를 작성하기 전에 실행 가능한 형식으로 작성해야 하며 코딩을 구동하는 실행 가능한 사양 역할을 해야 합니다. 이는 소프트웨어 개발 및 테스트에 대한 접근 방식인 테스트 주도 개발과 관련된 특정 테스트 관행으로, 개발자가 소스 코드를 작성하기 전에 자동화된 단위 테스트를 작성한 다음 테스트가 통과할 때까지 코드를 리팩토링합니다. 테스트 주도 개발은 코드의 품질, 설계 및 유지 관리를 개선하고 개발자에게 빠른 피드백과 지침을 제공하는 데 도움이 될 수 있습니다. 그러나 테스트 주도 개발은 선택한 소프트웨어 개발 모델에 관계없이 적용하기에 좋은 테스트 관행이 아닙니다. 요구 사항이 불분명하거나 불안정하거나 복잡한 경우, 테스트 자동화 도구 또는 기술을 사용할 수 없거나 적절하지 않은 경우, 테스트 목표 또는 수준이 단위 테스트와 일치하지 않는 경우 등 일부 맥락이나 상황에서 테스트하기에 실행 가능하지 않거나 적합하지 않거나 효과적이지 않을 수 있기 때문입니다.
* 테스트 수준은 한 수준의 종료 기준이 다음 수준의 진입 기준의 일부가 되도록 정의해야 합니다. 이는 폭포수 모델, V 모델 또는 W 모델과 같은 순차적 소프트웨어 개발 모델과 관련된 특정 테스트 관행으로, 소프트웨어 개발 및 테스트 활동이 잘 정의된 단계, 제공물 및 종속성을 통해 선형적이고 순차적인 순서로 수행됩니다. 테스트 수준은 구성 요소 테스트, 통합 테스트, 시스템 테스트 및 수용 테스트와 같은 소프트웨어 시스템의 통합 수준에 해당하는 테스트 단계입니다. 테스트 수준에는 테스트 수준을 시작하거나 마치기 전에 충족해야 하는 조건인 명확하고 측정 가능한 진입 기준과 종료 기준이 있어야 합니다. 순차적 소프트웨어 개발 모델에서 한 테스트 수준의 종료 기준은 일반적으로 다음 테스트 수준의 진입 기준의 일부로, 소프트웨어 시스템이 다음 수준의 테스트를 위해 준비되고 안정적임을 보장합니다. 그러나 이것은 어떤 소프트웨어 개발 모델을 선택하든 적용하기 좋은 테스트 관행이 아닙니다. 소프트웨어 개발 및 테스트 활동이 반복적이고 점진적인 순서로 수행되고, 빈번한 변경, 피드백 및 적응이 발생하는 경우, Scrum, Kanban, XP와 같은 애자일 소프트웨어 개발 모델에서와 같이 테스트 수준이 명확하게 정의되거나 구분되지 않은 경우, 또는 테스트 수준이 병렬 또는 동시에 수행되는 경우 등 일부 맥락이나 상황에서 테스트하기에 적합하지 않거나 유연하지 않거나 효율적이지 않을 수 있기 때문입니다.
* 테스트 목표는 모든 테스트 수준에서 동일해야 하지만 다양한 수준에서 설계된 테스트의 수는 상당히 다를 수 있습니다. 이는 나선형 모델, 증분 모델 또는 프로토타입 모델과 같은 균일한 소프트웨어 개발 모델과 관련된 특정 테스트 관행으로, 소프트웨어 개발 및 테스트 활동이 유사한 단계, 제공물 및 프로세스를 사용하여 순환적이고 반복적으로 수행됩니다. 테스트 목표는 테스트의 목표 또는 목적이며 테스트 수준, 테스트 유형, 테스트 기술, 테스트 환경, 테스트 이해 관계자 등에 따라 달라질 수 있습니다. 테스트 목표는 테스트 기준, 테스트 범위, 테스트 품질, 테스트 위험, 테스트 비용, 테스트 시간 등의 관점에서 정의할 수 있습니다. 테스트 목표는 구체적이고 측정 가능하며 달성 가능하고 관련성이 있으며 시간에 구속되어야 하며 프로젝트 목표 및 품질 특성과 일치해야 합니다. 균일한 소프트웨어 개발 모델에서 테스트 목표는 모든 테스트 수준에서 동일할 수 있습니다. 테스트 프로세스는 각 주기 또는 반복마다 반복되고, 유사한 초점, 범위 및 테스트 관점을 갖습니다. 그러나 이는 선택한 소프트웨어 개발 모델과 관계없이 적용하기에 적합한 테스트 관행이 아닙니다. 소프트웨어 개발 및 테스트 활동이 계층적이고 모듈식 방식으로 수행되고, 단계, 제공물 및 종속성이 다른 경우(예: 폭포수 모델, V 모델 또는 W 모델) 또는 테스트 목표가 구성 요소 테스트, 통합 테스트, 시스템 테스트 및 수용 테스트와 같이 테스트 수준에 따라 달라지거나, 테스트 목표가 피드백, 학습 또는 테스트 프로세스의 적응에 따라 변경되는 경우(예: Scrum, Kanban 또는 XP 등 애자일 소프트웨어 개발 모델)와 같이 일부 맥락이나 상황에서 테스트하기에 적절하지 않거나, 현실적이지 않거나, 효과적이지 않을 수 있기 때문입니다. 참조: ISTQB Certified Tester Foundation Level(CTFL) v4.0 소스 및 문서:
* ISTQB 인증 테스터 기초 수준 교과 과정 v4.0, 1.1.1장, 테스트 및 소프트웨어 개발 라이프사이클1
* ISTQB 인증 테스터 기초 수준 교과 과정 v4.0, 1.2.1장, 테스트 원칙1
* ISTQB 인증 테스터 기초 수준 교과 과정 v4.0, 1.2.2장, 테스트 정책, 전략 및 테스트 접근 방식1
* ISTQB 인증 테스터 기초 수준 교과 과정 v4.0, 1.3.1장, 소프트웨어 개발 라이프사이클 테스트1
* ISTQB 인증 테스터 기초 수준 교과 과정 v4.0, 2.1.1장, 테스트 계획1
* ISTQB 인증 테스터 기초 수준 교과 과정 v4.0, 2.1.2장, 테스트 모니터링 및 제어1
* ISTQB 인증 테스터 기초 수준 교과 과정 v4.0, 2.1.3장, 테스트 분석 및 설계1
* ISTQB 인증 테스터 기초 수준 교과 과정 v4.0, 2.1.4장, 테스트 구현1
* ISTQB 인증 테스터 기초 수준 교과 과정 v4.0, 2.1.5장, 테스트 실행1
* ISTQB 인증 테스터 기초 수준 교과 과정 v4.0, 2.1.6장, 테스트 클로저1
* ISTQB 테스트 용어집 v4.0, 작업 제품 검토, 정적 테스트, 초기 테스트, 테스트 주도 개발, 테스트 수준, 진입 기준, 종료 기준, 테스트 목표, 테스트 기준, 테스트 범위, 테스트 품질, 테스트 위험, 테스트 비용, 테스트 시간2