🧪 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.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fusiontest-0.2.0.tar.gz | 90.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fusiontest-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 190.9 kB
Release files / fusiontest-0.2.0.tar.gz
| Download URL | fusiontest-0.2.0.tar.gz |
|---|---|
| Size | 90.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
54b89e9d15d472e5d4ccc0fcae80ad4a6d890bc2a424be00fce964ce09fd295c
|
|
BLAKE2b-256 checksum How to use checksums |
f95ff40b10245a6ccbc10492d6755c5aab7ab228e093e76e8bed16160f81467c
|
| 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.0-py3-none-any.whl
| Download URL | fusiontest-0.2.0-py3-none-any.whl |
|---|---|
| Size | 100.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d473083394a9ed6e002e20feb63e4f814a3e67ef65d4b0e2f47b553b455291ef
|
|
BLAKE2b-256 checksum How to use checksums |
52c07d9e72a7de482515a9812f4aa661bb87f210969bba4ee14fb7fdef66c620
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|