Study/정보처리기사

060 테스트 자동화 도구 - 4장 애플리케이션 테스트 관리 - 2과목 소프트웨어 개발

삼공비 2022. 1. 28. 17:10

1. 테스트 자동화 개념

- 사람이 반복적으로 하던 테스트 절차를 스크립트 형태로 구현하는 자동화 도구를 적용함

- 따라서 쉽고 효율적으로 테스트 수행

- 휴먼 에러를 줄이고 테스트 정확성을 유지, 테스트 품질 향상

 

2. 테스트 자동화 도구 장단점

장점 단점
- 테스트 데이터의 재입력, 재구성 같은 반복적인 작업 줄임
- 다중 플랫폼 호환성, 소프트웨어 구성, 기본 테스트 등 향상된 테스트 품질 보증
- 요구사항 등을 일관성 있게 검증
- 테스트 결과에 대한 객관적인 평가 기준 제공
- 테스트 결과를 그래프 등 다양한 형태 제공
- UI가 없는 서비스도 정밀 테스트 가능
- 자동화 도구 학습 필요
- 자동화 도구를 프로세스 단계별로 적용하기 위한 시간, 비용, 노력 발생
- 비공개 상용 도구의 경우 고가의 추가 비용 발생

 

3. 테스트 자동화 수행 시 고려사항

- 재사용 및 측정 불가능한 프로그램은 제외

- 용도에 맞는 적절한 도구 선택 

- 자동화 도구의 환경 설정 및 습득 시간을 고한 프로젝트 일정 설계

- 프로젝트 이해도를 높이기 위해 테스트 엔지니어를 초기에 투입

 

4. 테스트 자동화 도구 유형

1. 정적 분석 도구(Static Analysis Tools)

     - 프로그램을 실행하지 않고 분석하는 도구

     - 코딩 표준, 코딩 스타일, 코드 복잡도 및 남은 결함 등을 발견하기 위해 사용

     

2. 테스트 케이스 생성 도구(Test Case Generation Tools)

     - 자료 흐름도

     - 기능 테스트

     - 입력 도메인 분석

     - 랜덤 테스트

 

3. 테스트 실행 도구(Test Execution Tools)

4. 성능 테스트 도구(Performance Test Tools)

5. 테스트 통제 도구(Test Control Tools)

6. 테스트 하네스 도구(Test Harness Tools)

     - 구성 요소

         1. 테스트 드라이버 : 테스트 대상의 하위 모듈을 호출하고, 파라미터를 전달하고, 모듈 테스트 수행 및 결과 도출 도구

         2. 테스트 스텁 : 모듈 기능을 단순히 수행하는 도구로 일시적 조건만을 가지고 있는 테스트용 모듈

         3. 테스트 슈트 : 테스트 대상 컴포넌트나 모듈, 시스템에 사용되는 테스트 케이스 집합

         4. 테스트 케이스 

         5. 테스트 스크립트

         6. 목 오브젝트 : 사전에 사용자 행위를 조건부로 입력해 두면, 그 상황에 맞는 예정된 행위를 수행하는 객체

 

5. 테스트 수행 단계별 자동화 도구

테스트 단계 자동화 도구 설명
테스트 계획 요구사항 관리 사용자의 요구사항 정의 및 변경 사항 등을 관리
테스트 분석/설계 테스트 케이스 생성 테스트 기법에 따른 테스트 데이터 및 테스트 케이스 작성 지원
테스트 수행 테스트 자동화 자동화를 도와 테스트 효율설을 높임
정적 분석 코딩 표준, 런타임 오류 등을 검증
동적 분석 대상 시스템의 시뮬레이션을 통해 오류를 검출
성능 테스트 가상의 사용자를 생성하여 시스템의 처리 능력을 측정
모니터링 CPU, 메모리 등과 같은 자원 상태 확인 및 분석
테스트 관리 커버리지 분석 테스트 완료 후 테스트의 충분성 여부 검증
형상 관리 테스트 수행에 필요한 도구 및 데이터를 관리
결한 추적/관리 테스트 시 발생한 결함 추적 및 관리 활동 지원