피드로 돌아가기
Dev.toAI/ML
원문 읽기
AI 기반 Intent-driven 엔진으로 Selector 의존성 제거 및 Self-healing 구현
We stopped writing Playwright selectors and let AI figure it out
AI 요약
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 게이트에 연동