ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 12. 테스트 계획
    QA 2021. 11. 7. 18:42

    테스트 계획

    • 테스트 계획은 테스트 목적을 달성하기 위한 테스트 컨텍스트를 설정하고
      다양한 측면에서 적절한 테스트 전략을 수립하고 테스트 수행을 위한 계획을 수립
    • 조직 테스트 정책 명세서 및 조직 테스트 전략 명세서를 참고하여 테스트 계획서를 작성
    • 테스트 계획서는 동적 테스트 프로세스 수행에 대한 구체적인 계획을 포함함
      테스트 설계 및 구현은 계획서에 정의된 테스트 설계 기법, 환경 요건,데이터 요건 등을바탕으로 수행
    • 테스트 계획서를 바탕으로 동적 테스트 프로세스가 수행되는지에 대한 모니터링 및 제어가 수행됨

     

     

    테스트 계획을 구성하는 상위 수준의 항목

    • 테스트 컨텍스트 명세 : 테스트 대상, 범위 등 테스트 수행의 배경이 되는 다양한 요소를 식별하고 명세
    • 위험 분석 : 테스트 프로젝트의 목적 달성에 방해가 될 수 있는 위험 요소를 식별하고 분석하여 조치 계획 수립
    • 테스트 전략 수립 : 테스트 산출물, 설계 기법, 환경 요건 및 데이터 요건 등 효율적으로 수행하기 위한 전략 결정
    • 테스트 수행 계획 수립 : 테스트 조직/인력과 역할, 테스트 활동 및 일정 등의 수행 계획 수립

    테스트 컨텍스트 명세

    • 테스트 계획 유형 : 테스트 계획서가 목표하는 테스트 계획의 유형을 명시
    • 테스트 대상 : 테스트하고자 하는 대상을 식별하고 명확하게 기술
    • 테스트 범위 : 기능 및 비기능 등 테스트하고자 하는 피처 나열
    • 가정 및 제약 사항 : 표준, 정책, 전략, 일정, 비용, 인력 등 테스트를 수행할 때 반드시 고려/준수해야 할 사항 파악
    • 이해관계자 : 개발팀, 마케팅팀 등 테스트 프로젝트 결과에 영향을 받는 이해관계자를 파악하고 의사소통 방법 결정

    테스트 계획 유형 

     

    테스트 계획서는 프로젝트 테스트 계획서와 개별 테스트 계획서 분류

    • 프로젝트 테스트 계획 : 테스트 대상에 대한 전체 개별 테스트를 포함하는 종합적인 계획
    • 개별 테스트 계획 - 레벨 테스트 계획 : 컴포넌트/통합/시스템/인수 등 레벨 테스트의 수행에 대한 계획
    • 개별 테스트 계획 - 유형 테스트 계획 : 기능 및 품질(성능, 신뢰성, 보안 등) 등 유형 테스트의 수행에 대한 계획

    테스트 대상

    • 결함검출, 품질평가를 하는 대상 명시
    • 대상이 시스템 전체가 될 수도 있고 개별 요소가 될 수도 있다.
    • 개별 요소 간의 연결을 대상으로 해서 테스트를 수행할 수도 있다.
    • 테스트 대상이 명확하게 식별되도록 이름,버전,위치 등 명시
    • 테스트 대상의 미션, 비지니스 목표 등 기술
    • 관련 문서 명시

    테스트 레벨별 테스트 대상 예

    테스트 레벨별 테스트 대상 예


    테스트 범위

    • 테스트를 통해서 확인하고자 하는 테스트 대상의 기능/비기능 등의 특성
    • 기능 및 품질 특성에 초점을 두고 케이스 및 테스트 절차가 개발, 테스트 환경 준비
    • 컴포넌트 및 통합테스트에는 기능을 초점을 둠
    • 시스템 테스트 및 인수 테스트에는 기능 요구사항과 명세서에 정의된 비기능 요구사항 포함
    • 테스트하고자 하는 피처를 나열하는 방법

     

    테스트 레벨별 테스트 범위 예

     

    컴포넌트 테스트 

    • 각 컴포넌트의 기능적 요구사항
    • 최고 수준의 위험도를 갖는 컴포넌트에 대해서는 성능과 신뢰성 등을 포함

    통합 테스트

    • 컴포넌트 연결 간의 동작, 최고 수준의 위험도를 갖는 컴포넌트 간 성능과 신뢰성 등 포함

    시스템 테스트

    • 시스템에 대한 기능/ 비기능 요구사항 전체

    인수 테스트

    • 시스템에 대한 기능/ 기비능 요구사항 전체

    가정 및 제약사항

     

    테스트를 수행하면서 반드시 준수해야 하는 표준, 조직 테스트 정책 및 조직 테스트 전략, 테스트 프로젝트 고객과의 계약, 테스트 일정, 비용, 투입 인력, 자동화 도구, 테스트 환경 등이 있다면 기술

     


    이해 관계자

    • 테스트에 요구사항을 제시하거나 테스트 결과에 관심을 갖는 이해관계자 포함
    • 각 이해관계자가 어떤 요구가 있는지 식별
    • 이해관계자와 의사소통 방법을 정의(테스트 계획서, 테스트 현황 보고서, 종료 보고서 등의 산출물 공유)

    위험 분석

    • 위험 회피
    • 위험 완화
    • 위험 수용
    • 위험 전가

     

    프로젝트 위험

    • 조직 관련 위험 :
      테스트 프로젝트의 목적과 범위 등 테스트 정책에 대한 명확한 합의가 있는지
      테스트 관리, 동적 테스트, 정적 테스트 등에 대한 명확한 프로세스가 정의되어 있는지
    • 인력 관련 위험 : 
      충분한 인력이 확보되었는지, 필요한 역량을 보유하고 있는지
      기존에 유사한 도메인에서 테스트 프로젝트를 수행한 경험이 있는지
    • 비용 관련 위험 :
      테스트 프로젝트를 완료할 수 있는 충분한 예산이 확보되었는지, 비용 추정은 정확한지
      인력에 대한 교육 및 훈련 비용도 고려되고 있는지

    테스트 전략 수립

    항목 설명
    개별 테스트 프로젝트 테스트 계획에는 프로젝트 테스트를 구성하는 개별 테스트를 명시
    테스트 산출물 테스트 활동을 통해 작성할 산출물을 명시
    테스트 설계 기법 동적 테스트, 정적 테스트 등 적용할 테스트 설계 기법 명시
    테스트 환경 요건 테스트 실행을 위한 테스트 환경 요소 명시
    테스트 데이터 요건 테스트 실행 시 필요한 테스트 데이터 명시
    재테스팅 및 리그레션 테스팅 재테스팅 및 리그레션 테스팅 방법 명시
    테스팅 중단 및 재시작 요건 테스트 활동을 중단하거나 다시 시작하는 조건 명시
    테스트 메트릭 테스트 수행하면서 측정할 메트릭을 명시
    테스트 완료 기준 테스트의 완료 여부를 판단할 수 있는 기준 명시
    조직 테스트 전략과의 차이점 조직 테스트 전략과의 차이점과 근거 기술

    개별 테스트

    • 개별 테스트 계획이 아니라 프로젝트 테스트 계획의 하위 요소
    • 테스트 컨텍스트에서 파악된 테스트 범위를 바탕으로 결정

    • 개별 테스트 계획서에서 공통적인 내용은 프로젝트 테스트 계획서를 참조함
    • 각 개별 테스트 계획에서 동일한 내용은 프로젝트 테스트 계획서에 기술하고 이를 참조하는 방식
    • 각 개별 테스트의 고유한 내용은 개별 테스트 계획서에 기술

     


    테스트 산출물

    테스트 관리 프로세스 산출물

    • 테스트 계획 : 테스트 계획서
    • 테스트 모니터링 및 제어 : 테스트 현황 보고서
    • 테스트 종료 : 테스트 종료 보고서

    동적 테스트 프로세스 산출물

    • 테스트 설계 및 구현 - 테스트설계 명세서, 테스트케이스 명세서, 테스트절차 명세서, 테스트환경 요건 명세서, 테스트데이터 요건 명세서
    • 테스트 환경 구축 및 관리 - 테스트 환경 준비 보고서, 테스트 데이터 준비 보고서
    • 테스트 실행 - 테스트 실행 로그
    • 결함 보고 - 결함 보고서, 결함 추적 보고서

    테스트 설계 기법

    • 컨텍스트에서 명시된 테스트 대상과 피처를 바탕으로 설계 기법 결정
    • 정적 테스트, 동적테스트 설계 기법으로 분류
    • 높은 효과, 효울성을 달성할수는 기법 적용( 많은 수의 결함, 최소의 비용, 케이스 및 테스트 절차의 수, 시간)
    • 식별된 피처를 효과적으로 테스트하기 위한 방법 선정
    • 기법 자체 특성도 고려

    명세 기반 테스트 설계 기법 선택

    상태 의존적 동작 여부

    • 테스트 대상의 동작이 현재의 입력과 더불어 과거의 입력에도 영향 받는 경우 상태 의존적
    • 테스트 대상의 동작이 상태 의존적인 경우 시나리오 테스트 및 상태 전이 테스트가 적용
    • 동등 분할, 경곗값 분석, 분류 트리 기법 등은 상태 의존적이지 않은 동작을 테스트할 때 적용

    동작 방식

    • 상태 의존적 동작은 동작 방식에 따라 시나리오 테스트 또는 상태 전이 테스트 방법 선택
    • 흐름 중심 동작을 가지면 시나리오 테스트를 적용
    • 이벤트 중심 동작을 가지면 상태 전이 테스트를 적용

    테스트 변수 간의 제약사항 고려 여부

    • 테스트할 동작이 독립적이면 동작에 영향을 주는 변수 간의 제약사항 고려 여부에 따라 테스트 설계 기법 결정
    • 변수 간의 제약사항을 고려하지 않으면 동등 분할 및 경곗값 분석, 조합 테스팅 적용
    • 제약사항을 고려하는 경우에는 분류 트리 기법, 인과 그래핑, 결정표 테스트 적용

    테스트 환경 요건

    • 테스트를 수행하기 위해 필요한 환경 식별
    • 하드웨어, 운영체제 포함 시스템 소프트웨어, 외부 연동 시스템, 공존하는 응용 소프트웨어, 테스트 도구 등을 포함
    • 개별 테스트에 따라 필요한 테스트 환경은 달라질 수 있음
    • 테스트의 수준이 높아질수록 테스트 환경이 실제 동작 환경에 근접해짐
    환경 항목 유형 단위 테스트 통합 테스트 시스템 테스트 인수 테스트
    하드웨어 개발자 개발자 시스템 테스트 전용 실제 시스템과 동일
    시스템 소프트웨어
    외부 연동 시스템 고려안됨 고려될 수 있음 시뮬레이션 또는 실제 실제
    공존 응용 소프트웨어 고려안됨 고려안됨 고려될 수 있음 고려함
    테스트 도구 테스트 실행 자원 도구
    • 테스트 환경을 실제 운영 환경과 유사하게 구성하려면 비용, 구현 가능성 측면에서 어려움이 따름
    • 실제 운영 환경과 유사한 하드웨어, 입출력 장치, 시스템 소프트웨어를 추가 구매해서 환경 구성
    • 대상 시스템과 연동되는 외부 시스템이 있어도 해당 시스템과 연동하는 것은 위험성이 따름

    테스트 데이터 요건

     

    테스트 계획을 수립할 때 이러한 3가지 유형의 테스트 데이터 식별

     

    테스트 대상 입력 유형

    • 테스트 케이스는 테스트 대상에 입력되는 데이터가 필요
    • 입력 데이터의 규모가 크고 복잡한 구조를 갖는 경우 해당 데이터가 테스트 케이스와 별개로 파일 또는 데이터베이스에 정의되고 참조

    테스트 대상 상태 유형

    • 테스트 대상에 입력 값을 전달하기 전에 테스트 대상이 특정 상태에 도달해야 할 경우가 있음
    • 이런 상태는 각 테스트 케이스의 선행 조건에 명시
    • 테스트 대상을 테스트 케이스의 선행 조건에 명시된 상태로 설정하기 위한 테스트 데이터 필요

    테스트 환경 항목 유형

    • 테스트 케이스 선행 조건에는 테스트 대상에 대한 상태뿐만 아니라 테스트 환경 항목에 대한 상태도 명시
    • 각 테스트 환경 항목을 테스트 케이스의 선행 조건에서 요구하는 상태로 설정하기 위한 테스트 데이터 필요

    재테스팅 및 리그레션 테스팅

     

    재테스팅

    • 재테스팅은 검출된 결함의 해결 여부가 검증될 때까지 반복적으로 수행
    • 재테스팅은 기존 결함을 검출하였던 테스트 절차를 다시 수행하므로 테스트 절차를 자동적으로 수행하는 전략 적용
    • 재테스팅은 컴포넌트/통합/시스템 테스트 등 여러 레벨에서, 성능/신뢰성 테스트 등 여러 유형에서 수행 가능
    • 변경의 유형과 가용한 시간을 고려하여 재테스팅이 수행되는 개별 테스팅을 선정

    리그레션 테스팅

    • 소프트웨어 변경 발생 후 수행되는 테스트
    • 소프트웨어의 변경이 의도하지 않은 결함을 만들지 않았으며 시스템이 기존 요구사항을 충족함을 검증하기 위함
    • 특정 레벨에 한정되지 않 컴포넌트/통합/시스템 테스트의 여러 레벨에서 수행
    • 변경이 발생한 컴포넌트를 대상으로 리그레션 테스팅을 수행하는 것뿐만 아니라
      이 컴포넌트와 연결된 다른 컴포넌트와의 통합 테스트를 수행하고 변경된 컴포넌트와 관련된 기능 요구사항을 호팜한 성능, 신뢰성 등 품질에 대하여 시스템 테스트를 수행할 수도 있음
    • 주어진 시간과 비용에 따라 리그레션 테스팅을 전체 레벨에서 수행하지 않을 수도 있음
    • 리그레션 테스팅 수행 시 테스트 레벨 결정은 소프트웨어에 가해진 변경, 유형, 영향에 대한 추정을 바탕으로 함
    • 리그레션 테스팅 수행 시 각 개별 테스트에서 어떤 리그레션 테스팅 전략을 적용할지도 결정
    리그레션 테스팅 전략 설명
    Retest-All 전략 기존에 개발된 모든 테스트 절차 수행
    선택적 리그레션 테스트 전략 기존의 테스트 절차 중에서 일부를 선택하여 수행
    테스트 최소화 전략 중복된 테스트 절차를 제거하여 테스트 절차의 수를 최소화
    테스트 우선순위화 전략 우선순위가 높은 테스트 절차를 선정하여 수행

    테스팅 중단 및 재시작 조건

     

    • 테스트 계획에 따라 수행 중인 테스트 활동의 수행 중단 또는 중단된 활동 재시작할 조건 기술
    • 각 테스트 활동의 원활한 수행을 방해할 수 있는 상황을 중단 조건으로 설정 가능
    • 테스트 중단 원인이 해결되어 재시작 시 수행해야 할 테스트도 명시

    테스트 메트릭

    • 테스트 진척도를 파악할 때 지표로 이용될 수 있음
    • 테스트 완료 기준으로도 사용됨

     

    테스트 계획 활동 메트릭

     

    • 테스트 계획 활동은 테스트 목적에 따라 테스트 대상을 선정하고 각 테스트 대상별 테스트 범위(피처)를 식별
    • 테스트 계획에서 식별된 테스트 대상 및 피처의 수를 통해 테스트 활동에 대한 진척도 파악 가능

    테스트 설계 및 구현 활동 메트릭 - 테스트 설꼐 관련 메트릭

     

    • 피처 집합 수 - 각 테스트 대상 별 피처 집합 수
    • 테스트 케이스 수 -개발된 전체 테스트 케이스의 수
    • 테스트 절차 수 - 개발된 전체 테스트 절차의 수
    • 테스트 환경 항목 수 - 식별된 테스트 환경 항목 수
    • 테스트 데이터 수 - 식별된 테스트 데이터의 수

    • 요구사항 커버리지는 테스트 케이스 및 테스트 절차가 제시된 요구사항을 어느 정도 확인하고 있는지 의미
    • 설계 커버리지는 구조 설계, 상세 설계 등의 설계 활동 결과물에 대해 테스트 케이스 및 테스트 절차가 얼마나 많이 확인할 수 있는지를 의미
    • 코드 커버리지는 테스트 대상의 소스 코드 요소를 테스트 케이스 또는 테스트 절차가 얼마나 확인하는 가를 의미

    테스트 실행 활동 메트릭 - 커버리지 관련 메트릭

    실행된 테스트 케이스(절차)에
    따른 요구사항 커버리지
    실행된 테스트 케이스(절차)에 의해 확인된 요구사항 수 / 전체 요구사항 수
    통과된 테스트 케이스(절차)에
    따른 요구사항 커버리지
    통과된 테스트 케이스(절차)에 의해 확인된 요구사항 수 / 전체 요구사항 수
    실행된 테스트 케이스(절차)에따른 설계 커버리지 실행된 테스트 케이스(절차)에 의해 확인된 설계 요소 수 / 전체 설계 요소 수
    통과된 테스트 케이스(절차)에따른 설계 커버리지 통과된 테스트 케이스(절차)에 의해 확인된 설계 요소 수 / 전체 설계 요소 수
    실행된 테스트 케이스(절차)에따른 코드 커버리지 실행된 테스트 케이스(절차)에 의해 확인된 코드 요소 수 / 전체 코드 요소 수
    통과된 테스트 케이스(절차)에따른 코드 커버리지 통과된 테스트 케이스(절차)에 의해 확인된 코드 요소 수 / 전체 코드 요소 수

     

    결함 보고 활동 메트릭

    • 보고 기간 내에 측정된 각 메트릭 값을 전체 기간으로 누적한 수치도 결함 보고 활동에서 메트릭으로 사용
    • 누적 검출 결함 수는 전체 기간에 걸쳐 식별된 모든 결함 수를 의미
    • 상태별 누적 결함 수는 전체 기간에 걸쳐서 식별된 모든 결함을 각 상태별로 구한 수치
    • 검출 결함 수 : 실행된 테스트에서 검출된 결함의 개수
    • 검출 결함 밀도 : 검출된 결함 개수 / 대상 코드 행수(KLOC)
    • 상태별 결함 수 : 결함 생명 주기의 각 상태별 결함의 개수
    • 결함 나이 : 결함이 보고되고 종결될 때까지 걸린 시간

    테스트 완료 기준

    • 테스트 완료 여부를 판단할 수 있는 객관적인 기준 의미
    • 테스트 대상에 대해 충분한 테스트를 수행했다고 판단할 수 있는 기준 의미
    • 동적 테스트 프로세스 활동은 설정된 테스트 완료 기준을 고려
    • 테스트 종료 시 해당 테스트의 수행 결과가 설정된 테스트 완료 기준을 충족

    기본 유형의 테스트 완료 기준

    • 테스트 케이스(절차) 기반 방법
    • 테스트 커버리지 기반 방법
    • 결함 기반 방법

    분석 유형의 테스트 완료 기준

    • 신뢰도 예측 모델 기반 방법
    • 결함 탐침 기반 방법
    • 복수 테스트팀 기반 방법
    • 개별 테스트의 테스트 완료 기준

     

    개별 테스트 별 테스트 완료 기준 예))

    컴포넌트 테스트 각 컴포넌트는 모든 테스트 절차가 통과되어야 함
    각 컴포넌트는 90% 이상의 문장 커버리지와 80% 이상의 결정 커버리지를 만족해야 함
    전체 컴포넌트 중에 90% 이상의 컴포넌트가 위의 커버리지 조건을 충족해야 함
    통합 테스트 컴포넌트 수행 커버리지는 95% 이상이어야 함
    컴포넌트 호출 커버리지는 80% 이상이어야 함
    시스템 테스트 모든 테스트 절차가 통과되어야 함
    유스케이스 시나리오 커버리지는 100%가 되어야 함
    결함 탐침 방법을 사용하여 예상된 미검출 결함의 수는 5개 이하여야 함
    성능 테스트 경미한 수준의 결함을 제외한 모든 테스트 절차가 통과되어야 함
    인수 테스트 모든 테스트 절차가 통과되어야 함
    신뢰도 예측에 따른 신뢰도가 99% 이상이어야 함

     


     

    조직 테스트 전략과의 차이점

    • 수립된 테스트 계획과 조직 테스트 전략의 차이점과 함께 다른 전략을 수립한 근거를 기술
    • 테스트 전략 대부분의 항목은 조직 테스트 전략 명세서에 정의
    • 조직 테스트 전략 명세와 차이 나는 사항을 테스트 계획서에 기술

    테스트 계획서의 테스트 전략과 조직 테스트 전략 명세서 비교

    테스트 계획서 -  테스트 전략 조직 테스트 전략 명세서
    개별 테스트 프로젝트 수준 - 수행 개별 테스트
    테스트 산출물 개별 테스트 수준 - 테스트 문서화
    테스트 설계 기법 개별 테스트 수준 - 테스트 설계 기법
    테스트 환경 요건 개별 테스트 수준 - 테스트 환경 및 테스트 데이터
    테스트 데이터 요건 개별 테스트 수준 - 테스트 환경 및 테스트 데이터
    재테스팅 및 리그레션 테스팅 개별 테스트 수준 - 재테스팅 및 리그레션 테스팅
    테스팅 중단 및 재시작 조건 해당 없음
    테스트 메트릭 개별 테스트 수준 - 테스트 메트릭
    테스트 완료 기준 개별 테스트 수준 - 테스트 완료 기준

    테스트 수행 계획 수립

    테스트 조직/인력 및 역할 계획된 테스트 프로세스를 수행할 팀과 인력 계획을 수립
    테스트 활동 및 일정 테스트 프로세스를 구성하는 활동과 작업 그리고 일정 계획을 수립
    의사소통 테스트 프로세스를 수행하기 위해 개발 팀을 포함하여 이해관계자와 의사소통 계획 수립

    테스트 조직/인력 및 역할

    • 테스트 프로세스를 구성하는 테스트 활동을 수행할 역할별 인력 정의
    • 조직 테스트 정책 명세서의 테스트 조직 및 역할을 참고하여 테스트팀을 구성하는 각 역할을 수행할 담당자 명시
    • 프로젝트 테스트 조직을 계획할 때 프로젝트 테스트를 구성하는 개별 테스트별로 전문화된 팀을 구성

    테스트 활동 및 일정

    • 테스트 수행 활동과 세부 작업 정의
    • 각 작업별로 담당자를 명시하고 시작일 및 종료일도 포함
    • 테스트 수행은 테스트 계획, 설계 및 구현, 환경 구축 및 관리, 실행, 결함 보고 그리고 종료까지 순차적으로 수행

    의사소통

    • 의사소통 목적 : 테스트팀과 개발팀을 포함한 다양한 이해관계자는 서로 다른 목적으로 테스트 현황 공유 필요
    • 의사소통 방법 : 정기 회의, 자료 공유, 정적 테스트에서 설명한 관리 검토, 기술 검토, 인스펙션 등
    • 의사소통 일정 : 이해관계자와 정기, 비정기로 실시하는 의사소통 일정 정의, 마일스톤

    산출물 요약

     

    테스트 계획서

    • 테스트 컨텍스트 : 테스트 계획 유형, 테스트 대상, 테스트 범위, 가정 및 제약 사항, 이해관계자
    • 위험 분석 : 프로젝트 위험, 제품 위험
    • 테스트 전략 : 개별 테스트, 테스트 산출물, 설계 기법, 환경 요건, 데이터 요건, 재테스팅 및 리그레션 테스팅, 테스팅 중단 및 재시작 기준, 테스트 메트릭, 완료 기준, 조직 테스트 전략과의 차이점
    • 테스트 수행 계획 : 테스트 조직/인력 및 역할, 테스트 활동 및 일정, 의사소통

     

    'QA' 카테고리의 다른 글

    14.테스트 실행 및 결함 보고  (0) 2021.11.09
    13. 테스트 설계/구현 및 테스트 환경 구축/관리  (0) 2021.11.08
    11. 테스트 프로세스 개요  (0) 2021.11.03
    10.  (0) 2021.11.03
    9.구조 기반 테스트  (0) 2021.11.02
Designed by Tistory.