귀하의 오라클 BRM (청구 및 수익 관리) 구성을 한동안 사용하다 보면 구성된 엔티티의 수가 계속 증가한다는 사실을 깨닫기 시작합니다. 이때쯤이면 사용자 지정도 일부 개발하고 추가 솔루션과 통합했을 가능성이 높습니다. 환경이 발전함에 따라 서로 얽혀 있는 개체가 복잡하게 클러스터화됩니다. 여러분 또는 여러분의 고객이 무언가를 변경하기로 결정하는 시점이 오게 됩니다. 새로운 기능은 처음에는 개발하기 쉬워 보일 수 있습니다. 하지만 실제로는 기존 기능과 충돌하거나 기존 구성도 업데이트해야 할 가능성이 매우 높습니다. 단순한 변경 사항으로 보였던 것이 전체 시스템에 영향을 미칠 수 있습니다. 이러한 상황은 때때로 피하기 어렵지만 이에 대비하면 많은 문제를 줄일 수 있습니다. 기능 테스트 시나리오와 테스트의 다양성은 판도를 바꿀 수 있습니다.
지속적인 개발 흐름
Tridens에서는 지속적인 개발 흐름을 확립했습니다. 모든 BRM 구성, 사용자 지정 및 기타 통합 구성 요소는 분산 버전 제어 시스템(Git)에서 적절하게 버전이 관리되고 추적됩니다. 이러한 관행 덕분에 개발자는 언제든지 필요한 구성 요소 버전을 확인하고 작업을 시작할 수 있습니다. 여기까지는 문제가 없지만 새로운 기능으로 인해 현재 빌드가 중단될 가능성은 어떻게 해결해야 할까요?

저희는 소스의 원격 리포지토리를 추적하는 배포 및 테스트 플로우를 설정해 놓았습니다. 따라서 개발자가 일부 변경 사항을 커밋하고 버전 제어에 푸시할 때마다 테스트 프로세스가 시작됩니다. 배포 흐름은 로컬(또는 원격) 환경에서 최신 버전으로 모든 관련 구성 요소에 대한 도커 이미지를 빌드하고, 빌드가 안정적인지 확인하기 위해 자동화된 테스트를 실행합니다. 테스트가 성공적으로 완료되어야만 새 버전을 프로덕션 환경에 릴리스할 수 있습니다. 이 프로세스를 통해 새로운 기능이 기존 기능과 원활하게 작동하는지 확인할 수 있습니다. 실행된 테스트는 저희가 개발한 Oracle BRM 테스트툴킷의 일부입니다. BRM 테스트 툴킷에는 백그라운드 글루 코드가 포함된 사전 정의된 단계와 시나리오가 있습니다. 단계는 매우 설명적이고 사용자 친화적이어서 개발자나 다른 사용자가 새로운 테스트 시나리오를 빠르게 작성할 수 있습니다. 아래 이미지에서 테스트 시나리오의 예를 찾아보세요.

자동화된 테스트를 위한 BRM 테스트 툴킷
계정 생성과 제품 구매에 대한 간단한 테스트 시나리오로 시작한 것이 오늘날 테스트의 메인프레임이 된 BRM TestToolkit입니다. 이제 구현된 기능을 최대한 커버할 수 있도록 여러 가지 테스트 케이스와 프린지 케이스 시나리오를 보유하고 있습니다. 자동화된 테스트를 통해 개발자는 수동 테스트에 많은 시간을 할애하지 않고 당면한 작업에 집중할 수 있습니다. 물론 테스트 시나리오에 아직 포함되지 않은 새로운 기능을 개발하는 경우도 있습니다. 이러한 경우 테스트 단계 정의와 해당 백그라운드 코드를 해당 기능의 일부로 구현하여 향후에도 사용할 수 있도록 합니다.
테스트 툴킷은 다양한 구성 요소와 통신할 수 있으므로 다른 시스템에서도 빠르게 조정할 수 있습니다. 또한 다른 컴포넌트에도 새롭게 디자인된 버전의 BRM 테스트툴킷을 사용합니다. 최근에 추가된 기능 중 하나는 개발자가 여러 테스트 시나리오를 그룹의 일부로 태그할 수 있는 모듈화 기능입니다. 그런 다음 각 그룹에는 스크립트와 분리된 로직이 있으므로 원하는 경우 한 번에 특정 수의 테스트만 병렬로 실행할 수 있습니다. 또한 모듈화를 통해 선불 등급 테스트와 후불 등급 테스트를 분리하거나 애드온 구매 테스트와 기타 구매 테스트를 분리할 수 있습니다. 아래 이미지에서 테스트 흐름을 확인할 수 있습니다.

테스트 시나리오 범위
BRM 테스트툴킷은 복잡한 작업을 간소화하기 위해 Oracle BRM와 통합한 API와 통신합니다. 테스트 툴킷은 또한 BRM RestBridge는 REST API를 통해 JSON 또는 XML 형식을 사용할 수 있도록 하여 BRM과의 통신을 용이하게 하는 BRM 래퍼 솔루션입니다. 테스트 단계 정의는 특히 다음과 같은 작업을 지원합니다:
- 계정 생성 및 관리
- 거래 구매 및 기타 거래 운영
- 잔액 검색 및 확인
- 트래픽 생성 - 사용 이벤트
- API 호출
- CDR 드롭오프
- 실시간 트래픽 도구(직경 프로토콜)
- 등급 확인
- BRM 테스트 툴킷은 다양한 사용 이벤트와 구매를 예상 값과 비교합니다.
- 각기 다른 요금제 또는 제품마다 고유한 등급 파일 세트를 가질 수 있어 복잡한 제품 설정에서 다양한 활용성을 보장합니다.
사용자 친화적인 테스트 단계를 구성하여 각 개발자는 개발 중인 기능에 대한 시나리오를 작성할 수 있습니다. 대부분의 경우 개발자는 기능을 개발하기 전에 테스트 시나리오를 미리 설정합니다. 시나리오를 미리 준비하는 것은 행동 중심 개발(BDD) 패턴을 따릅니다. BDD는 본질적으로 시나리오가 개발 흐름을 지시하며 사전에 존재해야 한다는 것을 의미합니다. 이러한 시나리오는 시스템이 어떻게 작동해야 하는지를 설명하며, 개발자는 이러한 시나리오에 맞는 방식으로 새로운 기능을 개발해야 합니다. 각 테스트 시나리오를 개별적으로 실행하여 지정된 형식의 보고서를 생성할 수 있습니다. 아래는 HTML 보고서의 예입니다.

보고
시스템에서 새 개발 빌드의 일부로 테스트 시나리오를 실행할 때는 일반적으로 모든 테스트를 포함하여 잠재력을 최대한 발휘하여 실행합니다. 환경마다 다르므로 시간이 다소 걸릴 수 있지만, 새로운 기능이 기존의 다른 구현에 어떤 영향을 미쳤는지 폭넓게 파악할 수 있습니다. 테스트 실행이 끝날 때 BRM 테스트 툴킷이 생성하는 테스트 보고서에서 빌드 안정성을 평가할 수 있습니다. 테스트 보고서에는 각 테스트 시나리오에 대한 세부 정보가 포함되어 있을 뿐만 아니라 일반적으로 모든 테스트에 대한 몇 가지 통계 및 분석도 제공됩니다. 이 분석을 사용하여 빌드 간의 차이점을 찾고 빌드가 올바르게 작동하는지 확인할 수 있습니다. 아래 보고서의 예를 참조하세요.

결론
올바른 테스트 솔루션을 사용하면 많은 시간을 절약하고 불필요한 버그 발생을 방지할 수 있습니다. 따라서 이 글에서 언급된 문제로 어려움을 겪고 있거나 테스트 BRM 툴킷에 관심이 있으시면 언제든지 저희에게 문의해 주세요. 저희 솔루션에 대해 자세히 알려드리고 배포 및 테스트 흐름을 개선하는 방법에 대한 최적의 계획을 수립해 드리겠습니다.