소프트웨어 테스트에서 중요한 개념인 테스트 케이스(Test Case), 테스트 시나리오(Test Scenario), 테스트 오라클(Test Oracle)을 정리해보겠습니다.
📌 정의:
📌 구성 요소:
✔ 테스트 ID → 각 테스트 케이스의 고유한 식별자
✔ 테스트 목적 → 무엇을 검증할 것인지 명확히 정의
✔ 사전 조건 → 테스트를 실행하기 전에 충족해야 하는 조건
✔ 입력 값 → 시스템에 제공할 데이터
✔ 실행 절차 → 테스트를 수행하는 단계별 절차
✔ 기대 결과(Expected Result) → 테스트 수행 후 예상되는 결과
✔ 실제 결과(Actual Result) → 테스트를 수행한 후 실제 나타난 결과
✔ 테스트 결과(Pass/Fail) → 기대 결과와 실제 결과 비교
📌 테스트 케이스의 역할:
✔ 오류 사전 예방 → 명확한 테스트 항목 정의
✔ 테스트 수행 시 불필요한 자원 낭비 방지
✔ 테스트 자동화에 활용 가능
📌 정의:
📌 특징:
✔ 테스트 흐름을 정의하여 논리적인 순서대로 테스트 수행
✔ 시나리오에 따라 테스트를 실행하면서 시스템 전반적인 동작을 검증
✔ 단순한 기능 검증을 넘어, 사용자 경험을 고려한 테스트 진행 가능
📌 테스트 시나리오의 예시:
🛒 온라인 쇼핑몰 시나리오
1️⃣ 로그인
2️⃣ 상품 검색
3️⃣ 상품 상세 페이지 확인
4️⃣ 장바구니 추가
5️⃣ 결제 진행
6️⃣ 결제 완료 후 주문 확인
📌 정의:
📌 특징:
✔ 제한된 검증 → 모든 테스트 케이스를 다 적용할 수 없음
✔ 수학적 기법 사용 가능 → 예상 결과를 공식으로 계산 가능
✔ 자동화 가능 → 테스트 실행 및 결과 비교를 자동화할 수 있음
📌 테스트 오라클의 역할:
✔ 테스트 자동화를 지원
✔ 소프트웨어 테스트 정확도를 향상
✔ 테스트 수행 후 결과 비교를 명확하게 함
📌 ① 참 오라클(True Oracle)
📌 ② 샘플링 오라클(Sampling Oracle)
📌 ③ 추정 오라클(Heuristic Oracle)
📌 ④ 일관성 검사 오라클(Consistency Check Oracle)
1️⃣ 테스트 케이스:
2️⃣ 테스트 시나리오:
3️⃣ 테스트 오라클:
📌 시험 대비
❓ 1. 테스트 결과를 예상값과 비교하여 오류를 판별하는 기법은?
👉 테스트 오라클(Test Oracle)
❓ 2. 여러 개의 테스트 케이스를 논리적인 순서로 묶어 수행하는 절차는?
👉 테스트 시나리오(Test Scenario)
❓ 3. 모든 입력 값에 대해 기대 결과를 제공하고, 발생한 모든 오류를 검출할 수 있는 오라클은?
👉 참 오라클(True Oracle)
❓ 4. 특정 몇몇 입력 값에 대해서만 기대 결과를 제공하는 오라클은?
👉 샘플링 오라클(Sampling Oracle)
❓ 5. 일부 입력 값은 기대 결과를 제공하지만, 나머지는 추정으로 처리하는 오라클은?
👉 추정 오라클(Heuristic Oracle)
💡 이제 테스트 케이스, 테스트 시나리오, 테스트 오라클 개념이 확실해졌죠? 🚀
시험 대비를 위해 개념을 정확히 숙지하고, 기출문제 유형을 연습하면 더욱 도움이 될 거예요! 💯