테스트 자동화

I. 테스트자동화의 개요

가. 테스트 자동화의 개념

  • 소프트웨어 기능에서 정규 입력에 대한 출력 확인, 오류 검출을 자동화하는 소프트웨어 테스트 기술

나. 테스트 자동화의 특징

  • H/W 및 S/W 제품의 개발 라이프사이클과 품질을 개선
  • 테스트할 항목은 많지만 업무의 레벨이 높지 않은 경우 투입 자원 최소화

 

II. 테스트 자동화를 위한 역할 및 자동화도구

가. 테스트 자동화를 위한 역할

나. 테스트 자동화도구

단계자동화도구설명
설계명세기반테스트
설계도구
소프트웨어 명세로부터 테스트 절차, 데이터, 드라이버 등 생성
코드기반테스트
설계도구
소스로부터 테스트절차, 데이터, 드라이버 등 생성
테스트
관리도구
테스트계획 수립, 요구사항 및 버그추적 관리 등 지원
구현정적분석도구프로그램을 수행하지 않고 분석하는 도구
Review 및 Inspection도구소스코드 및 설계 문서를 분석해서 가이드라인, 규칙 검사
커버리지
측정도구
주어진 테스트 케이스에 의해 얼마나 테스트 되었는가 측정
동적분석도구프로그램 수행 중 시스템 상태평가(Memory Leak 등)
성능, 로드, 시뮬레이션 도구시스템 부하를 생성하고 반응시간, 메모리 사용량 등 측정
테스트테스트
수행도구
테스트 케이스 자동 수행, 예상결과 비교
단위, 통합, 시스템, 인수 테스트 모든단계 수행

다. 테스트 자동화의 장단점

테스트 자동화 장점테스트 자동화 단점
– 반복적 업무 감소
– 테스트 노력 절감 및 실수 감소
– 객관적 평가 기준 제공
– 효율적인 비용으로 유지보수 가능
– 테스트 자동화 도구의 비용이 고가이며 유지비용 높음
– 초기 환경 및 테스트 설정에 많은 시간, 비용 소요
– 도구에 의해 생성된 테스트 자산 유지 비용 소요
– 테스트 스크립트 유지보수 어려움

 

III. 테스트 자동화 진행과정 및 적용 방안

가. 테스트 자동화 진행과정

  • 개발자 기능 추가
  • 기능에 대한 테스트 코드 추가
  • 테스트 코드 자동 실행
  • 테스트 결과에 대한 보고

나. 테스트 자동화 적용 방안

항목적용방안
코딩Inspection 및 Review 도구 통한 소스코드 정적 테스트
일부 오류에 대해 정적 분석 통한 오류 검출
단위 시험코드 기반의 테스트
소스코드 커버리지 도구, 정적 테스트 도구
통합 시험프로그램 구성요소 간 인터페이스 등 동적 테스트
명세 기반 테스트 설계
녹화 후 재수행 방식
시스템시험성능, 시뮬레이션, 로드 테스트

 

2 Comments

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^