Skip to main content

AI-powered QA automation CLI — tests your app from Jira tickets, reports bugs back automatically

Project description

AltQA

AI-powered QA automation from your terminal. AltQA reads Jira tickets, runs browser tests, detects bugs, and reports them back to Jira — like having an autonomous QA engineer on your team.

pip install altqa-cli        # or: uv pip install altqa-cli
altqa init               # one-time setup (asks for keys, crawls your app)
altqa run JIRA-123       # test a ticket end-to-end

How It Works

altqa run PROJ-42
  1. Fetches the Jira ticket
  2. Checks for attached test case files (Excel/CSV) — these always take priority
  3. If no test cases attached, falls back to AI analysis of the ticket description
  4. AI converts test cases into executable browser flows
  5. Launches a real browser and runs every step
  6. Monitors for console errors, API failures, JS exceptions, and memory leaks
  7. Analyses failures with AI and generates detailed bug reports
  8. Creates sub-task bug tickets on Jira with screenshots as proof
  9. Cleans up screenshots from your project after upload

Installation

Requirements: Python 3.11+

# With pip
pip install altqa-cli

# With uv (recommended)
uv pip install altqa-cli

Then initialize in your project directory:

cd your-project/
altqa init

The wizard will:

  1. Ask for your app URL (e.g. http://localhost:3000)
  2. Ask for LLM provider & API key (OpenAI, Anthropic, or Ollama for local)
  3. Ask for Jira credentials (base URL, project key, email, API token)
  4. Ask for browser preference (Chromium, Firefox, or WebKit)
  5. Install the Playwright browser binary automatically
  6. Crawl your application and build a navigation graph
  7. Auto-generate starter test flows from discovered pages

After init, you just run altqa run JIRA-123 — that's it.


Commands

Command Description
altqa init Interactive setup wizard
altqa run JIRA-123 Full pipeline: fetch ticket, test, report bugs
altqa run JIRA-123 --dry-run Show the test plan without executing
altqa run-local file.xlsx Run tests from local Excel/CSV files (no Jira)
altqa crawl Discover app routes and build navigation graph
altqa run-flow login Execute a specific YAML test flow
altqa flows list List all available flows
altqa generate-flows Auto-generate YAML flows from the navigation graph
altqa generate-flows --ai AI-powered flow generation (happy paths + edge cases)
altqa test "login and add a product" Generate and run a test from plain English
altqa chat Interactive AI QA session (REPL)
altqa audit AI accessibility audit (WCAG compliance)
altqa config show Display current configuration

AI-Powered Features

Core Pipeline

  • Jira-aware testing — reads ticket descriptions and attached test case files (Excel/CSV)
  • AI test interpretation — converts human-written test steps into browser actions
  • AI failure analysis — generates bug reports with root cause, fix suggestions, and regression tests
  • Automatic bug filing — creates Jira sub-tasks with screenshots and detailed descriptions

Runtime Health Monitoring

  • Console errors and JS exceptions
  • API failures and network errors
  • Memory leaks and performance issues
  • Page crashes and security warnings

Advanced AI Features

  • Plain-text testingaltqa test "login with wrong password and verify error"
  • Visual AI review — screenshot analysis for UI/layout bugs using vision models
  • AI flow generation — generates comprehensive test flows from your app's navigation graph
  • Smart selector healing — auto-fixes broken CSS selectors when elements change
  • Conversational QAaltqa chat for interactive testing sessions
  • AI test data generation — realistic form data (valid, invalid, edge cases, security payloads)
  • Root cause clustering — groups test failures by probable root cause
  • Accessibility audit — WCAG compliance checking across your app
  • Enhanced bug descriptions — AI-generated fix suggestions, user impact analysis, and regression tests
  • Natural language assertions — write assertions in plain English in your YAML flows

YAML Test Flows

Define reusable test flows:

name: login
description: Log in with valid credentials
steps:
  - action: navigate
    url: "{{app_url}}/login"
  - action: fill
    selector: "#username"
    value: "{{username}}"
  - action: fill
    selector: "#password"
    value: "{{password}}"
  - action: click
    selector: "button[type=submit]"
  - action: wait_for
    selector: ".dashboard"
assertions:
  - type: url_contains
    value: "/dashboard"

Supports variable interpolation ({{var}}), flow includes, and natural language assertions.


Architecture

CLI (Typer + Rich)
  |
  +-- Config (Pydantic schemas, altqa.json)
  +-- AI Agents (Agno framework, multi-provider LLM)
  +-- Flow Engine (YAML parser, variable resolver, assertions)
  +-- Browser (Playwright — deterministic actions, not AI-controlled)
  +-- Crawler (BFS discovery, navigation graph)
  +-- Jira Integration (issue CRUD, attachments, comments)
  +-- Pipeline Orchestrator (ties everything together)

Design principle: Browser actions are deterministic (click, fill, navigate). AI handles intelligence — planning, analysis, and reporting. This avoids flaky, non-reproducible tests.


Supported LLM Providers

Provider Models Notes
OpenAI gpt-4o, gpt-4o-mini, o1, etc. Best overall experience
Anthropic claude-sonnet-4-20250514, claude-3.5-haiku, etc. Great for analysis
Ollama llama3, mistral, codellama, etc. Fully local, no API key

License

MIT

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

altqa_cli-0.1.1.tar.gz (69.1 kB view details)

Uploaded Source

Built Distribution

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

altqa_cli-0.1.1-py3-none-any.whl (103.7 kB view details)

Uploaded Python 3

File details

Details for the file altqa_cli-0.1.1.tar.gz.

File metadata

  • Download URL: altqa_cli-0.1.1.tar.gz
  • Upload date:
  • Size: 69.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for altqa_cli-0.1.1.tar.gz
Algorithm Hash digest
SHA256 617dc42212ed1584c83a67e2aa812a1b0941a13381ab364451f41d699599906c
MD5 8dfed49c35380d48e9011db3cd9a64d3
BLAKE2b-256 bc0552430a8e0b72ba2c3d4d8996b52eaa3098c32e7e39d89181444585c76bb0

See more details on using hashes here.

File details

Details for the file altqa_cli-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: altqa_cli-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 103.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for altqa_cli-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2420093f24118df1cbf7d521e6502ab09e3a178f6bd67a5af8721ade631cfc2c
MD5 136ed18fc43d5636a15ac7bdef10ad59
BLAKE2b-256 88ee64d2bdcfba804b462a36c281bfceea16055f13d5caf57928237755133bb8

See more details on using hashes here.

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