애플리케이션에 잠재되어 있는 결함을 찾아내는 일련의 행위 또는 절차
확인(Validation)
: 고객
의 요구사항을 만족시키는지 확인
검증(Verification)
: 개발자
입장에서 기능을 정확히 수행하는지 점검
잠재적인 결함을 줄일 수 있지만 결함이 없다고 증명할 수는 없다.
→ 완벽한 소프트웨어 테스팅 불가능
결함은 대부분 개발자의 특성이나 애플리케이션의 기능적 특징 때문에 특정 모듈에 집중되어 있음
파레토 법칙
: 20%에 해당하는 코드에서 전체 80%의 결함이 발견된다
동일한 테스트 케이스로 동일한 테스트를 반복하면 살충제 패러독스(Pesticide Paradox) 현상 발생
살충제 패러독스
: 동일한 테스트 케이스에서 더 이상 결함이 발견되지 않는 현상
테스트 케이스는 지속적으로 보완 및 개선해야 함
정황에 따라 테스트를 다르게 수행해야 함
결함을 모두 제거해도 사용자의 요구사항을 만족시키지 못하면 품질이 높다고 할 수 없음
→ 오류-부재의 궤변
테스트와 위험은 반비례함
테스트↑ 위험↓
작은 부분에서부터 점점 확대하며 진행해야 함
개발자와 관계없는 별도의 팀에서 수행해야 함