에이전트 코딩 · 2026년 7월 11일 ★★★

UI가 바뀌어 깨진 테스트는 스스로 고치고, 진짜 버그는 안 숨겨요

코딩 에이전트가 버튼 이름 같은 UI를 바꿔 놓으면 멀쩡하던 플레이라이트·사이프러스·셀레늄 테스트가 깨지는데, 9lives는 이때 셀렉터를 스스로 다시 찾아 고쳐 주는 self-healing 테스트 러너예요. 1단계는 실패 순간 화면 스냅샷에서 data-testid > id > aria-label > text > class 순으로 안정적인 앵커를 찾아 오프라인·결정적으로 고치고(LLM·네트워크·계정 불필요), 구조가 크게 바뀌면 이미 깔린 Claude Code·Codex 같은 CLI를 불러 쓰며, 고친 코드는 항상 diff로 보여 준 뒤 승인해야 반영돼요. 핵심은 '실패한 단언(assertion)은 앱 동작이 바뀐 신호'라고 보고 초록불을 만들려 단언은 다시 쓰지 않는다는 점인데, MIT·파이썬 약 2,500줄에 아직 v0.1 프로토타입이에요.

용어 풀이
self-healing 테스트
화면이 바뀌어 깨진 테스트를 사람 손 없이 스스로 고쳐 다시 돌리는 방식
셀렉터 드리프트(selector drift)
UI가 바뀌면서 기존 셀렉터가 요소를 못 찾아 테스트가 깨지는 현상
data-testid
테스트가 요소를 안정적으로 찾도록 개발자가 붙여 두는 전용 식별 속성
aria-label
화면 요소의 용도를 보조기술에 알려 주는 접근성 이름표
단언(assertion)
테스트가 결과가 기대와 같은지 확인하는 검증 문장
운영자 인사이트

코딩 에이전트가 테스트를 멋대로 다시 써서 회귀를 가려 버리는 문제를 겨냥해 '셀렉터는 고쳐도 단언은 못 건드린다'고 선을 그은 발상이 신선해요. 다만 나온 지 며칠 된 별 1개·댓글 0개짜리 v0.1이라 실제 효과는 아직 지켜봐야 해요.

여러 관점으로 보기
  • 원문·기능·성숙도 만든 사람이 직접 올린 저장소예요. 3단계 힐링 구조와 '단언은 안 고친다'는 원칙을 설명하고 MIT·파이썬 약 2,500줄이에요. 다만 별 1개·커밋 11개·v0.1.3(2026-07-09)이라 아직 초기 프로토타입이고 성공률·벤치마크 수치는 없어요. GitHub
  • 커뮤니티 반응 2026-07-10 Show HN으로 올라왔지만 2점·댓글 0개로 반응이 거의 없어요. 커뮤니티 검증이나 실사용 후기는 아직 확인되지 않아요. Hacker News

원본 보기 (hn:claude-code)