통합 테스트·스텁/드라이버
없는 모듈이 호출자 쪽인지 호출받는 쪽인지 확인한다.
실기 학습 목표
없는 모듈이 호출자 쪽인지 호출받는 쪽인지 확인한다.
핵심 이론
하향식 통합은 상위 제어 모듈부터 아래로 연결하고 아직 없는 하위 응답을 스텁으로 대신한다. 스텁은 호출을 받아 테스트용 결과를 반환한다.
상향식 통합은 하위 모듈부터 연결하고 아직 없는 상위 호출 동작을 드라이버로 대신한다. 드라이버는 입력 전달·호출·결과 수집을 수행한다.
샌드위치 통합은 하향식과 상향식을 조합한다. 빅뱅은 전체를 한 번에 연결하는 비점진 방식으로 결함 위치를 분리하기 어렵다.
순서·입력 전달·예외 응답 등 모듈 사이 인터페이스를 확인하는 것이 통합 테스트의 핵심이다. 상위가 하위를 호출하는 화살표를 그리면 스텁과 드라이버의 위치를 뒤집는 실수를 줄일 수 있다.
아직 없는 모듈이 호출자 쪽인지 확인한다
상위 A가 하위 B를 호출하는 구조를 그린다. A부터 검사하는 하향식 통합에서 B가 아직 없으면 B 역할을 대신하는 스텁이 필요하다. B부터 검사하는 상향식 통합에서 A가 없으면 B를 호출하고 입력을 주는 드라이버가 필요하다.
| 통합 방향 | 먼저 있는 쪽 | 임시 대체물 |
|---|---|---|
| 하향식 | 상위 호출자 | 하위 응답을 흉내 내는 스텁 |
| 상향식 | 하위 모듈 | 호출·입력을 제공하는 드라이버 |
스텁이 일정한 반환값을 주면 상위 모듈이 그 결과를 처리하는지 확인할 수 있다. 드라이버는 하위 모듈에 테스트 인수를 전달하고 결과를 관찰한다. 둘을 모두 ‘가짜 모듈’로만 외우면 방향을 뒤집기 쉽다.
빅뱅 통합은 모듈을 한꺼번에 연결해 검사하므로 실패 시 원인 연결을 좁히기 어렵다. 샌드위치 통합은 상향식과 하향식을 결합한다. 문제에 상위·하위 관계가 주어지면 화살표를 먼저 그린 뒤 빈 자리를 대체하는 이름을 답한다.
풀이 예시
압축 해제 함수는 완성되었지만 이를 호출할 상위 서비스는 없다. 시험용 프로그램이 입력 파일을 준비하고 함수를 호출한 뒤 반환값을 기록한다. 상위 호출자를 대신하는 이 시험용 프로그램의 이름을 쓰시오.
예시 정답
드라이버
풀이 과정
하위 모듈을 시험하기 위해 상위 호출 동작과 입력 전달을 담당하는 대체 프로그램이 테스트 드라이버이다. 호출받는 하위 모듈을 대신하는 스텁이 아니다.
답안 점검
위 풀이 예시의 답을 가린 뒤, 핵심 이론의 규칙을 적용해 직접 풀어 보세요. 코드와 계산 문제는 중간값·단위·최종 출력의 순서를, 용어 문제는 지문의 핵심 단서와 답의 의미를 점검하세요. 해설과 다른 부분이 있으면 어느 조건을 놓쳤는지 확인하고 연결된 실기 문제로 다시 연습하세요.