Sentiel · autonomous QA
In pilot · web apps

Find the bugs before your users do.

Your team ships code faster than anyone can test it, and more of it is written with an agent every month. Sentiel is a QA agent that reads each change and the ticket behind it, tests it in a real browser, and checks the screen against the API and the database before it calls anything a pass. Every result comes with the evidence.

The way in is a bug hunt. Give us a staging URL and two test accounts, and read-only access to the repository if you can. Within a week you get every bug we found, each one read by an engineer before it reaches you. Nothing installed, nothing to write.

Tested in a real browser
Screen, API and database checked
Read-only access, nothing to install

Two messages about the same broken release

How most teams hear about it
“Hi, the discount code said it was applied but I was charged the full price. Can someone look at this? I have had to cancel the order.”
From a customerDays laterCause unknown
What Sentiel sends instead
“Applying a discount code after changing the delivery address charges the original total. The screen shows the discount as applied; the order row in the database holds the full price. Found while testing the pull request that moved basket totals to the server. The steps, screenshots, the API response and the query result are attached.”
Before releaseWith evidenceReady to fix
01 · The gap

Code got faster. Testing did not.

Writing code and reviewing pull requests are now largely automated. Checking that the product still works is the step that did not keep up, so it falls to whoever has time before a release, and to your customers after it.

Your team merged a hundred and forty pull requests last month, most of them written partly by an agent. Somebody clicked through the app before each release. Your customers found the rest.

The bugs that reach users are rarely a typo a reviewer would spot. They are a logic error, an edge case nobody tried, two features that quietly stopped agreeing with each other. They show up when the software runs, not when someone reads the diff. That is where Sentiel looks.

02 · How it works

Tested the way a careful engineer would, on every change.

Four steps. The third is the one that makes the rest worth reading.

Step 01

Read the change

Sentiel starts where a careful tester would: with what changed and why. It reads the pull request, the code it touches and the ticket behind it, works out what the change is meant to do and where it is most likely to break, and writes the test cases itself. Nobody on your team writes a test plan, a script or a list of flows.

checkout-totals.md · written by Sentiel 14 cases · from PR #2231
## Case LC4: discount applied after the delivery address changes
- Preconditions: signed in as returning_customer, one item in the basket
- Verifier: mixed (browser, API, database)
- Risk: regression
- Steps:
  1. Change the delivery address to a Highlands postcode
  2. Apply code SAVE10 and continue to payment
  3. Read the order row that was saved
- Expected result: the total on screen, in the API response and in
  the saved order all include the discount and the new delivery fee
Status: pending

The cases are plain text, so anyone on your team can read what was tested and correct one in a sentence. For each change it covers the intended path, the awkward inputs, the wrong user, and the neighbouring feature the change could have broken.

Step 02

Test it like a user, and like the wrong user

Sentiel runs the cases against your staging or preview environment in a real browser. It can stay signed in as several test accounts at once, so it checks what one customer can see of another's data as well as what each can do with their own. You start a run from a GitHub Action when a release is ready to be tested. If you want it tighter, a single feature can be tested as a step in your own pipeline, straight after it deploys.

The intended path Empty, malformed and duplicate input Login, roles and permissions File uploads Neighbouring features the change could break API responses behind the screen What was actually saved to the database Accessibility, WCAG A and AA

It does not replace your unit tests or your code review. It covers the part neither of them sees: the product, running.

Step 03

Prove it on every layer

An agent that calls a green screen a pass, or raises every oddity as a bug, is worse than no agent. So a result only counts when there is a saved file that shows it, on the screen the case names, and the API and the database agree with what the screen said. Every case ends in one of three places.

Fail

Expected one thing, got another. Reported with the steps, the screenshot, the API response or the query result that shows the difference.

Pass

Every step done and every part of the expected result observed, with the evidence file named. A screen the database contradicts is a fail, not a pass.

Blocked

Could not be tested, and why: a missing test account, a service that was down. Listed in the report, never counted as a pass.

If Sentiel cannot observe something, it says so and does not guess. While Sentiel is in pilot, a NodeNova engineer also reads every failure before it reaches your team.

Step 04

Report it, and keep the test

Each run ends in a report: every case, its result, and the evidence behind it. Failures are filed as issues in Jira, Linear or the tracker your team already uses, written so a developer can start on the fix. The cases are kept and run again on later changes, so the same bug cannot come back quietly.

The same run can gate a release: your pipeline fails when a case fails or was never finished, and passes when all of them have evidence.

03 · The report

What lands in your issue tracker.

A bug report is only useful if the person who picks it up can see the bug for themselves within a minute. This is what one holds. Every field is there because a developer needs it to start on the fix.

Bug report SN-0418 · case LC4 Fail
Case
Discount applied after the delivery address changes
as returning_customer on staging
14 Mar 2026, 09:42 UTC
Steps
1. Add “Linen shirt” (£55.00) to the basket
2. Change the delivery address to a Highlands postcode
3. Apply code SAVE10
4. Continue to payment
Expected
Total £58.50: item £55.00, less 10%, plus £9.00 Highlands delivery
Actual
Total £64.00: discount shown as applied but not deducted, delivery fee updated
POST /api/basket/total returned the pre-discount amount
Evidence
2 screenshots · API response · query result
orders.total = 64.00 for the order just placed
Checked on
screen, API and database · all three disagree with the expected total
read by a NodeNova engineer before sending
Change
PR #2231 · “Move basket totals server-side”
tested at commit 4e1a9c2, against main
Kept as
checkout-totals.md · case LC4
runs again on every later change to checkout
Example report · illustrative values ✓ evidence attached

An example report. The fields are fixed. The values are whatever your release turned out to contain.

Evidenced
Nothing passes or fails on the agent's word. Every result names the saved file that shows it, and a pass without one is refused.
Cross-checked
What the screen says is compared with the API response and the stored data. A screen the database contradicts is reported as a bug.
Kept
Cases are kept and run again on later changes, so coverage grows where your product has actually changed.
Yours
Test cases are plain text: the steps, the expected result and the check that proves it. We hand them over, and anyone can read them or run them by hand without us.
Open about gaps
Every run lists what it could not test and why. A blocked case is never counted as a pass.
And what we do not claim

We do not claim to find every bug. Nobody testing a product from the outside can. We claim that every bug we report comes with the evidence, that you can follow the steps and see it yourself, and that we show you what we tested and what we could not.

04 · Results

Measured on your app, not promised.

Sentiel is new. We have no public benchmark to show you yet, and we will not quote a catch rate until we do. The numbers that matter first are the ones from your own app, and every bug hunt ends with them.

42

Test cases written and run across the areas we agreed to cover

Illustrative
33

Passed, each with evidence on the screen, the API and the database

Illustrative
6

Failed: the bugs, each read by an engineer and reported

Illustrative
3

Blocked: what we could not test, and the reason for each

Illustrative

What comes next. Before we quote any rate, we will measure Sentiel on web applications with a history of real bugs, each replayed at the change that introduced it. The share of known bugs found and the share of reports that were real will be published here with the method, including the numbers that are not flattering.

05 · Scope

What Sentiel does, and what it leaves alone.

Sentiel does
  • Read each change and its ticket, and write the test cases for it.
  • Test your running web app in a real browser, as more than one user.
  • Confirm that what the screen shows is what was actually saved, by reading your API and database. It only ever reads them.
  • File failures in Jira, Linear or your own tracker, with their evidence.
  • Audit the pages it visits for accessibility, against WCAG A and AA.
Sentiel does not
  • Test native iOS or Android apps. Web first, including mobile browsers.
  • Run load, stress or performance testing.
  • Carry out penetration testing.
  • Replace unit tests, code review, or your decision to release.

Those need their own tools and people. Sentiel covers the gap between them: the product, running.

From bug to fix, when you want it

Sentiel is the verification stage of NodeNova's Agentic Pipeline, offered on its own. Start with testing alone: Sentiel only reads, and never changes your code or your data. When you are ready, the bugs it finds can go to the pipeline as tasks and come back as fixes that Sentiel tests again.

Worth a conversation if
  • You ship a web product weekly or faster, and your team uses AI coding tools every day.
  • You have no QA team, or one that cannot keep pace with what gets merged.
  • Customers or your support team find bugs before your engineers do.
  • You deliver for clients who expect quality you currently prove by hand.
Not yet, if
  • You release a few times a quarter, have a QA team with coverage you trust, or have no staging environment to test against. Set up staging first. We will say so rather than sell you something.
06 · How to start

Start with a week of bugs from your own app.

No integration, no procurement cycle, nothing installed.

Free · one week · fixed scope

The bug hunt

You give us a staging URL and two test accounts. We propose the parts of the product worth testing first, you say yes or strike one out on a call, and Sentiel works through them for a week. You get a short report.

  • Every bug we found, with the steps and the evidence.
  • The test cases we wrote, in plain text, yours to keep.
  • What we could not test, and why, so you can judge the coverage for yourself.
Useful whether or not you go further. If it finds nothing, that is the answer, and we will tell you.
£1,800 fixed · six weeks

Then a pilot

Sentiel on one application for six weeks: each release is tested when you say it is ready, failures are filed in your tracker with their evidence, and the cases build into a regression suite.

  • Success criteria written down on day one, with an explicit exit.
  • Run by us, or in your own pipeline and cloud account where your code cannot leave it.
  • £1,800 for the six weeks, credited against your first months if you carry on.
If the pilot does not hit what we wrote down on day one, you walk away and you keep the tests.
What we need from you

A staging URL and test accounts for the roles that matter. For the pilot, one GitHub Action added to your repository, which reads the code and starts a run when you ask, and read-only access to a staging database if you want stored data checked. That is the whole list: no SDK, no test scripts to write, no flows to document, and no write access to your code or your data. Setting it up is one call and about an hour of one engineer's time.

After the pilot
  • £1,500 a month for one web application, for teams merging up to a hundred changes a month. Everything is included: the runs, the browsers they run in, and an engineer reading every failure before it reaches you.
  • £900 a month for each further application.
  • Your own API key, if you would rather Sentiel ran on a model provider you already have a contract with. We agree the price for that on the call.
  • Self-hosted / on-prem priced on scope, for teams whose code and data cannot leave their network.

Monthly, with no annual contract: cancel when it stops paying for itself, and the test cases are yours to keep. Never priced per seat. Busier teams are priced on the call.

Sentiel is built by NodeNova, an engineering practice that delivers production systems for insurers, retailers and the UK public sector, self-hosted or air-gapped where the data requires it. NodeNova is the trading name of NOVA AI SW LIMITED, company number 16962401. ISO 27001:2022 aligned, Cyber Essentials certified.

07 · Questions

What people ask us first.

01

Will it flood us with false alarms?

That is the failure we designed against first. A result only counts when a saved file shows it on the screen the case names, and Sentiel refuses a pass that has none. It then checks the screen against the API and the stored data. And while Sentiel is in pilot, an engineer reads every failure before it reaches you.
02

What access do you need?

Read-only, and never more. The bug hunt can start from a staging URL and test accounts alone. Read access to the repository and its tickets is what lets Sentiel test what each change was meant to do. Read access to a staging database lets it confirm what was actually saved: it can only run read-only queries, and your credentials are never shown to the model. It never needs write access to your code, your data or your production systems.
03

What about logged-in flows, roles and test data?

You provide test accounts for the roles that matter, including ones behind two-step login. Sentiel creates the data a test needs inside the product, the way a user would: it uploads the file, creates the record, then tests it. You do not need to seed anything first.
04

We already have end-to-end tests.

Keep them. Sentiel runs alongside your existing suite, whatever it is written in, and does not need it or change it. It is most useful on the flows your suite does not cover yet, and on changes nobody has written a test for.
05

Can't we just point a coding agent at our app ourselves?

You can, and for a one-off check it is worth doing. Generating tests is the easy part. Working out what a change could break, refusing results that have no evidence, checking the screen against the stored data, and keeping the cases current as the product moves is the work that turns it into QA.
06

Where does it run, and does our code leave our environment?

For the bug hunt we run it ourselves against your staging URL, and your code is not involved at all. After that it runs as a GitHub Action in your own repository, and it can use a model provider you already have a contract with, so code and test data stay in your environment. Either way, your code and data are never used to train models.
07

Is it fully automated, or is a person involved?

Both. The agent writes the cases, runs them and gathers the evidence. While Sentiel is in pilot, a NodeNova engineer reads every failure before it is filed. We would rather be slower by an hour than send your team something that is not a bug.
08

Does it replace our QA engineers?

No. It takes the repetitive checking off them: the same flows, on every change, at a pace no person can keep. What stays with your people is deciding what matters, exploring the product the way a customer would, and judging the bugs Sentiel raises.
09

What does the bug hunt need from us?

A staging URL and test accounts for two roles. Nothing installed and no other system access. One call to scope it, one call to walk through what we found. Under NDA if you prefer.
10

Do we have to define our critical flows first?

No. For the bug hunt we walk through your product ourselves and propose a short list of what to test first, and you approve it or change it on the scoping call. After that there is no list to maintain: Sentiel works out what to test from each change and its ticket. If something must never break, tell us in a sentence and it is tested every time.
08 · Engage

Find out what your last release shipped.

Thirty minutes to walk through your product and how you release it, and to scope a bug hunt on your own staging environment.