소소한 사건/끄적끄적

[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 최종 사용자 업무 기능 수기 테스트

👉 다음 글인 Chapter 3: 테스트 설계 기법 - 명세 기반, 구조 기반, 경험 기반도 곧 공개됩니다. 이론적인 테스트 설계 전략과 실제 작성법까지 함께 소개합니다.

728x90
728x90