본문 바로가기
Python 파이썬/기초 & 내장모듈

소프트웨어 인스펙션 체크 리스트

by 하이방가루 2022. 6. 9.
728x90
반응형

데이터 참조 에러(Data Reference Errors) : 올바르지 못하게 선언되거나 잘못된 값으로 초기화 된 Data를 참조할 경우 발생하는 에러.

  •  초기화되지 않은 변수가 있는가?
  •  데이터 오버플로우(Data Overflow) 에러.
  •  “Off by one” 오버플로우 에러.
  •  변수가 참조하는 메모리가 할당되어 있지 않은 경우(Dangling Reference).
  •  변수에 맞는 타입의 값이 저장되어 있지 않은가?
  •  변수가 2개 이상의 함수에서 참조될 때 동일하지 않은 값이 참조되는가?

데이터 선언 에러(Data Declaration Errors) : 부적절하게 선언된 변수나 상수를 사용할 때 발생하는 에러.

  • 명시적으로 선언되었는가?
  • 올바른 타입으로 선언되었는가?
  • 선언 시점에 값이 Assign 되었는가?
  • 선언된 변수명이 명확하게 구분되는가?
  • 선언된 변수가 단 1번이라도 참조되고 있는가?

계산 에러(Computation Errors) : 잘못된 연산으로 인해 발생하는 에러.

  • 연산하는 두변수의 데이터타입이 같은가?(예: Integer, Float)
  • 데이터 타입은 같지만 길이가 다른 변수를 연산하는경우.
  • 데이터 타입이나 길이의 차이를 자동적으로 변환 또는 처리하는 컴파일러에 대해 고려되어야 함.
  • 왼쪽 피연산자의 데이터 타입이 오른쪽 연산 결과변수의 데이터타입보다작은지확인해야함.
  • 연산 중 오버플로우(Overflow)가 발생할 가능성이 있는가?
  • 정수의 나눗셈과 같은 경우, 연산결과가 의도하지 않은 값으로 표시 될 수 있는가?

비교 에러(Comparison Errors) : 다른 형태의 값을 비교하여 생기는 에러.

  • 서로 다른 타입을 비교 하고 있지 않은가?
  • 비교 연산자는 올바르게 사용되었는가?(비교연산자: ==, <=, <, >=, >)
  • 불리언 연산식(Boolean Expression)이 올바르게 사용 되었는가?
    i가 2와 10 사이인지 비교하는 경우
    -> 잘못된 연산: 2 < i< 10
    -> 올바른 연산: (2 < i) && (i< 10)
    i가x 또는y 보다 큰지 비교하는 경우
    -> 잘못된 연산: i> x || y
    -> 올바른 연산: (i> x) || (i> y)
  • 불리언 연산식(Boolean Expression)이 반복해서 여러 번 사용되는 경우 순서가 명확하게 드러나는가?
    올바른 연산식의 예(순서가 명확함)
    -> if((a==2)&&(b==2) || (c==3))

제어 에러(Control Flow Errors) : 데이터 흐름이 잘못된 순서인 에러

  • 모든 반복(Loop)이 항상 종료되는지 확인
  • 모든 프로그램, 모듈, 함수가 종료되는지 확인
  • 한번도 실행하지않는 반복(Loop)이 있는지 확인

  • Switch~Case문 같이 값에 따라 분기되는 코드
    인덱스(Index) 값이 범위를 벗어날 때에 대한 처리코드가 “Off By One” 에러가 반복(Loop)에 의해 발생할 수 있는가?

인터페이스 에러(Interface Errors) : 단위 개체간 규약이 일치하지 않는 에러

  • 함수 호출 시 인자(Parameter)의 수와 순서가 올바른가?
  • 인자의 타입과 크기는 올바르게 호출되고 있는가?
  • 인자의 값이 잘못 사용되고 있지 않은가?
  • 전역변수(Global Variable)의 경우, 여러 함수에서 동일한 값과 이름으로 참조되고 있는가?
  • 상수(Constant) 값이 인자로 전달되고 있지 않은가?

입출력 에러(Input/output Errors) : 파일 생성 관련 에러

  • 파일의 속성(Attributes)이 올바르게 생성되어 있는가?
  • 파일의 크기가 현 메모리 사이즈에 비해 적절한가?
  • 모든 파일이 사용되기 전에 열리고 있는가?
  • 사용 후에 닫히고 있는가?
  • EOF(End-Of-File) 조건이 체크되어 처리되고 있는가?
  • 입출력에러(I/O Errors)들이 체크되어 처리되고 있는가?

출처 : https://helloblog.net/software-inspection/

728x90
반응형

댓글