코드는 현장에 배치되기 전과 배치되고 난 후에 기대한 대로 동작하는지 테스트를 한다. 많은 테스트들 중 오늘은 수동 테스트, 인수 테스트 그리고 테스트 주도 개발에 사용되는 단위 테스트의 방법과 목적을 공부했다.
오늘도 강의를 들도 정리했다.
수동 테스트
- 품질 담당자가 UI를 사용해 기능을 검증한다.
- 최종 사용자의 사용 경험과 가장 비슷하게 검증한다.
- 다른 테스트에 비해 상대적으로 실행 비용이 높고 결과의 변동이 크다.
- 가장 온전한 전체 코드를 실행한다.
- 인수 테스트로 많이 쓰인다.
테스트 자동화
- 기능을 검증하는 코드를 작성한다.
- 테스트 코드 작성 비용이 소비되지만 실행 비용이 낮고 결과의 신뢰도가 높다.
- 테스트 코드 작성과 관리가 프로그래머 역량에 크게 영향 받는다.
인수 테스트
- 배치된 시스템을 대상으로 검증한다.
- 전체 시스템 이상 여부 신뢰도가 높다.
- 높은 비용이 든다. (작성비용, 관리비용, 실행비용)
- 피드백 품질이 낮다. 현상은 드러나지만 원인은 숨겨진다.
단위 테스트
- 시스템의 일부를 대상으로 검증한다.
- 낮은 비용이 든다. (작성비용, 관리비용, 실행비용)
- 피드백 품질이 높다.
- 전체 시스템 이상 여부 신뢰도가 낮다.
인수 테스트와 단위 테스트
인수 테스트는 전체 시스템이 있을 때 시스템 외부에 노출된 영역을 대상으로 진행된다.
단위 테스트는 테스트들이 시스템 내부에 있는 하위 시스템을 대상으로 진행된다.
회고
그동안은 테스트들의 종류에 뭐가 있다만 알지 어떻게 다르고, 어떨 때 사용하는지 몰랐다. 하지만 오늘 이 시간 이후로는 수동, 인수, 단위 테스트에 대해선 다른 사람한테도 설명해줄 수 있을 것 같다.