테스팅 관리 및 통제/결함 관리

책 발췌 – 결함 분류 by Jorgensen

grapevine9700 2023. 3. 12. 08:22
반응형

소프트웨어 리뷰, 테스팅, 품질 관리 등에서 활용할 수 있는 결함 분류 목록의 한 예를 제시한다.

 


 

1.5 결함 분류(Fault Taxonomies)

결함은 다양한 방식으로 분류될 수 있다. 에러 발생이 생긴 개발 단계에 따라 분류하거나, 결함으로 인한 실패의 중대성(consequences)에 따라 분류하거나, 해결하기 어려운 정도에 따라 분류하거나, 또는 미해결 시 수반되는 리스크에 따라 분류하기도 한다. 저자가 가장 선호하는 방식은 발생 빈도에 따라 분류하는 것이다(단 한번만 발생, 간헐적 발생, 주기적 또는 반복적 발생).

 

포괄적인 소프트웨어 에러 타입은 IEEE Standard Classification for Software Anomalies(IEEE, 1993)에서 참조할 수 있다. 아래 결함 목록은 IEEE 표준에서 발췌한 것에 저자가 선호하는 몇 가지를 추가한 것이다.

  

입력/출력 결함(Input/Output Faults)

  • 올바른 입력이 허용되지 않음(Correct input not accepted)
  • 잘못된 입력이 허용됨(Incorrect input accepted)
  • 입력 서술이 잘못되었거나 누락됨(Description wrong or missing)
  • 입력 매개변수가 잘못되었거나 누락됨(Parameters wrong or missing)
  • 출력 형식이 잘못됨(Wrong format)
  • 잘못된 출력 결과(Wrong result)
  • 정확한 출력 결과지만 시간이 부적절(너무 이르거나 너무 늦은 결과)
  • 불완전하거나 누락된 출력 결과(Incomplete or missing result)
  • 비논리적인 출력 결과(Spurious result)
  • 출력의 맞춤법/문법(Spelling/grammar) 오류
  • 출력의 미관상(Cosmetic) 문제

 

로직 결함(Logic Faults)

  • 누락 사례(Missing cases)
  • 중복 사례(Duplicate cases)
  • 극한 조건을 고려 안함(Extreme condition neglected)
  • 잘못 해석(Misinterpretation)
  • 누락된 조건(Missing condition)
  • 직접 연결되거나 관련되지 않은 조건(Extraneous conditions)
  • 잘못된 변수를 통해 로직의 참/거짓 판단(Test of wrong variable)
  • 부정확한 루프 반복(Incorrect loop iteration)
  • 잘못된 연산자(예: ≤ 대신 < 사용)

 

계산 결함(Computation Faults)

  • 잘못된 알고리즘(Incorrect algorithm)
  • 누락된 계산(Missing computation)
  • 잘못된 피연산자(Incorrect operand)
  • 잘못된 연산(Incorrect operation)
  • 괄호 에러(Parenthesis error)
  • 불충분한 정밀도(반올림, 절사)
  • 잘못된 내장 함수(Wrong built-in function)

 

인터페이스 결함(Interface Faults)

  • 잘못된 인터럽트 처리(Incorrect interrupt handling)
  • I/O 타이밍
  • 잘못된 프로시저 호출(Call to wrong procedure)
  • 존재하지 않는 프로시저 호출(Call to nonexistent procedure)
  • 매개변수 불일치(타입, 개수)
  • 호환되지 않는 타입(Incompatible types)
  • 불필요한 포함(Superfluous inclusion)

 

데이터 결함(Data Faults)

  • 잘못된 초기화(Incorrect initialization)
  • 잘못된 저장/액세스(Incorrect storage/access)
  • 잘못된 플래그/인덱스 값(Wrong flag/index value)
  • 잘못된 페키징/언패키징(Incorrect packing/unpacking)
  • 잘못된 변수 사용(Wrong variable used)
  • 잘못된 데이터 참조(Wrong data reference)
  • 스케일링 또는 단위 에러(Scaling or units error)
  • 잘못된 데이터 디멘젼(Incorrect data dimension)
  • 잘못된 첨자(Incorrect subscript)
  • 잘못된 타입(Incorrect type)
  • 잘못된 데이터 범위(Incorrect data scope)
  • 한계를 벗어난 센서 데이터(Sensor data out of limits)
  • 의도한 값보다 1이 적거나 1이 많은 에러(Off-by-one)
  • 일관성 없는 데이터(Inconsistent data)

 

 

출처: Software Testing A Craftsman’s Approach, Paul C. Jorgensen, Fourth Edition, 2014년
1장 A Perspective on Testing, 9~12페이지

반응형