정답: C
설명
실패는 결함으로 인해 발생할 수 있지만 환경 조건으로 인해 발생할 수도 있습니다. 실패는 소프트웨어 시스템이 필요한 기능을 수행하지 못하거나 예상 동작에 따라 기능을 잘못 수행하는 이벤트입니다. 결함은 소프트웨어 시스템의 결함이나 요구 사항 또는 사양에서 벗어나 실패를 일으킬 수 있는 것입니다. 그러나 모든 실패가 결함으로 인해 발생하는 것은 아니며, 일부 실패는 하드웨어 오작동, 네트워크 중단, 정전, 호환되지 않는 구성 등과 같은 환경 조건으로 인해 발생할 수 있습니다. 환경 조건은 소프트웨어 시스템의 작동에 영향을 미치는 요소이지만 소프트웨어 시스템 자체의 일부는 아닙니다. 다른 진술은 다음과 같은 이유로 거짓입니다.
결함이 항상 오류를 생성하는 것은 아니지만 버그는 항상 오류를 생성합니다. 이 진술은 거짓입니다. 결함은 소프트웨어 시스템의 입력, 출력, 상태 또는 시나리오에 따라 오류를 생성할 수도 있고 생성하지 않을 수도 있으며 버그는 결함의 또 다른 용어일 뿐이므로 결함과 동일한 오류를 생성할 가능성이 있습니다. 예를 들어, 거의 사용되지 않는 기능이나 코드의 숨겨진 분기의 결함은 결코 오류를 생성하지 않을 수 있지만 자주 사용되는 기능이나 코드의 중요 경로의 결함은 종종 오류를 생성할 수 있습니다. 버그는 결함과 다른 개념이 아니라 결함의 동의어 또는 구어체적 용어이므로 결함과 동일한 정의와 의미를 갖습니다.
결함은 실패를 일으킬 수 있으며, 실패는 발생할 때 항상 오류를 일으킵니다. 이 진술은 거짓입니다. 오류는 실패의 결과가 아니라 결함의 원인이기 때문입니다. 오류는 오타, 논리적 결함, 요구 사항 오해 등과 같이 소프트웨어 시스템에 결함을 일으키는 인간의 행동이나 실수입니다. 오류는 소프트웨어 시스템에서 관찰할 수 없지만 코드, 설계, 문서 등과 같은 인간의 정신이나 인간의 작업 제품에서 관찰할 수 있습니다. 실패는 오류의 원인이 아니라 오류의 결과인 결함의 결과입니다. 예를 들어, 코드의 오류는 소프트웨어 시스템에 결함을 일으킬 수 있으며, 이는 소프트웨어 동작에 실패를 일으킬 수 있습니다.
버그는 구성 요소 테스트 중에 발견된 결함이고, 실패는 더 높은 수준의 테스트에서 발견된 결함입니다.
이 진술은 거짓입니다. 버그와 실패는 다른 유형의 결함이 아니라 결함과 그 표현에 대한 다른 용어이기 때문입니다. 앞서 언급했듯이 버그는 결함의 또 다른 단어일 뿐이고 실패는 소프트웨어 시스템이 결함으로 인해 예상대로 작동하지 않는 사건입니다.
버그와 실패는 구성 요소 테스트 또는 상위 테스트 수준에서만 발견되는 것이 아니라 모든 테스트 수준에서 발견될 수 있습니다. 테스트 수준은 구성 요소 테스트, 통합 테스트, 시스템 테스트 및 수용 테스트와 같은 소프트웨어 시스템의 통합 수준에 해당하는 테스트 단계입니다. 결함과 실패는 테스트 목표, 테스트 기준, 테스트 기술 및 테스트 환경에 따라 모든 테스트 수준에서 발생하고 감지될 수 있습니다. 참조: ISTQB Certified Tester Foundation Level(CTFL) v4.0 소스 및 문서:
ISTQB 인증 테스터 기초 수준 교과 과정 v4.0, 1.1.2장, 테스트 및 품질1 ISTQB 인증 테스터 기초 수준 교과 과정 v4.0, 1.2.1장, 테스트 원칙1 ISTQB 인증 테스터 기초 수준 교과 과정 v4.0, 1.3.1장, 소프트웨어 개발 라이프사이클의 테스트1 ISTQB 테스트 용어집 v4.0, 실패, 결함, 버그, 환경 조건, 오류, 테스트 수준2