Manage tests like code — CLI + AI agent skill for the complete testing lifecycle
Project description
testboat
Manage tests like code — CLI + AI agent skill for the complete testing lifecycle.
The Problem
Testing is still managed with scattered spreadsheets, Confluence pages, and tribal knowledge. Test cases drift from requirements, execution results are never recorded, and every sprint the team starts from scratch.
WITHOUT testboat
Strategy lives in a Word doc nobody reads.
Test cases are in an Excel sheet from 2 years ago.
"Did we test this?" — nobody knows.
AI writes automation but nobody tracks coverage.
WITH testboat
Strategy, test cases, execution results, bugs — all structured YAML.
AI generates test cases from requirements, executes automation, files bugs.
testboat validate checks coverage and exit criteria before any report.
One source of truth. Git-diffable. Always up to date.
How It Works
testboat manages a structured filesystem under .testboat/ in your workspace:
.testboat/
.active ← current working version (draft / v1.0 / ...)
draft/
strategy.yaml ← test strategy (scope, risk matrix, exit criteria)
tags.yaml ← sprint / type / module tag registry
cases/ ← TC-001.yaml, TC-002.yaml, ...
bugs/ ← BUG-001.yaml, BUG-002.yaml, ...
executions/
plans/ ← TC-001-plan.yaml (how to execute each TC)
results/ ← RES-001.yaml (execution results)
automate/ ← standalone automation sub-projects
reports/ ← sprint/closure HTML reports
CLI enforces structure and state machines. AI agent generates content, runs automation, and communicates results. Both operate on the same files.
Quick Start
pip install testboat
# Initialize workspace
testboat init
# Activate agent skill (Claude, Copilot, Cursor, Trae, Kiro, etc.)
testboat enable claude
# Create test strategy
testboat strategy create
# → edit .testboat/draft/strategy.yaml, then:
testboat strategy validate
# Add tags and test cases
testboat tag add sprint v1.0
testboat tag add module auth
testboat case add --title "Login with wrong password returns 401" \
--sprint v1.0 --type functional --module auth --req-id STORY-001
# Create execution plan and run
testboat plan create TC-001 --type automated --tool pytest
testboat plan register TC-001 .testboat/draft/executions/automate/pytest/tests/test_TC001.py
testboat plan status TC-001 approved
# Record result and file bugs
testboat result record TC-001 pass --type automated
testboat bug add --title "Login 500 error" --tc TC-001 --severity critical --priority P0
# Pre-report validation
testboat validate
# Generate and preview reports
testboat report strategy && testboat report sprint && testboat report closure
testboat preview
Commands
| Command | Description |
|---|---|
testboat init |
Initialize .testboat/ workspace |
testboat enable <agent> |
Create agent rules + skill files |
testboat version create/switch/list |
Manage named versions |
testboat strategy create/validate |
Test strategy lifecycle |
testboat tag add/list |
Manage sprint / type / module tags |
testboat case add/list/show/status/validate |
Test case CRUD + state machine |
testboat plan create/register/status |
Execution plan management |
testboat result record/list |
Record execution results |
testboat matrix show |
Global execution tracking |
testboat bug add/list/status |
Bug lifecycle |
testboat validate |
Pre-report health check |
testboat report strategy/sprint/closure |
Generate HTML reports |
testboat preview |
Local report preview server |
Supported Agents
| Agent | Files created |
|---|---|
| Claude / OpenCode | .claude/rules/testboat.md + .claude/skills/testboat/SKILL.md |
| GitHub Copilot | .github/instructions/testboat.instructions.md |
| Cursor | .cursor/rules/testboat.md + .cursor/skills/testboat/SKILL.md |
| Trae | .trae/rules/testboat.md + .trae/skills/testboat/SKILL.md |
| Kiro | .kiro/steering/testboat.md |
| OpenClaw | skills/testboat/SKILL.md |
Requirements
- Python ≥ 3.11
- Works with any AI agent that supports custom instructions / skills
License
Apache 2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file testboat-1.0.0.tar.gz.
File metadata
- Download URL: testboat-1.0.0.tar.gz
- Upload date:
- Size: 92.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8254e4d3fbd64c2783e44feb307e16a1ac06db5f3532d9ba1b57ae1a9f398808
|
|
| MD5 |
46e83fa2ba0149aaa91bfb49021a4673
|
|
| BLAKE2b-256 |
e89f64636221e14dd74f7c0754f4eb190564d0d21333a61043f36cef70a2ef7c
|
Provenance
The following attestation bundles were made for testboat-1.0.0.tar.gz:
Publisher:
release.yml on lijma/testboat
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
testboat-1.0.0.tar.gz -
Subject digest:
8254e4d3fbd64c2783e44feb307e16a1ac06db5f3532d9ba1b57ae1a9f398808 - Sigstore transparency entry: 1633797675
- Sigstore integration time:
-
Permalink:
lijma/testboat@4d93722076194608715b5405981744b2a75a9dff -
Branch / Tag:
refs/tags/1.0.0 - Owner: https://github.com/lijma
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@4d93722076194608715b5405981744b2a75a9dff -
Trigger Event:
push
-
Statement type:
File details
Details for the file testboat-1.0.0-py3-none-any.whl.
File metadata
- Download URL: testboat-1.0.0-py3-none-any.whl
- Upload date:
- Size: 44.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
624046e957ddbb4f86795c258f478bfdb26bb939e54d0c9b52a2dca8783145b4
|
|
| MD5 |
265d37a296a10889a70c7095a4af0c54
|
|
| BLAKE2b-256 |
ba8dc1703d74b6cb9282b4a4bf984331fbc0dd325c2b6237127751b41a9ac866
|
Provenance
The following attestation bundles were made for testboat-1.0.0-py3-none-any.whl:
Publisher:
release.yml on lijma/testboat
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
testboat-1.0.0-py3-none-any.whl -
Subject digest:
624046e957ddbb4f86795c258f478bfdb26bb939e54d0c9b52a2dca8783145b4 - Sigstore transparency entry: 1633797709
- Sigstore integration time:
-
Permalink:
lijma/testboat@4d93722076194608715b5405981744b2a75a9dff -
Branch / Tag:
refs/tags/1.0.0 - Owner: https://github.com/lijma
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@4d93722076194608715b5405981744b2a75a9dff -
Trigger Event:
push
-
Statement type: