테스트 자동화 도구

2020-05-14

이번 포스팅에서는 테스트 자동화 도구에 대한 간단한 정리입니다.


테스트 자동화 개념

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

쉽고 효율적으로 테스트를 수행할 수 있도록 한 것

이를 통해 휴먼 에러(Human error)를 줄이고 테스트의 정확성을 유지하면서 테스트의 품질을 향상

장점과 단점

장점에는 뭐가 있을까?

  1. 테스트 데이터의 재입력, 재구성 같은 반복적인 작업을 자동화함으로써 인력 및 시간을 줄일 수 있다.

  2. 다중 플랫폼 호환성, 소프트웨어 구성, 기본 테스트 등 향상된 테스트 품질을 보장한다.

  3. 사용자의 요구사항 등을 일관성 있게 검증

  4. 테스트 결과에 대한 객관적인 평가 기준 제공

  5. 테스트 결과를 그래프 등 다양한 표시 형태로 제공

  6. UI가 없는 서비스도 정밀 테스트가 가능

그렇다면 단점은?

  1. 자동화 도구의 사용 방법에 대한 교육 및 학습이 필요하다.

  2. 프로세스 단계별로 적용하기 위한 시간, 비용, 노력이 필요하다.

  3. 비공개 상용 도구의 경우 고가의 추가 비용이 필요하다.

  • 비공개 상용 도구는 특정 기업체 전용으로 개발되어 독점 공급되는 소프트웨어

테스트 자동화 도구의 유형

1. 정적분석 도구

프로그램을 실행하지 않고 북석하는 도구로, 소스 코드에 대한 코딩 표준, 스타일, 코드 복잡도 및 남은 결함들을 발견

테스트를 수행하는 사람이 작성된 소스 코드를 이해하고 있어야만 분석이 가능

2. 테스트 실행 도구

스크립트 언어를 사용해서 테스트하는 방법

데이터 주도 접근 방식과 키워드 주도 접근 방식으로 구분됨

데이터 주도 접근 방식 : 스프레드 시트에 테스트 데이터를 저장하고, 이를 읽어 실행하는 방식

키워드 주도 접근 방식 : 스프레드 시트에 테스트를 수행할 동작을 나타내는 키워드와 테스트 데이터를 저장하여 실행하는 방식

3. 성능 테스트 도구

어플리케이션의 처리량, 응답시간, 경과시간, 자원 사용률 등을 인위적으로 적용한 가상의 사용자를 만들어

테스트를 수행함으로써 성능의 목표 달성 여부 확인

4. 테스트 통제 도구

테스트 계획 및 관리, 테스트 수행 , 결함 관리 등을 수행하는 도구로 종류에는 형상관리 도구, 결함추적 / 관리도구 등이 있음

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

  • 테스트 계획 시 : 요구사항 관리 도구
  • 테스트 분석 / 설계 : 테스트 케이스 생성
  • 테스트 수행 : 테스트 자동화, 정적 분석, 동적 분석, 성능 테스트, 모니터링
  • 테스트 관리 : 커버리지 분석, 형상관리, 결함 추적/ 관리

결함의 정의

오류 발생, 작동 실패와 같이 소프트웨어가 개발자가 설계한 것과 다르게 동작하거나 다른 결과가 발생하는 것을 의미

  • 사용자가 예상한 결과와 실행 결과 간의 차이나 업무 내용과의 불일치 등으로 인해 변경이 필요한 부분도 모두 결함에 해당

결함 관리 프로세스

결함 관리 계획 -> 결함기록 -> 결함 검토 -> 결함 재확인 -> 결함 상태 추적 및 모니터링 활동 -> 최종 결함 분석 및 보고서 작성

결함 상태 추적

테스트에서 발견된 결함은 지속적으로 상태변화를 추적하고 관리해야함

결함 추적 순서

결함 등록 -> 결함 검토 -> 결함 할당 -> 결함 수정 -> 결함 조치 보류 -> 결함 종료 -> 결함 해제

결함 분류

  1. 시스템 결함 : 시스템 다운, 작동 정지, 응답시간 지연, DB에러 등

  2. 기능 결함 : 요구사항 불일치, 부정확한 비즈니스 프로세스, 타 시스템 연동시 오류

  3. GUI 결함 : UI 비일관성, 데이터 타입의 표시 오류, 부정화간 커서/ 메시지 오류 등

  4. 문서 결함 : 사용자의 요구사항과 기능 요구사항의 불일치로 인한 불완전한 상태의 문서, 사용자의 온/오프라인 매뉴얼 불일치 등