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        # or: uv pip install altqa
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

# With uv (recommended)
uv pip install altqa

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.0.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.0-py3-none-any.whl (103.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: altqa_cli-0.1.0.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.0.tar.gz
Algorithm Hash digest
SHA256 c21d65b9a575677090a7ca5a3a1ea2b9212771196459227d57a47f899d355d29
MD5 9c81063d587ef92f403dffbe843b2cf1
BLAKE2b-256 94cf5704ce79beecf619d75048722e653ced7000f78dc7f6a9740642755008d4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: altqa_cli-0.1.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b473e5a7b92d277a80a401acc92c66e38728c42e3e9a414ae16e91c1e5e7d1cb
MD5 0c6bd5ac33eca0e6dd6ab518084a3b1c
BLAKE2b-256 c09448de00aaab92393341301f60864d45f0c4962b7096476cea2a04cdd8e2db

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