In short
- QA combines automated tests that run on every change with manual testing by people.
- Test the critical workflow most. A bug in sign-up or payment costs more than one in settings.
- Every bug found before launch is cheaper to fix than the same bug found by a customer.
- Testing is part of building, not a phase at the end. Ask how a team does it before you hire them.
Also called: Quality assurance, Software testing, QA, Automated testing, Regression testing.
What QA testing covers
Quality assurance is everything a team does to make sure software works: that features behave as specified, that new changes do not break old ones, and that the product holds up on the devices, browsers, and connections real people use. Testing is the largest part of it.
QA is different from usability testing. QA asks whether the product works as built. Usability testing asks whether people can use it. A form can pass every QA check and still confuse everyone who fills it in.
The main kinds of tests
The testing pyramid
- Manual testingPeople trying real flows on devices
- End-to-end testsWhole flows, automated in a browser
- Integration testsParts working together
- Unit testsSmall pieces of logic, many and fast
| Type | What it checks | Example |
|---|---|---|
| Unit | One function or component on its own | Price calculation adds tax correctly |
| Integration | Parts working together | Saving an order writes the right database records |
| End-to-end | A whole flow, as a user would do it | Sign up, create a project, invite a teammate |
| Regression | Old features still work after changes | The full suite run before each release |
| Manual and exploratory | What automation misses | Trying odd inputs on a slow phone |
How much testing an early product needs
Not every line needs a test, and an MVP that changes weekly can waste time on tests for code that will be rewritten. The right amount follows risk: the more it costs when something breaks, the more it deserves a test.
- Always test the money and the data. Payments, permissions, and anything that could lose or expose user data.
- Automate the critical workflow end to end. If the core flow breaks, you want to know before users do.
- Run tests on every change. Continuous integration runs the suite automatically when code is pushed, so problems surface within minutes.
- Test on real devices before release. At least one recent iPhone, one mid-range Android phone, and the main desktop browsers.
- Include accessibility checks. Automated scans plus a keyboard pass catch common web accessibility issues.
Write a test for every bug
When a bug is fixed, add a test that would have caught it. The same bug then cannot quietly return.
QA when code is written with AI
With AI-assisted development, code is produced faster, which makes checking it more important, not less. AI tools can write tests too, but a person still has to decide what needs testing and judge whether the tests check the right thing. Code that is generated quickly and never tested is a common source of technical debt.
At Choie, AI drafts implementation from a decided design and proposes tests. A senior person reads every line before it ships, and generated code that nobody understands is not merged. The AI-accelerated development guide covers how that works.
Common mistakes
- Leaving testing to the end. A week of QA after months of building finds problems too late to fix well. A Choie build puts a new live link in the founder's hands every Friday, so working software is in use from the first week.
- Testing only the happy path. Empty states, errors, slow networks, and expired sessions are where real users get stuck.
- Only testing on the developer's machine. A fast laptop on office Wi-Fi hides problems that phones on mobile data reveal.
- Tests nobody runs. A suite that is not run automatically on every change slowly stops being trusted.
Common questions
What does QA stand for?
Quality assurance. In software, it covers the practices and testing used to make sure a product works correctly and reliably before and after it is released.
What is the difference between QA and usability testing?
QA checks whether the software works as intended, such as whether a payment goes through. Usability testing checks whether people can figure out how to use it. A product needs both.
Do I need a separate QA team?
Not for an early product. Developers can write automated tests and a founder or designer can do manual passes. Dedicated QA people become valuable as the product and team grow. Choie also fixes defects in its own work at no charge for 30 days after launch, while real use is still turning up what testing missed.
What is regression testing?
Rerunning existing tests after a change to make sure features that used to work still do. Automated test suites make regression testing fast enough to run on every change.