소프트웨어 개발과 프로젝트 관리

입장료를 나이(0 이상의 정수)로 정하는 프로그램이 있으며, 0~17세는 어린이 요금, 18~64세는 일반 요금, 65세 이상은 시니어 요금으로 한다. 요금 구분이 바뀌는 경계를 확인하기 위해 경계값 분석으로 고르는 테스트 값의 조합으로 가장 적절한 것은?

  1. A10, 40, 90
  2. B17, 18, 64, 65
  3. C18, 65
정답과 해설 보기

정답: B. 17, 18, 64, 65

경계값 분석에서는 결함이 동치 클래스의 경계에 모이기 쉽다는 점에서, 경계 바로 양쪽의 값을 테스트합니다. 어린이 요금과 일반 요금의 경계에서는 17과 18, 일반 요금과 시니어 요금의 경계에서는 64와 65를 고르므로 17, 18, 64, 65의 4개가 됩니다. 조건의 '<'와 '<='를 잘못 쓰는 것 같은 오류는 경계의 한쪽만 시험해서는 발견되지 않는 경우가 있습니다. 10, 40, 90은 각 구분의 대표 값을 고르는 동치 분할의 값으로, 경계의 오류는 확인할 수 없습니다.

이 분야 연습하기 분야로 돌아가기

소프트웨어 개발과 프로젝트 관리의 다른 문제

  1. 사양은 '온도가 85 ℃ 이상이면 경고를 낸다'이지만, 펌웨어에는 잘못하여 'if (t > 85)'라고 쓰여 있었다. 온도 t는 정수로 한다. 다음 테스트 값 중 이 오류를 발견할 수 있는 것은?
  2. temp와 err의 값은 서로 독립적으로 정할 수 있다고 한다. 다음 처리 'if (temp > 80) { fan = HIGH; } else { fan = LOW; } if (err) { log(); }'에서 구문 커버리지(모든 명령문을 적어도 1회 실행한다)를 만족하는 데 필요한 최소 테스트 케이스의 수는?
  3. a, b, c의 참·거짓은 서로 독립적으로 정할 수 있다고 한다. 다음 처리 'if (a) { S1; } if (b) { S2; } if (c) { S3; }'에서 분기 커버리지(모든 판정의 참과 거짓을 적어도 1회씩 실행한다)를 만족하는 데 필요한 최소 테스트 케이스의 수는?
  4. 판정 'A 그리고 B'(A와 B는 서로 독립적으로 참·거짓을 정할 수 있는 조건)에 대해 테스트 케이스 (A = 참, B = 거짓)과 (A = 거짓, B = 참)의 2개를 실행했다. 커버리지 기준에 대해 올바른 것은?
  5. 상향식 테스트에서 아직 완성되지 않은 상위 모듈 대신, 테스트 대상인 하위 모듈을 호출하여 테스트 데이터를 넘기고 결과를 받기 위해 만드는 것은?