Chap 01. TDD 준비

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