본문으로 건너뛰기
QA-Lab
중급20

셀프힐링 로케이터: AI가 깨진 셀렉터를 스스로 고치는 원리

화면이 바뀌어 로케이터가 깨지면, AI가 비슷한 요소를 찾아 자동으로 복구를 시도할 수 있다. 이 기술이 자동화 부채를 얼마나 줄여주는지, 그리고 어디까지 믿을 수 있는지 이해한다.

  • #셀프힐링
  • #로케이터
  • #AI자동화

개념

로케이터가 깨지는 문제, 다시 떠올리기

모듈 13(레슨 3)에서 배운 로케이터 안정성 원칙과, 모듈 11(레슨 4)에서 배운 자동화 부채를 떠올려보자 — 디자인이 바뀌면 로케이터가 깨지고, 그걸 사람이 하나하나 찾아 고쳐야 했다. 셀프힐링 로케이터(Self-Healing Locator)는 이 유지보수 부담을 AI가 일부 자동으로 대신 지게 하는 기술이다.

동작 원리

1. 원래 로케이터로 요소를 찾으려 시도한다
2. 실패하면(요소를 못 찾으면), AI가 화면의 다른 요소들을 분석해
   "원래 찾으려던 요소와 가장 비슷한 것"을 추정한다
3. 후보를 찾으면 그걸로 대신 실행하고, "로케이터가 자동으로
   복구됐다"고 로그에 남긴다
4. 다음 실행부터는 새 로케이터를 제안하거나 자동으로 갱신한다

AI는 요소의 위치, 텍스트, 역할, 과거에 이 요소가 어떻게 생겼었는지를 종합해서 "이게 그 버튼일 가능성이 높다"고 추론한다 — 모듈 15(레슨 3)에서 배운 이미지 인식 기반 접근과 비슷하게, 정확한 매칭이 아니라 유사성 기반 추정이라는 점이 핵심이다.

셀프힐링이 자동화 부채를 줄여주는 방식

셀프힐링 없이: 디자인 변경 → 로케이터 깨짐 → 사람이 원인 진단 → 수정 → 재배포
셀프힐링 있이: 디자인 변경 → 로케이터 깨짐 → AI가 자동으로 대체 요소 탐지 →
              테스트 계속 통과(+ 나중에 검토할 로그 기록)

모듈 14(레슨 5)에서 배운 False Alarm 문제 중 상당수가, 실제로는 결함이 아니라 단순히 로케이터가 화면 변경을 못 따라간 것이었다 — 셀프힐링은 이런 종류의 False Alarm을 줄여준다.

셀프힐링을 맹신하면 안 되는 이유

AI가 "비슷한 요소"를 찾았다는 것이, 그게 진짜 맞는 요소라는 보장은 아니다.

> "구매하기" 버튼이 사라지고 그 자리에 "위시리스트 추가" 버튼이
> 새로 생겼다고 하자. AI는 위치·스타일이 비슷하다는 이유로 이걸
> "구매하기" 버튼의 대체품으로 착각하고 계속 클릭할 수 있다 —
> 테스트는 "통과"로 나오지만, 실제로는 완전히 다른 기능을
> 테스트하고 있는 것이다.

이건 모듈 14(레슨 5)에서 배운 "양치기 소년 효과"의 새로운 버전이다 — 셀프힐링이 조용히 잘못된 요소로 계속 통과시키면, 진짜 문제(의도한 버튼이 사라졌다는 것 자체)를 아무도 눈치채지 못하게 된다.

안전하게 쓰는 법

- 셀프힐링이 발동될 때마다 반드시 로그를 남기고, 정기적으로 검토한다
- 셀프힐링으로 복구된 로케이터를 자동으로 영구 반영하지 않고,
  사람이 확인 후 승인하는 절차(모듈 9 레슨 7의 PR 리뷰와 비슷하게)를 둔다
- 핵심 흐름(결제 등)에는 셀프힐링을 신중하게 적용하거나, 발동 시
  더 엄격한 알림을 건다

실무에서 왜 필요한가

디자인이 자주 바뀌는 서비스에서, 셀프힐링 로케이터는 로케이터 유지보수에 드는 시간을 크게 줄여준다. 하지만 셀프힐링이 "구매하기" 버튼을 "위시리스트" 버튼으로 착각한 사례처럼, 잘못된 안심을 줄 수도 있다는 걸 아는 QA는 이 기술을 무조건적인 신뢰가 아니라 검토 절차와 함께 도입할 수 있다.

실습 과제

과제 1 — 오작동 시나리오 만들기 (10분)

셀프힐링 로케이터가 잘못된 요소를 "복구"로 착각해 테스트가 여전히 통과로 나오지만, 실제로는 검증하려던 기능이 사라진 상황을 하나 더 만들어본다(이 레슨의 예시와 다른 사례로).

과제 2 — 안전장치 설계하기 (10분)

셀프힐링 로케이터를 도입하려는 팀에게, 잘못된 복구를 조기에 발견하기 위한 절차를 2가지 이상 제안한다.

자가 체크리스트

  • 셀프힐링 로케이터의 동작 원리를 설명할 수 있다
  • 셀프힐링이 자동화 부채를 줄여주는 방식을 설명할 수 있다
  • 셀프힐링이 잘못된 요소를 착각할 수 있는 위험을 설명할 수 있다
  • 셀프힐링을 안전하게 도입하기 위한 절차를 제안할 수 있다

흔한 실수

  • 셀프힐링이 발동해도 로그를 확인하지 않고 넘어간다. 잘못된 요소로 복구됐을 가능성을 놓치게 된다.
  • 모든 화면에 셀프힐링을 무차별적으로 적용한다. 핵심 흐름은 더 신중하게 다뤄야 한다.
  • 셀프힐링이 있으니 로케이터 설계(모듈 13 레슨 3)를 잘 안 해도 된다고 생각한다. 애초에 안정적인 로케이터가 셀프힐링이 개입할 일 자체를 줄여준다.

참고 자료

  • Testim, Mabl 등 AI 기반 테스트 도구의 공식 문서 — 셀프힐링 로케이터의 실제 구현 사례
  • Martin Fowler — Eradicating Non-Determinism in Tests — 자동화 신뢰도 관리 원칙(모듈 14 레슨 5와 동일한 참고 자료)