신규로 기능이 추가될 때, 기존 기능도 제대로 동작하는지 검증 필요
앞으로도 기능이 확장된다면, 수동으로 테스트를 계속 돌릴 수 있을 것인가?
- 커버할 수 없는 영역 발생
- 테스트를 경험과 감에 의존하게 됨
- 피드백이 늦어짐
- 유지보수가 어렵고 소프트웨어 신뢰도가 낮아짐
테스트 코드를 작성하기 시작하면 production code가 늘어남에 따라 테스트 코드도 확장해나가면 됨
그러나 테스트 코드가 엉망이라면?
테스트 코드가 주는 이점을 온전히 가져갈 수 없을 것
테스트 코드를 통해 얻고자 하는 것
- 빠른 피드백
- 테스트 자동화
- 소프트웨어에 대한 안정감
테스트 코드를 작성하지 않는다면
- 변화가 생기는 매 순간마다 발생할 수 있는 모든 케이스를 고려해야 함 - 모든 팀원이 동일하게
- 빠르게 변화하는 소프트웨어의 안정성을 보장할 수 없음
테스트 코드가 병목이 된다면
- production code의 안정성을 제공하기 힘들어짐
- 테스트 코드 자체가 유지보수 하기 어려운 새로운 짐이 됨
- 잘못된 검증이 이루어질 가능성이 생김
올바른 테스트 코드
- 자동화된 테스트로 비용을 절감하고 비교적 빠른 시간 안에 버그를 발견한다
- 소프트웨어의 빠른 변화를 지원한다
- 팀원들의 집단 지성을 팀 차원의 이익으로 승격시킨다
- 가까이 보면 느리지만, 멀리 보면 가장 빠르다!
테스트는 귀찮다
그럼에도 해야 한다
Reference
Practical Testing: 실용적인 테스트 가이드 - 인프런 | 강의
이 강의를 통해 실무에서 개발하는 방식 그대로, 깔끔하고 명료한 테스트 코드를 작성할 수 있게 됩니다. 테스트 코드가 왜 필요한지, 좋은 테스트 코드란 무엇인지 궁금하신 모든 분을 위한 강
www.inflearn.com
'Spring' 카테고리의 다른 글
[Practical Testing: 실용적인 테스트 가이드] TDD: Test Driven Development (0) | 2023.06.18 |
---|---|
[Practical Testing: 실용적인 테스트 가이드] 단위 테스트 (0) | 2023.06.18 |
[자바 ORM 표준 JPA 프로그래밍 - 기본편] 객체지향 쿼리 언어2 - 중급 문법 (0) | 2023.06.14 |
[자바 ORM 표준 JPA 프로그래밍 - 기본편] 객체지향 쿼리 언어1 - 기본 문법 (0) | 2023.06.13 |
[자바 ORM 표준 JPA 프로그래밍 - 기본편] 프록시와 연관관계 관리 (0) | 2023.06.07 |