Skip to main content

🧪 FusionTest

AI-powered UI testing for mobile and desktop — built by FusionLeap.io

FusionTest uses large language models to execute UI tests the way a human would — reading screens, making decisions, and adapting to UI changes automatically. No brittle scripts. No maintenance overhead. Just natural language test goals that run anywhere.


✨ Features

Feature Mobile (iOS/Android) Desktop (Win/Mac/Linux)
Natural language test goals ✅ ✅
Zero-maintenance execution ✅ ✅
Multi-locale / 50+ languages ✅ ✅
Hallucination guardrails ✅ ✅
Loop detection & backtrack ✅ ✅
CI/CD integration ✅ ✅
Vision model fallback — ✅
Cross-app flow testing — ✅
Electron / Playwright support — ✅

🏗 Architecture

fusiontest/
├── core/           # LLM action model, embeddings, screen parser
├── mobile/         # iOS (XCTest) + Android (UIAutomator2) adapters
├── desktop/        # Windows (WinAppDriver), macOS (Accessibility API), Playwright
├── guardrails/     # Hallucination handler, loop detector, backtrack engine
└── reporting/      # Dashboard data, Slack/email alerts, CI artifacts

🚀 Quickstart

Prerequisites

  • Python 3.10+
  • Node.js 18+ (for Playwright/Electron targets)
  • Appium 2.x (for mobile)

Install

git clone https://github.com/mohigo/fusion-test.git
cd fusion-test
pip install -e ".[dev]"

Set your API key

export FUSIONTEST_API_KEY=your_key_here
# or copy .env.example → .env and fill in values

Run your first test

fusiontest run --goal "Log in, navigate to settings, update profile name" \
               --platform android \
               --app path/to/app.apk \
               --locale en-US

Full guide: docs/getting-started.md — covers all platforms (web, Android, iOS, Electron, Windows, macOS), Python API usage, configuration, dashboard, CI setup, and tips for writing good goals.


📝 Writing Test Goals

FusionTest accepts natural language goals. No code required.

# tests/goals/onboarding.yaml
name: User onboarding flow
platform: android
locale: en-US
goals:
  - "Open the app and tap Get Started"
  - "Enter email address and password on the signup screen"
  - "Verify the home dashboard loads with a welcome message"

Run it:

fusiontest run --file tests/goals/onboarding.yaml

🔌 CI/CD Integration

GitHub Actions

- name: Run FusionTest
  uses: fusionleap/fusiontest-action@v1
  with:
    goal-file: tests/goals/smoke.yaml
    platform: android
    api-key: ${{ secrets.FUSIONTEST_API_KEY }}

Bitrise / Fastlane

See docs/ci-integrations.md for step-by-step guides.


📊 Reporting

Every test run produces:

  • Pass/fail summary with stability score
  • Screen-by-screen action log
  • Video recording of the test session
  • Bug report with screenshot + repro steps (on failure)

Results are posted to your FusionTest dashboard and optionally to Slack.


🛠 Configuration

# fusiontest.config.yaml
model:
  backbone: mpnet-base          # or: gpt-4o, claude-sonnet (for MVP/fallback)
  precision_threshold: 0.97
  max_retries: 3

guardrails:
  loop_detection: true
  loop_window: 5                # check last N screen states
  backtrack_on_invalid: true
  max_backtracks: 2

devices:
  android:
    farm: browserstack           # or: aws-device-farm, local
  desktop:
    vision_fallback: true        # enable for non-accessible UIs
    playwright_for_electron: true

reporting:
  slack_webhook: ${SLACK_WEBHOOK}
  save_recordings: true
  dashboard_url: https://app.fusionleap.io

🗺 Roadmap

  • Core LLM action model (MPNet / GPT-4o / Claude backends)
  • Android adapter (UIAutomator2 + Appium)
  • iOS adapter (XCUITest + Appium)
  • Desktop adapter — Playwright / Electron (with vision fallback)
  • Desktop adapter — Windows (WinAppDriver / UIA)
  • Desktop adapter — macOS (NSAccessibility + PyObjC)
  • Guardrails engine (invalid actions, loops, backtrack)
  • Goal completion verifier (LLM + heuristic fallback)
  • Video recording — Playwright WebM→MP4, Appium, Windows screenshot stitch
  • Reporting — JSON, Slack webhooks, GitHub Actions annotations
  • CLI — fusiontest run / init / demo / report
  • MPNet fine-tuning pipeline (fusiontest/training/)
  • FusionLeap cloud dashboard (React + Recharts + SaaS pages)
  • Dashboard backend API (FastAPI + PostgreSQL/Supabase)
  • SaaS backend — auth, org management, API keys, webhooks, billing
  • Marketing website (Next.js, website/)
  • Integration tests — runner, guardrails, goal verifier
  • CI/CD integration guides (docs/ci-integrations.md)
  • Autonomous Test Discovery — auto-crawl website → generate goals → execute
  • RAG test library (few-shot goal → flow)
  • Multi-locale parallel execution
  • Cross-app flow testing (desktop)

🤝 Contributing

See CONTRIBUTING.md. We welcome issues, PRs, and test goal examples from the community.


📄 License

MIT © FusionLeap.io

Metadata

Release files for fusiontest 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fusiontest 0.2.3
File Size Uploaded
fusiontest-0.2.3.tar.gz 85.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fusiontest 0.2.3
File Interpreter ABI Platform
fusiontest-0.2.3-py3-none-any.whl Python 3 none any Details

Total release size: 182.8 kB

Release files / fusiontest-0.2.3.tar.gz

Download URL fusiontest-0.2.3.tar.gz
Size 85.9 kB
Tags Source
SHA-256 checksum
How to use checksums
acb3d7d138fa9666d70a1cd9f9a179ac2969a6356f0b5640d32c1ea4e8dd3fd9
BLAKE2b-256 checksum
How to use checksums
7ed3b564d775591471e34d84d40d81a2a1a2e9468a425d3d36c770f7178fa936
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / fusiontest-0.2.3-py3-none-any.whl

Download URL fusiontest-0.2.3-py3-none-any.whl
Size 96.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ed5add41313e0cfb328b51db5d344daa1e406ade41978201fbfa57bc308b91f8
BLAKE2b-256 checksum
How to use checksums
695394cefa642debc4aee97aeeb56a401624db73b1fb7ff1073da9c30085f9df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

0.2.38

2 release files

0.2.37

2 release files

0.2.36

2 release files

0.2.35

2 release files

0.2.34

2 release files

0.2.33

2 release files

0.2.32

2 release files

0.2.31

2 release files

0.2.30

2 release files

0.2.29

2 release files

0.2.28

2 release files

0.2.27

2 release files

0.2.26

2 release files

0.2.25

2 release files

0.2.24

2 release files

0.2.23

2 release files

0.2.22

2 release files

0.2.21

2 release files

0.2.14

2 release files

0.2.13

2 release files

0.2.10

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

This release

0.2.3 This release

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.24

2 release files

0.1.23

2 release files

0.1.22

2 release files

0.1.21

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.17

2 release files

0.1.16

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page