[QA] Positive / Negative / Edge Case 개념 정리

2025. 3. 24. 12:56·Minding's Programming/Knowledge
728x90
반응형

QA 엔지니어 면접을 진행하는 도중 Positive Case, Negative Case, Edge Case에 대한 질문을 받았는데, 개념이 명확히 잡혀있지 않아 답변을 제대로 하지 못했다. TC를 작성하는 등 전체적인 테스트 설계에 핵심이 되는 개념인 만큼, 제대로 정리할 필요가 있다고 느꼈다.

 

Positive Case

정상적인 입력/상황에서 기능이 기대한 대로 동작하는 지에 대해 검증하는 테스트 케이스

  • 목적: 시스템이 정상적인 사용 흐름에서 정확히 동작하는지 확인
  • 입력값: 유효하며 일반적인 값 사용
  • ex) 로그인 화면에서 올바른 ID, PW 입력 후 로그인 성공

Positive Case는 쉽게 말해서 "정상적으로 잘 사용했을 때, 잘 동작하는가?"를 보는 테스트 케이스다. 대부분의 기능 요구사항에 대한 케이스가 여기에 속한다.

 

Negative Case

잘못된 입력 또는 예외 상황에서 시스템이 오류를 잘 처리하는지에 대해 검증하는 테스트 케이스

  • 목적: 잘못된 사용, 입력, 시스템 상태 등에서 에러 처리가 적절한지 확인
  • 입력값: 잘못된 값, 비정상적인 값 사용
  • ex) 회원가입 화면에서 ID를 입력하지 않았을 때 "ID를 입력하세요" 등의 에러 메시지 표시

Negative Case는 "비정상적으로 사용했을 때, 시스템이 망가지지 않는지(에러 메시지가 잘 표시되는지)를 보는 테스트 케이스다. 보통 사용자의 실수나 예외 흐름 등을 고려해서 설계한다.

 

Edge Case

입력 값이나 조건이 한계점에 가까울 때, 시스템이 올바르게 반응하는지 확인하는 테스트

  • 목적: 최소값/최대값, 경계값, 시스템 한계 상황에서의 동작 확인
  • 입력값: 제한된 범위의 가장자리 값, 입력 크기 한계 등
  • ex) Zoom 옵션 필드(0~18 제한)에서 0, 18, -1, 19등 값을 입력

Edge Case는 "경계에 닿은 값을 입력했을 때도 잘 동작하는가?"를 보는 테스트다. 정말 예외적인 상황이기 때문에 비교적 우선순위는 떨어지지만, 소홀히 할 경우 예상치 못한 버그가 발생할 수 있다.

 

정리

나는 그 동안 Negative Case와 Edge Case에 대한 개념을 헷갈리고 있었다. '예외사항'이라는 큰 틀에 두 가지 개념을 혼동하고 있었다. 물론 Negative Case 또한 '예외적인' 상황의 케이스이긴 하지만, 목적과 범위가 다르다. Negative Case는 일부러 말도 안되는 상황을 가정하는 테스트이고, Edge Case는 정상 범위 내 가장자리(끝)를 찔러보는 테스트라고 보면될 것이다.

 

Negative와 Edge를 한 번에 사용할 수도 있다. 예를 들어 API 응답에 대한 테스트를 진행한다고 했을 때, Timeout 임계점이 5초라고 가정해보자. 일부러 응답을 임계값에 가깝게 지연시켜 아래와 같은 시나리오를 작성할 수 있다.

시나리오 기대 결과 설명
API 응답 시간이 4.9초일 때 vs 5.1초일 때 응답 차이 확인 4.9초: 정상 처리
5.1초: Timeout 처리 후 5초 지연 발생
경계 기준 전후의 반응 차이를 보기 위함

 

아직도 갈 길이 멀다. 공부할 것들이 산더미다.

728x90

'Minding's Programming > Knowledge' 카테고리의 다른 글

[Testing] SW 테스트 기본 개념들 정리  (0) 2025.03.04
[OmniParserV2] LLM과 함께 사용할 수 있는 화면 인식 GUI 자동화 도구 (설치 및 실행 방법)  (1) 2025.02.25
[Python 3.13] Python에서 GIL을 비활성화 할 수 있다?  (0) 2025.02.24
[QA/Testing] 모바일 앱 테스트 자동화 오픈소스 Appium 사용해보기  (0) 2025.02.20
[프로젝트] Catch Me My Capital - 합리적인 투자 의사결정을 위한 금융 데이터 파이프라인 및 백테스팅 도구 (테스트 도입 편)  (0) 2025.02.18
'Minding's Programming/Knowledge' 카테고리의 다른 글
  • [Testing] SW 테스트 기본 개념들 정리
  • [OmniParserV2] LLM과 함께 사용할 수 있는 화면 인식 GUI 자동화 도구 (설치 및 실행 방법)
  • [Python 3.13] Python에서 GIL을 비활성화 할 수 있다?
  • [QA/Testing] 모바일 앱 테스트 자동화 오픈소스 Appium 사용해보기
Minding
Minding
  • Minding
    Today's Minding
    Minding
  • 전체
    오늘
    어제
    • 울고넘는 딥러닝 (278)
      • Minding's Baseball (57)
        • MLB Statcast (29)
        • 머신러닝으로 홈런왕 예측하기 (3)
        • 야구칼럼 (12)
        • 야구 규칙, 용어 (1)
        • 2022-23 질롱 코리아 (8)
        • 류현진 등판경기 (4)
      • Minding's Programming (185)
        • 프로그래머스 코딩테스트 (21)
        • Knowledge (44)
        • Numpy & Pandas (6)
        • Excel (3)
        • Git (1)
        • Pygame (11)
        • CV (3)
        • Tensorflow tutorial (4)
        • Kaggle and Dacon (4)
        • 에러 코드 (8)
        • FastAPI (8)
        • Airflow (29)
        • Crawling (6)
        • Django (14)
        • AWS (18)
        • Spark (5)
      • Minding's Reading (30)
        • 머신러닝 딥러닝에 필요한 기초 수학 with 파이.. (2)
        • 칼만필터는 어렵지 않아 (11)
        • 밑바닥부터 시작하는 딥러닝 (6)
        • 메이저리그 야구 통계학 2e (8)
        • 논문읽기 (2)
        • 빅데이터를 지탱하는 기술 (1)
      • Minding's Life (5)
        • 주식 (4)
        • 각종 소식 (1)
  • 블로그 메뉴

    • 홈
    • Baseball
    • Programming
    • Reading
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    파이썬게임개발
    메이저리그
    질롱코리아
    칼만필터
    프로그래머스
    FastAPI
    게임개발
    django
    칼만필터는어렵지않아python
    django python
    Airflow
    에어플로우
    파이게임
    넘파이
    파이썬
    MLB
    코딩테스트
    KBO
    Python
    pygame
    KalmanFilter
    칼만필터는어렵지않아
    데이터 엔지니어
    머신러닝
    mlb stats api
    데이터분석
    칼만필터는어렵지않아파이썬
    야구
    AWS
    딥러닝
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Minding
[QA] Positive / Negative / Edge Case 개념 정리
상단으로

티스토리툴바