2019년 1월 30일
테스트 자동화
I. 테스트자동화의 개요
가. 테스트 자동화의 개념
- 소프트웨어 기능에서 정규 입력에 대한 출력 확인, 오류 검출을 자동화하는 소프트웨어 테스트 기술
나. 테스트 자동화의 특징
- H/W 및 S/W 제품의 개발 라이프사이클과 품질을 개선
- 테스트할 항목은 많지만 업무의 레벨이 높지 않은 경우 투입 자원 최소화
II. 테스트 자동화를 위한 역할 및 자동화도구
가. 테스트 자동화를 위한 역할
나. 테스트 자동화도구
단계 | 자동화도구 | 설명 |
---|---|---|
설계 | 명세기반테스트 설계도구 | 소프트웨어 명세로부터 테스트 절차, 데이터, 드라이버 등 생성 |
코드기반테스트 설계도구 | 소스로부터 테스트절차, 데이터, 드라이버 등 생성 | |
테스트 관리도구 | 테스트계획 수립, 요구사항 및 버그추적 관리 등 지원 | |
구현 | 정적분석도구 | 프로그램을 수행하지 않고 분석하는 도구 |
Review 및 Inspection도구 | 소스코드 및 설계 문서를 분석해서 가이드라인, 규칙 검사 | |
커버리지 측정도구 | 주어진 테스트 케이스에 의해 얼마나 테스트 되었는가 측정 | |
동적분석도구 | 프로그램 수행 중 시스템 상태평가(Memory Leak 등) | |
성능, 로드, 시뮬레이션 도구 | 시스템 부하를 생성하고 반응시간, 메모리 사용량 등 측정 | |
테스트 | 테스트 수행도구 | 테스트 케이스 자동 수행, 예상결과 비교 단위, 통합, 시스템, 인수 테스트 모든단계 수행 |
다. 테스트 자동화의 장단점
테스트 자동화 장점 | 테스트 자동화 단점 |
– 반복적 업무 감소 – 테스트 노력 절감 및 실수 감소 – 객관적 평가 기준 제공 – 효율적인 비용으로 유지보수 가능 | – 테스트 자동화 도구의 비용이 고가이며 유지비용 높음 – 초기 환경 및 테스트 설정에 많은 시간, 비용 소요 – 도구에 의해 생성된 테스트 자산 유지 비용 소요 – 테스트 스크립트 유지보수 어려움 |
III. 테스트 자동화 진행과정 및 적용 방안
가. 테스트 자동화 진행과정
- 개발자 기능 추가
- 기능에 대한 테스트 코드 추가
- 테스트 코드 자동 실행
- 테스트 결과에 대한 보고
나. 테스트 자동화 적용 방안
항목 | 적용방안 |
---|---|
코딩 | Inspection 및 Review 도구 통한 소스코드 정적 테스트 일부 오류에 대해 정적 분석 통한 오류 검출 |
단위 시험 | 코드 기반의 테스트 소스코드 커버리지 도구, 정적 테스트 도구 |
통합 시험 | 프로그램 구성요소 간 인터페이스 등 동적 테스트 명세 기반 테스트 설계 녹화 후 재수행 방식 |
시스템시험 | 성능, 시뮬레이션, 로드 테스트 |
2 Comments
안녕하세요!? 정리가 너무 잘되어 있어서 항상 잘 보고 있습니다. 보다가 궁금한 점이 있어서 댓글 남깁니다. 테스트 자동화 도구 표에서, 단계 열에 맨마지막이 구현 인데요. 위에 칸도 구현인데, 아래칸도 구현이라고 따로 구분하신 이유가 있을까요??
별도로 구분한건아니고 테스트 단계인데 구현 단계로 잘못 표기했네요.. 오타이므로 본문 수정하였고, 이상한점 지적 감사드립니다. 도움이 되신다니 다행입니다~^^