피드로 돌아가기
We stopped writing Playwright selectors and let AI figure it out
Dev.toDev.to
AI/ML

AI 기반 Intent-driven 엔진으로 Selector 의존성 제거 및 Self-healing 구현

We stopped writing Playwright selectors and let AI figure it out

anjo zulaybar2026년 5월 28일3advanced

Context

UI 변경에 따른 Selector 잦은 파손으로 인한 테스트 신뢰도 저하 문제 발생. 단순한 CSS/XPath 기반의 테스트 스위트 유지보수 비용이 기하급수적으로 증가하는 병목 지점 확인.

Technical Solution

  • 자연어 테스트 스텝을 구조화된 JSON Intent로 변환하여 의도와 구현을 분리한 설계
  • Accessibility Tree 우선 탐색 후 CSS Heuristics와 AI Fallback을 순차 적용하는 Multi-tier Resolver 도입
  • Mutation Observer를 통한 DOM 및 URL 상태 변화 감지로 액션 수행 여부를 실시간 검증하는 메커니즘 구축
  • Vision Model 기반의 결과 스크린샷 분석을 통해 기대 결과와 실제 화면의 일치 여부를 최종 확인하는 검증 루프 구현
  • Selector 파손 시 Accessibility Tree 재쿼리와 Candidate Scoring을 통해 최적 요소를 재선정하는 Self-healing 루프 및 캐싱 처리
  • Pass/Fail 비율과 Selector 안정성을 종합하여 배포 여부를 결정하는 0-100점 기반의 Confidence Score 산출 체계 구축

1. 테스트 코드 작성 시 Selector 직접 지정 대신 Accessibility Tree 기반의 역할(Role)과 라벨(Label) 정의 우선 검토

2. AI 도입 시 단순 생성보다는 Intent 생성 -> 요소 탐색 -> 실행 -> 시각적 검증으로 이어지는 다단계 파이프라인 설계

3. 테스트 실패 시 자동 복구 로직(Self-healing)을 구현하고 변경된 선택자를 캐싱하여 실행 속도 최적화 적용

4. 테스트 통과 여부를 넘어 Flakiness와 안정성을 수치화한 Confidence Score를 CI/CD 게이트에 연동

원문 읽기