기출 소프트웨어 테스트 생명주기 핸들링

agnusdei·2025년 6월 18일

Software Engineering

목록 보기
21/59

✅ 문제 요약

소프트웨어 시험에 대해 시험 통과 기준, 시험 환경 구성, 테스트 생명주기 단계별 활동, 시험 전략, 오류 발생 시 해결 과정 및 시험 문서화 방안을 설명하시오.


✅ 1. 개념

● 소프트웨어 시험(Software Testing)

소프트웨어의 품질을 보증하기 위해 요구사항에 부합하는지 검증하고 결함을 식별하는 활동.


✅ 2. 시험 통과 기준 (Test Exit Criteria)

항목설명
기능 테스트 통과율전체 기능 중 요구 기능이 95% 이상 통과
결함 밀도KLOC(1,000라인당 결함 수)가 기준 이하 (ex. 0.5 이하)
심각한 결함 없음Critical 또는 Blocker 레벨의 결함이 없어야 함
테스트 커버리지명세 기반 테스트 커버리지가 90% 이상
리스크 커버리지고위험 기능 테스트 완료 및 결함 없음 확인

✅ 3. 시험 환경 구성 (Test Environment Configuration)

항목설명
하드웨어 구성실제 운영 환경을 모사한 서버, 클라이언트 구성
소프트웨어 구성OS, 미들웨어, DBMS, 테스트 대상 소프트웨어 버전 등
테스트 도구자동화 도구 (예: Selenium, JUnit), 결함 추적 도구 (예: JIRA)
네트워크 구성실제 운영 환경과 동일한 네트워크 세팅
가상화/컨테이너 활용Docker 등으로 테스트 환경 일관성 확보

✅ 4. 소프트웨어 시험 생명주기 (Software Test Lifecycle)

단계주요 활동
① 테스트 계획 수립 (Test Planning)목표, 범위, 일정, 인력, 리스크 식별 및 계획 수립
② 테스트 분석 (Test Analysis)요구사항 기반 테스트 조건 도출
③ 테스트 설계 (Test Design)테스트 케이스/시나리오 설계 및 테스트 데이터 정의
④ 테스트 구현 (Test Implementation)테스트 케이스 구현, 스크립트 작성, 테스트 환경 구축
⑤ 테스트 실행 (Test Execution)테스트 수행, 결함 발견 시 보고 및 추적
⑥ 결함 추적 및 재시험 (Defect Tracking & Retest)결함 수정 후 재시험 수행
⑦ 테스트 종료 (Test Closure)테스트 종료 기준 만족 여부 확인, 테스트 요약 보고서 작성

✅ 5. 시험 전략 (Test Strategy)

전략 유형설명
빅뱅 테스트(Big Bang)모든 모듈을 통합한 후 일괄 테스트 수행
하향식 통합 테스트상위 모듈부터 점진적으로 하위 모듈 통합
상향식 통합 테스트하위 모듈부터 상위로 통합 테스트
리스크 기반 테스트중요 기능, 고위험 기능 우선 테스트
테스트 자동화 전략반복 테스트 자동화로 효율성 확보
정적 테스트 전략코드 실행 없이 리뷰, 정적 분석 등으로 오류 사전 탐지

✅ 6. 시험 중 오류 발생 시 해결 과정

단계활동
① 오류 식별로그 분석, 스택 트레이스 확인 등으로 오류 위치 파악
② 오류 분류오류의 심각도(Critical, Major, Minor) 판단
③ 오류 보고결함 추적 도구에 상세 내용 등록 (재현 절차 포함)
④ 오류 수정개발팀에서 원인 분석 후 수정
⑤ 재시험 수행동일 테스트 케이스로 오류 수정 여부 확인
⑥ 회귀 테스트주변 기능에 영향 없는지 확인 위한 재검증

✅ 7. 시험 문서화(Test Documentation)

문서 종류설명
시험 계획서 (Test Plan)목표, 범위, 방법, 자원, 일정 등 포함된 전략 문서
시험 케이스 (Test Case)테스트 입력, 절차, 기대 결과 명시
시험 시나리오 (Test Scenario)사용자 시나리오 기반의 테스트 흐름 정리
결함 보고서 (Bug Report)발생 결함의 상세 정보 문서화
테스트 요약 보고서 (Test Summary Report)수행 내역, 결함 통계, 통과율 등 최종 요약

✅ 핵심 용어 정리

용어의미
테스트 케이스(Test Case)입력값, 절차, 기대 결과 포함한 개별 테스트 단위
결함(Bug, Defect)요구사항과 실제 결과가 불일치하는 상태
테스트 커버리지(Test Coverage)테스트가 소프트웨어 요구사항을 얼마나 다루는지 측정
정적 테스트(Static Testing)실행 없이 문서, 코드 검토로 오류 탐지
동적 테스트(Dynamic Testing)소프트웨어 실행 후 결과 확인하는 테스트 방식

✅ 어린이 버전 요약

소프트웨어가 잘 작동하는지 시험하는 거예요. 시험하려면 계획을 세우고, 컴퓨터 환경을 준비하고, 하나씩 기능을 점검해요. 문제가 생기면 고치고 다시 확인해요. 마지막으로 무엇을 시험했고, 어떤 문제가 있었는지 기록해요. 시험에 통과하려면 모든 기능이 잘 돌아가야 하고, 중요한 문제는 없어야 해요!


✅ 마무리 요약

소프트웨어 시험은 품질을 확보하고 사용자 요구사항에 맞게 개발되었는지를 검증하는 핵심 활동입니다. 시험 통과 기준, 환경 구성, 생명주기별 활동, 전략적 접근, 오류 대응 및 문서화 체계를 통해 효과적으로 결함을 식별하고 개선할 수 있습니다.


profile
DevSecOps Pentest🚩

0개의 댓글