"의도하지 않은 결함 수가 많아지면 개발자는 변경을 주저한다"
테스트 주도 개발 (TDD) 란?
Test Driven Development 의 약자로 테스트 주도 개발이란는 뜻을 가지는 소프트웨어 개발 방법론 중 하나이다.
작성한 코드의 검증이나 수정(리팩토링)시 기능이 의도한대로 동작하는지 체크할 때 사용
검증 절차를 통한 안정성을 높여 준다.
테스트 종류
구현한 코드가 정상적으로 작동하는지 확인하기 위해선 테스트가 필요한데, 테스트를 하고자 하는 범위(상황)에 따라 다양한 테스트 방법이 등장했다.
- UnitTest (단위테스트)
- EndtoEnd Test (종단 테스트)
- Integration Test (통합 테스트)
Unit Test
- 함수 or Class 등 코드의 작은 부분을 테스트 하는 방식
- ex. 함수에 다양한 입력 값 넣어보며 결과가 의도대로 나오는지 확인
E2E Test
- E2E 테스트는 End2End의 약자로 실제 유저가 프로그램을 사용하는 상황을 가정하여 테스트
- 기획한 시나리오 대로 동작하는지, 비즈니스 적으로 의도하지 못한 시나리오는 없는 지 등을 확인하며 작성
- ex) 실제 유저 A가 되어 시나리오대로 클릭해보며, 정상적으로 되는지 확인
Integration Test
- Integration Test는 UnitTest 단위에서 해결 할 수 없는 외부 시스템 (DB 등) 을 결합하여 테스트하는 방식
- 전체 시스템이 정상적으로 잘 작동하는지 체크
- 비교적으로 많은 부분의 포인트를 동시에 확인하기 때문에 에러 발생시 검출이 쉽지 않음
- 그래서 Unit Test에 좀더 초점을 두어 진행하는 것이 바람직
ex) 유저 A로 시나리오대로 진행시 다른 시스템들의 상호작용이 정상적으로 잘 이루어 지는지 확인
'소프트웨어 개발자 > SW 개발론' 카테고리의 다른 글
[SW 개발] 소프트웨어 버저닝 방법 (0) | 2023.04.04 |
---|---|
[클린코드] SOLID 객체 지향 설계 원칙 (0) | 2022.09.12 |
[SW 개발] MSA vs 모놀리식 (0) | 2022.08.24 |
[SW 개발] Agile, Scrum, Sprint, Waterfall (0) | 2022.08.22 |
[SW 개발] PoC, Prototype, Pilot, MVP 란? (0) | 2022.08.22 |