테스트 케이스/테스트 시나리오/테스트 오라클

1

정보처리기사

목록 보기
95/100

📌 테스트 케이스, 테스트 시나리오, 테스트 오라클 정리 🚀

소프트웨어 테스트에서 중요한 개념인 테스트 케이스(Test Case), 테스트 시나리오(Test Scenario), 테스트 오라클(Test Oracle)을 정리해보겠습니다.


1️⃣ 테스트 케이스 (Test Case)

📌 정의:

  • 사용자의 요구사항이 정확하게 구현되었는지 검증하기 위한 테스트 항목
  • 입력 값, 실행 조건, 예상 결과로 구성된 테스트 명세서

📌 구성 요소:
테스트 ID → 각 테스트 케이스의 고유한 식별자
테스트 목적 → 무엇을 검증할 것인지 명확히 정의
사전 조건 → 테스트를 실행하기 전에 충족해야 하는 조건
입력 값 → 시스템에 제공할 데이터
실행 절차 → 테스트를 수행하는 단계별 절차
기대 결과(Expected Result) → 테스트 수행 후 예상되는 결과
실제 결과(Actual Result) → 테스트를 수행한 후 실제 나타난 결과
테스트 결과(Pass/Fail) → 기대 결과와 실제 결과 비교

📌 테스트 케이스의 역할:
오류 사전 예방 → 명확한 테스트 항목 정의
테스트 수행 시 불필요한 자원 낭비 방지
테스트 자동화에 활용 가능


2️⃣ 테스트 시나리오 (Test Scenario)

📌 정의:

  • 여러 개의 테스트 케이스를 특정 순서에 따라 묶어 놓은 테스트 절차
  • 테스트 케이스 간 상호 작용을 고려하여 구성

📌 특징:
테스트 흐름을 정의하여 논리적인 순서대로 테스트 수행
시나리오에 따라 테스트를 실행하면서 시스템 전반적인 동작을 검증
단순한 기능 검증을 넘어, 사용자 경험을 고려한 테스트 진행 가능

📌 테스트 시나리오의 예시:
🛒 온라인 쇼핑몰 시나리오
1️⃣ 로그인
2️⃣ 상품 검색
3️⃣ 상품 상세 페이지 확인
4️⃣ 장바구니 추가
5️⃣ 결제 진행
6️⃣ 결제 완료 후 주문 확인


3️⃣ 테스트 오라클 (Test Oracle)

📌 정의:

  • 테스트 결과가 올바른지 판단하기 위해 사전에 정의된 기대값과 비교하는 기법
  • 테스트 수행 후 나온 결과를 예상 결과와 대조하여 오류를 판별

📌 특징:
제한된 검증 → 모든 테스트 케이스를 다 적용할 수 없음
수학적 기법 사용 가능 → 예상 결과를 공식으로 계산 가능
자동화 가능 → 테스트 실행 및 결과 비교를 자동화할 수 있음

📌 테스트 오라클의 역할:
테스트 자동화를 지원
소프트웨어 테스트 정확도를 향상
테스트 수행 후 결과 비교를 명확하게 함


4️⃣ 테스트 오라클의 종류

📌 ① 참 오라클(True Oracle)

  • 모든 입력 값에 대해 기대 결과를 제공하며, 발생한 모든 오류를 검출
  • 모든 오류를 발견할 수 있는 가장 이상적인 오라클
  • 하지만 현실적으로 구현하기 어려움

📌 ② 샘플링 오라클(Sampling Oracle)

  • 특정 몇몇 테스트 케이스의 입력 값에 대해서만 기대 결과 제공
  • 전수 테스트가 불가능한 경우에 사용
  • 일부만 비교하므로, 모든 오류를 발견하지 못할 수 있음

📌 ③ 추정 오라클(Heuristic Oracle)

  • 일부 특정 테스트 케이스는 기대 결과를 제공하지만, 나머지는 추정으로 판단
  • 샘플링 오라클보다 범위를 확장할 수 있음
  • 예측이 포함되므로, 정확성이 다소 떨어질 수 있음

📌 ④ 일관성 검사 오라클(Consistency Check Oracle)

  • 테스트 전후의 결과 값을 비교하여 일관성이 유지되는지 검증
  • 수행 전후 동일한 동작을 해야 하는 경우 사용
  • 변경 사항이 있을 경우, 정상적인 변경도 오류로 판단할 가능성 있음

5️⃣ 핵심 요약

1️⃣ 테스트 케이스:

  • 개별적인 테스트 단위로, 입력 값과 실행 조건, 기대 결과를 포함
  • 오류 방지 및 자원 낭비 최소화

2️⃣ 테스트 시나리오:

  • 테스트 케이스들을 논리적인 흐름으로 묶은 절차
  • 상호작용을 고려하여 테스트를 진행할 수 있도록 구성

3️⃣ 테스트 오라클:

  • 테스트 결과를 검증하는 방법으로, 예상 결과와 비교하여 오류를 판별
  • 오라클의 종류: 참 오라클, 샘플링 오라클, 추정 오라클, 일관성 검사 오라클

📌 시험 대비

  • 테스트 케이스와 테스트 시나리오의 차이점 숙지
  • 오라클의 4가지 종류 및 특징 구별
  • 각 개념의 역할과 중요성 이해

테스트 문제 예시

1. 테스트 결과를 예상값과 비교하여 오류를 판별하는 기법은?
👉 테스트 오라클(Test Oracle)

2. 여러 개의 테스트 케이스를 논리적인 순서로 묶어 수행하는 절차는?
👉 테스트 시나리오(Test Scenario)

3. 모든 입력 값에 대해 기대 결과를 제공하고, 발생한 모든 오류를 검출할 수 있는 오라클은?
👉 참 오라클(True Oracle)

4. 특정 몇몇 입력 값에 대해서만 기대 결과를 제공하는 오라클은?
👉 샘플링 오라클(Sampling Oracle)

5. 일부 입력 값은 기대 결과를 제공하지만, 나머지는 추정으로 처리하는 오라클은?
👉 추정 오라클(Heuristic Oracle)


💡 이제 테스트 케이스, 테스트 시나리오, 테스트 오라클 개념이 확실해졌죠? 🚀
시험 대비를 위해 개념을 정확히 숙지하고, 기출문제 유형을 연습하면 더욱 도움이 될 거예요! 💯

0개의 댓글