개요
What is TDD?
Why use TDD?
출처 : https://www.ibm.com/garage/method/practices/code/practice_test_driven_development/
TDD는 extreme programming에서 기인한 방법으로, 팀과 함께 코드가 특정 동작이나 사례에서 예상대로 동작하도록 하는 것입니다. 첫번째 시도에서 최적 해, optimum solution을 찾는 것이 아니라 코드와 테스트가 반복적으로 함께 built 구축됩니다. 개발 팀은 TDD를 통해 test coverage를 보장하고 코드 품질을 향상시키며, delivery pipeline의 기초를 다지고 지속적인 delivery를 지원합니다.
test coverage vs code coverage test Coverage는 S/W test에서 얼마나 많은 코드가 테스트되었는지 측정하는 지표입니다. Test Suite의 실행을 통해 어떤 부분이 테스트되었는지 확인합니다. code coverage는 실행된 코드의 평가로, test에 의하여 실행된 라인의 수 등 양적 측정입니다. test coverage는 test case가 전체 기능 요구 사항을 포함하는지 여부를 평가하기 위해 사용됩니다. 핵심목표는 모두 응용 프로그램 코드의 품질 평가입니다. 출처 : https://testsigma.com/blog/code-coverage-vs-test-coverage/ Dynamic Code Coverage Dynamic Code Coverage(동적 코드 커버리지)는 팀이 S/W 코드의 untested portions을 식별가능하도록 합니다. 이 방법은 더 효과적인 S/W testing입니다. Effective software testing은 S/W 품질의 기본요소이며, DCC를 사용함으로서 팀은 즉시 코드 품질을 향상시킬 수 있습니다. DCC는 시장의 다른 테스트 도구와 근본적으로 다릅니다. recompile이 필요하지 않고 상세한 coverage measurement 제공 개발, 테스트 및 production enviroments 운영 환경에서는 프로세스의 모든 함수를 측정하며, 단일 모듈뿐만 아니라 제3자(3rd party) 코드도 측정 출처 : redhatTDD의 기본 concept은 모든 production code가 testcase에 대한 response로 작성되어야 한다는 것입니다. Uncle Bob라고 알려진, Robert C. Martin은 아래의 세가지 법칙으로 TDD를 설명합니다.
fail할 만큼만 단위 검정을 작성합니다
실패한 unit test를 통과할 수 있을 만큼만 production code를 작성합니다