Everyone else knows what the product should do and has no way to automate it. Coverage waits on the people who know the framework.
Composable automation
More to test than people who can code it? Compose it instead.
Most test automation is code in a framework that a few people understand, and AI assistants now add more of it every week. With composable automation you build tests from readable steps, on a canvas or by asking an agent, and anyone on the team can read, review and change them.
1 CertiBlock Standard Login
username, password
2 Click "Profile"
3 Type a new address into "Email"
4 Click "Save"
5 Expect message "Email updated" is visibleExample. Composed on the canvas, with no test code. Step 1 is a reference to a reusable block.
What this looks like day to day
Four problems with automation that has to be coded.
A product owner or domain expert cannot sign off on a test they cannot read, so reviews turn into trust.
Generated tests arrive quickly. Whether they check the right thing is the part that is hard to see in a pull request.
Shared steps are copied into every test, and the one you miss fails for a reason that looks unrelated.
How CertiQA helps
Compose on the canvas, with an agent, or both, then reuse what you build.
Compose on the canvas
Open a test case and you land on the Step Builder canvas. Choose Add Step, pick an action from the picker, and the fields change to match it: a selector and value for a click or type, an expected state for a check. API requests and agent steps are steps too, so a case can cover a page, an endpoint and an agent.
Prefer to demonstrate it? Record Steps in the Chrome extension streams your clicks, inputs and navigations into the case.
You still decide what to check. The canvas removes the code, not the need to know what the product should do.
In the product
- A step picker whose fields adapt to each action.
- Recording from Chrome into a case.
- UI, API and agent steps in the same case.
Compose with an agent
Connect your favorite AI assistant — Cursor, Claude Code, or Claude Desktop — to CertiQA over MCP. Because your assistant runs where your codebase lives, it can read your schemas, user stories, and application code directly to draft projects, suites, and cases as plain, readable steps.
Each case is validated statically against step schemas before saving, and every change is governed by your project's Change Review policy.
Drafted cases remain plain steps for a person to review. Your assistant creates drafts, not unmonitored production changes.
AI assistants over MCPIn the product
- Draft cases from Cursor, Claude Code or Claude Desktop over MCP.
- Static step validation before saving to suites.
- Change Review policy for approving assistant drafts.
Fix a shared flow in one place
Open CertiBlocks in the left navigation, choose New CertiBlock and name it for what it does, such as OAuth Login. Author its steps like any case and mark the values that differ per use, such as {{ username }} and {{ password }}, as input parameters.
In a case, choose Insert CertiBlock and pick it from the library. A reference holds the block's id and name, not a copy of its steps, so when you edit the block, every case, suite and agent test that embeds it runs the new version on its next run.
That reach applies to mistakes too. Check the next run after changing a shared block. Team Pro and above can also require Change Review so edits are approved before they apply.
In the product
- A CertiBlocks library in the left navigation.
- Input parameters, filled in at each use.
- Blocks can hold browser steps or API requests.
Keep one definition of a case
A case's Parent Suites setting lists every suite it belongs to. CertiQA treats it as one definition referenced from each, not a copy per suite. Edit a step once and Smoke, Nightly and Critical Path all show the change on their next run.
Passwords and API keys live in Secrets & Vault, referenced from a step as {{ vault.KEY_NAME }}, and can differ by environment without editing the step.
Code, when you want it
Web UI cases export to Playwright TypeScript, with secret references turned into environment lookups. Export is optional and per case. See web UI automation.
FAQ
Questions about composable automation
What is composable automation?
It means you build test automation by composing it, from steps on a visual canvas or by asking an agent to draft it, instead of writing code in a test framework. A test is a list of readable steps. Shared pieces such as a login are built once and reused, and a person reviews what is composed.
Do I need to write code to automate tests in CertiQA?
No. In the Step Builder you add steps from a picker, and the fields change to match the action you choose. You can also record steps in Chrome, or have your connected AI assistant draft cases over MCP. Web UI cases can be exported to Playwright TypeScript if you want the code, but it is optional.
Web UI automationHow does an agent compose tests for me?
Connect Cursor, Claude Code, or Claude Desktop to CertiQA over MCP, and your assistant drafts projects, suites, and cases directly from your application code, user stories, or PRDs. You can also assemble steps directly on the canvas using the Step Builder or Chrome recorder.
AI assistants over MCPDoes the agent change my tests without review?
Cases drafted by an assistant over MCP are validated against step schema rules and governed by the project's change review policy, which on Team Pro and above can require an approver. Either way, tests are plain steps, so a person can read what was composed.
What is a CertiBlock?
A CertiBlock is a named, reusable sequence of steps with its own input parameters, such as a login that takes a username and password. You build it once under CertiBlocks in the left navigation, then insert it into any case. The case holds a reference to the block, not a copy of its steps.
What happens to my tests when the login flow changes?
Edit the block. Every case, suite and agent test that embeds it picks up the change on its next run, and none of them has to be opened or saved again. The same reach applies to a mistake, so check the next run before you trust the change. Projects on Team Pro and above can also turn on Change Review, so edits are approved before they apply.
Can one test case belong to several suites?
Yes. Use the case's Parent Suites setting to choose every suite it belongs to, for example Smoke, Nightly and Critical Path. It stays one definition referenced from each suite, so an edit shows up in all of them on the next run. A suite decides when and where the case runs, not what it says.
How do I keep passwords and API keys out of test steps?
Add them in Settings under Secrets & Vault and reference them from a step as {{ vault.KEY_NAME }} or ${SECRET:KEY_NAME}. The value is resolved when the test runs and is not shown back in the UI or stored in the case definition. If you export a case to Playwright TypeScript, the reference becomes a process.env lookup, so the secret is not written into the file.
Can one block be used in UI, API and AI agent tests?
Yes. A block is a named, parameterized sequence of steps, and the steps can be browser steps or API requests. A UI login block and an API token-exchange block sit in the same library and can be embedded in the kinds of case that need them, including agent tests.
AI agent testingCan my AI assistant use my blocks?
Over MCP an assistant can list your blocks, read one, create a new block and add steps to it. The tool that creates cases takes ordinary steps and has no block-insert action, so inserting a block into a case is something you do in the app.
Compose one test you would have put off.
Pick a flow your team has not automated, build it on the canvas or ask an agent to draft it, and see whether the people who know the product can read it.