[QA] 시스템에 대한 확신을 증진시키는 과정 : SW 테스팅

눈치없어·2025년 6월 1일

테스팅

제품 또는 서비스가 고객의 요구사항을 충족하는지 기능, 성능, 안정성 등 다양한 측면에서 확인하는 활동
또한 품질 데이터를 바탕으로 리스크를 판단하고 결함을 예방함으로써 제품의 신뢰도를 높이는 과정이기도 함

기능적 품질 보장 + 관리적 리스크 대응



테스팅은 모든 팀원의 역할

  • 기획자: 결과물의 완성도를 고려해 제품을 설계
  • 개발자: 설계부터 코드까지 품질을 고려한 개발
  • 테스터: 설계부터 출시 이후까지 전 과정에서 품질에 영향을 미치는 요소를 점검하고 제어

역할은 다르지만, 모든 구성원이 자신의 영역에서 테스팅에 기여해야 제품의 완성도가 높아짐



좋은 소프트웨어

특성설명
기능성요구된 기능을 제공할 수 있는 능력
신뢰성일정 기간 동안 안정적으로 동작할 수 있는 능력
사용성사용자가 쉽게 배우고 사용할 수 있는 정도
효율성자원을 적게 쓰면서 좋은 성능을 내는 정도
유지보수성쉽게 수정하거나 기능을 추가할 수 있는 능력
이식성다른 환경에서도 잘 동작하는 유연성


결함의 원인

시스템이 정상 동작하지 않거나, 동작하지 않아야 할 기능이 동작하는 경우

  • 사용자 관점: 버그(Bug) / 결함(Defect) / 이슈(Issue)
  • 개발자 관점: 코드상 오류 (요구사항 미충족, API 문제, 하드웨어 불일치 등)


소프트웨어 테스트 종류

테스트 목적, 대상, 방법, 발견되는 결함 유형, 주체가 모두 다름


테스트 레벨

📌 단위(Unit) 테스트

  • 가장 작은 단위(함수, 메소드 등)를 테스트
  • 개발자가 직접 수행
  • 테스트 케이스 없이 명세서를 기반으로 진행
  • 빠른 수정 가능, 결함 기록은 남기지 않음

📌 통합(Integration) 테스트

  • 모듈 간의 상호작용을 검증
  • API 호출, DB 연동, 시스템 간 연결 등 포함
  • 모듈 통합 시 발생할 수 있는 문제를 확인

📌 시스템(System) 테스트

  • 전체 시스템이 요구사항대로 작동하는지 확인
  • 실제 사용 환경 또는 유사 환경에서 수행
  • 기능적 + 비기능적 요구사항 모두 포함

📌 인수(Acceptance) 테스트

  • 고객(또는 고객 역할의 테스터)이 수행
  • 제품이 요구사항을 만족하고 실제 배포 가능한지 확인
  • 알파/베타 테스트로 진행되기도 함

테스트 유형

📌 기능(Functional) 테스트

  • 요구사항 문서를 기반으로 기능이 제대로 작동하는지 검증
  • 기획서, 개발 설계서 기반

📌 비기능(Non-functional) 테스트

  • 성능, 보안, 확장성 등 ‘어떻게 동작하는지’에 중점
  • 예시: 부하 테스트, 호환성 테스트 등

📌 스모크(Smoke) 테스트

  • 제품의 핵심 기능이 정상 작동하는지 빠르게 확인
  • 테스트 가능 상태인지 사전 점검

📌 리그레션(Regression) 테스트

  • 결함 수정 후 기존 기능에 문제가 없는지 재확인
  • 재발 방지, 사이드 이펙트 점검

📌 마이그레이션(Migration) 테스트

  • 데이터 이전 후 정상 작동 여부 확인
  • 데이터 손실, 기능 오류, 새 결함 발생 여부 점검



https://brunch.co.kr/@swtestrecipe

profile
dock 사이즈 다르잖아

0개의 댓글