테스터가 특정 기능 테스트를 할 때,
테스트 하는데 걸리는 시간보다 테스트 사전조건을 만드는데 걸리는 시간이 더 많은 경우가 있다.
직접 조사를 해보니 꽤 많은 경우에 실제로 테스트 하는데 걸리는 시간보다 테스트 사전조건을 만드는데 시간이 더 많이 걸린다고 한다.
간략하게 두가지 정도만 예를 들어보자면 아래와 같다.
1. 쇼핑몰 상품에 신용카드 청구할인/즉시할인 프로모션이 있는 경우에 대한 테스트
2. 상품 구매 후, 배송상태에 따라 고객이 할 수 있는 행동에 대한 테스트
1번 신용카드 청구할인/즉시할인 프로모션 테스트를 하기 위해서는 상품에 프로모션을 등록해야한다.
프로모션을 등록하기 위해서는 쇼핑몰 내부 시스템을 이용해야하며 등록해야할 사항과 조건이 매우 까다롭다.
또한, 프로모션의 종류가 매우 다양하고, 상품의 타입도 매우 다양하기 때문에 프로모션 별 상품타입 별 로 모두 프로모션을 등록해야하기 때문에 테스트 사전조건 준비에 매우 많은 시간이 소요된다.
총 시도해야하는 테스트케이스의 수가 (상품타입수 제곱 신용카드 수) X 2(즉시할인,청구할인) 가 된다.
2번 상품 구매 후, 배송상태에 따라 고객이 할 수 있는 행동에 대한 테스트 역시 상품타입별로 상품을 구매하고,
쇼핑몰 내부 시스템을 이용하여 상품의 배송상태를 단계별로 변경해가며 테스트를 진행해야 하기 때문에 이 역시 테스트를 준비하는데 무척 많은 시간이 소요된다.
자, 그럼 이 문제를 어떻게 해결하면 좋을까..
테스트 사전조건을 만든다는것은 결국 데이터를 저장/수정하는 행위다.
아이디어
- 여러 복잡한 절차를 거치지 않고 특정 사전조건을 한번에 생성하는 기능을 만들면 어떨까,
- 대부분의 값은 기본값을 정의하고 꼭 필요한 정보만 입력을 하고 확인 버튼을 클릭하면 사전조건이 즉시 만들어지면 어떨까,
이러한 아이디어로 내린 결론이 REST API 개발이다.
테스트 사전조건이 생성이 까다롭고 오래 걸리는 것들을 위해 사전조건 생성 API를 만들어서 사전조건을 쉽고 빠르게 만들면 분명히 많은 시간을 단축하고 데이터 오입력으로 인한 테스트 오류도 줄어들것이다.
이러한 아이디어를 여러 테스터에게 공유드리니 열화와도 같은 성원을 보냈다.
그리하여 테스트를 위한 데이터를 생성하는 API 를 개발하였다.
1번 신용카드 청구할인/즉시할인 프로모션은 꼭 필요한 상품코드, 신용카드 코드, 할인율만 필수 파라미터로 받는 API 를 개발하여 현재 매우 활발히 사용되고 있다.
또한 프로모션 종료 API 도 개발하여 언제든 원하는 프로모션은 종료시킬 수도 있도록 하였다.
2번 상품 구매 후, 배송상태에 따라 고객이 할 수 있는 행동에 대한 테스트 사전조건을 위하여
주문번호만 파라미터로 받아서 배송상태를 변경할 수 있는 API 를 개발하였다.
배송준비중, 상품배송중, 배송완료 API 를 개발하여 배송상태를 쉽고 빠르게 변경할 수 있도록 하였고 이 역시 아주 많은 호응을 얻었고 많이 쓰이고 있다.