본문 바로가기
First step/web depeloper step1

[인턴준비]TDD(Test Driven Development) 방법론 - '테스트 주도 개발

by Joshua21 2021. 12. 29.

TDD란 Test Driven Development의 약자로 ‘테스트 주도 개발’이라고 한다.

테스트 주도 개발(TDD)은 설계 이후 코드 개발 및 테스트케이스를 작성하는 기존의 개발 프로세스[그림1]와 다르게 테스트케이스를 작성 한 후 실제 코드를 개발하여 리펙토링하는 절차(그림2)를 따른다. 이러한 이유로 TDD를 Test First Development라고도 한다.

개발이 이루어진 다음 그것이 계획대로 잘 완성되었는지 테스트 케이스를 작성하고 테스트하는 타 방식과는 달리, 테스트 케이스를 먼저 작성한 다음 테스트 케이스에 맞추어 실제 개발 단계로 이행하는 개발방법론을 말한다. 묵시적으로 잠재된 상황을 가정하지 않고 테스트 케이스만을 완벽하게 수행하는 것을 목표로 하기 때문에 매우 빠르게 목표를 완료할 수 있다.

TDD는 작가가 책을 쓰는 과정과 유사하다. 책을 쓸 때는 목차를 처음 구성한다. 이후 각 목차에 맞는 내용을 구상하여 초안을 작성하고 고쳐쓰기를 반복한다. 이 과정을 TDD에 비유하면 목차구성은 “테스트코드 작성”, 초안작성은 “코드개발”, 고쳐쓰기는 “코드수정”에 해당한다.

Jest 자바스크립트용 단위 테스트 프레임워크. Facebook에서 만들었다.

 

TDD 개발주기

<Red>단계에서는 실패하는 테스트 코드를 먼저 작성한다.

<Green>단계에서는 테스트 코드를 성공시키기 위한 실제 코드를 작성한다.

<Yellow>단계에서는 중복 코드 제거, 일반화 등의 리팩토링을 수행한다.

중요한 것은 실패하는 테스트 코드를 작성할 때까지 실제 코드를 작성하지 않는 것과, 실패하는 테스트를 통과할 정도의 최소 실제 코드를 작성해야 하는 것이다. 이를 통해, 실제 코드에 대해 기대되는 바를 보다 명확하게 정의함으로써 불필요한 설계를 피할 수 있고, 정확한 요구 사항에 집중할 수 있다.

출처:https://wooaoe.tistory.com/33

 

TDD 세부 프로세스

‘단위 테스트 작성 → 단위 테스트 실행 → 운영 코드 작성 → 단위 테스트 실행 → 설계 개선(리팩토링) → 단위 테스트 → … ‘ 실행 반복한다.

출처 : fast campus

'First step > web depeloper step1' 카테고리의 다른 글

[인턴 1일차]좌충우돌 용어정리  (0) 2021.12.29
MQTT(Message Queueing Telemetry Transport) 란?  (0) 2021.12.29
[인턴준비]POS 시스템  (0) 2021.12.29
CS 상식  (0) 2021.12.27
Docker (명령어 모음)  (0) 2021.12.26