2022. 7. 20. 13:02ㆍ개발 관련 책 읽기/테스트 주도 개발
목표 : 테스트에 대해서 이해하자
테스트란?
테스트는 어떤 동작을 실행했을 때, 기대했던 형태로 동작해서 결괏값이 나오는지, 원하는 동작을 연계해서 수행하는지 등의 확인하는 과정을 말합니다.
테스트를 해야 하는 이유
1. 개발 시간을 줄여준다
-> 테스트 코드를 통해 테스트를 진행 함으로써 동작에 대한 안정성을 보장하고, 문제점에 대해 빠르게 파악하고 대응할 수 있습니다.
2. 빠른 시간 내의 코드 동작 방식과 결과를 확인할 수 있다
3. 리팩토링을 안심하고 할 수 있다
그 외 테스트를 해야 하는 이유는 무궁무진하다..
좋은 테스트를 하기 위한 5가지 방법(FIRST)
1. FAST : 테스트는 빠르게 동작하여 자주 돌릴 수 있어야 한다
2. Independent : 각각의 테스트는 독립적이며 서로 의존해서는 안된다.
3. Repeatable : 어느 환경에서도 반복 가능해야 한다.
4. Self-Validating : 테스트는 성공 또는 실패로 bool 값으로 결과를 내어 자체적으로 검증되어야 한다
5. Timely : 테스트는 적시에 즉, 테스트하려는 실제 코드를 구현하기 직전에 구현해야 한다(테스트 코드 먼저 작성)
즉, 좋은 테스트를 하기 위해서는 빠르게 독립적으로 어느 환경에서든 실행이 가능하고 검증할 수 있어야 한다는 것이다.
테스트 범위에 따른 분류
- 통합 테스트 : 여러 작업 단위가 연계된 워크플로우를 테스트 하기 위한 수단(객체 간, 서비스 간, 시스템 간...)
- 기능 테스트 : 공개된 API의 가장 바깥족에 해당하는 코드 검사(Controller 호출, Security, Http..)
- 부하 테스트 : 주어진 단위 시간 동안 애플리케이션이 얼마나 많은 요청을 처리할 수 있는지 검사
- 인수 테스트 : 고객 또는 대리인이 정의된 모든 목적에 부합되는지 확인해보고자 하는 검사
이처럼 목적에 맞게 여러가지 테스트 방법이 나오게 된다.
이러한 테스트 코드읮 필요성과 중요성을 깨닫고 TDD에 대해서 알아보도록 하자!
참고자료
'개발 관련 책 읽기 > 테스트 주도 개발' 카테고리의 다른 글
Chap 02. TDD 시작 (0) | 2022.07.20 |
---|---|
테스트 주도 개발 시작하기 (0) | 2022.07.04 |