CS/프로그래밍

TDD

오류확인자 2023. 11. 3. 14:30

1. TDD란?

TDD(Test-Driven Development, 테스트주도개발)는 소프트웨어 개발 프로세스에서 테스트 케이스를 먼저 작성하고, 이 테스트를 통과하는 코드를 나중에 작성하는 방법론이다. 즉, 실제 코드를 작성하기 전에 요구사항을 테스트 케이스로 먼저 명세화하고, 이 테스트를 만족시키는 방향으로 코드를 개발해 나가는 과정을 말한다.

 

2. TDD의 기본순서

테스트 작성 : 먼저 실패할 테스트 케이스를 작성한다. 이때 테스트는 소프트웨어가 충족해야 할 요구사항이나 기능을 기반으로 한다.

코드 작성 : 작성한 테스트를 통과하기 위해 최소한의 코드를 작성한다.

리팩토링 : 코드가 테스트를 통과하면, 코드의 구조를 개선하거나 가독성을 높이는 등의 리팩토링을 한다.

 

3. TDD의 장점

결함 감소 : 개발 초기부터 테스트를 수행하기 때문에 버그를 조기에 발견하여 수정할 수 있다.

설계 개선 : TDD는 좋은 설계를 유도하며, 더 모듈화된, 유지보수가 쉬운 코드를 작성하도록 돕는다.

리팩토링 용이 : 이미 테스트 케이스가 구축되어 있기 때문에 코드의 리팩토링이 용이하다. 리팩토링 후에도 테스트를 수행하여 기능의 안정성을 보장할 수 있다.

문서화 역할 : 테스트 케이스는 어떤 기능이 어떻게 작동해야 하는지에 대한 명세로도 활용될 수 있다.

 

4. TDD의 단점

시간 소요 : 테스트 케이스를 먼저 작성해야 하므로, 초기 개발 속도가 느릴 수 있다.

학습 곡선 : TDD 방식을 익히는 데 시간과 노력이 필요하며, 잘못 적용할 경우 비효율적일 수 있다.

복잡한 시나리오 : 매우 복잡하고나 예측이 불가능한 시나리오의 경우 테스트 케이스를 작성이 어려울 수 있다.

'CS > 프로그래밍' 카테고리의 다른 글

this  (2) 2023.12.07
Flex 속성(CSS)  (0) 2023.12.01
원시 값과 참조 값  (0) 2023.11.03
웹팩과 바벨  (0) 2023.11.02
use strict, undeclared  (0) 2023.11.01