본문 바로가기

CSTS

5. 위험 기반 테스트

위험 분석


위험 요소 식별

위험 분석 기반 테스트 수행 시 우선 기능 및 비기능적 모든 요소(피처)를 나열함

나열된 피처는 이후에 수행되는 위험 분석의 대상이 되고 위험 분석 결과에 따라 테스트 계획 수립

  • 피처는 요구사항 명세서를 바탕으로 구할 수 있음
  • 요구사항 명세서가 완전하지 못해서 누락될 가능성이 있다면
    품질 모델을 바탕으로 하여 적극적으로 테스트할 피처를 찾을 수 있음
  • 시스템 유형에 따라 강조되는 품질 요소가 다를 수 있음

위험도 산정

도출된 피처 후보 중 무엇을 테스트 대상에 포함할지에 대한 결정과 효과적인 테스트 전략의 결정을 위해 위험도 산정

각 피처 후보의 위험도 산정은 발생 가능성, 심각성, 긴급성을 바탕으로 수행

각 산정 항목마다 3가지 및 5가지 등급으로 세분화될 수 있음

 

장애 발생 가능성 고려 측면

  • 기술적인 복잡성 측면 : 구현 자체에 복잡성이 많다면 장애 발생 가능성도 클 수 있음
  • 해당 피처와 관련된 결함이 소프트웨어 개발 공정에서 검출되어 제거될 수 있는지 고려할 필요가 있음
    해당 결함이 상세 설계 명세서 또는 코드 리뷰를 통해 발견되고 제거될 가능성이 크다면 동적 테스트는 덜 해도 됨
  • 사용자가 해당 기능을 사용하는 빈도도 장애 발생 가능성에 영향을 줄 수 있음
    빈번하게 이용하는 기능일수록 더 자주 관련 장애가 발생할 수 있기 때문

심각성

  • 피처에 기술된 시스템의 기능 및 비기능적 요소가 기대한 대로 동작하지 않을 때 사용자에게 미치는 영향

긴급성

  • 해당 피처와 관련된 장애가 발생했을 때 얼마나 시급한 수정이 필요한가로 등급을 세분화
  • 시스템 관련 사용자 및 이해당사자를 모두 파악하고 이해당사자별 시급한 기능/비기능 조사하여 긴급성에 반영

위험 기반 테스트 수행


주어진 일정과 비용 내에서 중요한 테스트 대상을 결정하고,

더 집중적으로 테스트할 피처를 선정하는 데 위험 분석 결과가 사용됨

 

  • 고강도 테스트 : 매우 높은 위험도를 갖는 피처들은 이 등급으로 분류
    피처와 관련된 결함의 발생 가능성이 높고, 발생 시 시스템에 심각한 피해를 줄 수 있고 즉각적 수정이 요구되는 결함에 해당 피처는 가능한 한 많은 자원을 사용하여 높은 강도로 테스트 수행
  • 균형적 테스트 : 고강도 테스트보다 낮은 위험도를 갖는 피처
    프로젝트의 주어진 예산과 일정을 고려하여 효과적이고 효율적인 테스트를 수행하는 데 초점을 둠
    테스트 예산과 일정에 제한이 있어 심각성, 긴급성을 고려하여 테스트 노력에 투입하도록 함
  • 부가적 테스트 : 균형적 테스트로 분류되는 피처보다 낮은 위험도를 갖는 피처
    결함들을 검출하기 위한 목적으로 수행되는 테스트 활동에 일부 추가적인 작업을 수행하여 검출 시도
    균형적 테스트처럼 예산과 비용이 한정되므로 심각성, 긴급성을 고려해서 결함 재연, 고립화
  • 결함 보고 : 가장 낮은 수준의 위험도를 갖는 피처들, 테스트 범위에 포함시키지 않음
    다른 테스트를 수행하는 과정에서 이 등급의 피처에 해당되는 결함이 발견되면 보고함

테스트 계획

테스트 레벨/유형 결정

해당 피처와 관련된 모듈들을 파악하여 컴포넌트 테스트를 수행하고

해당 모듈들로 구성된 통합 시나리오에 대해 통합 테스트를 수행한 후 시스템 테스트를 수행

피처가 비기능 유형이면 이 비기능 피처에만 초점을 둔 유형 테스트를 추가로 수행할 수 있음

 

테스트 대상 선정

위험 분석 결과 및 테스트 강도로 테스트 대상이 선정될 수 있음

컴포넌트 테스트 수행 시 위험 분석 결과를 고려하여 테스트 대상이 되는 컴포넌트가 선정될 수 있음

위험도가 낮은 부가적 테스트나 결함 보고에 해당하는 피처를 구현하는 컴포넌트는 테스트 대상에서 제외할 것을 고려

 

테스트 범위 설정

고강도 테스트로 분류된 피처는 가용한 모든 예산 범위 내에서 최대한 테스트 범위에 포함 시킴

균형적 테스트로 분류된 피처는 예산을 고려하여 테스트 범위에 포함시킬 건지 결정

부가적 테스트로 분류된 피처는 명시적으로 테스트 범위에 포함되지 않지만

테스트 실행 시 다른 테스트 케이스 및 테스트 절차를 활용하여 테스트

 

테스트 전략

위험 수준이 높을수록 엄격한 테스트를 진행해야 함

  • 테스트 설계 기법 : 위험 수준이 높은 피처를 더 강도 높은 테스트 설계 기법을 적용
  • 테스트 완료 기준 :
    위험 수준이 높은 피처를 구현하는 컴포넌트는 다른 컴포넌트에 비해 높은 수준의 테스트 완료 기준 적용 가능
    여러 가지 유형의 완료 기준을 함께 적용하여 테스트 완료 기준 강화 가능
    높은 위험 수준의 피처를 구현하는 컴포넌트는 결함 탐지 기반 방법, 복수 테스트팀 기반 방법, 신뢰도 예측 모델 기반 방법 등의 분석적 방법을 추가로 적용하여 테스트 완료 기준 설정 가능
  • 재테스팅과 리그레션 테스팅 :
    발견된 결함을 개발자가 올바르게 해결하였는지 검증하기 위해 재테스팅을 수행할 때 검출 결함과 관련된 피처의 위험수준 고려
    리그레션 테스팅을 수행할 때도 위험 수준 고려
    위험 수준이 높은 피처는 retest-all 전략을 적용하고, 낮으면 선택적 리그레션 테스트, 테스트 최소화, 테스트 우선 순위화 전략 적용

테스트 설계/구현 및 테스트 환경

  • 피처 구체화 및 테스트 전략 구체화 : 테스트 설계를 수행하면서 높은 위험도를 가진 피처는 더욱 세밀하게 피처를 구체화하여 많은 테스트 케이스를 설계, 높은 위험 수준의 피처를 많이 가진 집합은 더 높은 방식으로 테스트 설계 전략 구체화
  • 우선순위 : 위험 수준을 참고하여 피처 집합, 테스트 케이스, 테스트 절차의 우선순위를 결정
  • 테스트 환경 요건 및 구축 : 위험 수준이 높은 피처는 별도로 테스트 환경을 구축할 수 있음
  • 테스트 데이터 요건 및 준비 : 위험 수준이 높은 피처를 테스트할 때는 테스트 설계 기법에 따라 생성된 테스트 뿐만 아니라, 실제 사용 환경에서 수집된 테스트 데이터를 적용하여 실제 운영 상황과 비슷한 환경으로 구축

테스트 실행 및 결함 보고

  • 테스트 절차 선택 : 위험 수준이 높은 피처에 대한 테스트 먼저 수행
    테스트 절차 중 위험 수준이 높은 테스트 절차를 우선 선택
    우선 순위가 높은 테스트 절차를 선정하는 것은 바로 위험 수준이 높은 피처에 대한 테스트 실행을 우선
  • 결함 기록 : 위험 수준은 검출된 결함에 대한 보고에도 고려됨
    위험 수준이 높은 피처에 대한 테스트 절차를 실행해서 검출된 결함은 상대적으로 심각, 긴급한 해결 필요
    검출된 결함에 대한 보고 시 위험 수준은 결함의 심각도와 우선순위에 반영될 수 있음
  • 결함 추적 : 위험 수준은 보고된 결함에 대한 해결과 종결까지의 과정에서 고려됨
    우선순위가 높은 피처의 결함은 재테스팅을 수행하여 결함이 올바르게 수정되었는지 확인
    위험 수준이 낮은 경우에는 생략되거나 시스템 테스트 레벨에서만 재테스팅 수행

테스트 모니터링/제어 및 테스트 종료

  • 테스트 모니터링 및 테스트 활동 제어
    위험 수준은 테스트 진행에 대한 현황 보고에서도 고려됨
    위험 수준이 높은 피처들에 대한 테스트 진행은 별도의 현황 보고로 세밀하게 진행될 수 있음
    위험 수준이 높은 피처들에 대한 테스트 모니터링을 빈번히 수행하면 이를 바탕으로 테스트 활동 변경 필요 시 신속하게 적용 가능
  • 테스트 종료 보고
    위험 수준이 높은 피처들에 대한 테스트 종료 보고는 별도로 진행할 수 있음
    위험 수준이 높은 피처들과 관련된 테스트 실행 결과를 위험 수준이 낮은 피처들의 테스트 실행과 구분하여 보고서 작성 가능
    위험 수준이 높은 피처들에 대한 테스트 결과로서 특히 테스트 메트릭, 결함 목록, 잔존 위험, 테스트 완료 평가 등을 별도로 보고 가능