1. 테스트 자동화의 개요
- 사람이 반복적으로 수행하던 테스트 절차를 스크립트 형대로 구현하는 자동화 도구를 적용함으로써 쉽고 효율적으로 테스트를 수행할 수 있도록 한 것
- 휴먼 에러를 줄이고 테스트의 정확성을 유지하면서 테스트의 품질을 향상시킬 수 있음
- 휴먼 에러 Human Error : 사람의 판단 실수나 조작 실수 등으로 인해 발생하는 에러
2. 테스트 자동화 도구의 장점 / 단점
- 장점
- 테스트 데이터의 재입력, 재구성 같은 반복적인 작업을 자동화함으로써 인력 및 시간을 줄일 수 있음
- 다중 플랫폼 호환성, 소프트웨어 구성, 기본 테스트 등 향상된 테스트 품질을 보장
- 사용자의 요구사항 등을 일관성 있게 검증할 수 있음
- 테스트 결과에 대한 객관적인 평가 기준을 제공
- 테스트 결과를 그래프 등 다양한 표시 형태로 제공
- UI가 없는 서비스도 정밀 테스트가 가능
- 단점
- 테스트 자동화 도구의 사용 방법에 대한 교육 및 학습이 필요
- 자동화 도구를 프로세스 단계별로 적용하기 위한 시간, 비용, 노력이 필요
- 비공개 상용 도구의 경우 고가의 추가 비용이 필요
- 비공개 상용 도구 : 특정 기업체 전용으로 개발되어 독점 공급되는 소프트웨어
3. 테스트 자동화 수행 시 고려사항
- 테스트 절차를 고려하여 재사용 및 측정이 불가능한 테스트 프로그램은 제외
- 모든 테스트 과정을 자동화 할 수 있는 도구는 없으므로 용도에 맞는 적절한 도구를 선택하여 사용
- 자동화 도구의 환경 설정 및 습득 기간을 고려해서 프로젝트 일정을 계획해야 함
- 테스트 엔지니어의 투입 시기가 늦어지면 프로젝트의 이해 부족으로 인해 불완전한 테스트를 초래할 수 있으므로 반드시 프로젝트 초기에 테스트 엔지니어의 투입 시기를 계획해야 함
4. 테스트 자동화 도구의 유형
- 정적 분석 도구 Static Analysis Tools
- 프로그램을 실행하지 않고 분석하는 도구
- 소스 코드에 대한 코딩 표준, 코딩 스타일, 코드 복잡도 및 남은 결함 등을 발견하기 위해 사용
- 테스트를 수행하는 사람이 작성된 소스 코드를 이해하고 있어야만 분석이 가능
- 테스트 케이스 생성 도구 Test Case Generation Tools
- 자료 흐름도 : 자료 원시 프로그램을 입력받아 파싱한 후 자료 흐름도를 작성
- 기능 테스트 : 주어진 기능을 구동시키는 모든 가능한 상태를 파악하여 이에 대한 입력을 작성
- 입력 도메인 분석 : 원시 코드의 내부를 참조하지 않고, 입력 변수의 도메인을 분석하여 테스트 데이터를 작성
- 랜덤 테스트 : 입력 값을 무작위로 추출하여 테스트
- 테스트 실행 도구 Test Execution Tools
- 스크립트 언어를 사용하여 데스트를 실행하는 방법
- 테스트 데이터와 테스트 수행 방법 등이 포함된 스크립트를 작성한 후 실행
- 데이터 주도 접근 방식
- 스프레드시트에 테스트 데이터를 저장, 이를 읽어 실행하는 방식
- 다양한 테스트 데이터를 동일한 테스트 케이스로 반복하여 실행할 수 있음
- 스크립트에 익숙하지 않은 사용자도 미리 작성된 스크립트에 테스트 데이터만 추가하여 테스트할 수 있음
- 키워드 주도 접근 방식
- 스프레드시트에 테스트를 수행할 동작을 나타내는 키워드와 테스트 데이터를 저장하여 실행하는 방식
- 키워드를 이용하여 테스트를 정의할 수 있음
- 성능 테스트 도구 Performance Test Tools
- 애플리케이션의 처리량, 응답 시간, 경과 시간, 자원 사용률 등을 인위적으로 적용한 가상의 사용자를 만들어 테스트를 수행함으로써 성능의 목표 달성 여부를 확인
- 테스트 통제 도구 Test Control Tools
- 테스트 계획 및 관리, 테스트 수행, 결함 관리 등을 수행하는 도구
- 종류 : 형상 관리 도구, 결함 추적 / 관리 도구 등
- 형상 관리 도구 : 테스트 수행에 필요한 다양한 도구 및 데이터를 관리하는 도구
- 테스트 하네스 도구 Test Harness Tools
- 애플리케이션의 컴포넌트 및 모듈을 테스트하는 환경의 일부분
- 테스트를 지원하기 위해 생성된 코드와 데이터를 의미
- 테스트가 실행될 환경을 시뮬레이션하여 컴포넌트 및 모듈이 정상적으로 테스트되도록 함
- 테스트 하네스의 구성 요소
- 테스트 드라이버 Test Driver : 테스트 대상의 하위 모듈을 호출하고, 매개 변수(Parameter)를 전달하고 모듈 테스트 수행 후의 결과를 도출하는 도구
- 테스트 스텁 Test Stub : 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구, 일시적으로 필요한 조건만을 가지고 있는 테스트용 모듈
- 테스트 슈트 Test Sutes : 테스트 대상 컴포넌트나 모듈, 시스템에 사용되는 테스트 케이스의 집합
- 테스트 케이스 Test Case : 사용자의 요구사항을 정확하게 준수했는지 확인하기 위한 입력 값, 실행 조건, 기대 결과 등으로 만들어진 테스트 항목의 명세서
- 테스트 스크립트 Test Script : 자동화된 테스트 실행 절차에 대한 명세서
- 테스트 실행 절차나 수행 방법 등을 스크립트 언어로 작성한 파일
- 스크립트 언어 : 소스 코드를 컴파일하지 않고도 내장된 번역기에 의해 번역되어 바로 실행할 수 있는 언어
- 목 오브젝트 Vlook Object : 사전에 사용자의 행위를 조건부로 입력해주면, 그 상황에 맞는 예정된 행위를 수행하는 객체
5. 테스트 수행 단계별 테스트 자동화 도구
테스트 단계 | 자동화 도구 | 설명 |
테스트 계획 | 요구사항 관리 | 사용자의 요구사항 정의 및 변경 사항 등을 관리하는 도구 |
테스트 분석 / 설계 | 테스트 케이스 생성 | 테스트 기법에 따른 테스트 데이터 및 테스트 케이스 작성을 지원하는 도구 |
테스트 수행 | 테스트 자동화 | 테스트의 자동화를 도와주는 도구, 테스트의 효율성을 높임 |
정적 분석 | 코딩 표준, 런타임 오류 등을 검증하는 도구 | |
동적 분석 | 대상 시스템의 시뮬레이션을 통해 오류를 검출하는 도구 | |
성능 테스트 | 가상의 사용자를 생성하여 시스템의 처리 능력을 측정하는 도구 | |
모니터링 | CPU, Memory 등과 같은 시스템 자원의 상태 확인 및 분석을 지원하는 도구 | |
테스트 관리 | 커버리지 분석 | 테스트 완료 후 테스트의 충분성 여부 검증을 지원하는 도구 |
형상 관리 | 테스트 수행에 필요한 다양한 도구 및 데이터를 관리하는 도구 | |
결함 추적 / 관리 | 테스트 시 발생한 결함 추적 및 관리 활동을 지원하는 도구 |
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 필기] 논리 데이터베이스 설계 - 060. 데이터베이스 설계 (0) | 2025.02.12 |
---|---|
[정보처리기사 필기] 애플리케이션 테스트 관리 - 051. 결함 관리 (0) | 2025.02.12 |
[정보처리기사 필기] 애플리케이션 테스트 관리 - 049. 테스트 케이스 / 테스트 시나리오 / 테스트 오라클 (0) | 2025.02.12 |
[정보처리기사 필기] 애플리케이션 테스트 관리 - 048. 통합 테스트 (0) | 2025.02.12 |
[정보처리기사 필기] 애플리케이션 테스트 관리 - 047. 개발 단계에 따른 애플리케이션 테스트 (0) | 2025.02.11 |