테스트 케이스·오라클
테스트 입력과 예상·실제 결과, 판정 기준을 분리한다.
실기 학습 목표
테스트 입력과 예상·실제 결과, 판정 기준을 분리한다.
핵심 이론
테스트 케이스에는 식별자, 사전조건, 입력·실행 절차, 예상 결과 등을 적는다. 실행 후 관찰한 것은 실제 결과이며 예상 결과와 비교해 통과 여부를 판정한다.
오라클은 결과가 옳은지 판정할 근거다. 신뢰할 참조 구현, 명세, 알려진 정답 등을 사용할 수 있다.
교재의 오라클 분류에서 참 오라클은 모든 입력의 정답을 알 때, 샘플링은 일부 입력의 정확한 정답만 확보할 때, 휴리스틱은 추정·규칙을 활용할 때, 일관성 검사는 전후·구현 간 결과 일관성을 비교할 때로 구분한다.
회귀 비교에서 예전 결과와 같다는 사실만으로 예전 결과가 옳았다는 것까지 보장하지는 않는다. 문항이 상위 개념을 요구하는지 세부 유형을 요구하는지 확인한다.
테스트 케이스와 정답 판단 근거를 구별한다
테스트 케이스는 실행을 재현할 조건과 기대 동작을 기록한다. 로그인 사례에서 ‘활성 계정 존재’는 사전조건, ‘ID와 비밀번호 입력 후 로그인 클릭’은 절차, ‘대시보드 이동’은 예상 결과다. 실행 후 실제로 관찰한 화면은 실제 결과이며 예상 결과와 비교할 대상이다.
오라클은 결과가 맞는지 판단할 근거다. 정확한 정답을 모든 대상에 알 수 있는 참 오라클, 일부 입력만 정확히 확인하는 샘플링 오라클, 추정·성질로 판단하는 휴리스틱 오라클, 변경 전후의 일관성을 비교하는 일관성 검사 오라클을 구별한다.
예를 들어 모든 계산의 정답을 알지는 못하지만 검증된 표본 20개의 결과를 가진다면 샘플링 오라클이다. 정렬 결과에서 ‘원소 수와 합이 유지되고 순서가 증가한다’ 같은 성질을 확인하면 정확한 전체 결과 목록과 비교하는 것과는 다른 판단 방식이다.
지문을 읽을 때 입력·사전조건·절차·예상 결과·실제 결과를 색인하듯 구분한다. 오라클 이름을 묻는다면 테스트 도구 이름이나 테스트 단계 이름을 대신 쓰지 않는다.
풀이 예시
테스트 케이스에 다음 세 항목을 기록한다. ①~③의 구성요소 명칭을 순서대로 쓰시오.
① 잔액이 5,000원인 계정으로 로그인한 상태
② 3,000원 결제 버튼을 누름
③ 결제가 승인되고 잔액이 2,000원으로 표시됨
①은 수행 전 상태,
②는 수행할 동작,
③은 통과 판정 기준이다.
예시 정답
① 사전조건, ② 테스트 절차, ③ 예상 결과
풀이 과정
수행 전 갖추어야 할 상태는 사전조건, 실행할 사용자 행동은 테스트 절차(단계), 실행 후 기대하는 상태는 예상 결과이다. 입력값만이 아니라 버튼을 누르는 수행 동작까지 ②에 포함되어 있다.
답안 점검
위 풀이 예시의 답을 가린 뒤, 핵심 이론의 규칙을 적용해 직접 풀어 보세요. 코드와 계산 문제는 중간값·단위·최종 출력의 순서를, 용어 문제는 지문의 핵심 단서와 답의 의미를 점검하세요. 해설과 다른 부분이 있으면 어느 조건을 놓쳤는지 확인하고 연결된 실기 문제로 다시 연습하세요.