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エージェントがアプリケーション内で特定の目標を達成しようと試行することで、デッドエンド、曖昧なラベル、反応しないコントロールなどのUXの摩擦を開発者が特定するのを支援します。

仕組み

ユーザーが自然言語で目標(例:「サインアップしてリストを作成する」)とペルソナ(例:「初回ユーザー」)を提供します。次に、LLMエージェントがスクリーンショットを読み取り、クリック、タイピング、スクロールなどのアクションを実行することで、対象のアプリケーションと対話します。システムは「Set-of-Mark」ターゲティングを使用しており、インタラクティブな要素に番号付きのバッジをオーバーレイ表示することで、エージェントが不正確なピクセル座標ではなくIDに基づいてクリックできるようにします。Ollamaによるローカル推論、またはAnthropic、OpenAI、Googleなどのクラウドプロバイダーをサポートしています。

対象者

  • iOS/macOS 開発者: シミュレータまたはデスクトップ環境でネイティブアプリをテストするため。
  • Web 開発者: 埋め込みブラウザビューを介してWebアプリケーションをテストするため。
  • QA エンジニア: 自律的なユーザフローテストを実行し、成功、失敗、および摩擦点に関する詳細なレポートを受け取るため。

ハイライト

  • マルチプラットフォーム対応: iOSシミュレータ、macOSアプリ、およびWebアプリを駆動します。
  • 実ユーザーシミュレーション: スクリプト化されたパスではなく、UXの摩擦と目標の達成に焦点を当てます。
  • Set-of-Mark ターゲティング: インタラクティブな要素に番号付きのオーバーレイを使用し、エージェントの正確なインタラクションを保証します。
  • 柔軟な推論: Ollama(Qwen3-VLなどのビジョンモデルを使用)によるローカル実行、または高性能なクラウドLLMをサポートします。
  • 豊富なアーティファクト: 再再生可能なアクションシーケンス、成功/失敗の要約、およびタイムスタンプ付きの摩擦レポートを生成します。