- 고객 요구사항에 맞게 만들어졌는가? → Validation
- 프로그램 생산성이 높은지 점검한다. → Validation
- 사용자 입장! → Validation
- 명세서에 맞게 만들어졌는가? → Verification
- 오류 발견, 예방
- 개발 초기부터 테스트를 계속해야 한다.
- 작은 부분에서 시작해 점차 확대한다.
- 회귀: 수정된 코드가 결함없이 작동하는가?
- 회복: 결함 테스트 후 바르게 복구됐는가?
- 모듈 내부 작동을 자세히 관찰한다.
- 동치분할검사: 입력값이 유효한 값인지 검사
- 경계값 분석: 경계 부분에서 오류가 발생하는지 초점을 두어 검사
- 원인-효과 그래프 검사: 복잡한 문제를 단순화하여 해결 방안을 모색
단위 테스트(최소, 모듈) → 통합 테스트 → 시스템 테스트 → 인수 테스트
- 모델 의존성: 모델의 구조, 규칙, 제약 조건에 대한 분석과 검증이라 정적
- 불일치성: 모델에 정의되지 않은 경우 모델의 불일치성이 발생할 수 있어 정적
- 스레드 결함: 2개 이상의 스레드가 공유 자원에 동시에 접근 예상 못한 결과 야기, 2개 이상의 스레드가 서로 무한정 기다리는 상황으로 프로그램 중지, 동기화 문제(공유 자원의 일관성 유지를 못하게 됨)