본문은 Fastcampus의 [이규원의 현실 세상의 TDD]를 수강하고 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다.
수동 테스트
- 품질 담당자가 UI를 사용해 기능을 검증
- 최종 사용자의 사용 경험과 가장 비슷하게 검증
- 실행 비용이 높고 결과의 변동이 큼
- 추가한 기능을 테스트하는 비용 + 기존 기능이 원래대로 동작하는지 테스트하는 비용(소프트웨어 회귀)
- 수동 테스트만으로는 이 비용을 감당하기 힘듦
- 가장 온전한 코드 실행
- 인수 테스트
소프트웨어 회귀
- 특정 시점 이후로 소프트웨어의 기능이 동작하지 않는 버그
- ex) 새로운 기능이 추가된 이후로 원래 기능이 동작하지 않음
테스트 자동화
- 기능을 검증하는 코드를 작성
- 테스트 코드 작성 비용이 소비되지만 실행 비용이 낮고 결과의 신뢰도가 높음
- 테스트 코드 작성과 관리가 프로그래머 역량에 크게 영향 받음
인수 테스트
- 배치된 시스템을 대상으로 검증
- 전체 시스템 이상 여부 신뢰도가 높음
- 높은 비용
- 작성비용/관리비용/실행비용
- 피드백 품질이 낮음
- 현상은 드러나지만 원인은 숨겨짐
단위 테스트
- 인수 테스트와 함께 보완적으로 사용되는 테스트
- 시스템의 일부(하위 시스템)을 대상으로 검증
- 낮은 비용
- 높은 피드백 품질
- 버그가 어디에서 발생할 수 있는지 알 수 있음(에러 메시지)
- 문제 해결에 큰 도움을 받을 수 있음
- 전체 시스템 이상 여부 신뢰도가 낮음
'테스트코드 > 이규원의 현실 세상의 TDD: 안정감을 주는 코드 작성 방법' 카테고리의 다른 글
[이규원의 현실 세상의 TDD: 안정감을 주는 코드 작성 방법] 5장: 테스트 우선 개발 (0) | 2022.07.22 |
---|---|
[이규원의 현실 세상의 TDD: 안정감을 주는 코드 작성 방법] 4장: 단위 테스트 (0) | 2022.07.21 |
[이규원의 현실 세상의 TDD: 안정감을 주는 코드 작성 방법] 3장: 코드 분해 (0) | 2022.07.21 |
[이규원의 현실 세상의 TDD: 안정감을 주는 코드 작성 방법] 1장: 코드 기능 명세 (0) | 2022.07.21 |
[이규원의 현실 세상의 TDD: 안정감을 주는 코드 작성 방법] Intro: 좋은 코드 (0) | 2022.07.21 |