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)들이 체크되어 처리되고 있는가?
728x90
반응형
'Python 파이썬 > 기초 & 내장모듈' 카테고리의 다른 글
functools ) partial() 인수가 이미 채워진 새로운 함수 만들기 (0) | 2022.05.12 |
---|---|
python ) 클래스 class (0) | 2022.03.11 |
python ) 모듈과 패키지 (0) | 2022.03.11 |
python ) 예외 오류 처리 try (0) | 2022.03.11 |
python ) 함수 function (0) | 2022.03.08 |
댓글