테스트 자동화 방안 – 테스트에 AI 접목시키기
수행 배경은 무엇인가요 ?
여러분도 잘 아시다시피 ICT 사업본부는 현재 ICIS Tr이라는 대규모 프로젝트를 진행하고 있습니다.
프로젝트가 막바지로 접어들면서 ICIS Tr 빌링팀도 RAT(Rating Accuracy Test, 과금 정합성 테스트), BAT(Billing Accuracy Test, 청구 정합성 테스트)를 수행하느라 여념이 없는데요, 그 외 비교적 독립적인 업무의 API서비스들은 단위테스트 시 개발자가 직접 테스트 데이터를 생성하여 Swagger를 통한 테스트를 수행하곤 했었습니다.
이때, 테스트 데이터의 편향이 일어나기도 하고, 충분한 양의 테스트 케이스를 생성하기 쉽지 않았는데요, 이 고민을 해결하고자 테스트 케이스의 생성을 자동화하여 RAT, BAT와 같은 전수테스트에 리소스를 더 투자할 수 있지 않을까 하여 활용을 검토하게 되었습니다.
이제 테스트 케이스를 만들러 가볼까요 ?
시나리오별 테스트 SQL을 작성하도록 지시하는 세부 명령어 작성
작성한 명령어의 주요 사항은 다음과 같습니다.
인덱스를 힌트로 사용
바인딩 변수 조건을 만족하는 유일한 행을 검색
2. 서비스 관련 소스코드 입력
해당 소스코드를 바탕으로 생성된 테스트 SQL 추출
시나리오별 테스트 코드를 작성하는 세부 명령어 작성
작성한 명령어의 주요 사항은 다음과 같습니다.
테스트코드는 mockMvc로 생성
여러 개의 바인딩 변수를 각각 다른 조건으로 설정
성공 케이스, 입력값이 빠진 케이스, 조회결과가 없는 케이스 등 다양하게 작성
테스트 SQL 포함된 테스트 코드 추출
테스트 수행 및 결론 도출
향후 계획은 무엇인가요 ?
앞서 말씀드린 바와 같이, 이번 PoC는 독립적인 조회성 API에 대하여 수행하였는데요, 향후에는 상품별 요금에 영향을 주는 데이터(요금팩터)를 다방면으로 학습시켜, 빌링 시스템의 핵심 기능인 과금, 청구 정합성에 대한 테스트 케이스 생성을 목표로 하고 있습니다.
실제 가입자가 존재하진 않지만, 발생 가능한 요금 조합에 대해서도 빠짐 없이 테스트한다면, 더욱 신뢰도 있는 빌링 시스템을 구축할 수 있지 않을까요?
글을 마치며…
사실은 프로젝트에 AI를 접목시킬 수 있는 방안이 있을까 고민을 많이 했었는데요, 자사 AI 서빙 플랫폼AI:ON-U를 활용하여 Smart하게 일하는 법을 다시 한번 느낄 수 있던 값진 경험이었고, 다른 자사 솔루션 및 플랫폼에도 더욱 관심을 가지는 기회가 되었습니다.
감사합니다 :)