프로젝트/업무자동화

테스트 자동화 프로젝트 수행 회고

모지사바하 2018. 12. 19. 13:46

1. 테스트 자동화


- 테스트 상황 자동 생성 API 개발

수동 테스터가 테스트를 진행 할 때, 테스트를 수행하는 시간보다 테스트 할 수 있는 상황을 만드는 것이 더 오래 걸린다고 함.

예를 들어, 신용카드 프로모션이라는 기능이 있는데 특정 상품을 특정 신용카드로 구매했을 때 3~7% 정도 청구 할인해주는 기능인데, 상품 별, 카드별로 다른 할인율을 적용해서 테스트를 할 때 테스트 하는 시간보다 테스트할 수 있는 상황을 만들기 위해 상품에 프로모션 추가 하는 시간이 엄청나게 오래 걸린다고 함. 

또 상품에 프로모션을 추가하기위해서는 내부에서 쓰는 백오피스에 권한도 있어야하고, 사용법도 알아야하기 때문에 새로운 사람이 왔을 때 백오피서 서비스 권한신청 및 교육이 반드시 필요한 상황.

이런 어렵고 복잡한 과정을 생략하기 위해, 테스트할 수 있는 상황을 한번에 만들어주는 API를 개발함.

테스터는 이 API 에 필요한 파라미터, 예를들어 신용카드 프로모션이라면 카드번호, 할인율, 상품번호 를 넣고 호출하면 테스트할 수 있는 상황이 한번에 만들어지기 때문에 획기적으로 시간을 절약할 수 있게 됨.

이 API 를 만들기 위해 테스터와 적극 인터뷰 하여 꼭 필요한 API 를 도출해내고, 백엔드 시스템 개발자를 만나 테스트 상황을 만들기 위해 필요한 API 를 문의. 필요하면 개발요청(커피로 꼬셔서..)


- Selenium 을 통한 수동테스트 자동화

매 회귀 테스트마다 테스터는 기계적인 회귀테스트를 반복함. 매번 반복되는 기계적인 작업이다보니 회귀테스트에서 놓지는 부분이 발생할 수 있고, 단순 반복 시간낭비 발생.


Selenium 을 이용하여 UI를 자동으로 테스트할 수 있는 테스트 코드 작성. 테스터와 회의를 통해 주요 테스트 시나리오 Map 을 작성.

(1) 사용자가 접속할 수 있는 모든 페이지 URL 을 모두 접속하는 테스트 Suite

(2) 매 정기배포마다 진행하는 회귀테스트 (1시간 30분 분량) Suite

(3) 테스터가 선정한 주요기능 Test Suite


우선 위와 같이 3벌의 suite 를 만들었고 매일매일 수행하도록 함.

테스터가 선정한 주요기능에 대한 테스트 코드를 개발 할 때 - 테스트 상황 자동 생성 API - 를 이용함.


- TAMS (Test Application Management System)

Selenium 으로 개발한 테스트 코드를 개발을 모르는 테스터가 원하는 테스트를 선택해서 실행하기 어려운 문제가 발생.

테스터가 쉽고 편하게 원하는 자동 테스트코드를 실행할 수 있도록 TAMS 웹어플리케이션 개발 착수.


TAMS의 주요기능은

개발완료한 테스트 코드를 등록/수정/삭제 할 수 있는 관리기능

각 테스트 코드를 Run 버튼 클릭을 통해 쉽게 실행할 수 있는 기능

등록한 테스트코드를 조합하여 Suite 를 만들어 한번에 실행할 수 있는 기능

테스트코드 내에서 사용할 데이터 (예를들어 로그인아이디/비밀번호, 결제시 사용할 카드정보, 배송지 정보 등) 추가/수정/삭제 할 수 있는 관리 기능

테스트 검색기능

테스트 수행 이력 및 성공/실패/무시 카운트 및 실패 로그 및 실패단계 스크린샷 제공


어려웠던 점.

회사 보안 정책으로 USB 포트가 막혀서 디바이스 테스트 수행 불가. (크롬에서만 테스트진행)