아카이브/사례

SI 화면테스트(단위) 가이드 - 2020

톰n제리 2025. 12. 22. 10:09

SI 화면테스트(단위) 가이드
SI성격의 프로젝트에서 개발단위로 인식되는 유형(예:화면)에 대한 기본적인 테스트 설계 가이드

casebasictestguideforsi-200330023244.pdf
1.09MB

단위테스트 설계 가이드 요약

이 문서는 "단위테스트 설계 가이드"로, 총 18페이지의 교육 자료입니다. Basic/Advanced/Expert 수준으로 구성되었으나, 본 문서는 Basic 수준에 초점을 맞춰 단위테스트의 목적, 설계 방법, 케이스 도출 기법을 설명하며, Spring Framework 기반 Petclinic 샘플 애플리케이션을 예시로 활용합니다. 프로젝트에서 단위테스트를 코드 레벨부터 화면, 배치, 인터페이스까지 포괄적으로 정의하고, PMS(프로젝트 관리 시스템)에 업로드하여 테스트 준비를 강조합니다. 아래는 주요 섹션별 요약입니다.

1. 개요 (페이지 1-4)

  • 목적: 단위테스트 레벨에서 요건 도출, 테스트 설계로 품질 이슈 조기 발견. 최소한의 케이스로 최대 결함 발견, PMS 업로드로 테스트 준비.
  • 단위테스트 정의 (vs 통합테스트): 프로그램의 기본 모듈(클래스, 함수, 화면 등) 테스트. 목적: 통합 전 결함/위험 감소. 수행 주체: 개발자 (또는 테스터). 프로젝트에서는 코드뿐만 아니라 화면/배치/보고서/연계까지 포함 (클라우드 아키텍처 관점).
  • 테스트 설계 목적: 빠짐없는 커버리지 확보, 효율적 결함 발견. 설계 없이 임의 테스트 시 누락/중복 발생. 설계 검토로 협업 강화.

2. 기본 테스트 설계 기법 (페이지 5-6)

  • 동등분할 (Equivalence Partitioning): 입력값 그룹화 (유효/무효), 각 그룹 대표값 테스트 (e.g., 나이: 0-20세, 21-30세 등).
  • 경계값 분석 (Boundary Value Analysis): 그룹 경계값 테스트 (e.g., 20세, 21세).
  • 결정테이블 (Decision Table): 입력 조합별 결과 그룹화, 대표 케이스 도출 (e.g., 나이/성별별 월납입액 테이블로 10개 TC 생성).
  • 상태전이 테스팅 (State Transition): 상태 다이어그램 기반 (e.g., 계약 상태 변화).

3. 단위테스트 시나리오/케이스 구성 및 ID 규칙 (페이지 7-9)

  • 구성: 시나리오 - 테스트 단위(화면 등) 1:1 매핑. 케이스 - 다양한 테스트 (분기별 분리, 데이터 차이 시 하나로 표기).
  • ID 생성 규칙: UTC_시스템_서브시스템_프로그램ID_시퀀스 (e.g., UTC_AR_AID_pgm123_01_001). 통합테스트(ITS)도 유사.
  • 양식 항목: 테스트 유형, 시스템/서브, 시나리오/케이스 ID/명, 수행내역, 사전조건, 데이터, 예상결과, 연결 프로그램/화면 등.
  • 설계 수준 선택: 핵심 프로그램 - 상세 케이스 + 체크리스트. 일반 - 체크리스트 기반.

4. 화면 대상 단위테스트 설계 (페이지 10-14)

  • 방안: 화면설계서 기반. 구현관점 (UI/이벤트 체크리스트), 업무관점 (유스케이스/흐름도 기반 케이스).
  • 체크리스트:
    • UI (G): 깨짐/누락, 표준 준수, 초기화.
    • Validation/Init: 메시지 정확성, 키 이동, 권한 체크.
    • 조회 (R): 일치/조건/정렬/누락.
    • 등록 (C): 필수/길이/중복/형식 체크, 데이터 일치, 재등록.
    • 수정 (U): 보호 항목, 데이터 일치.
    • 삭제 (D): 유관 데이터, 선택/확인/불가 처리.
    • 파일 Export (E): 형식/경로/첨부/전체 데이터.
    • 출력 (P): 수행/공통/일치/형식.
    • 연계 (L): 팝업 값 전달, 외부 이동.
    • 업무로직: 업무 기반 재정의 (e.g., 실명번호 변경, 소급 등록).
  • 샘플 사례: [지급처리] 화면 - 고객유형/지급사유/수령구분/계좌여부/결과 조합으로 TC 도출 (결정테이블 사용).

5. 코드 대상 단위테스트 설계 (페이지 15-18, Petclinic 예시)

  • 레이어 특성: Controller (저우선: UI 중심), Service (고우선: 비즈니스 로직), Repository (중간: DB 작업).
  • 단위 vs 통합: 단위 - 개별 메소드, 통합 - 흐름/연동. 커버리지: 실행 여부만, 100% ≠ 완벽 (참조 지표).
  • 접근: 블랙박스 (기능 테스트), 화이트박스 (코드 구조 기반, EclEmma로 라인/브랜치 커버리지 측정).
  • 예시 (savePet): 정상 저장, null 예외, Mock (Repository 대체), JdbcTemplate (쿼리 확인), Exception 테스트.
  • 커버리지 향상: null 체크 추가로 분기 커버 (빨강 → 초록).

이 자료는 실무적 테스트 설계 가이드를 제공하며, 체크리스트와 Petclinic 코드/커버리지 이미지가 풍부합니다. 프로젝트에서 단위테스트를 체계적으로 준비하여 품질 향상을 목표로 합니다.