2023. 4. 26. 16:09ㆍTools
목차 |
1. TDD란? |
2. TDD의 주요 단계 2.1 테스트 코드 작성 단계(Red) 2.2 코드 작성 및 개선 단계(Green) 2.3 리팩터링 단계(Refactor) |
3. 테스트 코드의 작성 방법 |
1. TDD란?
TDD(Test-Driven-Development)란 테스트 주도 개발이라는 의미를 가지고 있다.
개발자가 작성한 코드가 기대한 대로 동작하는지를 검증하는 테스트를 작성하고,
이를 기반으로하여 실제 코드를 작성하는 방법이다.
TDD를 사용하는 이유
TDD를 사용하면 테스트를 통해서 코드 품질을 향상시키고, 버그를 사전에 발견하여 비용을 줄일 수 있다는 점이 있다.
TDD를 적용하면 코드를 작성하는 시간이 늘어날 수는 있지만, 전체적으로는 개발 시간을 단축시키는 효과를 가져올 수 있다.
( 오류 수정과 같은 작업의 시간이 줄어든다.)
또한 테스트 코드를 작성함으로써 협업시에 다른 팀원들이 해당 코드를 이해하는데에 더욱 수월해진다.
마지막으로 코드 변경 사항을 검증하기 위해 수작업으로 테스트하는 것보다 자동화된 테스트를 사용하면,
더욱 안정적인 코드를 작성할 수 있다.
정리해보자면, TDD는 다음과 같은 이점이 있다.
- 코드의 품질을 향상시킨다.
- 버그를 사전에 발견하여 총 비용을 줄일 수 있다.
- 개발 시간을 단축 시킬 수 있다.
- 다른 사람들로 하여금 코드의 이해를 쉽게 할 수 있다.
- 자동화된 코드 테스트를 통해, 안정적인 코드를 작성할 수 있다.
2. TDD의 주요 단계
TDD는 크게 세 가지 단계로 구성된다.
2.1 테스트 코드 작성 단계(Red)
어떤 동작을 수행할 지 정의하고, 이를 검증하는 테스트 코드를 작성한다.
이 때, 해당 코드가 실패하도록 만든다.
2.2 코드 작성 및 개선 단계(Green)
테스트 코드를 작성한 후에, 해당 동작을 수행하는 코드를 작성한다. 단, 가장 간단하게 작성한다.
모든 가능한 케이스에 대해서 코드를 작성한다.
2.3 리팩토링 단계(Refactor)
코드가 변경될 때마다, 이를 리팩토링하여 코드의 구조를 개선한다.
이때, 기존의 테스트 케이스가 모두 통과되어야 한다.
위의 주요 단계를 적용하여 코드를 작성하게 되면 다음과 같은 흐름을 따르게 된다.
3. 테스트 코드의 작성 방법
테스트 코드는 실제 코드의 동작을 검증하는 코드이며, 예상한 결과가 실제로 나오는지 확인한다.
테스트 코드를 통해서 버그를 사전에 발견할 수 있고, 코드 수정 시 문제가 생길 가능성을 줄일 수 있다.
TDD는 세 가지 주요 원칙을 따른다.
- 실패하는 테스트부터 작성한다
- 실패하는 테스트 케이스를 작성하고, 이를 통과시키기 위한 코드를 작성한다.
- 불필요한 코드 작성을 줄이고, 보다 효율적으로 코드를 작성할 수 있다.
- 충분한 테스트 케이스를 작성한다.
- 모든 가능한 케이스에 대해 테스트 케이스를 작성하고, 코드의 모든 분기점을 커버해야한다.
- 이를 통해서 코드의 안정성을 보장할 수 있다.
- 가장 단순한 해결책을 찾는다.
- 가능한 단순하고 쉬운방법으로 해결한다.
- 이를 통해서 코드의 복잡성을 줄이고 유지보수성을 늘려준다.
위의 세가지 원칙을 지켜가며 TDD를 적용하면, 안정적이고 유지보수성이 높은 코드를 작성할 수 있다.
어썰션과 테스트 더블
어썰션(Assertion)이란 테스트 코드에서 특정 값이나 조건이 참인지 검사하는 것을 말한다.
(Jest의 expect 메서드)
테스트 더블(Test Double)은 실제 객체를 대체하여 테스트하는 객체이다.
(Jest의 Mock, Fake 등)
'Tools' 카테고리의 다른 글
Web3 라이브러리 (0) | 2023.05.26 |
---|