테스트 원리·단계·회귀
테스트가 보여 주는 사실과 테스트 단계의 목적을 구별한다.
실기 학습 목표
테스트가 보여 주는 사실과 테스트 단계의 목적을 구별한다.
핵심 이론
테스트는 결함의 존재를 보여 줄 수 있지만 부재를 증명하지는 않는다. 완전한 전수 테스트는 일반적으로 불가능하며 조기 테스트와 상황에 맞는 접근이 필요하다.
결함 집중은 일부 영역에 결함이 몰리는 현상이다. 동일 테스트의 반복 효과가 줄어드는 원리는 살충제 패러독스로도 부른다. 결함을 없애도 사용자 요구를 못 채우면 오류 부재의 궤변에 해당한다.
단위 → 통합 → 시스템 → 인수 단계는 각각 작은 단위, 연결, 전체 시스템, 인수 요구를 확인한다. 알파는 개발 측 환경의 사용자 시험, 베타는 외부 사용자의 실제 환경 시험으로 비교한다.
확인 테스트는 수정한 결함 해결 여부를, 회귀 테스트는 변경이 기존 기능에 악영향을 주는지 확인한다.
테스트 목적을 사건의 전후로 구별한다
결함을 고친 뒤 그 결함이 해결됐는지 다시 검사하면 확인 테스트다. 같은 수정 때문에 기존 정상 기능이 망가졌는지를 확인하면 회귀 테스트다. 둘 다 수정 뒤 실행될 수 있지만 검사 목적이 다르다.
단위 테스트는 작은 모듈, 통합 테스트는 모듈 사이 연결, 시스템 테스트는 전체 시스템의 요구, 인수 테스트는 사용·인수 기준을 확인한다. V모델은 개발 활동과 대응하는 테스트 활동을 연결해 계획할 수 있도록 돕는다. 테스트가 구현이 끝난 뒤에만 시작되는 것으로 이해하지 않는다.
| 사례 | 원리 또는 단계 |
|---|---|
| 특정 모듈에 결함이 몰림 | 결함 집중 |
| 같은 테스트만 반복해 새 결함 발견 감소 | 살충제 패러독스 |
| 오류를 줄였지만 사용자 업무에 쓸 수 없음 | 오류 부재의 궤변 |
| 외부 사용자가 실제 환경에서 시험 | 베타 테스트 |
테스트는 발견한 결함의 존재를 보여 주지만 모든 가능한 입력에 결함이 없음을 보증하지는 않는다. 용어형 문제에서는 ‘결함 발견’, ‘요구 충족’, ‘환경’, ‘수정 전후’ 중 어느 단서를 묻는지 먼저 표시하고 가장 직접적인 이름을 적는다.
풀이 예시
쿠폰 계산 오류를 수정한 뒤, 직접 수정하지 않은 배송비 계산·취소·영수증 출력 테스트도 다시 수행했다. 변경으로 기존 정상 기능에 새 결함이 생겼는지 확인하는 테스트의 이름을 쓰시오.
예시 정답
회귀 테스트
풀이 과정
변경이 기존 기능에 부정적 영향을 주었는지 확인하는 것은 회귀 테스트이다. 수정한 특정 오류가 해결되었는지 재확인하는 확인 테스트와 목적이 다르다.
답안 점검
위 풀이 예시의 답을 가린 뒤, 핵심 이론의 규칙을 적용해 직접 풀어 보세요. 코드와 계산 문제는 중간값·단위·최종 출력의 순서를, 용어 문제는 지문의 핵심 단서와 답의 의미를 점검하세요. 해설과 다른 부분이 있으면 어느 조건을 놓쳤는지 확인하고 연결된 실기 문제로 다시 연습하세요.