정답: 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