ISTQB) 1.2 오류, 결함, 장애, 근본 원인

박은경·2025년 2월 14일

소프트웨어 개발에서는 사람의 실수(오류)로 인해 결함(버그)이 발생하고, 이 결함이 실행되면 장애로 이어질 수 있다
이러한 문제를 줄이기 위해 근본 원인 분석을 통해 오류를 예방하고 결함을 최소화하는 것이 중요하다

1. 오류(Error), 결함(Defect), 장애(Failure)의 관계

  • 오류(Error) → 사람이 실수하여 발생하는 것
  • 결함(Defect, Bug) → 오류로 인해 소프트웨어 내부에 존재하는 문제
  • 장애(Failure) → 결함이 실행되어 실제 시스템에서 문제가 발생하는 경우

💡 즉, 오류 → 결함 → 장애로 이어질 수 있음

2. 사람이 오류를 범하는 원인

  • 시간적인 압박
  • 작업 산출물의 복잡성
  • 프로세스 및 인프라의 미흡
  • 팀원 간의 상호작용 문제
  • 피로, 부족한 훈련 등

💡 즉, 단순한 실수뿐만 아니라, 업무 환경이나 프로젝트 상황도 오류 발생에 영향을 줌

3. 결함이 존재할 수 있는 곳

  • 문서 → 요구사항 명세서, 테스트 스크립트 등
  • 소스 코드 → 실제 프로그램 코드
  • 지원 산출물 → 빌드 파일, 환경 설정 파일 등

💡 개발 초기에 발생한 결함이 발견되지 않으면 이후까지 영향을 미칠 수 있음

4. 장애(Failure)의 발생 조건

  • 항상 장애를 일으키는 결함
  • 특정 조건에서만 장애를 발생시키는 결함
  • 결함이 존재하지만 실행되지 않아 장애로 이어지지 않는 경우

💡 즉, 모든 결함이 장애로 이어지는 것은 아니지만, 실행되면 장애를 발생시킬 가능성이 있음

5. 장애의 원인

  • 소프트웨어 내부의 오류와 결함
  • 환경적 요인 (방사선, 전자기장 등으로 인한 펌웨어 오류 등)

💡 즉, 결함뿐만 아니라 외부적인 요인도 장애를 유발할 수 있음

6. 근본 원인 분석(Root Cause Analysis)

  • 문제 발생의 근본적인 이유를 분석하는 과정
  • 장애가 발생했거나 결함이 발견되었을 때 수행
  • 근본 원인을 제거하면 유사한 장애나 결함을 예방하거나 빈도를 줄일 수 있음

💡 즉, 단순히 장애를 수정하는 것이 아니라, 동일한 문제가 반복되지 않도록 근본적인 원인을 해결하는 것이 중요함

profile
생각을 하자💡

0개의 댓글