소소한 사건/끄적끄적
[Chapter 2] 소프트웨어 테스트의 종류와 실전 적용 사례
GoLook
2025. 5. 27. 14:36
728x90
728x90
소프트웨어 테스트 기법 | Chapter 2 - 테스트의 종류 및 실전 적용 사례
작성일: 2025년 5월 27일
1. 단위 테스트(Unit Testing)
단위 테스트는 소프트웨어의 가장 작은 테스트 가능한 단위, 보통 하나의 함수나 메서드 단위로 수행됩니다. 개발자에 의해 코드 작성 시점에서 이루어지며, TDD(Test-Driven Development)와 밀접한 관계가 있습니다.
- 목적: 로직의 정확성 확인
- 도구: JUnit, NUnit, Google Test, pytest 등
- 실전 예: 쇼핑몰 결제 시스템의 할인 로직 검증, 금융앱의 이자 계산 공식 확인
2. 통합 테스트(Integration Testing)
모듈 단위로 작성된 코드들이 실제로 함께 작동할 수 있는지를 확인하는 테스트입니다. API 호출, DB 연결, 외부 서비스 통신 등을 점검합니다.
- 전략: 빅뱅 방식, 점진적 통합(상향식/하향식)
- 도구: Postman, SoapUI, RestAssured
- 실전 예: 회원가입 시 이메일 인증 API와 DB 저장이 올바르게 연동되는지 테스트
3. 시스템 테스트(System Testing)
전체 시스템을 대상으로 기능, 성능, 보안, UI 등 모든 요소가 요구사항에 부합하는지를 종합적으로 검토하는 단계입니다. QA팀이 주도합니다.
- 종류: 기능 테스트, 보안 테스트, 성능 테스트, UI/UX 테스트
- 도구: Selenium, JMeter, Appium, OWASP ZAP
- 실전 예: 쇼핑몰 사이트 전체에서 로그인 → 상품 검색 → 결제 → 주문 완료까지 전체 플로우 시나리오 수행
4. 회귀 테스트(Regression Testing)
새로운 기능이 추가되거나 버그가 수정된 후 기존 기능이 정상적으로 작동하는지를 재검증하는 테스트입니다.
- 적용 시점: 모든 릴리즈 전
- 도구: Jenkins, Selenium, Cypress
- 실전 예: 결제 수단에 '카카오페이'를 추가한 뒤 기존 '신용카드' 결제도 이상 없이 작동하는지 확인
5. 사용자 수용 테스트(UAT: User Acceptance Testing)
실제 사용자가 직접 참여해 시스템이 업무 목적에 부합하는지를 확인하는 테스트입니다. 보통 기업 고객이 주도합니다.
- 실행자: 실제 사용자가 참여
- 장소: 고객사 내부 혹은 베타 테스트 환경
- 실전 예: 병원 정보 시스템 도입 전, 병원 실무자들이 직접 사용하며 문제점을 피드백
6. 테스트 자동화(Automation Testing)
반복적이고 시간 소모적인 테스트를 자동화하여 효율성을 높입니다. 특히 단위 테스트, 회귀 테스트, UI 테스트 자동화에 많이 활용됩니다.
- 프레임워크: Selenium, Cypress, TestCafe, Robot Framework
- CI/CD 연계: Jenkins, GitHub Actions, GitLab CI와 통합 가능
- 실전 예: 매일 새벽마다 전체 테스트 스크립트를 자동 실행해 전날 커밋의 안정성 검증
7. 테스트 종류별 비교 요약
테스트 종류 | 주체 | 범위 | 도구 |
---|---|---|---|
단위 테스트 | 개발자 | 개별 함수 또는 모듈 | JUnit, pytest |
통합 테스트 | QA, 개발자 | 모듈 간 연동 | Postman, RestAssured |
시스템 테스트 | QA | 전체 기능 | Selenium, JMeter |
회귀 테스트 | QA, 자동화 시스템 | 전체 기능 | Jenkins, Selenium |
UAT | 최종 사용자 | 업무 기능 | 수기 테스트 |
728x90
728x90