수동 테스트
- 품질 담당자가 UI 를 사용해 기능을 검증
- 최종 사용자의 사용 경험과 가장 비슷하게 검증
- 상대적으로 실행 비용이 높고 결과의 변동이 큼
- 가장 온전한 코드 실행
- 인수 테스트
소프트웨어 회귀 (Software regression)
원래는 동작했지만 어떠한 시점이후(기능의 수정, 추가 등)로 동작을 하지 않음
회귀 테스트 대상은 시간이 갈수록 늘어남
테스트 자동화
- 기능을 검증하는 코드를 작성
- 테스트 코드 작성 비용이 소비되지만 실행 비용이 낮고 결과의 신뢰도가 높음
- 테스트 코드 작성과 관리가 프로그래머 역량에 크게 영향 받음
인수 테스트
인수받기 전 테스트
- 배치된 시스템을 대상으로 검증
- 전체 시스템 이상 여부 신뢰도가 높음
- 높은 비용 (작성비용, 관리비용, 실행비용)
- 피드백 품질이 낮음 (현상은 드러나지만 원인은 숨겨짐)
단위 테스트
- 시스템의 일부(하위 시스템)을 대상으로 검증
- 낮은 비용
- 높은 피드백 품질
- 전체 시스템 이상 여부 신뢰도가 높음