TDD(Test-driven development) 테스트 주도 개발
- 단위(Unit) 테스트
- 통합(Integration) 테스트
- 인수(UI) 테스트
TDD 개발의 장점
- 디버깅 시간을 단축할 수 있다.
모든 모듈의 유닛 테스트 코드가 있기 때문에 손쉽게 오류를 찾을 수 있다. - 작성한 코드가 가지는 불안정성을 개선하여 생산성을 높일 수 있다.
코드가 내 손을 떠나 사용자에게 도달하기 전에 문제가 없는지 먼저 진단 받을 수 있다.
그렇기 때문에 코드가 지닌 불안정성과 불확실성을 지속적으로 해소해준다. - 재설계 시간을 단축할 수 있다.
테스트 시나리오를 작성하려면 먼저 기능에 대한 포괄적인 이해가 필요하기 때문에
개발자가 지금 무엇을 해야하는지 분명히 이해하고 개발을 시작하게 된다. - 추가 구현이 용이하다.
TDD의 경우 자동화된 유닛 테스팅을 전제하므로 테스트 기간을 획기적으로 단축시킬 수 있다. - 각 테스트가 요구사항을 직접 식별하므로 코드와 요구사항이 긴밀하게 연결된다.
복잡한 기능 정의서와 같은 문서를 볼 필요 없이 테스트 코드와 함께 있는
Test Case를 통해서 Method에 대한 기능 정의를 이해할 수 있다.
TDD 단점
- 시간이 많이 소요된다.
실패되는 테스트 코드를 1차원적으로 수정하면서 시작하기 때문에 시간이 많이 소요된다.
그렇기 때문에 무조건 TDD를 적용하는 것은 옳지 않다.
TDD를 하는 이유
- 올바르게 작동
목표를 달성하는지를 확인하는 것이고, 이는 올바르게 작동하는지를 확인하는 것이다. - 깔끔한 코드
사용함에 있어 좀 더 사용하기 좋은 코드(인터페이스 중심 관점)를 만드는 것이다.
올바르게 작동하는 깔끔한 코드
다시 말해 목표한 대로 작동하는 사용하기 좋은 코드를 만드는 것이 TDD의 목표이다.
리팩토링
TDD는 어떻게 하는 것인가?
- 올바르게 작동하는 코드를 만든 후
- 깔끔하게 작동하는 코드로 리팩토링 한다.
리팩토링이란? 작동하는 결과는 그대로 두고 내부 구현을 수정하는 것.
암호 검사기 규칙
- 0부터 9사이의 숫자를 포함
- 길이 8글자 이상
- 대문자 포함
- 규칙 1개 이하 약함
- 규칙 2개 충족 보통
- 규칙 3개 충족 강함
경우의 수 생각하기
규칙이 3가지니까 한가지 규칙당 2가지의 경우가 나오므로 각각을 곱하면 총 8가지의 규칙이 나옴
2진수의 경우의 수와 유사하다고 보면 된다. 이러한 경우의 수가 테스트 케이스의 수라고 생각하면 된다.
JUnit?
JAVA언어로 테스트 개발을 할 수 있는 프레임워크이다.
'Back-End' 카테고리의 다른 글
Getter와 Setter (0) | 2024.08.21 |
---|---|
접근제한자 종류 (0) | 2024.08.20 |
자바에서 전역변수와 멤버변수의 차이점 (0) | 2024.07.29 |
자바 환경변수를 설정하는 이유 (0) | 2024.07.15 |