소프트웨어 결함은 소프트웨어 개발에 내재된 복잡성 때문에 발생한다. 개발당시에
아무리 잘 만들었다고 생각했어도 고객이 예상치 못한 방식으로 사용하게 되면
예상치 못한 오류가 발생한다.
디버깅이란 오류(=버그)를 해결하는 것을 말한다.
코딩 오류의 종류는 다음과 같이 볼 수 있다.
○구문 오류:
코드 작성시 오타나 절차의 오류 같은 것이 있어 애초에 언어의 문법을 제대로
따르지 못하여 컴파일 자체가 실행되지 않음
○의미론적 오류:
개발자가 어떤 의도를 가지고 소스코드 구문을 짰는데 문법적으로 오류는 없어서
컴파일이 실행이 되었지만 개발자가 그 언어의 문법을 잘 이해하지
못할 경우 각 언어의 문법 특성에 따라서 그 코드를 다른 방식으로 처리하게 되어
의도하지 않은 결과가 나오는 경우가 있다.
○논리 오류:
개발자가 알고리즘을 잘못 짰을 경우를 말함. 예를 들어 의도한 것보다 코드의 루프가
너무 일찍 종료되거나, 잘못된 if사용 등이 될 수 있음
○런타임 오류:
코드를 수행하는 데 메모리 공간 부족, 스택 오버플로 등으로 계산 처리가 불가능할
정도로 큰 경우가 속한다고 볼 수 있다.