나는 TDD를 "얻지"않고 그걸 가지고 살 수 없다는 것을 의미하는 "감염된 테스트"를하는 사람들에 대해 계속 읽습니다. 그들은 "성형 수술"을 그대로했습니다. 질문은, 어떻게 그렇게 할 수 있습니까?TDD로 "감염 테스트"를 어떻게합니까?
답변
"감염된 테스트"의 요점은 TDD를 충분히 사용해 성공률이 이라면 코드없이을 코딩하지 않는 것입니다. 먼저 테스트를 작성한 후 코드 및 리펙토링을 수행하고 버그 수가 줄어들고 코드가 결과적으로 좋아지면 Zxaos와 같은 제 2의 자연이 될뿐만 아니라 어려움을 겪을 것입니다 코드 첫 번째로 돌아 가기. 이것은 감염된 테스트 중입니다.
시작하려면 TDD에 대해 알아두면 워크 플로에 통합되기 시작합니다. 당신이 방법론을 충분히 사용한다면, 그것들은 제 2의 천성이된다는 것을 알게 될 것이고, 당신은 그 프레임 워크 내에서 당신의 모든 개발 작업을 프레이밍하기 시작할 것입니다.
또한 선택한 언어로 J-Unit (또는 X-Unit) 프레임 워크를 사용하십시오.
이미 TDD에 대해 읽었습니다. 더 많이 읽으면 당신을 흥분시키지 않을 것입니다.
대신 진정한 개인적인 성공 사례가 필요합니다.
방법은 다음과 같습니다. 코어 모듈의 코드, 외부 시스템이나 너무 많은 다른 서브 루틴에 의존하지 않는 코드를 잡아라. 루틴이 얼마나 복잡하고 간단하든 상관 없습니다.
그런 다음 단위 테스트를 작성하십시오. (나는 당신이 xUnit이나 귀하의 언어에 대한 유사하다고 가정합니다.) 모든 경계 케이스를 테스트하고, max-int와 min-int를 테스트하고, null을 테스트하고, 수백만 개의 요소가있는 테스트 문자열과 목록을 테스트하고, 한국어와 제어 문자, 오른쪽에서 왼쪽으로 쓰는 아랍어와 따옴표, 백 슬래시 및 마침표와 함께 이스케이프 처리되지 않은 경우에 문제가있는 것들을 테스트합니다.
당신은 .... 버그를 발견 할 것입니다! 처음에는 이러한 버그가 중요하지 않다고 생각할 수도 있습니다. 아직 이러한 문제에 직면하지 않았고, 코드가이 작업을 수행하지 않을 것입니다. 등등.하지만 내 경험은 앞으로 계속 진행하면 놀라실 것입니다. 작은 문제의 수에 따라. 결국 이 없음이 인이 문제를 일으킬 것이라고 믿는 것이 어려워집니다.
플러스 당신은 정말 잘 된 일을 통해 성취감을 얻습니다. 우리는 코드가 완벽하지 않으며 버그가 거의 없다는 것을 알고 있습니다. 그래서 우리가 정말 자신감을 느끼는 많은 테스트를 다 써 버렸을 때 좋았습니다. 자신감은 좋은 느낌입니다.
마지막으로, 나는 사랑을 촉발시킬 마지막 사건이 몇 주 또는 몇 달 후에 일어날 것이라고 생각합니다. 어쩌면 버그를 고치거나 기능을 추가하거나 코드를 리팩토링하는 것일 수도 있습니다. "응?" 왜 새로운 변화가 깨진 테스트와 관련이 있는지 이해하지 못한다고 말할 것입니다. 그러면 그것을 발견하고 깨달음을 찾으십시오. 왜냐하면 당신은 이 실제로 코드를 깨뜨린다는 것을 알지 못했기 때문에 테스트 결과가 저장되었습니다.
할렐루야!
한 마디, 연습하십시오! TDD를 수행하는 데 약간의 오버 헤드가 있으며 그것을 극복하는 방법은 연습을 통해 도구를 사용하여 프로세스를 돕는 것입니다. 당신은 손등과 같은 도구를 배워야합니다. 학습 과정과 함께 할 도구를 배우면 클릭하고 코드를 플러시 (flush)하기위한 테스트 작성에 익숙해집니다. 그런 다음 "테스트 감염"됩니다.
나는 answered과 비슷한 질문입니다. 당신도 그것을 확인하고 싶을 수도 있습니다. 몇 가지 도구에 대해 언급하고 TDD 학습에 대해 설명합니다. 이 도구들 중에서 Resharper와 좋은 조롱 프레임 워크를 선택하는 것은 TDD를 수행하는 데 중요합니다. 나는 당신이 충분히 사용하고있는 테스트 프레임 워크와 함께 가기 위해 이러한 툴을 배우는 것을 강조 할 수 없다.
- 1. TDD로 컨스트럭터를 삽입하거나 삽입하지 않으시겠습니까?
- 2. TDD로 복잡한 방법을 개발하는 방법
- 3. PHP eval + gzinflate 감염 - 공격 벡터는 무엇입니까?
- 4. 팀 빌드를 통해 MbUnit 테스트를 실행하려면 어떻게합니까?
- 5. phpunit 명령은 검색 클래스 테스트를 어떻게합니까?
- 6. 단위 테스트를 통해 상대적 성능을 측정하려면 어떻게합니까?
- 7. Plone 4에서 개발중인 제품에서 테스트를 실행하려면 어떻게합니까?
- 8. DUnit 테스트를 프로그래밍 방식으로 이름별로 비활성화하려면 어떻게합니까?
- 9. 일련의 테스트를 정렬 된 테스트로만 실행하려면 어떻게합니까?
- 10. 날짜가있는 테스트를 가장 잘 처리하려면 어떻게합니까?
- 11. Eclipse에서 모든 Groovy 유닛 테스트를 실행하려면 어떻게합니까?
- 12. MSpec 테스트를 일반 NUnit으로 변환
- 13. 유닛 테스트 TDD로 SQL을 테스트하는 것은 너무 먼가요?
- 14. SerialPort에 의존하는 클래스에 대한 단위 테스트를 작성하려면 어떻게합니까?
- 15. 테스트를 마친 후에도 계속 작동하는 스레드를 추적하려면 어떻게합니까?
- 16. 특정 빌드 구성에 대해 실행되는 단위 테스트를 변경하려면 어떻게합니까?
- 17. TestNG가 특정 그룹 (명령 행에서)에서 테스트를 실행하려면 어떻게합니까?
- 18. Java에서 클립 보드에 대한 JUnit 테스트를 작성하려면 어떻게합니까?
- 19. Visual Studio에서 단위 테스트를 원하는 위치에 배치하려면 어떻게합니까?
- 20. 서브 루틴이 호출되는지 확인하는 단위 테스트를 작성하려면 어떻게합니까?
- 21. ReSharper가 모든 테스트를 실행할 때 특정 범주를 무시하도록하려면 어떻게합니까?
- 22. Visual Studio에서 일시적으로 차단 된 테스트를 기다리지 않으려면 어떻게합니까?
- 23. 스위트를 만들 때 Eclipse가 JUnit 테스트를 인식하도록하려면 어떻게합니까?
- 24. poco 개체에 대한 테스트를 만드는 방법
- 25. 자동 테스트를 시작하는 방법은 무엇입니까?
- 26. 레이크 테스트를 통해 하위 디렉토리의 테스트를 볼 수 있습니까?
- 27. 레일스에서 자동 테스트를 통해 통합 테스트를 수행하는 방법은 무엇입니까?
- 28. AB 테스트를 실행할 때 Selenium 테스트를 어떻게 처리합니까?
- 29. 단위 테스트를 작성하기 전에 통합 테스트를 작성하는 것이 일반적입니까?
- 30. 웹 테스트를 실행하는 동안로드 테스트를 매개 변수화 하시겠습니까?