awizemann/harness
AI-driven user testing for iOS Simulator, macOS apps, and web apps. Write a goal in plain language; an LLM agent drives the UI and reports friction. macOS 14+, Swift 6.
해결하는 문제
Harness는 기존의 스크립트 기반 UI 테스트를 AI 기반 사용자 시뮬레이션으로 대체합니다. UI 요소의 위치가 변경되면 깨지는 고정된 테스트 스크립트를 작성하는 대신, 개발자는 자연어로 목표와 사용자 프로필을 정의하고, AI 에이전트가 앱을 탐색하여 실제 세계의 UX 문제, 막다른 길, 반응 없는 컨트롤을 식별할 수 있습니다.
작동 방식
Harness는 스크린샷을 읽고, "Set-of-Mark" 시스템(인터랙티브 요소 위의 번호 매겨진 오버레이)을 통해 타겟 앱과 상호작용하는 LLM 에이전트를 사용합니다. 에이전트는 앱의 시각적 상태에 따라 클릭, 입력, 스크롤과 같은 동작을 수행합니다. 다음 세 가지 타겟 환경을 지원합니다:
- iOS 시뮬레이터:
xcodebuild및 WebDriverAgent를 통해 제어. - macOS 앱: AX 액션과
CGEvent를 사용한 내부 입력,CGWindowListCreateImage를 통한 윈도우 캡처. - 웹 앱: JS 합성 이벤트와 스냅샷을 사용한 내장
WKWebView를 통해 제어.
이 시스템은 클라우드 기반 LLM(Anthropic, OpenAI, Google)과 Ollama를 통한 로컬 추론(예: Qwen3-VL, Llama 3.2 Vision) 모두를 지원합니다.
대상 사용자
iOS, macOS, 또는 웹 애플리케이션에 대해 수동 테스트 스크립트를 작성하지 않고도 자동 사용자 테스트 및 UX 감사가 필요한 macOS 개발자들을 위한 도구입니다.
주요 기능
- 다중 플랫폼 지원: iOS 시뮬레이터, 네이티브 macOS 앱, 웹 앱 모두에서 작동.
- Set-of-Mark 타겟팅: 에이전트가 픽셀이 아닌 ID로 클릭하므로 신뢰성이 향상됩니다.
- 로컬 및 클라우드 AI: Ollama를 통한 로컬 비전 모델과 주요 클라우드 제공업체 모두 호환.
- MCP Server 통합: 외부 에이전트가 자율 실행 또는 단계별 UI 세션을 제어할 수 있도록 합니다.
- 세션 상태 관리: 인증된 세션을 처리하기 위해 웹 세션 상태(쿠키/localStorage)를 주입하고 내보내는 기능을 지원.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트