정처기 감자정처기 감자
SW 개발테스트

검색

검색어를 입력해 개념, 문제, 필기를 찾습니다.

테스트 자동화(하네스) 구성요소

정처기SW개발테스트
읽는데 9분 소요
처음 쓰인 날: 2025-10-07
마지막 수정일: 2025-10-07
조회수: —
선수학습(1개)
  • 테스트 레벨(단위, 통합, 시스템, 인수 테스트)과 V 모델

요약

정보처리기사 실기 시험의 핵심 개념인 테스트 하네스의 구성요소(테스트 드라이버, 스텁, 슈트, 케이스, 시나리오, 스크립트, 목 객체)를 완벽하게 정리합니다. 특히 시험에 자주 출제되는 테스트 드라이버와 스텁의 차이점을 명확히 설명합니다.

용어키워드
테스트 하네스(Test Harness)소프트웨어 도구, 프레임워크, 테스트 환경 구축, 구성요소 집합
테스트 드라이버(Test Driver)상향식 테스트, 하위 모듈 테스트, 호출하는 모듈, 상위 모듈 역할
테스트 스텁(Test Stub)하향식 테스트, 상위 모듈 테스트, 호출되는 모듈, 더미 모듈
테스트 슈트(Test Suite)테스트 케이스 집합, 묶어놓은 단위, 특정 기능 테스트
테스트 케이스(Test Case)입력값, 실행 조건, 예상 결과, 테스트 최소 단위, 명세
테스트 시나리오(Test Scenario)동작 흐름, 스토리, 여러 케이스 묶음, 로그인 후 글쓰기
테스트 스크립트(Test Script)자동화, 실행 코드, 테스트 케이스 코드화
목 객체(Mock Object)상태 검증, 행위 검증, 정교한 객체, 호출 횟수 확인

정보처리기사 실기 시험에서 테스트 드라이버(Test Driver) 와 테스트 스텁(Test Stub) 의 역할과 차이점을 묻는 문제는 단골 출제 유형입니다. 두 개념을 명확히 구분하고 암기하는 것이 합격의 핵심입니다.


테스트 하네스(Test Harness)란?

테스트 하네스는 단위 테스트나 모듈 테스트에서 테스트를 실행하기 위한 환경을 구축하는 소프트웨어 도구나 프레임워크를 의미합니다. 테스트 대상 컴포넌트가 정상적으로 작동하는지 확인하기 위해, 테스트를 지원하는 코드와 데이터를 하나로 묶은 실행 환경이라고 할 수 있습니다.

주요 구성 요소로는 테스트 드라이버, 테스트 스텁, 테스트 슈트, 테스트 케이스 등이 있으며, 이들이 모여 하나의 테스트 환경을 구성합니다.


테스트 하네스의 핵심 구성요소

테스트 드라이버 (Test Driver)

테스트 드라이버는 테스트 대상 모듈을 호출(Call) 하고, 테스트 결과를 검증하는 상위 모듈12 역할을 하는 테스트 코드입니다. 주로 상향식(Bottom-up) 테스트345 에서 사용됩니다.

  • 역할: 하위 모듈(테스트 대상)을 호출하여 테스트를 시작하고, 파라미터를 전달하며, 결과를 확인합니다.
  • 함수 호출 및 데이터 흐름의 방향: 상위 모듈 ← [테스트 드라이버] + 하위 모듈 (테스트 대상)
  • 핵심 키워드: 상향식 테스트, 하위 모듈 테스트, 호출하는 모듈

테스트 스텁 (Test Stub)

테스트 스텁은 테스트 대상 모듈이 호출하는 다른 모듈의 기능을 임시로 대체하는 더미(Dummy) 모듈입니다6. 주로 하향식(Top-down) 테스트789 에서 사용됩니다.

  • 역할: 상위 모듈(테스트 대상)이 호출하는 하위 모듈10의 역할을 임시로 수행하며, 미리 정해진 값을 반환하거나 간단한 로직을 처리합니다.
  • 함수 호출 및 데이터 흐름의 방향: 상위 모듈 (테스트 대상) + 하위 모듈 ← [테스트 스텁]
  • 핵심 키워드: 하향식 테스트, 상위 모듈 테스트, 호출되는 모듈
구분테스트 드라이버 (Test Driver)테스트 스텁 (Test Stub)
목적하위 모듈을 테스트하기 위해 사용상위 모듈을 테스트하기 위해 사용
역할테스트 대상 모듈을 호출하는 상위 모듈 역할테스트 대상 모듈에 의해 호출되는 하위 모듈 역할
테스트상향식(Bottom-up) 테스트하향식(Top-down) 테스트
비유자동차를 운전하는 운전자(Driver)주연 배우를 대신하는 대역(Stub) 배우
함수 호출, 데이터 흐름드라이버 → 테스트 대상(하위)테스트 대상(상위) → 스텁

그 외 주요 구성요소

구성요소설명
테스트 슈트테스트 케이스들의 집합. 특정 기능이나 모듈에 대한 모든 테스트 케이스를 묶어놓은 단위입니다.
테스트 케이스특정 요구사항을 검증하기 위한 입력값, 실행 조건, 예상 결과 등의 명세. 테스트의 최소 단위입니다.
테스트 시나리오여러 테스트 케이스를 묶어 하나의 동작 흐름(스토리) 을 검증하는 것. (예: '로그인 후 글쓰기')
테스트 스크립트테스트 케이스를 자동화된 방식으로 실행할 수 있도록 작성된 코드.
목 객체(Mock Object)스텁과 유사하지만, 호출에 대한 상태나 행위까지 검증하는 더 정교한 객체. (예: 'A 메서드가 3번 호출되었는가?')

소스 코드 분석 도구

소스 코드 분석 도구는 실행 여부에 따라 정적 분석 도구와 동적 분석 도구로 나뉩니다. "애플리케이션을 실행하지 않고"가 보이면 정적, "실행하면서"가 보이면 동적입니다.

구분정적 분석 도구 (Static Analysis Tool)동적 분석 도구 (Dynamic Analysis Tool)
실행 여부실행하지 않음실행하면서 분석
검사 대상코딩 표준, 코딩 스타일, 코드 복잡도, 잠재적 결함, 문법 오류메모리 누수, 보안 취약점, 코드 커버리지
도구 예시pmd, cppcheck, SonarQube, Checkstyle, FindBugsAvalanche, Valgrind
장점코드 작성 단계부터 결함 조기 발견실제 실행 시점의 동작·자원 사용 검증

메모리 누수와 코드 커버리지는 실제로 프로그램을 실행해야만 측정 가능하므로 동적 분석의 영역입니다.


단위 테스트 프레임워크 (xUnit 계열)

xUnit은 단위 테스트(Unit Test)를 자동화하기 위한 오픈소스 프레임워크 패밀리입니다. 언어별로 다음과 같은 구현체가 존재합니다.

프레임워크대상 언어
JUnitJava
CppUnitC++
NUnit.NET (C# 등)
PyUnit (unittest)Python
HttpUnit웹 애플리케이션

JUnit

자바 프로그램의 단위(메서드·클래스) 테스트를 자동화하기 위한 xUnit 계열 프레임워크입니다. @Test, @Before, @After 등의 애너테이션과 assertEquals, assertTrue 같은 단언(Assertion) 메서드로 테스트 코드를 작성합니다.


테스트 오라클 (Test Oracle)

테스트 오라클(Test Oracle) 은 테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참값(true value) 을 제공하는 메커니즘입니다. 입력값이 너무 많아 모든 경우를 검증하기 어려운 현실적 한계 때문에, 상황에 맞는 다양한 오라클 종류가 사용됩니다.

오라클 종류핵심 개념
참(True) 오라클모든 입력값에 대해 기댓값을 제공 — 발생할 모든 오류를 검출
샘플링(Sampling) 오라클특정 일부 입력값에 대해서만 기댓값 제공
휴리스틱(Heuristic) 오라클일부 입력값은 기댓값 제공, 나머지는 추정값으로 처리 (샘플링 + 추정)
일관성 검사(Consistent) 오라클변경 전과 변경 후 결과값이 동일한지 비교 (회귀 테스트에 활용)

"전수 입력값에 대해 기댓값을 제공하는 것이 불가능"이 보이면 샘플링 오라클, "변경 전과 후 결과 비교"가 보이면 일관성 검사 오라클입니다.


정보처리기사 실기 대비 문제

문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.

Footnotes

  1. 사용자가 직접 접하고 시스템의 핵심 제어 흐름을 담당하는 모듈(예: 카드 결제) ↩

  2. 반대로 하위 모듈은 상위 모듈에 의해 호출되는, 특정 기능을 수행하는 모듈입니다(예: 카드 번호 유효성 검사) ↩

  3. 상향식 테스트는 하위 모듈부터 테스트를 시작하여 상위 모듈로 테스트를 올려가는 방식입니다. ↩

  4. 테스트 순서: 하위 모듈 -> 중위 모듈 -> 상위 모듈 ↩

  5. 하위 모듈의 정확성을 먼저 확인하고 상위 모듈로 통합하기 위해 상향식 테스트를 사용합니다. ↩

  6. '더미(dummy)'는 진짜 대신 자리를 채우는 가짜·대역을 뜻합니다(마네킹, 더미 변수처럼). 스텁과 드라이버 둘 다 아직 없는 모듈을 임시로 대신하지만, '더미 모듈'은 관례상 스텁의 별칭으로 굳어진 표현입니다. 스텁은 호출되면 정해진 값만 돌려주는 수동적 자리채움이라 '더미'에 잘 맞고, 드라이버는 직접 호출·검증하는 능동적 코드라 '구동기(driver)'에 더 가깝습니다. ↩

  7. 하향식 테스트는 상위 모듈부터 테스트를 시작하여 하위 모듈로 테스트를 내려가는 방식입니다. ↩

  8. 테스트 순서: 상위 모듈 -> 중위 모듈 -> 하위 모듈 ↩

  9. 시스템의 구조와 주요 기능의 조기 검증에 초점을 맞추기 때문에 상위 모듈을 먼저 테스트하는 하향식 테스트를 사용합니다. ↩

  10. 하위 모듈은 상위 모듈에 의해 호출되는, 특정 기능을 수행하는 모듈입니다(예: 카드 번호 유효성 검사) ↩


메가커피와 함께, 홈페이지 개선에 참여하세요! ☕
혹시 이용에 불편한 점이나 개선이 필요한 부분을 발견하셨나요? 댓글로 알려주시면 더 나은 감자가 될 수 있어요! 🥔 제보해주신 모든 분께 메가커피 기프티콘을 드립니다! (본인 이메일로 댓글 달아주셔야해요~)

관련 글

(15개)
제목태그업데이트시험
AJAX, Fetch API 등 - 인터페이스 통신 기술
SW개발정처기인터페이스SW개발
2026-06-29-
테스트 레벨(단위, 통합, 시스템, 인수 테스트)과 V 모델
테스트SW개발테스트
2026-01-11-
테스트 케이스 구성 요소
테스트SW개발테스트
2026-01-10-
테스트5개
제목태그업데이트시험
테스트 레벨(단위, 통합, 시스템, 인수 테스트)과 V 모델
테스트SW개발테스트
2026-01-11-
테스트 케이스 구성 요소
테스트SW개발테스트
2026-01-10-
테스트 커버리지, 블랙박스, 테스트 자동화 정보처리기사 실기 모의 시험
테스트SW개발테스트
2025-10-07응시
블랙박스 테스트 유형 정리
테스트SW개발테스트
2026-09-29-
테스트 커버리지 종류 구문(문장), 결정, 조건, MC DC
테스트SW개발테스트
2026-07-17-
SW개발10개
제목태그업데이트시험
URL 구조
인터페이스SW개발인터페이스
2026-06-26-
EAI와 ESB - 기업 애플리케이션 통합
인터페이스SW개발인터페이스
2026-04-29-
형상 관리 (SCM) - 4가지 활동과 도구(CVS·SVN·Git)
형상관리SW개발통합구현형상관리
2026-10-01-
SW 개발 왕감자 정보처리기사 실기 모의 시험
SW개발SW개발
2025-11-04응시
AJAX, Fetch API 등 - 인터페이스 통신 기술
SW개발정처기인터페이스SW개발
2026-06-29-
데이터 표현 형식 - JSON, XML, YAML
인터페이스SW개발인터페이스
2025-10-07-
인터페이스 정보처리기사 실기 모의 시험
인터페이스SW개발인터페이스
2025-10-07응시
IPSec - AH, ESP, 전송/터널 모드
인터페이스SW개발인터페이스
2025-10-07-
웹 서비스 인터페이스 - SOAP와 REST
인터페이스SW개발인터페이스
2025-10-23-
인터페이스 보안 암호화 프로토콜(PPTP, L2TP, SSL, S-HTTP)
인터페이스SW개발인터페이스
2025-10-25-
정처기 감자정처기 감자

정보처리기사 합격
도와줄라고 하는 감자

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매
© 2025 재현기획개발. All rights reserved.
  • 정처기 감자의 시작
  • 업데이트 로그
  • 개인정보 처리방침
  • 이용약관
상호명 : 재현기획개발 / 주소: 서울특별시 영등포구 영등포로 150, 지하1층 108호 L145 가라지(당산동1가, 생각공장 당산) / 대표: 김재현 / 전화: 010-8158-7127 / 통신판매업신고: 제2025-서울영등포-1569호 / 이메일: contact@edugamja.com / 사업자등록번호: 573-51-00999