테스트 작성은 추가 작업 인 것처럼 보이며 사람들이 실제 코드를 작성할 때 버팀목을 제공하며 종종 효과적이지 않을 수 있습니다.
단위 테스트는 목발로 가치가 있습니다. 개발 노력을 지원하므로 응용 프로그램이 필요에 따라 작동하지 않을까 걱정하지 않고 구현을 변경할 수 있습니다. 단위 테스트는 구현이 요구 사항과 일치하는지 확인할 수있는 도구를 제공하기 때문에 목발 그 이상입니다.
단위 테스트, 승인 테스트, 통합 테스트 등 모든 테스트는 테스트를 사용하는 사람들만큼 효과적입니다. 작업에 느슨하게 접근하면 테스트가 거칠어지고 구현에 문제가 발생합니다. 왜 귀찮게? 자신과 고객에게 소프트웨어가 작동하고 소프트웨어 사용을 방해 할 수있는 문제가 없음을 증명해야하기 때문에 테스트를 귀찮게합니다. 예, 테스트는 확실히 추가 작업이지만 테스트를 진행하는 방법에 따라 릴리스 후 버그 수정에 얼마나 많은 노력을 기울여야하는지, 코드를 변경하고 유지 관리하는 데 얼마나 많은 노력이 필요한지 결정합니다.
단위 테스트의 작동 방식과 작성 방법을 알고 있지만 누구나 실제로 좋은 아이디어이며 노력과 시간이 가치가 있다고 주장 할 수 있습니까?
TDD, 그리고 실제로 코드를 작성하기 전에 테스트를 작성해야하는 모든 방법은 향후 기술 부채에 대한 계약금으로 초기에 노력한 방식을 취합니다. 프로젝트를 진행할 때 누락되거나 제대로 구현되지 않은 것은 유지 보수의 어려움이 증가하여 더 많은 기술적 부채가 발생하여 향후 비용 및 자원 조달 요구 사항에 직접적인 영향을 미칩니다. 사전 테스트를 수행하면 향후 기술 부채를 해결하기 위해 노력했을뿐만 아니라 코드를 실행하여 요구 사항을 간단히 확인할 수있는 방식으로 요구 사항을 인코딩 할 수 있습니다. 먼저 테스트는 코드로 문제를 해결하기 전에 문제 영역에 대한 이해를 검증 할 수있는 기회를 제공하며 구현 노력을 검증합니다.
실제로 코드의 비즈니스 가치를 극대화하려고 시도합니다. 테스트를 거치지 않고 유지하기 어려운 코드는 일반적으로 작성하기가 저렴하고 빠르며 출시 후 제품 수명 기간 동안 유지 관리하는 데 비용이 많이 듭니다. 단위 수준에서 철저히 테스트 된 코드는 일반적으로 작성하는 데 비용이 많이 들지만 출시 후 제품 수명 기간 동안 유지하는 데 비용이 상대적으로 적습니다.
또한 TDD가 SCRUM에 특히 좋은 점이 있습니까?
TDD는 특정 방법론에 특별히 적합하지 않습니다. 단순히 도구입니다. 특정 결과를 달성하기 위해 개발 프로세스에 통합 할 수있는 방법. 따라서 귀하의 질문에 대답하기 위해 TDD는 SCRUM이든 다른 접근법이든 상관없이 귀하의 방법을 보완합니다.