코딩 에이전트가 버튼 이름 같은 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