brisk-aitesting
Fast, Efficient & No-nonsense — build faster, ship even faster!
The control layer between AI and your production code.
The world's most unique AI driven software testing control plane —
Deploy locally, embed in your repo, or run via CLI — your stack, your terms.
Say what should be tested.
Brisk tests UI, APIs, contracts & logic — checked, end-to-end.
Brisk discovers your application and backend, builds a structured test plan, validates it before anything runs, routes each scenario to the right brisk engine, and returns clean test results your product can use. UI, API, OpenAPI — one pipeline.
verified_user No hosted dashboard. No vendor lock-in. Your data, your storage, your control.
Your Goal
Plain-English intent
Discovery
Repo, UI, API, OpenAPI
Checked Plan
Validated JSON Schema
Engines
UI, API, OpenAPI, Replay
Evidence
Versioned handover
A $54B market that is doubling.
Software testing and automation are two of the fastest-growing slices of enterprise spend. Brisk sits at the intersection — local, embeddable, AI-native.
$54.4B
Software testing market
2026 baseline
$99.9B
Projected
by 2031
$20.6B
Automation testing market
2025 baseline
$84.2B
Projected
by 2034
Sources: Mordor Intelligence · Fortune Business Insights. Projections are sourced forecasts, not present-day revenue.
Software testing market growth
+83% growth in 5 years. CAGR ≈ 12.5%.
Automation testing market growth
+309% growth in 9 years. CAGR ≈ 17% — the AI-led testing wave.
Where Brisk plays
Other tools in the market are UI-only, API-only, or cloud-locked.
Brisk is all of it, in your repo.
Real-world challenges for enterprises and developers — click any item to learn more.
Brisk is the engine inside your product. Local. Embedded. Open source. No per-seat fees. No cloud lock-in.
Total addressable
$130B+
Global software + automation testing market by 2031-34
Serviceable
~$20B
SaaS teams needing embedded testing (est. 15% of TAM)
Estimate: Katalon 30k teams + Tricentis 3k enterprise + others
5-yr obtainable
$500M-2B
Brisk's realistic capture (2-10% of SAM)
Conservative: 1% OSS conversion + enterprise licenses
Why no incumbent ships this
mabl
Cloud-only, closed
Katalon
Dashboard-first
Tricentis
Enterprise license
testRigor
Closed, per-seat
Functionize
Cloud, no embed
Brisk
Local + OSS + embed
Every competitor is locked to their cloud, their pricing, their roadmap. Brisk is the only open-source, embeddable, local-first option.
arrow_forward That's the opportunity. Now see the outcomes.
Quantified benefits, by audience.
What changes for the people actually using Brisk — measured in hours, dollars, and release velocity.
Enterprise
$5M+ ARR · Regulated
B2B SaaS, healthcare, finance, government
-
trending_up
4×
more releases per quarter (monthly → weekly)
-
bolt
10×
faster per-release (3-6 weeks → days)
-
checklist
95%+
business-rule coverage (vs ~60% manual)
-
verified
-50%
bug escape rate in production
-
shield
SOC2 / HIPAA / GDPR
local-first = data never leaves your infra
-
payments
$200k-$1M/yr
saved per $10M ARR (QA headcount avoided)
SME
<$5M ARR · Startups
Early-stage B2B SaaS, growth-mode teams
-
savings
$0
test infrastructure cost (vs $20-50k/yr for TestRail, mabl)
-
schedule
1 hour
to first automated test (vs 2 weeks)
-
rocket_launch
4-8 / mo
releases per month (vs 1-2 without)
-
speed
+30-50%
faster time-to-market for new features
-
build
-50%
bug fix time (caught earlier, fixed faster)
-
person_off
$60-120k/yr
QA engineer hire avoided (0.5-1 FTE)
Individual
Developer · Freelancer
Solo devs, contractors, open-source maintainers
-
timer
8× faster
test plan creation (30 min vs 4 hours)
-
code
-70%
test code to write manually
-
build_circle
-75%
test maintenance time after changes
-
rocket
2-3× more
features shipped per quarter
-
psychology
3× confidence
in refactoring without breaking things
-
auto_awesome
"I can ship on Friday"
peace of mind on every deploy
Estimates based on Brisk's published benchmarks (57 cases, 14 suites, 6 engines, 5 reference apps), industry comparables (TestRail State of QA 2024, Stack Overflow 2024, Mordor Intelligence), and the UAT cycle time reduction demonstrated in the case study above. Exact numbers vary by team size, product complexity, and current testing maturity.
arrow_forward These outcomes are real — but the current way to get them is broken. Here's the problem.
Software creation is accelerating.
Software testing is still fragmented.
AI ships code faster than ever. It does not remove the need to verify it. Testing stays expensive, manual, and spread across tools that don't talk to each other.
Tests written by hand
Every team rebuilds the same boilerplate. Every new feature means another cycle of writing, debugging, maintaining.
Tools that don't talk
UI tools here, API tools there, contract tools somewhere else. Evidence is scattered. Releases need glue code.
AI you can't trust
AI-generated Playwright breaks. AI selectors lie. AI code is silently unsafe. Most teams can't put it in CI.
Vendor lock-in
Hosted platforms hold your tests, your data, your CI gates — and your roadmap hostage.
Inconsistent evidence
What did the test actually prove? Where's the screenshot? Why did CI fail? Three teams, three answers.
Slow release cycles
Manual QA bottlenecks. Test maintenance debt. Months between shipping a feature and trusting it.
Brisk replaces hand-written tests, scattered tools, and unsafe AI generation
with one controlled pipeline that returns evidence you can actually trust.
verified The Promise — In Six Lines
You say what should be tested — in plain English.
Brisk discovers what already exists in your app.
It picks the right test path — UI, API, or contract.
It creates a checked, validated plan before anything runs.
It runs the right engines — Playwright, API, OpenAPI, more.
It returns evidence your product can store, render, ship.
AI ships code faster.
Software testing is still the bottleneck.
Brisk is the control layer that turns business intent into evidence — without trusting AI to write code that runs blindly.
AI proposes.
Brisk decides.
AI returns structured plans. Brisk validates, normalizes, routes. Unsafe or malformed plans are blocked before any engine runs.
One pipeline.
Every engine.
UI, API, OpenAPI, Replay, Message, Schema-fuzz — orchestrated together. No glue code. No context-switching.
You own the data.
You own the gate.
Local-first, embeddable SDK. Your database, your dashboard, your CI. No hosted platform. No vendor lock-in. Your rules, your scale, your future.
Why now
AI code volume is exploding
More code, more changes, more to verify — with the same headcount.
Trust is the new currency
Teams need evidence, not promises. Brisk returns versioned, schema-validated proof.
Embeddable wins over hosted
SaaS platforms need their own testing layer. Brisk runs inside your product.
Two workflows, one difference
Same release cycle. Different cost, different risk, different outcome.
Without Brisk
Manual testing nightmare
- removeEngineer writes a test for every new feature
- removeAI tool writes flaky Playwright — breaks on next UI tweak
- removeContract drifts from implementation, nobody notices
- removeQA bottleneck grows with every release
- removeEvidence scattered across 4 tools, no single source of truth
- removeVendor lock-in raises prices 3× at renewal
With Brisk
Automated, validated, evidence-backed
- check_circleDescribe the goal in one sentence
- check_circleBrisk discovers app, builds a checked plan
- check_circleAI plan is validated — no surprise code execution
- check_circleMultiple engines run in parallel
- check_circleOne versioned result — JSON, JUnit, HTML, screenshots
- check_circleYour dashboard, your database, your decision
Manual testing nightmare
- removeEngineer writes a test for every new feature
- removeAI tool writes flaky Playwright
- removeContract drifts, nobody notices
- removeQA bottleneck grows
- removeEvidence scattered across tools
- removeVendor lock-in
End of the UAT bottleneck.
User Acceptance Testing is where releases go to die. Visual testers click through workflows, validate business rules, eyeball edge cases, and file screenshots in Slack. Brisk automates all of it — with evidence, not opinions.
Today
Manual UAT
- closeVisual testers click through every flow by hand
- closeBusiness rules verified manually — edge cases missed
- close"Did the right thing happen?" depends on the tester's mood
- closeTwo weeks of feedback → one more week of re-tests
- closeRelease slips — every time
- closeEvidence is screenshots in someone's inbox
With Brisk
Automated UAT
- check_circleReal users' business rules → executable scenarios
- check_circleUI workflows via Playwright — actual user paths
- check_circleRejected-action state proof — "the right thing didn't happen"
- check_circleEvidence: screenshots, traces, before/after snapshots
- check_circleUAT runs in minutes, on every commit, in CI
- check_circleEvidence is structured JSON, JUnit, and HTML reports
fact_check What Brisk tests in UAT — automatically
Every category a human visual tester checks, executed as a deterministic scenario with versioned evidence.
Business rules
"Admin can refund; everyone else gets 403"
User flows
Click through the same paths real users take
Calculated values
Discounts, totals, taxes, balances — exact
Negative paths
"What if a user shouldn't be allowed to do X?"
State changes
Before/after API snapshots, UI state proof
Visual evidence
Screenshots, traces, full page state
Cross-tenant
Tenant A cannot see tenant B's data
On every commit
UAT no longer waits for a "UAT window"
The outcome
UAT stops being a phase. It becomes a check.
No "QA environment." No "UAT window." No "we'll test it next sprint." Business acceptance criteria run alongside the build — every commit, every PR, every release candidate. The visual testers who used to click through screens become the people who approve the report.
95%
UAT cycle time saved
0
"It works on my machine"
100%
Acceptance coverage
1×
Single source of truth
compare How Brisk compares
Established platforms have customers, support, integrations, and market history. Most testing products sell you a testing platform. Brisk gives you a testing engine you can embed into your own platform.
Embeddable by design
Brisk can sit inside a SaaS product, internal platform, developer portal, or CI pipeline. The host owns storage and presentation.
AI with control
AI proposes the plan. Brisk validates, normalizes, routes, executes. Unsafe plans are blocked before they run.
One evidence shape
UI, API, OpenAPI, adapters, artifacts, assertions, diagnostics, and final results return through a stable versioned contract.
| Product | Since | Customer base | Revenue | Positioning |
|---|---|---|---|---|
Brisk
|
New open-source product | Early-stage public package | Not revenue-generating yet | Local, embeddable AI testing control layer |
| mabl | Founded 2017 | SaaS, retail, travel, media, enterprise | ~$34.5M (Growjo est.) | AI-native low-code, self-healing |
| Katalon | Founded 2016 | 30,000+ teams | ~$62.2M (Growjo est.) | Broad web/API/mobile/desktop platform |
| Tricentis Tosca | Tricentis founded 2007 | 3,000+ customers | ARR > $500M (reported) | Enterprise model-based, SAP testing |
| testRigor | Founded 2015 | Enterprise and digital product teams | ~$15M ARR (GetLatka est.) | Plain-English test automation |
| Functionize | Founded 2014 | Enterprise and large digital teams | ~$38.6M (Growjo est.) | AI testing agents for authoring + diagnosis |
Private-company revenue is third-party estimates where stated. Competitor capabilities are based on public evidence.
arrow_forward That's the competitive picture. Here is how Brisk actually works.
account_tree 10 stages, one verified result.
AI suggests the plan. Brisk checks the plan. Engines run the tests. Evidence shows what happened.
-
1chat
You say what you want
You write one sentence about what to test. Brisk turns it into a simple plan.
-
2folder_open
Brisk looks around your app
Brisk finds your pages, your code paths, and your rules — all by itself.
-
3data_object
Brisk remembers what it learned
Everything Brisk found is saved in one place it can use later.
-
4psychology
Brisk plans the tests
Brisk figures out what each test needs to do, and in what order.
-
5account_tree
Brisk breaks it into small steps
Each test becomes a list of small, safe steps. Nothing big runs at once.
-
6build
Brisk picks the right helper
Each step gets the right tool for the job — one helper does one thing well.
-
7verified
Brisk double-checks the plan
If anything looks wrong, Brisk stops here. Nothing runs until the plan is safe.
-
8play_arrow
The helpers do the work
Clicking buttons, calling APIs, sending messages — all at once if needed.
-
9description
Brisk saves what happened
Pictures, videos, and notes are saved so you can see what really happened.
-
10handshake
Brisk writes a report card
One simple report your tools can read — with a yes/no answer at the top.
lightbulb Business intent becomes executable evidence
Here is how a real business rule flows through the Brisk pipeline:
"A user with the finance-admin role can refund any order; everyone else is rejected."
Intent
2 scenarios
Routes
POST /orders/:id/refund
Plan
2 scenarios, validated
Evidence
2 passed, 1 rejected
arrow_forward The pipeline is controlled. Now see what each stage can actually do.
bolt What Brisk actually does
What the current product can do, organized by pipeline stage.
Inspect a repository
Identify framework signals and package metadata
Identify application structure
Supported JS/TS backend framework detection
Discover backend routes
Express, nested routers, route chains, Nest decorators
Discover UI routes
Separate from backend route discovery
Locate OpenAPI files
JSON and YAML contract discovery
Correlate routes & contracts
Matched, undocumented, and missing routes
memory Built-in engines
Playwright UI
Grounded actions, healing, traces, screenshots — the real browser, observed.
API & OpenAPI
Positive/negative scenarios, schema validation, contract drift reports.
Message & replay
AsyncAPI inspection, live message flows, declared HTTP interaction replay.
brisk-aitesting.plan.v1
by scenario type
UI
API
Contract
brisk-aitesting.result.v1
arrow_forward Capabilities lead to proof. Here is the real run data behind every claim.
lab_profile Real numbers. Not marketing.
Fresh run data from the package — not promises, not projections.
Every number below came from an actual npm run command that finished clean.
100%
Pass rate
17 / 17 commands
57
Benchmark cases
All passing
5
Proof apps
33 scenarios
6
Engines verified
UI · API · Schema · Replay · Message · Contract
verified Coverage areas verified
We try to break Brisk on purpose. It doesn't break.
Every part of Brisk gets poked to make sure it works.
Every page and rule in your app is reachable.
All 6 helpers pass their own tests.
Mean add-ons get sent away at the door.
Optional add-on tools pass their checks.
We test on 5 real apps, not pretend ones.
The saved right answer doesn't change between runs.
The text-command tool works right every time.
If AI writes something silly, Brisk fixes it.
The download is small, clean, and has everything.
We test with a real AI helper, not a pretend one.
monitoring Run breakdown
gavel What "100% passing" actually means
- check_circleBenchmark suite deliberately injects bad inputs — broken setups, contract drift, schema mismatches, blocked networks, and CLI errors. All handled correctly.
- check_circlePlugin conformance proves the 3 bad plugins were rejected and only the good one ran. Safety, not just coverage.
- check_circleGolden fixtures confirm a known-good answer stays stable across runs — catches quiet degradation after AI repair.
- check_circleReal-AI smoke proves the configured provider actually works in this environment — not a stub.
- check_circlePack:check proves the npm package ships 135 files, 1.55 MB unpacked, no leaked secrets.
- check_circle5 reference apps cover serious-SaaS, API-only, Todo, multi-tenant, e-commerce, and event/messaging shapes.
gavel Bottom line
What it means for product teams
You can trust the result. Bad plans are blocked, bad plugins are rejected, broken setups are caught, and the package is clean.
Time to first green run
Five minutes from npm install to first passing run. The release gate is the same command CI uses.
arrow_forward Proof is established. Here is how AI proposals become controlled execution.
shield AI proposes. Brisk decides what is allowed to run.
Seven gates between an LLM response and your production code.
1
Find the good part
Pull the clean answer out of AI's reply
2
Fix the nicknames
If AI said "btn" but you call it "button"
3
Add your doors
Add the pages and paths from your app
4
Check it works
Make sure nothing is missing or silly
5
Try again if wrong
Ask AI to fix what it got wrong
6
Look at the real page
Click what the page actually shows
7
Send to the right helper
The right worker does the right job
Brisk says yes to
-
check
"I want to test this"
Plain sentences about what to check.
-
check
Names of your pages
The pages Brisk found in your app.
-
check
Requests that match the rules
Only ones that fit the shape your app expects.
-
check
Nicknames that point right
"btn" and "button" mean the same thing here.
-
check
Buttons we really see
Only the buttons that are on the real page.
Brisk says no to
-
close
AI-written test code
AI can write silly code — we don't run it.
-
close
AI's guess of "click here"
AI might pick the wrong button. We look instead.
-
close
Changes to your data that weren't checked
No "delete everything" without a safety check.
-
close
Random computer commands
No surprise shell calls or internet pings.
-
close
Plans that don't make sense
Plans that don't fit the shape Brisk expects are stopped.
Always required
-
arrow_right
A plan in the right shape
Always check that the plan is the shape Brisk expects.
-
arrow_right
Pages from your app, not made up
Only use page names that Brisk actually found.
-
arrow_right
Real buttons from the real page
Always look at the page before clicking.
-
arrow_right
Works with any AI helper
You pick the AI — Brisk adapts.
-
arrow_right
Talks only to your own computer
Doesn't phone home unless you say so.
arrow_forward Control leads to evidence. Evidence is what your product can actually use.
description One result your product can use.
Store, render, compare, or send to CI. Same shape, every run.
brisk-aitesting.result.v1
{
"schemaVersion": "brisk-aitesting.result.v1",
"runId": "run_abc123...",
"status": "passed",
"summary": {
"total": 12,
"passed": 10,
"failed": 1,
"skipped": 1,
"errors": 0,
"passRate": 0.833,
"durationMs": 45200
},
"plan": { /* structured test plan */ },
"tests": [
{
"id": "scenario_01",
"type": "ui",
"status": "passed",
"assertions": [ /* ... */ ],
"evidence": { /* ... */ }
}
],
"artifacts": [
{ "type": "screenshot", "path": "..." },
{ "type": "trace", "path": "..." }
],
"diagnosis": [],
"handover": {
"schemaVersion": "brisk-aitesting.handover.v1",
"consumableBy": ["ci", "dashboard", "database"]
}
}
account_tree Evidence branches
summary
rollupCounts, pass rate, duration — ready for dashboards and CI gates.
plan
structuredThe validated plan you actually ran — proves what was tested.
tests[]
per-scenarioEach scenario with status, assertions, and per-test evidence.
artifacts[]
filesScreenshots, traces, logs, request/response, contracts.
diagnosis
when failingActionable root-cause hints for failing scenarios.
handover
contractVersioned envelope for downstream consumers.
hub Your product can use this result for
CI pass/fail gates
Dashboard cards
Test history
Database persistence
Audit logs
Traces & screenshots
Analytics
Release approval
Examples include BigQuery, Cloud Storage, GitHub Actions, internal test portals, release approval workflows, incident-management systems, and host-owned dashboards. These are examples, not prebuilt integrations.
handshake Add it to any host application
Your host config
app name and URL
brisk-aitesting config
safe defaults included
code View config example expand_more
import { defineHostConfig } from 'brisk-aitesting';
export default defineHostConfig({
app: {
name: 'My application',
baseUrl: 'http://localhost:3000',
},
});
// Optional AI/auth values come from documented
// BRISK_AITESTING_* environment settings.
arrow_forward Control and evidence set the foundation. Here is exactly what is built today.
Alpha release — it runs real checks today.
AI can suggest what to test, but Brisk checks the plan before anything runs. Engines do the execution. Evidence records what happened.
info What is built, what is not.
What is built now versus what remains future work — clearly separated.
The tool, and a yes/no answer
A way to know if it worked or didn't.
Works with any AI helper
You pick the AI. Brisk works with all of them.
Fixes its own mistakes
If AI writes a bad plan, Brisk asks it to try again.
Finds your app on its own
You don't have to list your pages and rules — Brisk finds them.
Spots mismatches in your rules
If a rule says one thing but the app does another, Brisk waves a flag.
Tests "yes" and "no" answers
Checks the happy path AND the "this should fail" path.
Clicks real buttons
It sees the page, then clicks the real button — not a guess.
Adapts when pages change
If a button moves, Brisk finds it again — test keeps going.
5 helpers in one
5 different testing tools, run with one command.
Stamped report card
A version-stamped report your tools know how to read.
Common report files
Files other testing tools already know how to open.
Outside helpers must pass a test
Other people's tools have to prove they're safe first.
Add-ons are checked
Extra tools are tested before they can be used.
Practiced on 5 real apps
Tested on 5 real app shapes, not pretend ones.
The right answer stays right
Saved answers don't change between runs — quiet bugs get caught.
Real AI, not a toy
Tested with a real AI helper, not a pretend one.
Optional extras for fancy testing
Plug-in helpers for advanced tests if you want them.
Ready to install
Easy to install the usual way JavaScript tools are installed.
rocket_launch From install to first run in 5 minutes.
No README digging. One install, one config, one command.
Install
After installing, create your config with npx brisk-aitesting init.
$ npm install brisk-aitesting
Configuration
import { defineConfig } from 'brisk-aitesting';
export default defineConfig({
app: {
name: 'My SaaS',
baseUrl: 'http://localhost:3000',
repoPath: '.',
},
auth: { type: 'none' },
ai: {
provider: 'openai',
model: requiredEnv('BRISK_AITESTING_AI_MODEL'),
apiKeyEnv: 'BRISK_AITESTING_AI_API_KEY',
repairAttempts: 2,
maxTokens: 4096,
temperature: 0.1,
},
runtime: {
artifactsDir: '.brisk-aitesting/artifacts',
timeoutMs: 120000,
retries: 1,
headless: true,
dryRun: false,
},
discovery: {
includeRepo: true,
includeUi: true,
includeApi: true,
includeContracts: true,
},
security: {
networkPolicy: 'localhost-only',
allowedHosts: ['localhost', '127.0.0.1', '::1'],
redactSecrets: true,
},
});
function requiredEnv(name) {
const v = process.env[name];
if (!v) throw new Error(name + ' is required');
return v;
}
Auth types
Brisk ships four auth types. Pick one (or none).
none
No auth required. Use for public endpoints or local dev.
auth: { type: 'none' }
bearer
Bearer token attached to all API requests. Static, no refresh.
auth: { type: 'bearer', token: requiredEnv('API_TOKEN') }
credentials
Username/password with optional browser login via Playwright at loginUrl.
auth: { type: 'credentials', username: 'u', password: 'p', loginUrl: '/login' }
custom
Host provides auth logic via SDK metadata (e.g. refresh tokens, SSO, mTLS).
auth: { type: 'custom', description: 'OAuth refresh on 401', metadata: { ... } }
Auth secrets (tokens, passwords, cookies) are auto-redacted from evidence before any result is written.
Run a test goal
$ npx brisk-aitesting run \
--goal "Test login, permissions, dashboard, API contracts" \
--scenarios 15 \
--mode automatic \
--ui-action-feedback when-missing
Machine-readable output for CI
$ npx brisk-aitesting run \
--goal "Test OpenAPI contracts and critical API paths" \
--scenarios 10 \
--json \
--output .brisk-aitesting/latest-result.json
CLI exit codes
0
All scenarios passed
1
Completed, non-passed
2
Setup or usage error
map Where Brisk is going.
Transparent direction. No delivery dates — the repository supplies none.
Broker adapters
Kafka, RabbitMQ, and cloud queues — only when a real runtime is selected.
Multi-language discovery
Source-route discovery for Python, .NET, Go, Java, generated-route systems.
Deeper Specmatic coverage
More proof-app cases for stub & service-virtualization behavior.
Richer extension types
Stable output contracts for new discoverer, planner, validator, and grounder shapes.
Replay depth
Richer response diff artifacts, multi-step session replay, privacy controls.
UI healing depth
Repeated flake analysis, multi-page healing, stricter confidence scoring.
Business-rule catalog
Reusable rule IDs, rule coverage, contradiction checks. Host teams approve and own the rules.
Trend analytics
Richer trend analytics on top of structured summaries and benchmark reports.
Multi-provider benchmarks
Compare real provider quality across AI models — not marketing claims.
Be part of building the control layer
Open issues, propose adapters, share proof apps, or star the repo. Every signal shapes what ships next.