매우 엄격한 마감일로 인해 개발 과정에서 테스트 중심 개발 프로세스가 없었습니다.
이 진술은 매우 중요합니다. TDD없이 개발했거나 모든 것을 테스트하지 않았기 때문이 아닙니다. 이것은 TDD가 속도를 늦추고 마감 시간을 놓칠 수 있다고 생각하기 때문에 관련이 있습니다.
이 방법으로 보는 한 TDD 준비가되지 않았습니다. TDD는 점차 완화 될 수있는 것이 아닙니다. 당신은 그것을하는 방법을 알고 있거나하지 않습니다. 당신이 그것을 반쯤 시도하면 당신은 그것을 자신과 나빠 보이게 만들 것입니다.
TDD는 집에서 먼저 연습해야하는 것입니다. 그것이 도움이 있기 때문에, 그것을 할 알아 당신에게 코드를 지금 . 누군가가 당신에게 그렇게했기 때문이 아닙니다. 나중에 변경할 때 도움이되기 때문이 아닙니다. 그것은 당신이 할 일이되면 있기 때문에 당신이 서둘러 당신은 전문적으로 그것을 할 준비가 된 것입니다.
TDD는 모든 상점 에서 할 수있는 일입니다 . 테스트 코드를 설정할 필요조차 없습니다. 다른 사람들이 테스트를 경멸하면 스스로 유지할 수 있습니다. 올바르게 수행하면 테스트를 통해 아무도 실행하지 않아도 개발 속도가 빨라집니다.
반면에 다른 사람들이 테스트를 좋아하고 실행하는 경우에도 TDD 상점에서도 테스트를 확인하는 것이 귀하의 일이 아님을 명심해야합니다. 입증 된 작업 프로덕션 코드를 작성해야합니다. 테스트가 가능하다면 깔끔합니다.
경영진이 TDD를 믿어야한다고 생각하거나 동료 코더가 테스트를 지원해야한다고 생각하면 TDD가 최선을 다하는 것을 무시하는 것입니다. 코드가 생각하는 것과 실제로하는 것의 차이점을 빠르게 보여줍니다.
그 자체만으로 마감 시간을 더 빨리 달성하는 데 도움이 될 수있는 방법을 알 수 없다면 직장에서 TDD를 준비하지 않은 것입니다. 집에서 연습해야합니다.
즉, 팀이 테스트를 사용하여 생산 코드를 읽는 데 도움을 줄 수 있고 경영진이 새로운 TDD 도구를 구입할 때 유용합니다.
팀을 TDD로 변환 한 후 가능한 모든 테스트 사례를 작성하는 것이 좋습니까?
팀의 활동에 관계없이 모든 가능한 테스트 사례를 작성하는 것이 항상 좋은 생각은 아닙니다. 가장 유용한 테스트 사례를 작성하십시오. 100 % 코드 범위는 비용이 듭니다. 판결 요청이 어렵다는 이유로 수익 감소 법을 무시하지 마십시오.
흥미로운 비즈니스 로직을 위해 테스트 에너지를 절약하십시오. 결정을 내리고 정책을 시행하는 것들. 도대체 테스트 해보십시오. 서로를 연결하는 읽기 쉬운 구조용 접착제 코드를 지루하게 만드는 것은 거의 테스트가 필요하지 않습니다.
(1) 모든 것이 완벽하게 작동하더라도 (아직도) 대부분의 개발을 중단하고 처음부터 가능한 모든 테스트 사례를 작성하는 것이 여전히 좋거나 좋은 생각입니까? 또는
아니요. 이것은 "완전히 다시 작성하겠습니다"라는 생각입니다. 이것은 어려운 지식을 파괴합니다. 경영진에게 테스트를 작성할 시간을 요구하지 마십시오. 테스트를 작성하십시오. 무엇을하고 있는지 알면 테스트 속도가 느려지지 않습니다.
(2) 문제가 발생할 때까지 기다린 다음 수정 중에 새 단위 테스트를 작성하는 것이 좋습니다.
(3) 심지어 이전 코드를 잊고 새로운 코드에 대해서만 단위 테스트를 작성하고 다음 주요 리 팩터로 모든 것을 연기합니다.
같은 방법으로 2와 3에 대답하겠습니다. 어떤 이유로 든 코드를 변경하면 테스트에 참여할 수 있다면 정말 좋습니다. 코드가 레거시이면 현재 테스트를 환영하지 않습니다. 변경하기 전에 테스트하기가 어렵다는 것을 의미합니다. 어쨌든 변경하기 때문에 테스트 가능한 것으로 변경하고 테스트 할 수 있습니다.
이것이 핵 옵션입니다. 위험합니다. 테스트없이 변경하고 있습니다. 레거시 코드를 변경하기 전에 테스트 할 수있는 몇 가지 창의적인 트릭이 있습니다. 코드를 변경하지 않고 코드의 동작을 변경할 수있는 이음새를 찾습니다. 구성 파일을 변경하고 파일을 빌드 할 수 있습니다.
Michael Feathers는 이것에 관한 책을주었습니다 : 레거시 코드로 효과적으로 작업하기 . 읽어 보시면, 새로운 것을 만들기 위해 오래된 것을 모두 태울 필요가 없다는 것을 알게 될 것입니다.