기출 단위 테스트

agnusdei·2025년 6월 18일

Software Engineering

목록 보기
22/59

✅ 문제 요약

차세대 프로젝트의 개발자로서 설계서를 기반으로 코딩을 수행하고, 이후 단위 테스트를 수행할 때의
환경, 절차, 산출물, 발생 가능한 이슈 및 이슈 해결 방안을 설명하시오.


✅ 1. 단위 테스트(Unit Test) 개요

항목설명
정의개발자가 작성한 개별 모듈 또는 함수 단위로 올바르게 동작하는지 검증하는 테스트
목적코드의 기능 검증, 조기 결함 발견, 유지보수 용이성 확보
수행 주체일반적으로 개발자(Developer) 가 직접 수행
근거 문서상세 설계서, API 명세서, 인터페이스 정의서 등

✅ 2. 단위 테스트 환경

구성요소설명
개발 언어별 테스트 프레임워크Java: JUnit, Python: pytest, JavaScript: Jest 등
Mocking 도구Mockito, Moq, unittest.mock 등으로 외부 의존성 대체
빌드 도구Maven, Gradle, Makefile 등으로 컴파일과 테스트 자동화
CI 도구Jenkins, GitLab CI: 테스트 자동 수행 및 리포트 생성
테스트 데이터 관리임의 생성 or Dummy 데이터를 활용하여 테스트 수행
IDE 연동IntelliJ, VSCode, Eclipse 등을 통해 테스트 자동화 및 디버깅 용이화

✅ 3. 단위 테스트 절차

단계활동
① 테스트 계획 수립테스트 대상 함수 정의, 조건 정리, 테스트 전략 수립
② 테스트 케이스 설계입력값, 예상 출력, 경계 조건, 오류 처리 설계
③ Mock 객체 정의DB, API 등 외부 자원은 Mocking 처리
④ 테스트 스크립트 구현테스트 프레임워크 기반 함수 구현
⑤ 테스트 실행반복 수행 및 자동화 테스트 적용
⑥ 결과 분석 및 리포팅실패 원인 분석, 로그 확인
⑦ 결함 수정 및 재시험코드 수정 → 테스트 반복 수행
⑧ 커버리지 확인테스트 범위(라인, 조건, 경로 등) 측정 및 보완

✅ 4. 단위 테스트 산출물

산출물설명
단위 테스트 계획서대상 모듈, 범위, 도구, 방법, 일정 등 포함
테스트 케이스 문서입력, 예상 결과, 사전 조건 등 명시된 문서
테스트 스크립트 코드JUnit, pytest 등 테스트 코드 자체
테스트 결과 리포트수행 결과, 통과/실패 항목, 로그 등 포함
결함 보고서(Bug Report)발생한 이슈, 재현 절차, 영향도 명시
테스트 커버리지 보고서전체 코드 중 테스트 수행 비율 시각화

✅ 5. 단위 테스트 이슈 및 해결 방안

이슈 사항상세 설명해결 방안
① 테스트 환경 불일치개발 환경과 테스트 환경의 설정 차이Docker, 환경 설정 자동화(Shell Script, Ansible 등)로 통일
② 외부 의존성 문제DB, 외부 API 연결 실패 → 테스트 지연Mock 객체 활용하여 독립적 테스트 수행
③ 커버리지 부족테스트가 전체 코드를 충분히 커버하지 못함커버리지 도구(Jacoco, Coverage.py) 도입 후 누락 영역 테스트 추가
④ 테스트 설계 미흡정상 케이스만 고려, 경계/예외 테스트 부족경계값(Boundary), 예외(Exception), 오류 케이스 포함 설계 강화
⑤ 테스트 자동화 미흡수동 테스트 반복 → 생산성 저하CI/CD 연계 자동 테스트 수행(Jenkins, GitHub Actions)
⑥ 테스트 코드 유지보수 어려움비표준적 구현, 주석 없음 → 가독성 저하코드 컨벤션 준수, 테스트 코드 리뷰 프로세스 도입

✅ 6. 해결 방안 정리 (핵심 요약)

구분방안
환경 통일화Docker, 환경설정 자동화로 개발-테스트 환경 동일화
Mocking 적용외부 의존 요소는 Mock 객체로 대체
CI 자동화Git hook, Jenkins로 커밋 시 자동 테스트 수행
테스트 커버리지 보강커버리지 리포트를 기반으로 부족 부분 보완
표준화된 테스트 코드테스트 컨벤션 정의 및 리뷰 프로세스 도입

✅ 핵심 용어 정리

용어설명
Mock 객체실제 객체 대신 테스트용으로 가짜 객체를 만들어 테스트 독립성 확보
Test Coverage전체 코드 중 테스트가 수행된 비율 (라인, 조건, 경로 등 기준 다양)
CI (Continuous Integration)코드 변경 시 자동 빌드, 테스트, 배포 수행하는 자동화 방식
단위(Unit)클래스, 함수 등 논리적으로 최소 테스트 단위

✅ 어린이 버전 요약

프로그램을 만든 다음, 하나하나 기능이 잘 되는지 혼자서 먼저 점검해보는 걸 "단위 테스트"라고 해요. 컴퓨터 환경이 같아야 하고, 문제가 생기면 고쳐서 다시 확인해야 해요. 잘 점검하려면 계획, 체크 리스트, 테스트 결과 기록이 꼭 필요해요!


✅ 마무리 요약

단위 테스트는 개발 단계에서 코드 품질을 높이고 결함을 조기에 제거하는 핵심 활동입니다. 이를 위해 테스트 환경을 일관되게 구성하고, 테스트 절차와 산출물을 체계적으로 관리하며, 발생 이슈에 대한 실질적 해결책을 마련하는 것이 필수적입니다.


profile
DevSecOps, Pentest, Cloud(OpenStack), Develop, Data Engineering, AI-Agent

0개의 댓글