빠른 변화에도 새로운 기능을 적용하고 유지보수 및 장애 발생시 대처를 유연하게 할 수 있는 소프트웨어 설계 방법론
최대한 기능 분석 후 핵심이 되는 테스트 코드부터 작성하고 이를 완성하기 위해 적용된 아키텍처에 맞는 기능 개발 진행
백엔드 개발자로서, 요구사항을 분석하고 기능을 올바르게 완성하기 위한 TC 를 작성하는 방법을 익힙니다.
Testable Code
모든 코드를 테스트 가능하게 구현하는 것을 목표로 진행합니다.
모든 테스트 케이스가 성공했다는 것은 목표한 기능이 완성되었다는 것을 의미합니다.
테스트 커버리지 100% 가 아니라, 정확히 기능의 동작을 확인하는 테스트를 작성해 주세요.
주요 기능에서 private 접근자, 객체간의 강결합 같이 테스트 불가능한 코드는 가능한 한 지양하는 것이 좋습니다.
#1) 기능 구현을 원하는 요구사항을 검증하는 테스트 추가
#2) 테스트를 만족하도록 기능 구현
>> 이 때, 테스트는 한번에 많은 Scope 를 잡지 않는다. 이는 불필요한 개발 생산성 저하로 이어진다.
>> 이 시점에서 우리가 몇 배의 시간을 더 투자한다고 해서 테스트 커버리지 100% 를 달성할 수는 없다.
#3) 구현된 기능에 대한 리팩토링 ( 인터페이스 구성, 코드클리닝 등 코드 베이스 정리 )