채널 매니저 연동 테스트, 객실 재고는 시스템 사이에서 틀어진다
PMS와 판매 채널을 잇는 인터페이스에서 생기는 결함과 통합 테스트의 관점

호텔의 객실은 한 곳에서만 팔리지 않는다. 자사 홈페이지의 예약 엔진, 여러 온라인 여행사(OTA, Online Travel Agency), 여행사 계약 요금이 동시에 같은 재고를 바라본다. 이 재고와 요금을 여러 채널에 나누어 보내고 들어온 예약을 객실관리시스템(PMS, Property Management System)으로 넘기는 것이 채널 매니저(Channel Manager)의 역할이다. 마지막 남은 객실이 두 채널에서 동시에 팔리는 초과 예약(Overbooking)은 대개 어느 한 시스템이 아니라 시스템 사이에서 생긴다.
각자 정상인데 함께 틀린다
PMS는 재고를 정확히 계산하고, 채널 매니저는 받은 값을 정확히 전달하며, OTA는 받은 재고만큼 판매한다. 세 시스템이 각자의 테스트를 통과해도 문제는 남는다. 정보가 오가는 데 시간이 걸리고, 그 사이에 다른 판매가 일어나기 때문이다.
국제소프트웨어테스팅자격위원회(ISTQB)의 CTFL 실라버스는 테스트 레벨 가운데 통합 테스트를 두 가지로 나눈다. 한 시스템 안의 구성요소 사이를 보는 컴포넌트 통합 테스트(Component Integration Testing)와, 서로 다른 시스템이나 외부 서비스 사이의 인터페이스를 보는 시스템 통합 테스트(System Integration Testing)이다. 채널 연동은 대표적인 시스템 통합 테스트의 대상이다. 외부 시스템은 호텔이 통제할 수 없고, 테스트 환경을 구하기 어려운 경우도 많다는 점에서 더 까다롭다.
인터페이스에서 생기는 결함의 유형
채널 연동에서 확인할 만한 상황을 메시지가 오가는 방식에 따라 나누면 다음과 같다.
- 지연(Latency): PMS에서 재고가 0이 되었지만 OTA에는 아직 1로 남아 있는 몇 초에서 몇 분의 시간. 이 사이에 예약이 들어오면 초과 예약이 된다.
- 중복(Duplication): 응답을 받지 못한 시스템이 같은 예약을 다시 보내는 경우. 받는 쪽이 같은 예약임을 알아보지 못하면 예약이 두 건 생긴다. 같은 요청을 여러 번 받아도 결과가 한 번 처리한 것과 같아야 한다는 멱등성(Idempotency)의 확인이 필요하다.
- 순서 뒤바뀜(Out-of-order): 예약 변경 메시지가 원래 예약보다 먼저 도착하거나, 취소가 변경보다 먼저 처리되는 경우.
- 부분 실패(Partial Failure): 다섯 채널 가운데 네 곳에는 요금이 반영되고 한 곳에서만 실패한 경우. 실패가 조용히 묻히면 한 채널만 다른 요금으로 팔린다.
- 형식 차이(Mapping): 객실 유형 코드, 요금 코드, 인원 기준, 날짜와 시간대 표기가 시스템마다 다른 경우. 시간대 문제는 호텔 시스템에서 날짜는 왜 자주 틀리는가에서 자세히 다루었다.
이 결함들은 정상적인 한 건의 예약으로는 드러나지 않는다. 동시에, 늦게, 두 번, 거꾸로 일어나는 상황을 일부러 만들어야 보인다.
무엇을 어떻게 시험할 것인가
편집부는 채널 연동을 시험할 때 다음 관점을 제안한다.
- 마지막 한 실을 동시에 판다: 재고 1실 상태에서 두 채널의 예약을 거의 동시에 넣어 보고, 시스템이 이를 어떻게 처리하는지 확인한다. 초과 예약이 생겼을 때 직원이 바로 알 수 있는지도 확인 대상이다.
- 같은 메시지를 두 번 보낸다: 동일한 예약, 변경, 취소 메시지를 반복해 보내 예약이 중복 생성되지 않는지 본다.
- 연결을 끊었다가 잇는다: 채널 매니저나 네트워크가 잠시 멈췄다가 복구되었을 때 밀린 메시지가 올바른 순서로 처리되는지, 누락된 것은 없는지 본다.
- 실패를 알리는지 본다: 전송에 실패했을 때 재시도하는지, 끝내 실패하면 담당자가 알 수 있게 기록하고 알리는지 확인한다. 조용한 실패가 가장 위험하다.
- 대사(Reconciliation)를 기능으로 본다: PMS의 재고·요금과 각 채널에 실제로 게시된 값을 주기적으로 비교하는 기능이 있다면, 그 비교 자체가 정확한지도 시험 대상이다.
모든 채널과 모든 조합을 시험할 수는 없다. 판매 비중이 큰 채널, 재고가 적은 성수기, 요금 변경이 잦은 기간처럼 실패의 영향이 큰 곳부터 보는 것이 현실적이다. 이 우선순위를 정하는 방법은 무엇부터 테스트할 것인가, 호텔 시스템의 리스크 기반 테스트에 정리하였다.
연동 테스트의 질문은 "보냈는가"가 아니라 "받는 쪽에서도 같은 상태가 되었는가"이다.
결함은 프런트에서 드러난다
인터페이스 결함의 결과는 결국 체크인 카운터에서 나타난다. 예약이 조회되지 않는 고객, 같은 날 같은 객실에 배정된 두 예약, 채널마다 다른 요금을 본 고객의 문의가 그것이다. 이중 배정이 고객 경험과 매출로 번지는 과정은 703호 이중 배정으로 본 오류·결함·장애에서도 살펴보았다.
맺으며
채널 연동의 품질은 어느 한 업체의 책임으로 나누기 어렵다. 그래서 호텔과 솔루션 업체가 함께 "시스템 사이"를 시험 대상으로 정하고, 지연과 중복과 실패가 일어났을 때의 기대 동작을 미리 합의해 두는 것이 중요하다. 고객에게는 PMS도 채널 매니저도 보이지 않는다. 고객이 보는 것은 예약한 방이 있는가 하는 한 가지뿐이다.
참고문헌
- ISTQB. Certified Tester Foundation Level (CTFL) Syllabus, v4.0.1.
이 글이 도움이 되셨나요?
© 관광서비스품질연구소. 이 글의 무단 전재 및 재배포를 금지한다.