끊기던 자동화 위에 다리를 놓다: 셀프힐링 로케이터로 유지보수의 벽을 넘다
AI 챔피언 두 번째 이야기 — QA팀 강영훈 님의 여정
AI 챔피언 두 번째 이야기 — QA팀 강영훈 님의 여정
강영훈 님이 QA를 선택한 건 특별한 계획 때문은 아니었습니다. 대학교 시절 우연히 인턴으로 시작했지만, 현업에서 경험을 쌓으며 “서비스 품질을 지키는 QA의 역할이 생각보다 중요하다”는 걸 깨달았어요. 이후 다양한 회사에서 QA를 이어갔지만, 그는 늘 한 가지 아쉬움이 있었다고 합니다.
“더 많은 사용자가 쓰는 대규모 서비스, 빠르게 성장하는 서비스에서 QA를 해보고 싶었어요”
이 갈증이 그를 마이리얼트립으로 이끌었습니다.
“여행은 누구나 쓰는 서비스잖아요. 제가 직접 즐겨 쓰던 서비스이기도 했고요. 이곳에서라면 QA 엔지니어로서 더 다이나믹한 경험을 할 수 있겠다고 생각했습니다.”
“이럴 거면 손으로 돌리는 게 더 낫지 않나?”
마이리얼트립의 서비스가 고객에게 안정적으로 다가가도록 QA를 든든하게 뒷받침해주는 영훈 님은 처음 회귀 테스트 자동화를 구축했을 때 큰 기대를 걸었습니다. 로그인, 결제처럼 중요한 기능이 배포 후에도 잘 작동하는지 자동으로 확인된다면, QA의 부담은 줄고 서비스 안정성은 높아질 테니까요.
하지만 기대는 오래 가지 않았습니다. 작은 UI 변경에도 테스트가 끊겼습니다. 버튼의 텍스트가 바뀌거나 DOM 구조가 조금만 달라져도, 스크립트는 더 이상 원하는 요소를 찾지 못했습니다. 매번 수동으로 로케이터를 수정하고 테스트를 다시 돌려야 했죠.
“자동화가 효율을 주기는커녕, 수동 테스트와 다를 바 없다는 회의감이 들었어요.”
그럴 때는 문득 이런 생각이 스쳤습니다.
“이럴 바엔 손으로 돌리는 게 빠른 거 아닌가?”
회귀 테스트, 왜 이렇게 어려울까
회귀 테스트는 새 기능을 더했을 때 기존 기능이 잘 작동하는지 확인하는 과정입니다. 집에 새 가전을 들인 뒤, 다른 전자기기까지 함께 잘 켜지는지 확인하는 것과 비슷합니다.
문제는 빠르게 바뀌는 UI 환경이었습니다. 서비스가 성장하면서 배포 주기는 짧아지고, 화면은 자주 바뀌었습니다. QA팀이 수동으로 모든 변경을 따라가며 자동화 스크립트를 고치는 것은 불가능에 가까웠습니다.
자동화의 효용은 점점 의심스러워졌습니다…
길을 찾는 실험 — AI Lab과의 만남
마이리얼트립에는 AI 챔피언 제도가 있습니다. AI Lab이 가드레일을 세워주는 코치이자 동료가 되어, AI를 몇몇 전문가만 쓰는 기술이 아니라 모든 구성원이 자기 문제를 직접 풀어내는 도구로 활용할 수 있게 돕는 프로그램입니다.
강영훈 님은 이 제도를 통해 AI Lab과 연결되었고, 오래된 난제를 실험적으로 풀 기회를 얻었습니다.
“테스트가 깨져도 스스로 복구할 수 있다면 어떨까?”
그때 시작된 시도가 바로 셀프힐링 로케이터였습니다.
셀프힐링 로케이터, 실패해도 이어지는 테스트
셀프힐링의 기본 아이디어는 단순했습니다 — 로케이터를 못 찾으면, AI가 다시 찾아준다.
구체적으로는 이렇습니다.
테스트가 요소 탐색에 실패하면 화면 구조(DOM/UI 트리)를 읽어오고, 시나리오에 적어둔 설명(description)을 단서로 AI에게 묻습니다. 그러면 AI가 새로운 로케이터 후보를 제안하고, 이를 실제로 실행해 검증한 뒤 성공하면 곧바로 테스트를 이어갑니다.
탐색에서 시작해 질의, 검증, 갱신을 거치는 과정을 통해, 자동화가 스스로 회복하며 길을 이어가는 구조가 만들어진 것입니다.
“AI가 페일오버를 해주니까, 더 이상 테스트가 단절되지 않았습니다.”
작성 방식의 전환
변화는 단순히 테스트가 끊기지 않는 데서 끝나지 않았습니다. 테스트를 작성하는 방식 자체가 바뀌었습니다.
예전에는 QA 엔지니어가 개발자 도구를 열고, DOM을 뒤져가며 XPath를 하나하나 추출했습니다. 말 그대로 “한 땀 한 땀” 모으는 작업이었죠.
이제는 description만 적으면 됩니다.
- “로그인 버튼”
- “결제 확인 팝업의 확인 버튼”
이렇게 하면 실행 도중 AI가 자동으로 로케이터를 찾아 채워 넣습니다.
“DOM을 일일이 뒤져 XPath를 한 땀 수집하던 방식에서, 화면 의미와 맥락을 description으로 명세하는 방식으로 바뀌었어요.”
그 결과, 콘텐츠 작성 시간은 수 시간에서 십수 분으로 줄었습니다. 체감상 10분의 1 수준입니다.
QA 엔지니어의 시간, 다른 곳으로
효율화는 단순히 시간을 줄여주는 데서 멈추지 않습니다.
새로 생긴 여유는 탐구와 확장으로 이어졌습니다.
“자동화가 도는 동안 저는 다른 AI 도구를 연구할 수 있어요. 챗봇으로 대화하는 수준이 아니라, 실제 시스템에 직접 연결할 수 있는 방법을 찾아보고 싶습니다.”
유지보수로 시간을 소모하는 대신, 새로운 실험과 리서치에 시간을 쓸 수 있게 된 것입니다.
영훈 님은 말합니다. QA 자동화는 많은 회사가 시도하지만, 유지보수의 벽 앞에서 번번이 무너진다고요. “최소한의 유지보수는 불가피하다.” “변경이 적은 부분만 자동화하자.” 이런 타협이 흔합니다.
하지만 셀프힐링 로케이터처럼 기술적으로 유지보수 문제를 정면으로 뚫어낸 사례는 업계에서도 극히 드뭅니다.
“아직 완벽하진 않지만, 이 정도로 극복한 사례는 업계에서도 흔치 않습니다.”
이어붙이는 자동화, 사람을 더 똑똑하게 만드는 도구
QA 자동화의 가장 큰 적은 자주 바뀌는 UI와 그로 인한 유지보수 비용이고, 셀프힐링 로케이터는 그 비용을 줄이는 혁신적 접근입니다. 하지만 AI는 확률적으로 동작하기에, 전처리·재시도·어설션·로그 추적 같은 가드가 반드시 필요하고, 자동화의 목적은 사람을 대체하는 것이 아닙니다. 사람이 판단이 필요한 지점에 더 집중할 수 있도록 돕는 것이라는 거죠.
강영훈 님의 사례는 QA 자동화의 오랜 난제에 대한 하나의 해법을 보여줍니다.
끊기던 테스트를 이어붙이는 경험, 자동으로 최신화되는 시나리오, 그리고 엔지니어의 시간을 다시 창의적인 탐구로 돌려주는 구조.
자동화는 결국 사람을 대체하는 것이 아닙니다.
사람을 더 똑똑하게 만드는 도구입니다.
작은 시도에서 출발한 셀프힐링 로케이터는 이제 팀이 스스로 운영 가능한 수준으로 자리 잡았습니다.
그리고 이 변화는, 더 많은 동료들이 자기 자리에서 AI와 함께 문제를 푸는 길로 이어질 것입니다.