소프트웨어 테스트는 소프트웨어 시스템의 동작을 평가하고, 소프트웨어의 결함을 찾아내며, 예상치 못한 동작을 탐지하기 위해 실행하는 활동.
이를 통해 소프트웨어의 신뢰성, 정확성, 완정성, 안정성 등의 품질 요소를 평가한다.
테스트 유형 | 목적 | 주요 사용 도구 | 수행주체 | 테스트 실행 시점 |
---|---|---|---|---|
단위 테스트 | 소프트웨어 코드의 최소 단위인 함수나 메서드를 테스트 | junit, kotest, mockito, wiremock | 개발자 | 상시 |
통합 테스트 | 소프트웨어의 여러 모듈을 결합하여 테스트 | 단위 테스트에서 사용한 도구 + RestAssured, PostMan, IntelliJ HTTP client | 개발자 | 상시 |
E2E 테스트 | 소프트웨어의 전체 기능을 테스트 | Selenium, Playwright | 개발자 또는 QA 엔지니어 | 개발 후반 단계 |
QA 테스트 | 소프트웨어의 품질을 보장하기 위해 수행하는 테스트 | Excel, TestLink | QA 엔지니어 | 배포 전 단계 |
성능 테스트 | 소프트웨어의 성능을 테스트 | nGrinder, locust, Jmeter | 주로 개발자 | 배포 전 단계 |
아키텍처 테스트 | 시스템의 아키텍처가 올바르게 구현되었는지 테스트 | ArchUnit | 아키텍트 또는 개발자 | 개발 초기 단계 |
설계된 모듈이 정확히 구현되었는지 확인하고,
하나의 소프트웨어 구성요소나 구성요소의 집합이 요구사항에 맞는지 확인하는 테스팅
현업에서는 단위와 통합 사이 중간쯤 위치하는 테스트를 많이 작성한다.