X

테스트 자동화

I. 테스트자동화의 개요

가. 테스트 자동화의 개념

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

나. 테스트 자동화의 특징

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

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

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

나. 테스트 자동화도구

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

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

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

 

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

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

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

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

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

 

도리:

View Comments (2)

  • 안녕하세요!? 정리가 너무 잘되어 있어서 항상 잘 보고 있습니다. 보다가 궁금한 점이 있어서 댓글 남깁니다. 테스트 자동화 도구 표에서, 단계 열에 맨마지막이 구현 인데요. 위에 칸도 구현인데, 아래칸도 구현이라고 따로 구분하신 이유가 있을까요??

    • 별도로 구분한건아니고 테스트 단계인데 구현 단계로 잘못 표기했네요.. 오타이므로 본문 수정하였고, 이상한점 지적 감사드립니다. 도움이 되신다니 다행입니다~^^