티스토리 뷰

설정 관리와 결함 관리

 

1. 설정 관리(Configuration Management)

설정 관리는 테스트 계획, 테스트 전략, 테스트 조건, 테스트 케이스, 테스트 스크립트, 테스트 결과 등 다양한 작업 산출물을 구성 항목으로 식별, 통제 및 추적하기 위한 체계를 제공한다. 설정 관리는 소프트웨어 개발 및 테스트 프로세스에서 필수적인 요소로, 특히 복잡한 시스템에서는 효과적인 구성 관리를 통해 혼란을 줄이고 추적성을 확보할 수 있다.

1-1. 설정 관리의 주요 역할

  1. 구성 요소 및 관계 기록
    • 복잡한 테스트 환경과 구성 요소의 관계를 문서화하고 관리한다.
    • 예: 데이터베이스, API, UI 모듈 간의 종속성 기록.
  2. 기준선 관리
    • 테스트를 위해 승인된 구성 항목은 기준선으로 설정되며, 기준선 변경은 공식적인 절차를 통해 이루어진다.
  3. 버전 관리
    • 구성 항목의 변경 이력을 추적하고, 필요 시 이전 버전으로 복원할 수 있다.
  4. 재현성 보장
    • 이전 테스트 결과를 재현하기 위해 필요한 모든 구성 항목과 환경을 복원할 수 있다.

1-2. 설정 관리와 테스트 지원

  1. 고유 식별
    • 모든 구성 항목과 테스트 항목은 고유하게 식별되며, 버전 관리와 변경 이력을 추적한다.
  2. 문서화된 참조
    • 식별된 항목은 테스트 문서에서 명확히 참조되어 모호함을 방지한다.
  3. 자동화 및 DevOps와의 통합
    • 지속적 통합(CI), 지속적 제공(CD), 지속적 배포 파이프라인에서 자동화된 설정 관리 도구(Jenkins, GitLab 등)를 활용하여 테스트 환경과 항목을 관리한다.

2. 결함 관리(Defect Management)

테스트의 주요 목표 중 하나는 결함을 식별하고 이를 효율적으로 관리하는 것이다. 결함 관리는 결함이 발견된 시점부터 종료될 때까지의 전 과정을 체계적으로 관리하여 소프트웨어 품질을 개선하는 데 기여한다.

2-1. 결함 관리 프로세스의 구성 요소

  1. 이상현상 기록
    • SDLC의 모든 단계에서 발생한 이상현상을 기록한다.
  2. 결함 분석 및 분류
    • 보고된 이상현상이 실제 결함인지, 거짓 양성인지, 변경 요청인지 분류한다.
  3. 대응 결정
    • 결함을 수정할지 유지할지 결정하고 우선순위를 설정한다.
  4. 결함 종료
    • 수정된 결함은 확인 테스트를 통해 폐기하거나, 필요한 경우 보류 상태로 유지한다.

2-2. 결함 관리 도구

  • Jira, Bugzilla, Redmine과 같은 결함 관리 도구는 결함 추적과 상태 관리에 널리 사용된다.

2-3. 정적 테스트에서의 결함 관리

  • 정적 분석에서 발견된 결함도 결함 관리 프로세스를 통해 처리한다.
  • 예: 코드 리뷰에서 발견된 표준 위반은 동적 테스트 결함과 동일한 절차로 기록 및 관리한다.

3. 결함 보고서의 목적

결함 보고서는 보고된 결함을 관리하고 해결하는 데 필요한 정보를 제공하며, 테스트 활동과 소프트웨어 품질을 개선하는 데 기여한다.

결함 보고서의 주요 목적

  1. 결함 관리
    • 결함이 수정될 수 있도록 충분한 정보를 제공한다.
  2. 품질 추적
    • 작업 산출물의 품질을 지속적으로 평가하고 추적할 수 있는 수단을 제공한다.
  3. 프로세스 개선
    • 반복적으로 발생하는 결함을 분석하여 개발 및 테스트 프로세스 개선에 활용한다.

4. 결함 보고서의 내용

결함 보고서는 결함을 효율적으로 해결하기 위해 필요한 모든 정보를 포함해야 한다.

4-1. 필수 요소

  1. 고유 식별자
    • 각 결함은 시스템 내에서 중복되지 않는 고유한 ID를 부여받는다.
  2. 이상현상 요약
    • 관찰된 결함을 간단히 설명한 제목.
  3. 발견된 날짜 및 작성자 정보
    • 결함이 보고된 시점과 작성자의 역할 및 조직 정보.
  4. 테스트 맥락
    • 결함이 발생한 테스트 케이스, 실행 중이던 테스트 활동, SDLC 단계.
  5. 재현 정보
    • 재현 단계, 사용된 테스트 데이터, 스크린샷, 녹화 자료.
  6. 결함 심각도 및 우선순위
    • 심각도: 결함이 제품이나 사용자에게 미치는 영향.
    • 우선순위: 수정의 긴급성.
  7. 결함 상태
    • 열림, 연기됨, 중복, 수정 대기 등 상태.

4-2. 자동화된 데이터 포함

  • 결함 관리 도구는 ID, 날짜, 작성자 정보, 초기 상태 등의 데이터를 자동으로 기록한다.

5. 결함 보고서 작성 사례

5-1. UI 결함

  • 고유 ID: UI-001.
  • 요약: 로그인 화면에서 비밀번호 입력 시 마스킹이 제대로 작동하지 않음.
  • 발견 날짜: 2025-01-12.
  • 맥락: Windows 10, Chrome 브라우저 버전 108.
  • 재현 단계:
    1. 로그인 페이지 열기.
    2. 비밀번호 입력 시 텍스트가 그대로 표시됨.
  • 심각도: 높음(보안 위험).
  • 우선순위: 높음.

5-2. API 결함

  • 고유 ID: API-105.
  • 요약: 상품 정보 조회 API 호출 시 응답 시간이 10초 이상 소요됨.
  • 발견 날짜: 2025-01-11.
  • 맥락: AWS 환경, v1.2.5 API 버전.
  • 재현 단계:
    1. 상품 정보 조회 API 호출.
    2. 응답 시간 기록(평균 12초).
  • 심각도: 중간(성능 저하).
  • 우선순위: 중간.

6. 설정 관리와 결함 관리의 중요성

설정 관리는 복잡한 테스트 환경과 구성 요소를 체계적으로 관리하고, 이전 결과를 재현할 수 있는 기반을 제공한다. 결함 관리는 테스트 과정에서 발견된 결함을 효율적으로 추적하고 해결하며, 제품 품질 개선과 프로세스 최적화에 기여한다. 이 두 가지 관리 활동은 소프트웨어 테스트와 개발 프로세스의 성공을 보장하는 핵심 요소이다.

결함 관리는 단순히 발견된 문제를 해결하는 데 그치지 않고, 반복적으로 발생하는 문제를 분석하여 제품과 프로세스의 전반적인 개선으로 이어질 수 있다. 또한, 설정 관리를 통해 구성 요소 간의 관계와 변경 이력을 명확히 추적함으로써, 팀 간 협업을 원활히 하고 불필요한 시간 낭비를 줄일 수 있다. 이러한 체계적인 접근은 특히 복잡한 시스템에서 테스트 프로세스의 효율성을 높이고, 고객에게 안정적이고 신뢰할 수 있는 제품을 제공하는 데 필수적이다.

'소프트웨어 테스팅' 카테고리의 다른 글

애자일 접근 방식과 스크럼  (0) 2025.01.14
전체 팀 접근 방식과 초기/빈번한 피드백  (0) 2025.01.14
애자일 소프트웨어 개발  (0) 2025.01.13
테스트 도구  (1) 2025.01.13
테스트 모니터링, 통제 및 완료  (0) 2025.01.13
리스크 관리  (0) 2025.01.13
테스트 계획 및 추정  (0) 2025.01.13
테스트 활동 관리  (0) 2025.01.13