개발된 응용 애플리케이션이나 시스템이 사용자가 요구하는 기능과 성능, 사용성, 안정성 등을 만족하는지 확인하고, 노출되지 않는 숨어있는 소프트웨어의 결함을 찾아내는 활동이다.
오류 발견 관점
프로그램에 잠재된 오류를 발견하고 이를 수정하여 올바른 프로그램을 개발하기 위해 필요
오류 예방 관점
오류를 사전에 발견하는 예방 차원의 필요
품질 향상 관점
사용자의 요구사항 및 기대 수준을 만족하도록 테스트를 거쳐 제품의 신로도 향상을 위해
암기 : 발가락이 예쁘고 향기롭다. → 발예향
완벽한 테스팅은 불가능
완벽하게 테스팅하려는 시도는 불필요한 시간과 자원낭비
결함집중
작은 수의 모듈에서 대다수의 결함이 발견됨
파레토 법칙의 내용인 80대 20 법칙 적용
살충제 페러독스
동일한 데이트 케이스에 의한 반복적 테스트는 새로운 버그를 찾지 못함
테스팅은 정황에 의존적
소프트웨어의 성격에 맞게 테스트를 실시해야 한다
오류-부재의 궤변
요구사항을 충족시켜주지 못한다면, 결함이 없다고 해도 품질이 높다고 볼 수 없음
테스트 계획 → 테스트 분석 및 디자인 → 테스트 케이스 및 시나리오 작성 → 테스트 수행
→ 테스트 결과 평가 및 리포팅