Skip to content
난이도 출제 빈출문제은행 6

블랙박스 테스트·테스트 케이스·오라클 ​

블랙박스 테스트(black-box testing)는 내부 코드를 보지 않고 명세만 보고 입력을 넣어 출력이 맞는지 확인하는 방법이다. 기능이 요구대로 동작하는지 보므로 기능 테스트라고도 한다. 실기 시험은 기법 이름(동치 분할·경계값 분석·원인-효과 그래프 등)을 설명으로 맞히게 하고, 경계값을 직접 고르게 하며, 테스트 케이스(test case) 구성 요소와 테스트 오라클(test oracle) 종류를 묻는다.

블랙박스 테스트 기법 ​

시험에 나오는 기법은 다섯 가지이고, 모두 적은 입력으로 결함을 많이 찾으려는 방법이다.

기법입력을 고르는 방법
동치 분할결과가 같은 입력끼리 묶고 묶음마다 대표값
경계값 분석묶음의 경계 바로 위·아래 값
원인-효과 그래프입력 조건과 결과의 관계를 그래프로 분석
오류 예측경험과 감각으로 결함이 날 곳을 추측
비교 검사여러 버전에 같은 입력을 주고 결과 비교

동치 분할(equivalence partitioning)은 동등 분할이라고도 하며, 똑같이 처리될 입력은 하나만 시험해도 된다는 생각에서 나왔다. 유효·무효 묶음을 모두 만든다. 경계값 분석(boundary value analysis)은 결함이 가운데보다 경계에서 자주 난다는 경험을 이용한다.

원인-효과 그래프(cause-effect graphing)는 원인-결과 그래프라고도 하며, 원인과 결과의 관계를 그래프로 그려 입력 조건의 조합을 정리한 뒤, 이를 결정 표(decision table, 조건 조합과 그 결과를 표로 정리한 것)로 바꿔 놓치기 쉬운 조합까지 테스트 케이스로 고른다. 오류 예측(error guessing)은 다른 기법이 놓친 부분을 경험으로 보충하고, 비교 검사(comparison testing)는 여러 버전의 출력이 같은지 본다.

예를 들어 점수 입력의 유효 범위가 0 이상 100 이하라고 하자. 동치 분할에서는 음수(무효), 0~100(유효), 100 초과(무효) 세 묶음에서 대표값을 하나씩 고른다. 경계값 분석에서는 경계 0과 100, 그 바로 바깥 −1과 101을 고른다(−1, 0, 100, 101). 경계 안쪽 이웃까지 넣으면 −1, 0, 1, 99, 100, 101 여섯 개가 된다.

테스트 케이스 ​

테스트 케이스(test case)는 특정 요구를 확인하려고 만든 입력값, 실행 조건, 예상 결과의 묶음이다. 무엇을 넣고 어떤 상태에서 실행하며 무엇이 나와야 맞는지를 미리 적어 두어야, 누가 실행해도 같은 판정을 내릴 수 있다. 시험은 구성 요소 일곱 가지를 묻는다. 케이스를 가리키는 식별자, 시험할 모듈·기능인 테스트 항목, 넣을 데이터와 조건인 입력 명세, 나와야 할 결과인 출력 명세, 필요한 하드웨어·소프트웨어인 환경 설정, 실행할 때 따로 지킬 특수 절차 요구, 다른 케이스와의 선후 관계인 의존성 기술이다. 시험 자료는 이 목록을 ISO/IEC/IEEE 29119-3 기준이라고 소개하는데, 항목 이름은 그 전신인 IEEE 829 표준의 테스트 케이스 명세 목차와 같다.1

테스트 오라클 ​

테스트 오라클(test oracle)은 테스트 결과가 맞는지 판정할 기준을 주는 장치나 방법이다. 예상 결과를 모르면 성공·실패를 말할 수 없기 때문에 필요하다. 오라클의 특징으로 시험은 세 가지를 든다. 모든 경우를 다 판정할 수는 없어 검증 범위가 제한되고(제한된 검증), 판정에 수학적 기법을 쓸 수 있으며(수학적 기법), 판정을 자동으로 돌릴 수 있다(자동화 기능).

오라클특징
참 오라클모든 입력에 기대 결과를 제공, 모든 오류 검출
샘플링 오라클몇몇 입력에만 기대 결과를 제공
추정 오라클몇몇 입력은 정답, 나머지는 추정
일관성 검사 오라클변경 전후 결과가 같은지 비교

참 오라클(true oracle)은 가장 강하지만 만들기 어렵고, 샘플링 오라클(sampling oracle)은 전수 테스트가 불가능할 때 쓴다. 추정 오라클은 휴리스틱 오라클(heuristic oracle), 일관성 검사 오라클은 consistency oracle이라고 부른다. 이 네 분류는 국내 시험의 것이고, 학계는 명세·파생·암묵적·사람 오라클처럼 달리 나눈다.

시험 포인트 ​

  • "결과가 같은 입력을 묶어 대표값" → 동치 분할. "경계 근처 값" → 경계값 분석. "입력 조건 간 관계를 그래프로" → 원인-효과 그래프. "경험과 감각" → 오류 예측. "여러 버전에 같은 입력" → 비교 검사.
  • 범위 0~100의 경계값: −1, 0, 100, 101(안쪽 이웃 포함 시 1, 99 추가).
  • 테스트 케이스 일곱 요소: 식별자·테스트 항목·입력 명세·출력 명세·환경 설정·특수 절차 요구·의존성 기술.
  • 오라클 종류: 참·샘플링·추정(휴리스틱)·일관성 검사(전후 비교). 특징: 제한된 검증·수학적 기법·자동화 기능.

참고

  1. IEEE 829-2008은 2013년에 ISO/IEC/IEEE 29119-3으로 대체됐다. 현행 29119-3 서식은 항목을 다르게 묶을 수 있으므로, 답안은 시험의 일곱 항목 이름으로 쓴다. ↩︎

관련 문서