1. 목표

더보기

(1) 소프트웨어 개발에서 테스트의 위치 

 

소프트웨어 개발 생명주기(SDLC)에서 테스트는 

  1. 요구사항 분석
  2. 설계
  3. 구현(코딩)
  4. 테스트
  5. 배포
  6. 유지보수

단계에서 테스트 단계의 목적은 단순히 "에러가 없는지 확인"이 아니라

  • 요구사항이 정확히 구현되었는지
  • 기능이 의도한 시나리오대로 동작하는지
  • 잘못된 입력이나 예외 상황에서도 안전하게 동작하는지
  • 시스템 구성 요소들이 서로 정상적으로 연동되는지

만들어진 소프트웨어가 실제로 사용 가능한 상태인지 검증하는 단계입니다.

 

 

(2) 소프트웨어 개발 테스트 단계 개요

 

단계 테스트 명칭 핵심 목적
1단계 단위 테스트(Unit Test) 개별 기능 검증
2단계 통합 테스트(Integration Test) 모듈 간 연동 검증
3단계 시스템 테스트(System Test) 전체 시스템 검증
4단계 인수 테스트(Acceptance Test) 사용자 요구 충족 여부 확인

 

 

(3) 본 프로젝트에서는 단위 테스트보다는,
실제 사용 환경을 가정한 시스템 테스트 및 시나리오 기반 테스트를 중심으로 검증을 수행하였다.


2. 핵심 작업

더보기

A. 기능 테스트 (Functional Test)

  • 각 기능이 요구사항대로 동작하는지 확인

  • 도서 관리 기능
    1. 도서 등록
    2. 도서 조회
    3. 도서 삭제

  • 회원 관리 기능
    1. 회원 등록
    2. 회원 검색
    3. 회원 삭제

  • 대출/반납 기능
    1. 회원 조회 성공 시 대출 목록 표시
    2. 대출 가능 도서 대출 성공
    3. 이미 대출 중인 도서 대출 불가
    4. 반납 시 상태 정상 복구
    5. 연장 시 날짜/횟수 증가 확인


B. UI 테스트 (GUI Test)

  • 화면 구성과 사용자 경험 검증
  • GUI 프로젝트에서는 눈으로 확인하는 테스트도 정식 테스트 작업
  • 버튼 클릭 시 즉시 반응하는지
  • 상태 라벨이 적절히 변경되는지
  • 테이블이 갱신될 때 이전 데이터가 남지 않는지
  • 페이지 전환 시 이전 페이지 상태가 섞이지 않는지
  • 한글 폰트 깨짐 여부

 

C. 시나리오 테스트 (Use Case / Flow Test)

  • 사용자의 실제 사용 흐름을 기준으로 전체 동작 검증

  • 시나리오 1: 정상 대출 흐름
    1. 회원 관리 페이지에서 회원 등록
    2. 도서 관리 페이지에서 도서 등록
    3. 대출/반납 페이지 이동
    4. 회원 조회
    5. 도서 ID 입력 후 대출 실행
    6. 대출 목록 테이블 갱신 확인
    7. 도서 관리 페이지에서 상태 "대출 중" 확인

  • 시나리오 2: 반납 흐름
    1. 대출 목록에서 도서 선택
    2. 반납 버튼 클릭
    3. 대출 목록에서 제거 확인
    4. 도서 관리 페이지에서 상태 "대출 가능" 확인

 

D. 예외 및 오류 처리 테스트 (Negative Test)

  • 잘못된 입력이나 비정상 상황에서도 프로그램이 안정적으로 동작하는지 확인
  • 입력값 누락
    • 빈 도서 ID
    • 빈 회원 ID
  • 선택 없이 삭제/반납/연장 버튼 클릭
  • 존재하지 않는 회원 ID로 조회
  • 존재하지 않는 도서 ID로 대출 시도
  • 동일 제목 도서가 여러 권 있을 때 제목으로 대출 시도

 

E. 데이터 무결성 테스트 (Data Integrity Test)

  • DB 데이터가 일관성 있게 유지되는지 확인
  • 대출 성공 시
    • issues 테이블에 레코드 추가
    • books.is_available = FALSE
  • 반납 성공 시
    • issues 레코드 삭제
    • books.is_available = TRUE
  • 연장 시
    • renew_count 증가
    • issue_date 갱신

 

ㄴ2.1 [A] 기능(Function) 테스트 체크리스트 샘플

더보기

테스트 단계에서는 "기능이 되는지"뿐 아니라 "잘못된 상황에서도 안전하게 동작하는지"를 체계적으로 검증해야 합니다.

 

구분 테스트 항목 테스트 내용 기대 결과 결과(O/X) 비고
회원관리 회원 등록 필수 항목 미입력 경고 메시지 출력    
  회원 등록 정상 등록 DB 저장 및 목록 반영    
  회원 조회 조건 검색 조건에 맞는 회원 조회    
  회원 삭제 회원 삭제 삭제 반영    
구분 테스트 항목 테스트 내용 기대 결과 결과(O/X) 비고
도서관리 도서 등록 중복 ID 등록 실패 메시지    
  도서 조회 제목/저자 검색 검색 결과 표시    
  도서 삭제 선택 삭제 테이블 갱신    
구분 테스트 항목 테스트 내용 기대 결과 결과(O/X) 비고
대출/반납 회원 조회 회원 ID 대출 목록 표시    
  도서 대출 대출 가능 도서 대출 성공    
  도서 반납 반납 상태 복구    
  연장 연장 실행 연장 횟수 증가    

 

 

ㄴ 2.2 [B] UI 테스트 (GUI Test) 샘플

더보기
구분 테스트 항목 테스트 내용 기대 결과 결과(O/X) 비고
공통 화면 전환 사이드바 버튼 클릭 해당 페이지 즉시 표시    
공통 테이블 선택 행 클릭 시 강조 표시 선택 행 명확    
공통 상태 라벨 작업 후 상태 표시 상태 문구 갱신    
입력 Placeholder 입력 전 힌트 표시 입력 목적 인지    
입력 빈 값 처리 입력 없이 등록 경고 메시지    
입력 공백 처리 공백 입력 자동 trim    
메시지 성공 메시지 등록/삭제 성공 성공 안내 표시    
메시지 실패 메시지 중복/오류 발생 원인 안내    
메시지 확인 창 삭제/반납 시 Yes/No 선택    
테이블 데이터 갱신 등록/삭제 후 즉시 반영    
테이블 빈 결과 검색 결과 없음 빈 테이블 유지    
흐름 회원 미조회 대출 회원 없이 대출 시도 경고 표시    
흐름 대출 후 상태 대출 완료 대출 중 표시    
흐름 반납 후 상태 반납 완료 대출 가능 표시    


ㄴ 2.3 [C] 시나리오 테스트(Use Case / Flow Test) 샘플

더보기

사용자가 실제로 프로그램을 사용하는 순서대로 기능이 정상 동작하는지 검증한다.

화면 전환, 입력, DB 반영, 테이블 갱신, 상태 표시가 “끝까지” 이어지는지 확인한다.

 

 

시나리오 1: 정상 대출 흐름(회원 등록 → 도서 등록 → 대출 처리 → 상태 확인)

 

사전 준비(테스트 데이터 예시)

  • 회원 ID: M001
  • 도서 ID: B001

테스트 절차

  1. 프로그램 실행 후, 좌측 메뉴에서 **"회원 관리"**로 이동한다.
  2. 회원 등록 입력란에 아래 정보를 입력한다.
    • 회원 ID: M001
    • 이름: 홍길동
    • 연락처: 010-1234-5678
    • 이메일: hong@test.com
  3. [회원 등록] 버튼을 클릭한다.
  4. 성공 메시지(등록되었습니다)가 표시되는지 확인한다.
  5. 테이블에 M001 회원이 추가되었는지 확인한다.
  6. 좌측 메뉴에서 **"도서 관리"**로 이동한다.
  7. 도서 등록 입력란에 아래 정보를 입력한다.
    • 도서 ID: B001
    • 제목: 파이썬 입문
    • 저자: 김코딩
    • 출판사: 코딩출판
  8. [도서 등록] 버튼을 클릭한다.
  9. 성공 메시지(등록되었습니다)가 표시되는지 확인한다.
  10. 테이블에 B001 도서가 추가되었는지 확인한다.
  11. B001 도서의 상태가 **"대출 가능"**인지 확인한다.
  12. 좌측 메뉴에서 **"대출 / 반납"**으로 이동한다.
  13. 회원 조회 영역에 회원 ID = M001을 입력한다.
  14. [회원 조회] 버튼을 클릭한다.
  15. 성공 메시지(회원 조회 성공)가 표시되는지 확인한다.
  16. 대출 목록 테이블이 조회되며, 초기에는 0건 또는 기존 대출 목록이 표시되는지 확인한다.
  17. 도서 대출 영역에 도서 ID = B001을 입력한다.
  18. [대출 실행] 버튼을 클릭한다.
  19. 성공 메시지(대출되었습니다)가 표시되는지 확인한다.
  20. 대출 목록 테이블이 자동으로 갱신되며 B001 도서가 표시되는지 확인한다.
    • 도서 ID / 제목 / 대출일 / 연장횟수 / 회원ID 값 확인
  21. 좌측 메뉴에서 **"도서 관리"**로 이동한다.
  22. B001 도서의 상태가 **"대출 중"**으로 변경되었는지 확인한다.

체크리스트

시나리오 단계 작업 내용 입력 값 기대 결과 테스트 결과 비고
정상 대출 흐름 1 회원 관리 페이지 이동 - 회원 관리 화면 표시    
정상 대출 흐름 2 회원 등록 M001 / 홍길동 회원 등록 성공    
정상 대출 흐름 3 도서 관리 페이지 이동 - 도서 관리 화면 표시    
정상 대출 흐름 4 도서 등록 B001 / 파이썬 입문 도서 등록 성공    
정상 대출 흐름 5 대출/반납 페이지 이동 - 대출 화면 표시    
정상 대출 흐름 6 회원 조회 M001 회원 조회 성공    
정상 대출 흐름 7 도서 대출 실행 B001 대출 성공 및 목록 갱신    
정상 대출 흐름 8 도서 상태 확인 B001 상태: 대출 중    

 

 


ㄴ 2.4 [D] 예외 및 오류 처리 테스트 (Negative Test)

더보기
구분 테스트 항목 테스트 내용 기대 결과 결과(O/X) 비고
입력 공백 모든 입력 공백 경고 출력    
입력 잘못된 값 없는 ID 조회 실패    
로직 중복 대출 이미 대출 대출 불가    
로직 다중 결과 동일 제목 추가 안내    
시스템 DB 장애 연결 차단 비정상 종료 없음    


ㄴ 2.4 [E]  데이터 무결성 테스트 (Data Integrity Test)

더보기

1 회원 데이터 무결성

  • 동일한 member_id로 회원을 중복 등록할 수 없는가
  • 회원 삭제 시 해당 회원의 대출 기록이 남아 있는 경우 처리 정책이 명확한가
  • 회원 조회 실패 시 current_member_id가 초기화되는가

2 도서 데이터 무결성

  • 동일한 book_id로 도서를 중복 등록할 수 없는가
  • 대출 중인 도서(is_available = FALSE)는 다시 대출되지 않는가
  • 반납 후 도서 상태가 반드시 "대출 가능(TRUE)"으로 변경되는가

3 대출(issues) 데이터 무결성

  • 대출 시 issues 테이블에 정확한 book_id, member_id가 저장되는가
  • 대출 성공 후 books.is_available 값이 FALSE로 변경되는가
  • 반납 시 issues 레코드가 삭제되는가
  • 반납 성공 후 books.is_available 값이 TRUE로 복구되는가

4 연장 데이터 무결성

  • 연장 시 renew_count가 정확히 +1 되는가
  • 연장 시 issue_date가 갱신되는가
  • 연장 대상이 없는 경우(선택 없음) DB 변경이 발생하지 않는가

5 체크리스

구분 테스트 항목 테스트 내용 기대 결과 결과(O/X) 비고
회원 회원 ID 중복 방지 동일한 member_id로 회원 등록 시도 등록 실패 및 오류 메시지 표시    
회원 회원 조회 실패 처리 존재하지 않는 회원 조회 조회 실패 메시지 및 상태 초기화    
도서 도서 ID 중복 방지 동일한 book_id로 도서 등록 등록 실패 및 오류 메시지 표시    
도서 대출 가능 상태 변경 도서 대출 실행 books.is_available = FALSE    
도서 반납 상태 복구 도서 반납 실행 books.is_available = TRUE    
대출 대출 기록 생성 정상 대출 실행 issues 테이블에 레코드 생성    
대출 반납 기록 삭제 정상 반납 실행 issues 테이블에서 레코드 삭제    
연장 연장 횟수 증가 연장 버튼 클릭 renew_count +1 증가    
연장 연장 날짜 갱신 연장 실행 issue_date 갱신