Smoke Testing and UAT for Your AI-Built App
Smoke testing is a quick check that your app works. Here's how to build a smoke test checklist and have users test your AI-built app (UAT).
Overview & context
A smoke test is a short check you run after creating a new version to quickly verify that the app works: for example, you start the app, log in and check the basics, such as the database connection. User acceptance testing (UAT), by contrast, verifies in detail that the app does what its users require. An AI-built app needs both, because if your spec isn't thorough enough, the AI can change another feature while editing one. This article shows how to set up both kinds of testing without a test framework and where to keep the checklist and links for your testers.
1. What is smoke testing
Smoke testing is a short set of checks that confirms that a new build works and is worth testing in more detail. The name comes from electronics development: you power the device on, and if no smoke comes out, you move on to real measurements.
A smoke test doesn't cover every feature. It checks only what the app can't be used without, like loading the home page, logging in, saving a record or sending an email. The whole run should take a few minutes at most, but you can often finish it in a few seconds.
2. Smoke testing vs. sanity testing vs. UAT
Smoke testing checks the whole app after a deployment, sanity testing checks one specific fix or change and UAT checks whether the app meets its users' requirements. They differ in who runs them and how long they take.
| Smoke testing | Sanity testing | UAT | |
|---|---|---|---|
| What it checks | The app works at a basic level | A specific fix or change works | The app does what users need |
| When | After every deployment | After a bug fix | Before a release or a handover to the client |
| Who tests | You or an automated script | You | Users or the client |
| How long | A few minutes | A few minutes | Hours to days |
3. Smoke test checklist
Build your smoke test checklist from the main scenario you've described for the AI. If you wrote the spec with a PRD template, use the Main scenarios and Done when sections. Then run through the list after every change from the AI and after every deployment.
Here's an example for a web app with a login and a database. Adjust it to what matters for your app.
4. Smoke testing an AI-built app
Run a smoke test on an AI-built app after every larger change, not just before a release. While editing one screen, Lovable, Bolt or Cursor can change a shared component, the database schema or the login flow. The bug then shows up somewhere else in the app.
If a smoke test fails, tell the AI, or go back to the last working version and give the assistant the change again in a smaller scope, pointing out the problem the original solution caused. For that you need your code in Git and changes committed in small steps. You can also use the checklist to have the AI write automated tests from it, for example in Playwright. Even with automated tests, walk through the main scenario by hand now and then, because the AI may ignore situations that would bother you in the app.
5. User acceptance testing: how to let users test your app
User acceptance testing (UAT) is testing where real users or the client confirm that the app does what they need and approve the release. It runs in a test environment such as staging, not in production with real data.
- 1
Set up a test environment
Deploy the version you want to verify to a dedicated environment. Switch payments to test mode and send emails only to test addresses or a dummy mailbox.
- 2
Create test accounts
Prepare test accounts for testers with the roles they'll have in the live app. Test data should resemble production in volume, and you can anonymize sensitive data.
- 3
Write UAT test scenarios
Tell testers what to go through. Don't describe click-by-click steps; give real scenarios, for example “book a meeting room for next Tuesday, then cancel the booking”. If something changed in the new version, let them know.
- 4
Agree on how to report bugs
Pick one place for bug reports, such as a form or a task or bug tracker. For each bug, the tester should write the app version and the steps that led to it, and attach a screenshot or a short video.
- 5
Record the UAT sign-off
When testing is done, write down which version users approved and which bugs need fixing before the release. Then deploy the approved version to production unchanged.
6. Keep the checklist, environments and tester links in AboutTheApp
Testers need to know the test environment URL, the test scenarios, the list of changes in the tested version and a place to report bugs. With AboutTheApp you can keep them together right in the app, so testers have everything in one place.
On the app's card, use Add resource to add the test scenarios (a document in your repo, Confluence, Google Docs, a project in test management software and more) under the Monitoring & Quality category and the bug report form or tracker under Issue Tracking. Mark links that not everyone should see as Private. They're shown only to signed-in team members and to people who enter the unlock code. Don't put test account passwords in AboutTheApp; share them with testers separately.
If the client tests the app, add them to AboutTheApp and assign the app with the test environment to them. Add links that belong only to that environment directly to it. Record the tested version in the Product versions window together with its list of changes so testers know what to check. If you add the About box to your app, testers get the version and the changes in it right in the app.
Frequently asked questions
What is smoke testing?
Smoke testing is a short set of checks run after a deployment to confirm the app works: it starts, you can log in and the main scenario runs to the end. Only then does more detailed testing make sense.
What's the difference between smoke testing and sanity testing?
Smoke testing checks the basic functions of the whole app after a deployment. Sanity testing checks one specific fix or change and that it didn't break anything right next to it.
What is UAT testing?
UAT (user acceptance testing) is testing where real users or the client confirm the app meets their requirements and approve it for release. It runs in a test environment, not in production.
Who performs user acceptance testing?
Future users of the app or the client's representatives, not the developer or a tester.
How often should I smoke test an AI-built app?
After every larger change the AI makes and after every deployment. The AI can change another part of the app while editing one feature. A smoke test catches that within minutes.
Can smoke testing be automated?
Yes. You can give your checklist to an AI assistant and have it write automated tests, for example in Playwright, that run after every deployment. It's still worth checking some steps by hand.
Where should I keep the test checklist and links for testers?
In AboutTheApp you add them to the app as links under Monitoring & Quality and Issue Tracking and mark the internal ones as private. Testers then get one About page link with the environment, version and list of changes.
In short
A smoke test after every AI change catches a broken app within seconds, and UAT before a release confirms the app does what users need.
Want everything your testers need in one place?
Create your app in AboutTheApp for free and add the test environment, checklist and versions with their changes.