ISTQB) 1.1 테스트의 목적

박은경·2025년 2월 14일

소프트웨어 테스팅은 단순히 "버그를 찾는 것"이 아니라, 소프트웨어가 올바르게 동작하는지 확인하고, 품질을 보장하며, 비즈니스 리스크를 줄이는 과정이다.
테스팅의 목적은 프로젝트의 정황(요구사항, 개발 방식, 리스크 수준 등)에 따라 달라질 수 있지만, 일반적으로 다음과 같은 핵심 목적을 가진다.

1. 요구사항, 사용자 스토리, 설계, 소스 코드 등 작업 산출물 평가
➡ 소프트웨어가 올바르게 개발되고 있는지 검토하는 과정

  • 요구사항 & 사용자 스토리 → 사용자의 기대와 비즈니스 목표를 충족하는지 확인
  • 설계 & 소스 코드 → 개발이 올바르게 진행되었는지 검토하고 개선점 찾기

💡 예제:
1. 개발팀이 "비밀번호 복잡성 규칙"을 추가했지만, 요구사항 문서에는 해당 내용이 없음 → 요구사항 검토 필요
2. 코드 리뷰를 통해 "불필요한 중복 코드" 발견 → 개선점 제안

2. 장애 유발 및 결함(Bug) 식별
➡ 소프트웨어의 오류(Bug)를 사전에 찾아내서 장애(Defect) 발생을 예방하는 것

  • 예상치 못한 동작(버그)을 발견하고, 개선해야 할 부분을 식별
  • 단순한 기능 오류뿐만 아니라, 성능 문제, 보안 취약점 등도 포함

💡 예제:
1. 사용자가 회원가입할 때 "아이디는 영문+숫자만 가능"이라는 규칙이 있는데, 특수문자도 입력됨 → 결함 발견
2. 로그인 버튼을 클릭했을 때 응답 시간이 10초 이상 지연 → 성능 이슈

3. 테스트 대상에 필요한 커버리지 보장
➡ 테스트 커버리지(Test Coverage)란? 소프트웨어의 얼마나 많은 부분을 테스트했는지를 나타내는 지표

  • 코드 커버리지: 코드의 모든 분기(조건문 등)가 테스트되었는가?
  • 기능 커버리지: 사용자의 모든 주요 기능이 테스트되었는가?
  • 요구사항 커버리지: 모든 요구사항이 테스트되었는가?

💡 예제:
1. "비밀번호 찾기" 기능이 있지만, 테스트 케이스에서 빠져 있음 → 기능 커버리지가 낮음
2. "구매 취소" 기능에서 카드 결제는 테스트했지만, 카카오페이는 테스트 안 함 → 테스트 범위 부족

4. 소프트웨어 품질 부족으로 인한 리스크 수준 완화
➡ 소프트웨어 품질이 낮아지면, 비즈니스적으로 큰 손실이 발생할 수 있음

  • 오류로 인해 고객 불만 증가 → 기업 이미지 하락
  • 보안 취약점 발생 → 개인정보 유출 & 법적 문제
  • 성능 문제 발생 → 서비스 장애 & 매출 손실

💡 예제:
1. 은행 앱에서 이체 금액을 입력하지 않아도 결제가 되는 버그 발견 → 심각한 보안 리스크
2. 온라인 쇼핑몰에서 "주문 버튼"을 눌러도 반응 없음 → 매출 손실 위험

5. 요구사항 충족 여부를 확인하는 베리피케이션(Verification)
➡ 소프트웨어가 "올바르게 만들어졌는지"를 확인하는 과정 (주로 개발 단계에서 진행)

  • 요구사항을 정확히 구현했는가?
  • 설계 문서 & 코드가 일관성 있게 작성되었는가?

💡 예제:
1. "한 개의 상품만 구매할 수 있어야 한다"는 요구사항이 있었지만, 현재 코드에서는 여러 개 구매 가능 → 요구사항 불일치
2. 로그인 기능 구현 후, "소셜 로그인"이 요구사항에 포함되어 있는지 확인

6. 계약, 법률, 규제 요구사항 준수 여부를 확인하는 베리피케이션(Verification)
➡ 소프트웨어가 법적, 규제적 요구사항을 준수하는지 확인하는 과정

  • 특히 금융, 의료, 보안 관련 소프트웨어는 규제 준수가 필수
  • 개인정보 보호법, GDPR, PCI-DSS(결제 보안 기준) 등 준수 여부 확인

💡 예제:
1. 금융 서비스에서 2단계 인증(OTP)이 적용되지 않음 → 보안 규정 위반 가능성
2. 사용자의 이메일을 수집하지만, 동의 절차가 없음 → 개인정보 보호법 위반 가능성

7. 이해관계자가 정보에 입각한 결정을 내리도록 지원
➡ 테스트 결과를 기반으로 제품 출시 여부, 추가 개발 필요성 등을 결정할 수 있도록 지원

  • 테스팅 결과를 정리하여 제품이 출시할 준비가 되었는지 판단
  • 특정 기능을 수정해야 할지, 유지해야 할지 등의 의사결정을 돕는 역할

💡 예제:
1. 테스팅 결과, 결함이 많고 안정성이 부족 → 제품 출시 연기 결정
2. 주요 기능 테스트가 완료되고 안정적 → 제품 출시 결정

8. 테스트 대상의 품질에 대한 자신감 획득
➡ 소프트웨어 품질이 충분히 검증되었음을 확인하고, 팀과 이해관계자가 신뢰할 수 있도록 보장

  • 철저한 테스트를 통해 제품이 문제없이 동작하는지 확인
  • 개발팀, QA, 고객이 소프트웨어의 안정성을 신뢰할 수 있도록 지원

💡 예제:
"모든 주요 기능 테스트 완료 + 결함 없음" → 팀과 고객이 안심하고 제품을 사용할 수 있음

9. 테스트 대상의 완성 여부와 이해관계자의 기대 충족 여부를 확인하는 밸리데이션(Validation)
➡ 소프트웨어가 "사용자의 기대에 맞게 만들어졌는지"를 확인하는 과정 (실제 사용 관점에서 검증)

  • 사용자가 기대한 대로 동작하는가?
  • 사용자 경험(UX)이 기대 수준을 충족하는가?

💡 예제:
1. 쇼핑몰에서 "상품 검색" 기능을 테스트했는데, 검색 결과가 너무 느림 → 사용자의 기대 충족 X
2. SNS 앱에서 "친구 추가" 기능이 있지만, 버튼이 너무 작아서 불편함 → UX 개선 필요

profile
생각을 하자💡

0개의 댓글