소프트웨어 프로젝트의 지속 가능한 성장을 가능하게 하는 것이다.지속적인 정리와 리팩터링 등과 같은 적절한 관리를 하지 않고 방치하면 시스템이 점점 더 복잡해지고 무질서(엔트로피, software entropy)해진다.테스트는 안전망 역할을 한다.테스트는 새로운 기능을
작은 코드 조각(단위라고도 함)을 검증하고빠르게 수행하고격리된 방식으로 처리하는 자동화된 테스트다.격리 문제는 고전파와 런던파를 구분할 수 있게 한다.테스트 대상 시스템(SUT, System Under Test)을 협력자(collaborator)에게서 격리하는 것을 일
준비(Arrange)실행(Act)검증(Assert)AAA 패턴과 차이는 없다.프로그래머가 아닌 사람에게 Given-When-Then 구조가 더 읽기 쉽다.여러 개의 준비, 실행, 검증 구절은 테스트가 너무 많은 것을 한 번에 검증한다는 의미다.이러한 테스트는 여러 테스
회귀 방지리팩터링 내성빠른 피드백유지 보수성회귀는 소프트웨어 버그다.코드를 수정한 후 기능이 의도한 대로 작동하지 않는 경우다.코드베이스가 커질수록 잠재적인 버그에 더 많이 노출된다.그래서 회귀에 대해 효과적인 보호를 개발하는 것이 중요하다.회귀 방지 지표에 대한 고려