정보처리/소프트웨어개발
애플리케이션 테스트 관리 통합 테스트 2/2
피갓자
2025. 5. 3. 09:00
애플리케이션 테스트 결과 분석
테스트 결과 분석
소프트웨어 결함
- 개발자 오류로 인해 만들어지는 문서 또는 코딩상의 결점으로 소프트웨어가 개발자가 설계한 것과 다르게 동작하거나 다른 결과가 발생하는 현상
결함 관련 용어
- 오류(Error) : 결함(Defect)의 원이니 되는 것으로, 일반적으로 사람(소프트웨어 개발자, 분석가 등)에 의해 생성된 실수(Human Mistake)
- 결점(Fault) : 소프트웨어 개발 활동을 수행하면서 시스템이 고장(Failure)을 일으키게 하며, 오류(Error)가 있는 경우 발생하는 현상
- 버그(Bug) : 프로그램 오류로 인해 예상치 못한 결과가 나는 현상
- 고장(Failure) / 문제(Problem) : 소프트웨어 제품에 포함된 결함이 실행될 때 발생하는 현상
테스트 완료 조건
- 단위 테스트, 통합 테스트, 시스템 테스트, 인수 테스트 등 단계별 테스트를 언제 어떤 상황에서 종료할 것인지를 결정하는 기준
- 프로젝트 특성에 따라 일정, 비용, 조직 등에 제약이 있으므로, 최적의 완료 조건을 계획하여야 함
테스트 리포팅
- 테스트 결과 정리, 테스트 요약 문서, 품질 상태, 테스트 결과서, 테스트 실행 절차 및 평가를 포함
결함 관리
결함 관리 개념
- 단계별 테스트 수행 후 발생한 결함의 재발 방지와 유사 결함 발견 시 처리 시간 단축을 위해 결함을 추적하고 관리하는 활동
결함 관리 프로세스
- 결함 관리 계획 : 전체 프로세스에서 결함 관리에 대한 일정, 인력, 업무 프로세스를 확보하여 계획을 수립하는 것
- 결함 기록 : 테스터는 발견된 결함에 있어서 주요 내용을 검토하고, 결함을 수정할 개발자에게 전달
- 결함 검토 : 등록된 결함에 있어서 주요 내용을 검토하고, 결함을 수정할 개발자에게 전달
- 결함 수정 : 개발자는 할당된 결함의 프로그램 수정
- 결함 재확인 : 테스터는 개발자가 수정한 내용을 확인하고 다시 테스트 수행
- 결함 상태 추적 및 모니터링 활동 : 결함 관리 팀장은 결함 관리 데이터베이스를 이용하여 대시보드 또는 게시판 형태의 서비스 제공
- 최종 결함 분석 및 보고서 작성 : 발견된 결함에 관한 내용과 이해관계자들의 의견이 반영된 보고서를 작성하고 결함 관리 종료
결함 생명주기
결함 등록(Open)
- 테스터가 테스트 절차를 실행하여 발견한 결함을 분석 후 구체화, 고립화, 일반화한 결함으로서 보고된 상태
- 결함 보고서에 기록되어 결함 추적의 대상이 된 상태
결함 검토(Reviewed)
- Open 된 결함의 처리 방안을 검토하는 상태
- 각 결함은 위험성(발생 가능성, 심각성, 긴급성)을 바탕으로 이번에 수정(Assigned 상태로 이동)되거나, 다음 릴리스에서 수정(Deferred 상태로 이동)되거나 무시(Closed 상태로 이동)될 수 있음
결함 할당(Assigned)
- 결함을 수정할 개발자가 결정되고, 그 개발자에게 결함 해결이 요구된 상태
결함 수정(Resolved)
- 개발자가 자신에게 할당된 수정 사항에 대한 해결을 처리한 상태
결함 확인(Verified)
- 개발자의 결함 처리가 합당한지, 정확한지 검증이 완료된 상태
결함 종료(Closed)
- 수정된 사항에 대하여 정확한 수정이 이루어졌다고 판단되어 종료된 상태
결함 재등록(Reopen)
- 결함이 정확하게 수정되지 않아서 다시 수정을 요구하는 상태
결함 조치 보류(Deferred)
- Open 된 결함을 곧바로 수정하지 않고 다음 릴리스에서 해결하기로 연기된 상태
- deferred 된 결함은 적절한 시점에 Reopen 되어 결함 처리가 시작될 수 있음
애플리케이션 개선 조치사항 작성
테스트 커버리지
테스트 커버리지(Test Coverage) 개념
- 주어진 테스트 케이스에 의해 수행되는 소프트웨어의 테스트 범위를 측정하는 테스트 품질 측정 기준
- 테스트의 정확성과 신뢰성을 향상하는 역할
테스트 커버리지 유형
기능 기반 커버리지
- 테스트 대상 애플리케이션의 전체 기능을 모수로 설정하고, 실제 테스트가 수행된 기능의 수를 측정하는 방법
- 100% 달성을 목표로 하며, 일반적으로 UI가 많은 시스템의 경우 화면 수를 모수로 사용
라인 커버리지
- 애플리케이션 전체 소스 코드의 라인 수를 모수로 테스트 시나리오가 수행한 소스 코드의 라인 수를 측정하는 방법
- 단위 테스트에서는 이 라인 커버리지를 척도로 삼음
코드 커버리지
- 소프트웨어 테스트 충분성 지표 중 하나
- 소스 코드의 구문, 조건, 결정 등의 구조 코드 자체가 얼마나 테스트 되었는지를 측정하는 방법
- 일반적으로 테스트 커버리지라고 하면 코드 커버리지를 일컬음
결함의 식별 및 관리
결함 심각도별 분류
치명적(Critical) 결함
- 기능이나 제품의 테스트를 완전히 방해하거나 못 하게 하는 결함
- 데이터 손실, 시스템 충돌
주요(Major) 결함
- 기능이 기대와 많이 다르게 동작하거나 그 기능이 해야 하는 것을 못 하는 결함
- 기능 장애
보통(Normal) 결함
- 제품이나 프로그램이 특정 기준을 충족하지 못하거나 전체에 영향을 주지 않는 일부 기능이 부자연스러운 결함
- 사소한 기능 오작동
경미한(Minor) 결함
- 사용상의 불편함을 유발하는 결함
- 표준 위반, UI 잘림
단순(Simple) 결함
- 사소한 버그라고 하며, 기능에는 영향이 없지만 수정되어야 하는 결함
- 미관상 좋지 않음