Skip to main content

AI-powered UI testing for mobile and desktop โ€” by FusionLeap.io

Project description

๐Ÿงช 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fusiontest-0.1.0.tar.gz (55.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fusiontest-0.1.0-py3-none-any.whl (65.4 kB view details)

Uploaded Python 3

File details

Details for the file fusiontest-0.1.0.tar.gz.

File metadata

  • Download URL: fusiontest-0.1.0.tar.gz
  • Upload date:
  • Size: 55.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fusiontest-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9dac8aaeb086472d507e8d48f97f55f5aa25414fe88b2f1d05f5e676620eb72f
MD5 d145b6d2864350573072ef03fa2e9ca7
BLAKE2b-256 b214984d4d7efaafda6820dfc69fa7e6b07494f24e4fcd612ea2655032286798

See more details on using hashes here.

Provenance

The following attestation bundles were made for fusiontest-0.1.0.tar.gz:

Publisher: publish.yml on mohigo/fusion-test

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fusiontest-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: fusiontest-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 65.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fusiontest-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 701d71d8dacc234be6fa332c87a1e7e6474c484aedecbc4dfc100bd4f3c61689
MD5 52832e04213b61e081a70c83e4bacb42
BLAKE2b-256 d950bebd1d544c64e611b3f8b42bb3145d4d03314ed4043b3b50fe3444f877d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for fusiontest-0.1.0-py3-none-any.whl:

Publisher: publish.yml on mohigo/fusion-test

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page