▶ 054 애플리케이션 테스트 프로세스
애플리케이션 테스트 프로세스
① 테스트 계획
② 테스트 분석 및 디자인
③ 테스트 케이스 및 시나리오 작성
④ 테스트 수정
⑤ 테스트 결과 평가 및 리포팅
⑥ 결함 추척 및 관리
- 테스트 계획서 : 테스트 목적, 범위 등 테스트 수행을 계획한 문서
- 테스트 케이스 : 사용자의 요구사항을 얼마나 준수하는지 확인하기 위한 입력값, 실행 조건, 기대 결과 등으로 만들어진 테스트 항목의 명세서
- 테스트 시나리오 : 여러 테스트 케이스의 동작 순서를 기술한 문서
- 테스트 결과서 : 테스트 결과를 비교 분석한 내용을 정리한 문서
1. 테스트 계획
테스트 목표 정의, 테스트 대상 및 범위 결정
- 테스트 대상 시스템의 구조 파악
- 테스트의 조직 및 비용 산정
- 테스트 시작 및 종료 조건 정의
2. 테스트 분석 및 디자인
테스트의 목적과 원칙 검토, 사용자 요구사항 분석
- 테스트에 대한 리스크 분석, 우선순위 결정
- 테스트 데이터, 테스트 환경, 테스트 도구 등 준비
3. 테스트 케이스 및 시나리오 작성
- 테스트 용 스크립트 작성
4. 테스트 수행
테스트 환경 구축 후 테스트 수행
- 테스트 실행 결과 측정 및 기록
5. 테스트 결과 평가 및 리포팅
- 테스트 결과서 작성
6. 결함 추적 및 관리
- 결함 관리 프로세스 : 에러 발견 → 에러 등록 → 에러 분석 → 결함 확정 → 결함 할당 → 결함 조치 → 결함 조치 검토 및 승인
▶ 055 테스트 케이스 / 테스트 시나리오 / 테스트 오라클
구현된 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지 확인하기 위해 설계된 입력 값, 실행 조건, 기대 결과 등으로 구성된 테스트 항목에 대한 명세서
테스트 케이스 작성 순서
① 테스트 계획 검토 및 자료 확보
② 위험 평가 및 우선순위 결정
③ 테스트 요구사항 정의
④ 테스트 구조 설계 및 테스트 방법 결정
⑤ 테스트 케이스 정의
⑥ 테스트 케이스 타당성 확인 및 유지 보수
2. 테스트 시나리오
테스트 케이스들을 적용하는 구체적인 절차를 명세한 문서
테스트 시나리오 작성 시 유의 사항
- 시스템별, 모듈별, 항목별 등과 같이 여러 개의 시나리오로 분리해 작성
- 사용자의 요구사항, 설계 문서 등을 토대로 작성
- 유스케이스 간 업무 흐름이 정상적인지 테스트
- 모듈 또는 프로그램 간의 연계가 정상 동작 하는지 테스트
3. 테스트 오라클
테스트 결과가 올바른지 판단하기 위해 사전에 정의된 참 값을 대입해 비교하는 기법 및 활동
• 테스트 오라클의 특징
- 제한된 검증 : 테스트 오라클은 모든 테스트 케이스에 적용할 수 없음
- 수학적 기법 : 테스트 오라클의 값을 수학적 기법을 이용해 구함
- 자동화 가능 : 테스트 대상 프로그램의 실행, 결과, 비교 커버리지 측정 등을 자동화
테스트 오라클의 종류
- 참 오라클 : 발생된 모든 오류 검출
- 샘플링 오라클 : 몇몇 입력 값들에 대해서만 기대하는 결과 제공하는 오라클
- 추정 오라클 : 샘플링 오라클을 개선한 오라클, 나머지 입력 값들은 추정으로 처리하는 오라클
- 일관성 검사 오라클 : 애플리케이션 변경 시, 테스트 케이스의 수행 전과 후의 결과 값 비교
▶ 056 테스트 자동화 도구
테스트 자동화
사람이 하던 반복적인 테스트 절차를 자동화 하는 것
- 테스트 자동화 도구를 사용해 휴먼 에러를 줄이고 테스트의 정확성 유지, 테스트 품질 향상
테스트 자동화 도구의 장단점
장점 | - 인력 및 시간 감소 - 향상된 테스트 품질 보장 - 사용자 요구사항 등을 일관성 있게 검증 가능 - 테스트 결과에 대한 객관적인 평가 기준 제공 - 테스트 결과를 그래프 등 다양한 표시 형태로 제공 - UI가 없는 서비스도 정밀 테스트 가능 |
단점 | - 비공개 상용 도구의 경우 고가의 추가 비용 필요 - 자동화 도구를 프로세스 단계별로 적용하기 위한 시간, 비용, 노력 필요 - 테스트 자동화 도구의 사용 방법에 대한 교육 및 학습 필요 |
테스트 자동화 수행 시 고려사항
- 재사용 및 측정이 불가능한 테스트 프로그램은 제외
- 용도에 맞는 적절한 도구를 선택 사용
- 자동화 도구의 환경설정, 습득 기간을 고려해 프로젝트 일정 계획
- 반드시 프로젝트 초기에 테스트 엔지니어의 투입 시기 계획
테스트 자동화 도구의 유형
- 정적 분석 도구 : 프로그램을 실행하지 않고 분석하는 도구
- 테스트 실행 도구 : 스크립트 언어를 사용해 테스트 실행하는 방법
> 데이터 주도 접근 방식 : 스프레드시트에 테스트 데이터를 저장하고, 이를 읽어 실행하는 방식
> 키워드 주도 접근 방식 : 스프레드시트에 테스트를 수행할 동작을 나타내는 키워드와 테스트 데이이터를 저장해 실행하는 방식
- 성능 테스트 도구 : 처리량, 응답시간, 자원 사용률 등을 적용한 가상의 사용자를 만들어 테스트를 수행
- 테스트 통제 도구 : 테스트 계획 및 관리, 테스트 수행, 결함 관리 등을 수행하는 도구
- 테스트 하네스 도구 : 테스트가 실행될 환경을 시뮬레이션 하여 컴포넌트 및 모듈 테스트
☞ 테스트 하네스의 구성요소
테스트 하네스? 애플리케이션의 컴포넌트 및 모듈을 테스트하는 환경의 일부분
- 테스트 드라이버 : 테스트 대상의 하위 모듈을 호출, 파라미터 전달, 모듈 테스트 수행 후의 결과를 도출하는 도구
- 테스트 스텁 : 일시적으로 필요한 조건만을 가지고 있는 테스트용 모듈
- 테스트 슈트 : 테스트 대상 컴포넌트나 모듈, 시스템에 사용되는 테스트 케이스의 집합
- 테스트 스크립트 : 자동화된 테스트 실행 절차에 대한 명세서
- 목 오브젝트 : 사전에 사용자의 행위를 조건부로 입력해 두면, 그 상황에 맞는 예정된 행위 수행하는 객체
▶ 057 결함 관리
결함(Fault)
오류 발생, 작동 실패 등과 같이 소프트웨어가 개발자가 설계한 것과 다르게 동작하거나 다른 결과가 발생되는 것을 의미
결함 관리 프로세스
① 결함 관리 계획
② 결함 기록
③ 결함 검토
④ 결함 수정
⑤ 결함 재확인
⑥ 결함 상태 추적 및 모니터링 활동
⑦ 최종 결함 분석 및 보고서 작성
결함 상태 추적
테스트에서 발견된 결함은 지속적으로 상태 변화 추적 및 관리
- 결함 관리 측정 지표
> 결함 분포 : 모듈 또는 컴포넌트의 특정 속성에 해당하는 결함 수 측정
> 결함 추세 : 테스트 진행 시간에 따른 결함 수의 추이 분석
> 결함 에이징 : 특정 결함 상태로 지속되는 시간 측정
결함 추적 순서
① 결함 등록
② 결함 검토
③ 결함 할당
④ 결함 수정
⑤ 결함 조치 보류
⑥ 결함 종류
⑦ 결함 해제
결함 분류
- 시스템 결함, 기능 결함, GUI 결함, 문서 결함
결함 심각도
결함 심각도를 우선순위에 따라 분류 : Hight, Medium, Low
결함 우선순위
발견된 결함 처리에 대한 신속성을 나타내는 척도, 결함의 중요도와 심각도에 따라 설정
- 심각도가 높다고 반드시 우선순위가 높은 것은 아님
- 결함 우선순위 : 결정적, 높음, 보통, 낮음 또는 즉시 해결, 주의 요망, 대기, 개선권고
결함 관리 도구
- Mantis, Trac, Redmine, Bugzilla 등