1. 테스트 코드 작성의 장단점
장점
- 예상 동작과 실제 동작을 비교하여 빠르고 정확한 테스트가 가능하기 때문에 초기 개발의 디버깅이 쉬워짐
- 어플리케이션이 확장, 리팩터링 등 변경되더라도 올바르게 작동하는지 확인 할 수 있음
- 단위 테스트 자체를 어플리케이션에 대한 문서로 사용할 수 있음
단점
- 테스트 코드까지 작성해야하기 때문에 개발시간이 오래걸림
- 테스트코드 유지보수 비용 발생
2. 테스트 코드 범위에 따른 분류
1)단위 테스트(Unit Test)
- 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트
강점
- 어디에서 문제가 발생했는지 빨리 파악할 수 있어 디버깅 시간을 단축시켜줌
- 일부 의존 대상은 스텁이나 모의객체 등을 이용해서 대역으로 테스트함
2) 통합 테스트(Intergaration Test)
- 단위 테스트가 끝나고 그 하나하나를 결합해 가며 테스트 하는 방법
- 단위 테스트와 달리 외부 라이브러리 사용한 경우 등 개발자가 변경할 수 없는 부분까지 묶어 검증할 때 사용
강점
- 시스템 내부 구성 요소에 대한 테스트 가능
약점
- 많은 코드를 테스트하기 때문에 신뢰성이 떨어질 수 있고 어디에서 문제가 발생했는지 찾기 어려움
3) 기능 테스트(Fuctional Test) == E2E(End To End) 테스트
- 사용자 입장에서 사용자가 사용하는 상황을 가정하고 테스트하는 것
- 웹이나 어플 등에서 GUI를 통해 시나리오 , 기능 테스트 등을 수행
- 사용자에게 직접적으로 노출되는 부분 점검
- 수행 시 시스템을 구동하고 사용하는데 필요한 모든 구성 요소가 필요(웹 서버, 데이터베이스, 웹브라우저 등)
'Spring > Test' 카테고리의 다른 글
테스트 주도 개발 시작하기 - TDD 시작, TDD 암호 검사기 1 (0) | 2022.11.27 |
---|---|
테스트 주도 개발 시작하기 - TDD 시작, TDD란 (0) | 2022.11.27 |
테스트 코드와 제이유닛(JUnit) (0) | 2022.11.16 |
Mock object를 이용한 단위 테스트 (0) | 2022.11.15 |
TDD (Test-Driven Development) 테스트 주도 개발 (0) | 2022.11.15 |