Quality assurance (qa)
Quality Assurance encompasses the activities and processes that ensure a product meets its requirements and satisfies user expectations. In software development, QA extends far beyond finding bugs - it's a discipline focused on preventing defects, maintaining standards, and building confidence that what you're shipping actually works. For product managers, QA is the reality check between what you intended and what you're actually delivering.
Why it matters
Bugs erode trust. A user who encounters broken features doubts the entire product. A customer who reports issues repeatedly questions whether you take quality seriously. The cost of fixing bugs increases dramatically the later they're found - what costs an hour to fix during development might cost days after release, plus the damage to user relationships.
Beyond immediate bugs, quality shapes velocity over time. Teams that ship buggy code create technical debt that slows future development. Teams that maintain high quality can move faster because they're not constantly firefighting or untangling past mistakes.
Types of testing
Unit testing verifies individual functions or components in isolation. Developers typically write these tests alongside their code. Good unit test coverage catches many bugs before they ever reach QA.
Integration testing checks that components work together correctly. A function might work perfectly in isolation but fail when connected to a database or API. Integration tests catch these interaction bugs.
End-to-end testing simulates complete user journeys through the product. These tests verify that the entire system works from the user's perspective, catching bugs that only appear when all components interact.
Regression testing ensures that new changes don't break existing functionality. As products grow, the potential for unintended side effects increases. Automated regression suites catch these quickly.
Performance testing verifies that the product meets speed and reliability requirements under expected and peak loads. Features that work perfectly with one user might collapse with a thousand.
Security testing identifies vulnerabilities that could be exploited. Given the consequences of security breaches, this testing is critical for any product handling sensitive data.
User acceptance testing (UAT) has real users or stakeholders verify that the product meets their needs. It's the final checkpoint before release, catching issues that formal testing might miss.
The qa process
Test planning defines what to test, how to test it, and what success looks like. Good test plans connect directly to requirements - every acceptance criterion should have corresponding tests.
Test design creates specific test cases with steps to execute and expected results. Well-designed tests are reproducible and unambiguous about what constitutes pass or fail.
Test execution runs the tests and documents results. This might be manual, automated, or a combination. The trend is toward increasing automation, but manual testing remains valuable for exploratory testing and edge cases.
Defect management tracks bugs from discovery through resolution. Clear defect reports - steps to reproduce, expected vs. actual behavior, severity - help developers fix issues efficiently.
Test analysis examines patterns in testing results. Which areas have the most bugs? Where do regressions occur? This analysis improves both the product and the testing process.
Manual vs. automated testing
Automated testing executes predefined tests quickly and repeatedly. It's ideal for regression testing, performance testing, and any tests that need to run frequently. Automation scales efficiently - running tests on every commit costs little more than running them occasionally.
Manual testing involves humans executing tests. It's slower and more expensive but better at finding unexpected issues, evaluating subjective qualities, and exploring edge cases. Skilled testers notice things automated tests weren't designed to check.
Most teams use both. Automation handles the repetitive, well-defined cases. Manual testing handles exploration, usability assessment, and new feature validation. The ratio depends on the product, team, and context.
Shift-left testing
Traditional QA happened at the end of development - build first, test later. This "waterfall" approach meant bugs were expensive to fix because the code was already complete.
Modern teams "shift left," moving testing earlier in the development process. Developers write tests alongside code. QA engineers participate in design discussions, identifying testability issues and edge cases before coding begins. Continuous integration runs tests on every commit, catching regressions immediately.
Shift-left doesn't eliminate later testing but reduces its burden. When code arrives at formal QA with unit tests passing and basic integration verified, testers can focus on higher-value activities rather than catching basic bugs.
Qa and product management
Product managers don't execute QA but shape it significantly.
Clear acceptance criteria make testing possible. Vague requirements create vague tests and arguments about whether bugs are really bugs. Well-written acceptance criteria specify exactly what success looks like.
Prioritization includes quality. Rushing features to market without adequate testing accumulates quality debt. Product managers must balance speed against quality, making explicit decisions about acceptable risk.
Triage decisions determine which bugs get fixed when. Not every bug is worth fixing immediately. Product managers help prioritize defects against feature work based on user impact and strategic importance.
Release decisions ultimately belong to product. QA provides information about quality; product decides whether that quality level is acceptable for release.
Building quality in
The best QA organizations focus not just on finding defects but on preventing them.
Code reviews catch bugs before they're merged. Having another developer examine code is one of the most effective quality practices.
Definition of done includes quality criteria. Work isn't complete until tests pass, code is reviewed, and quality standards are met.
Blameless postmortems analyze bugs that reach users. Understanding how defects escaped the process improves the process. The goal is learning, not punishment.
Quality metrics track trends. Bug counts, escape rates, test coverage, and time-to-fix all provide signals about quality health.
The goal is making quality everyone's responsibility rather than a phase that happens after development. When developers, designers, and product managers all care about quality, QA can focus on verification and improvement rather than basic defect detection.
Tools like Klero help connect customer feedback - including bug reports and quality concerns - directly to product planning, ensuring that quality issues surfaced by users inform prioritization decisions and don't get lost in the backlog.

