테스트 계획

테스트 관리 프로세스의 시작 활동으로
동적 테스트를 효과적이고 효율적으로 수행하기 위한 계획 수립
테스트 계획은 동적 테스트 프로세스 수행에 대한 구체적인 계획 포함
테스트 모니터링 및 제어에서는 테스트 메트릭을 활용하여 동적 테스트 프로세스의 수행 현황을 파악
그 후 테스트 완료 기준을 바탕으로 수행된 테스트의 완료 여부를 평가하고 이를 테스트 종료 활동에서 보고서를 기록

테스트 컨텍스트 명세
구체적인 테스트 전략을 수립하기에 앞서서
테스트 수행의 배경이 되는 다양한 요소들을 식별하고 명세

테스트 계획서가 목표로 하는 유형을 명시

테스트하고자 하는 대상을 식별하고 명확하게 기술
대상의 유형을 기준으로 테스트 레벨이 결정.

기능 및 비기능 등 테스트하고자 하는 피처 나열
테스트 범위에 포함된 기능 및 품질 특성에 초점을 두고
테스트 케이스 및 테스트 절차가 개발되고 테스트 환경을 구축함
컴포넌트 , 통합 테스트에서는 기능에 초점

테스트 할때 반드시 준수해야 하는 표준
조직 테스트 정책 및 조직 테스트 전략
고객과의 계약
테스트 일정
비용
투입 인력
자동화 도구
테스트 환경
테스트 프로젝트의 결과에 영향을 받는 이해관계자들 파악하고 의사소통 방법을 결정
이해관계자가 테스트 프로젝트에 어떤 요구가 있는지 식별
테스트 프로세스의 성과를 테스트 종료 보고서에 기록하여 이해관계자와 공유
테스트 컨텍스트에서 명시된 테스트 대상과 피처를 바탕으로 테스트 설계 기법을 결정
정적 테스트
리뷰
정적 분석
동적 테스트
명세 기반 테스트
구조 기반 테스트
경험 기반 테스트

테스트 대상을 실행하기 위한 모든 환경
컴포넌트, 통합 테스트 => 기능 테스트에 초점
시스템, 인수 테스트 => 비기능 테스트도 수행

테스트 데이터 요건

테스트 대상 입력 유형
테스트 대상 상태 유형
테스트 환경 항목 유형
어떤 조건에서 시작을 할지, 어떤 방법을 적용할지를 기술
자동화할 수 있는 도구 활용도 고려
재테스팅
검출된 결함의 해결 여부가 검증될 때까지 반복적으로 다시 테스트
자동화 도구를 통해서 실행시킬 수 있도록 테스트 스크립트(Script) 개발
낮은 심각도의 결함에 대해서는 컴포넌트 테스트와 통합 테스트에서 생략하고
시스템 테스트에서 재테스팅 수행 검토
리그레션 테스팅
소프트웨어 변경이 발생한 후에 수행되는 테스트
소프트웨어에 가해진 변경이 의도하지 않은 결함을 만들지 않았으며
기존 요구사항을 검증하기 위하여 수행
컴포넌트, 통합, 시스템, 인수 테스트의 여러 레벨에서 수행 가능
개별 테스트에 대한 계획서보다는 프로젝트 테스트 계획서에 기술
주어진 시간과 비용에 따라 리그레션 테스팅을 전체 레벨에서 수행하지 않을 수도 있음
수행할 테스트 레벨 결정은 소프트웨어에 가해진 변경의 유형과 그 영향에 대한 추정을 바탕으로 결정
리그레션 테스트 전략


테스트 완료 여부를 판단할 수 있는 객관적인 기준
충분한 테스트를 수행하였다고 판단할 수 있는 기준
기본 유형의 테스트 완료 기준
테스트 케이스(테스트 절차) 기반 방법
테스트 커버리지 기반 방법

결함 기반 방법

분석 유형의 테스트 완료 기준
테스트 분석 및 설계 활동에서 생성된 테스트 케이스(테스트 절차)와
테스트 실행 활동에서 발견된 결함 정보 기준으로 판단
동적 테스트 활동에 추가적인 노력이 필요하므로
시스템 테스트 및 인수 테스트가
주요 의사 결정을 하는 경우 테스트 완료 기준으로 사용
신뢰도 예측 모델 기반 방법
테스트하면 할수록 높은 신뢰도 달성
테스트 대상에 대해서 신뢰도를 예측하고,
목표로 삼은 수준 이상으로 신뢰도 달성이 예상되면 테스트가 완료
가정하는 상황이 현재 시스템에서 유효한지 유의 필요
결함 탐침 기반 방법
테스트를 시작하기 전에 미리 다양한 유형의 결함을 시스템에 인위적으로 삽입
테스트에서 발견된 결함 중에서 인위적으로 삽입된 결함의 비율을 계산
시스템에 남아 있는 발견되지 않은 잔존 결함의 수를 예측하고,
일정 수준 이하이면 테스트가 완료
테스터의 과거의 경험에 바탕을 두므로 편향될 가능성존재
새로운 유형의 시스템을 테스트할 때 균형적인 결함을 만들기 어려움.
복수 테스트팀 기반 방법
독립적인 두 개의 테스트팀이 동일한 시스템을 테스트하여
각각 발견한 결함의 갯수로 전체 결함의 수를 예측
동일한 시스템에 대해서 두 개의 테스트팀을 투입해야 하므로 테스트 비용이 많이 소요
각 팀이 발견하는 결함이 서로 독립적임을 가정하지만,
두 팀이 사용하는 테스트 전략과 테스트 경험에 따라서 결함 발견의 독립성 보장 X
개별 테스트의 테스트 완료 기준

진척도를 파악할 때 지표
테스트 완료 기준으로도 사용

테스트 설계 및 구현 활동 메트릭
테스트 계획에서 식별된 테스트 대상별로
유사한 피처를 그룹화하여 피처 집합을 결정
각 피처 집합별로
테스트 케이스와 테스트 절차를 개발하며
테스트 환경 요건과 테스트 데이터 요건을 결정

테스트 케이스 및 테스트 절차가 목표로 하는 범위를 충분히 반영하였는지를
테스트 커버리지(Coverage)를 통해서 측정
테스트 커버리지
테스트 케이스 및 테스트 절차로 확인이 되는 테스트 베이시스의 비중으로,
얼마나 충분한 테스트를 하는지 보여주는 정량적인 지표로 높을수록 감지하는 결함이 다양해짐
요구사항, 설계, 코드 커버리지는 구체적으로 확인할 요소에 따라서 세분화

요구 사항 커버리지

설계 커버리지
설계 활동 결과물에 대해서 테스트 케이스 및 테스트 절차가
얼마나 많이 확인할 수 있는지를 의미
개별 설계 요소에 대한 확인과 설계 요소 간의 연결에 대한 확인을 기준
함수 대상 설계 커버리지

클래스 대상 설계 커버리지

컴포넌트 대상 설계 커버리지
코드 커버리지
테스트 환경 구축 및 관리 활동 메트릭

테스트 실행 활동 메트릭
개발된 테스트 케이스 및 테스트 절차를 실행하고
예상 결과와 실제 결과를 비교하고 테스트 실행 결과를 기록
테스트 실행 관련 메트릭

테스트 커버리지 관련 매트릭
결함 보고 활동 메트릭

테스트 실행 결과를 분석하여 식별된 결함을 기록
보고 기간 내에 측정된 각 메트릭 값을 전체 기간으로 누적한 수치도 사용가능
테스트 문서뿐만 아니라 테스트 입력과 출력,
그리고 테스트를 수행하기 위하여 개발된 자동화 도구도 테스트 산출물
테스트 산출물이 언제 누구에게 제공될지에 대한 계획도 기술
