What Is QA Testing? Software Quality Assurance Explained: Types, Process and Tools

what is QA testing
On this page
  1. QA testing at a glance
  2. QA vs QC vs testing
  3. Types of QA testing
  4. The QA testing process step by step
  5. Popular QA testing tools (2026)
  6. How AI is changing QA testing
  7. QA tester vs QA analyst vs QA engineer
  8. Is QA testing a good career?
  9. FAQ

QA testing (quality assurance testing) is the work of checking that software does what it should, for real users, before and after it is released. Testers plan what to check, run manual and automated tests, report bugs and confirm the fixes. "QA" itself is wider than testing: it covers the processes that stop bugs from being made in the first place, while testing finds the bugs that slipped through.

QA testing at a glance

QuestionShort answer
What does QA stand for?Quality Assurance
GoalRelease software that works, is secure, fast enough and easy to use
Who does itQA engineers/testers, developers (unit tests), product owners and users (acceptance tests)
WhenFrom the requirements stage to after release ("shift left" and "shift right")
HowManual testing plus automated tests that run on every code change (CI/CD)
Common toolsPlaywright, Selenium, Cypress, Appium, Postman, JMeter/k6, Jira, TestRail

QA vs QC vs testing

Quality assurance (QA)Quality control (QC)Testing
FocusThe processThe productThe software's behavior
AimPrevent defectsDetect defects before releaseFind defects by running the software
ExamplesCoding standards, code reviews, test strategy, definition of doneRelease checks, inspections, sign-offRunning test cases, automated suites, exploratory sessions
RelationshipThe umbrellaPart of QAThe main QC activity

In job titles and everyday use, "QA testing" usually means the testing work done by a QA team, which is how we use it below.

Types of QA testing

By method

  • Manual testing: a person uses the software like a user would. Best for new features, usability and exploratory testing (unscripted hunting for bugs).
  • Automated testing: scripts check the software automatically on every change. Best for repetitive checks such as regression tests.

By level

LevelWhat is testedUsually written by
Unit testingOne function or class in isolationDevelopers
Integration testingModules or services working together (APIs, databases)Developers and QA
System / end-to-end testingThe whole app from the user's point of viewQA
Acceptance testing (UAT)Does it meet the business need?Product owners, clients, users

Functional and non-functional

TypeChecksExample
FunctionalFeatures work as specifiedLogin accepts a correct password and rejects a wrong one
Smoke testingThe build's critical paths work at allApp opens, user can log in and reach the home screen (see smoke testing explained)
Regression testingOld features still work after a changeCheckout still works after the payment page was redesigned
Performance / load testingSpeed and stability under loadSite stays under 2 s with 5,000 users at once
Security testingWeaknesses attackers could useSQL injection, broken access control (see penetration testing)
Usability testingHow easy it is to useNew users can finish sign-up without help
Accessibility testingWorks for people with disabilitiesScreen reader labels, keyboard navigation, contrast (WCAG)
Compatibility testingDifferent browsers, devices, OS versionsWorks in Chrome, Safari, Firefox, on Android and iPhone
Alpha / beta testingReal use before full releaseInternal staff (alpha), a group of real users (beta)

The QA testing process step by step

  1. Review the requirements and spot unclear or risky parts early. Fixing a misunderstanding here is far cheaper than fixing code later.
  2. Write a test plan: what will be tested, how (manual/automated), on which devices, and what "done" means.
  3. Design test cases and test data, including edge cases (empty fields, very long input, wrong formats, slow network).
  4. Set up the test environment that mirrors production as closely as possible.
  5. Run the tests: automated suites in the CI pipeline on every change, plus manual and exploratory sessions on new features.
  6. Report bugs with steps to reproduce, expected vs actual result, screenshots/logs and severity.
  7. Retest the fixes and run regression tests so a fix didn't break something else.
  8. Release decision and monitoring: agree the release is good enough, then watch error logs and user feedback after launch and turn real problems into new tests.
AreaTools
Web UI automationPlaywright, Selenium, Cypress
Mobile appsAppium, Espresso (Android), XCUITest (iOS)
API testingPostman, REST Assured, Bruno
PerformanceJMeter, k6, Gatling
Unit testingJUnit, pytest, Jest, NUnit
Cross-browser / device cloudsBrowserStack, Sauce Labs, LambdaTest
Test and bug managementJira, TestRail, Zephyr, Qase
CI/CD (runs tests automatically)GitHub Actions, GitLab CI, Jenkins

How AI is changing QA testing

AI coding assistants now help testers write test cases and automation scripts from plain-English descriptions, suggest edge cases, and "self-heal" UI tests when a button's position or name changes. Agent tools can explore an app and report what breaks. They save time on repetitive work, but people still decide what matters to test, judge usability, and check that AI-written tests actually test the right thing (see Codex vs Claude Code for two popular coding agents).

QA tester vs QA analyst vs QA engineer

RoleMain work
QA testerRuns manual tests, reports bugs, retests fixes
QA analystStudies requirements and risks, designs test cases and test plans
QA automation engineer / SDETWrites and maintains automated test code and CI pipelines
QA lead / managerOwns the test strategy, quality metrics and release sign-off

Is QA testing a good career?

Yes, especially on the automation side. Pure manual roles are fewer than they were, but demand for people who can code tests, test APIs, work in CI/CD and judge quality with AI tools remains strong. A common path: learn testing basics (the ISTQB Foundation syllabus is a good free outline), then a programming language (JavaScript/TypeScript, Python or Java), then Playwright or Selenium, API testing and Git.

FAQ

Is QA testing hard to learn?

Manual testing basics can be learned in weeks; automation takes a few months of regular coding practice.

What is the difference between QA testing and UAT?

QA testing is done by the delivery team to check the software works. UAT (user acceptance testing) is done by the client or users to confirm it meets their needs before they accept it.

Can QA testing be fully automated?

No. Automation is great for repeatable checks, but exploratory, usability and accessibility testing still need people.

What is a bug report?

A written description of a defect: title, steps to reproduce, expected and actual result, environment (device, browser, version), severity and evidence such as screenshots or logs.

Related guides