테스트 코드 소개
Red Green Cycle
- Red: 항상 실패하는 테스트를 먼저 작성하고
- Green: 테스트가 통과하는 프로덕션 코드를 작성하고
- Refactor: 테스트가 통과하면 프로덕션 코드를 리팩토링
단위 테스트?
단위 테스트는 TDD의 첫 번째 단계인 기능 단위의 테스트 코드를 작성 하는 것
TDD와 달리 테스트 코드를 꼭 먼저 작성해야 하는 것도 아니고, 리팩토링도 포함되지 않습니다.
순수하게 테스트 코드만 작서하는 것을 이야기 합니다.
테스트 코드는 왜 작성해야 할까?
- 단위 테스트는 개발단계 초기에 문제를 발견하게 도와줍니다.
- 단위 테스트는 개발자가 나중에 코드를 리팩토링하거나 라이브러리 업그레이드 등에서 기존 기능이 올바르게 작동하는지 확인할 수 있습니다. (ex. 회귀 테스트)
- 단위 테스트는 기능에 대한 불확실성을 감소시킬 수 있습니다.
- 단위 테스트는 시스템에 대한 실제 문서를 제공합니다. 즉, 단위 테스트 자체가 문서로 사용할 수 있습니다.
테스트 코드를 작성하면 더는 사람이 눈으로 검증하지 않게 자동검증이 가능합니다.
그리고 개발자가 만든 기능을 안전하게 보호 해줍니다.
예를 들어 B라는 기능이 추가되어 테스트합니다.
B 기능이 잘 되어 오픈했더니 기존에 잘 되던 A 기능에 문제가 생긴 것을 발견합니다.
이런 문제는 규모가 큰 서비스에서는 빈번하게 발생하는 일입니다.
하나의 기능을 추가할 때마다 너무나 많은 자원이 들기 때문에 서비스의 모든 기능을 테스트 할 수는 없습니다.
이렇게 새로운 기능이 추가될 때, 기존 기능이 잘 작동되는 것을 보장해 주는 것이 테스트 코드입니다.
A 라는 기존 기능이 잘 작동되는 것을 보장해주는 것이 테스트 코드입니다.
A 라는 기존 기능에 기본 기능을 비롯해 여러 경우를 모두 테스트 코드로 구현해 놓았다면
테스트 코드를 수행만 하면 문제를 조기에 찾을 수 있습니다.
대표적인 테스트 코드 작성 프레임워크 (xUnit)
- JUnit - Java
- DBUnit - DB
- CppUnit - C++
- NUnit - .net
'개발 Tip' 카테고리의 다른 글
개발용어 모음집 (0) | 2023.03.05 |
---|---|
[Tip] 패키지 구조는 어떻게 짜는 게 맞을까? (0) | 2023.01.15 |