728x90
인력 비용
처음 프로젝트를 개발하면 버그는 없는지 예상한대로 결과를 잘 내놓는지 테스트가 필요할 것이다.
이런 테스트를 사람이 수동으로 직접 할 수 있겠지만 후에 기능을 추가하고자 할 때 기존 프로덕션 코드와 겹치는 부분이 발생한다면 해당 부분의 기존 코드를 다시 검증해야할 것이다.
코드는 점점 확장을 하게 된다. 확장이 될 때 마다 검증을 수동으로 새로 해야한다면 인력비용이 증가할 것이다.
사람이 테스트
사람은 실수를 할 수 있는 가능성을 지니고 있다. 수동으로 테스트하면 누락 케이스가 발생할 수 있고 그것이 치명적인 결함이 될 수 있다.
시간이 지날 수록 고도화되고 확장되면
- 커버할 수 없는 영역이 발생
- 경험과 감에 의존
- 늦은 피드백
- 유지보수 어려움
- SW 신뢰도 낮아짐
등과 같은 문제가 생기게 된다.
테스트 목적
- 빠른 피드백
- 자동화(사람이 수동으로 x)
- 안정감, 신뢰성 향상
주의: 테스트 코드를 복잡하게 작성하게 된다면 몇몇 부작용이 생길 수 있기 때문에 잘 짜도록 노력이 필요하다.
정리
[테스트 코드를 작성하지 않는다면]
- 변화가 생기는 매순간마다 발생할 수 있는 모든 Case 고려가 필요하다.
- 변화가 생기는 매순간마다 모든 팀원이 동일한 고민을 해야 한다.
- 빠르게 변화하는 소프트웨어의 안정성을 보장할 수 없다.
[테스트 코드가 병목이 된다면]
- 안정성 제공이 힘들다.
- 테스트 코드 유지보수가 어렵다.
- 잘못된 검증 가능성이 있다.
[올바른 테스트 코드]
- 자동화 테스트: 빠른 시간 안에 버그 발견 및 수동 테스트 비용 절감
- 소프트웨어의 빠른 변화 지원
- 테스트 코드는 공동 자산: 팀원들의 집단 지성을 팀 차원의 이익으로 승격
귀찮지만 해야한다.
728x90
'spring > test' 카테고리의 다른 글
| [Spring][Test][Exception] org.mockito.exceptions.base.MockitoException: final class (0) | 2024.05.13 |
|---|