Types of Software Testing: 20 Types Every Tester Should Know
Twenty testing types explained with a real example for each, grouped by level, purpose and approach, plus a table to decide which ones your project needs.
Ask five testers to list the types of software testing and you will get five different lists. One person groups by level, another by purpose, a third mixes in techniques like boundary value analysis. Interviewers know this, which is why “Explain the types of testing you have done” is less about reciting a list and more about showing you understand when each type is useful.
This guide organises 20 types into four groups: testing levels, functional types, non-functional types and approach-based types. Each comes with a short, real-world example from an Indian context, such as a UPI payment app or a job portal, so you can explain it in your own words.
Key takeaways
- Testing types are easier to remember when grouped: by level (unit to acceptance), by purpose (functional or non-functional) and by approach (manual, automated, exploratory).
- Regression, smoke, integration and API testing are the types most freshers will actually do in their first job.
- Non-functional testing such as performance, security and accessibility is a strong career specialisation.
- No project uses every type. Choose based on risk, release frequency and the kind of product.
- In interviews, always pair the definition with an example from a project you know.
How the types of software testing are classified
There is no single official list, but a common way to organise them is:
| Group | Question it answers | Examples |
|---|---|---|
| Testing levels | At what stage and scope do we test? | Unit, integration, system, acceptance |
| Functional types | Does the feature do what it should? | Smoke, sanity, regression, API, end-to-end |
| Non-functional types | How well does it work? | Performance, security, usability, accessibility, compatibility |
| Approach-based types | How do we test? | Manual, automation, exploratory, black box, white box |
The ISTQB syllabus uses similar ideas of test levels and test types; the ISTQB website is the reference if you are preparing for certification.
Testing levels (types 1-4)
1. Unit testing
Developers test the smallest pieces of code, such as a function that calculates GST on an invoice, in isolation. Unit tests run in milliseconds and catch logic errors early. Testers rarely write them in service projects, but SDETs often review them.
2. Integration testing
Checks that modules work together. Example: the job portal’s “Apply” service correctly calls the resume parser and stores the parsed skills. Bugs here are often about data formats, missing fields or timeouts between services.
3. System testing
Tests the complete, integrated application against requirements in an environment close to production. This is where most manual testers in India spend their time: running end-to-end flows on a staging build.
4. User acceptance testing (UAT)
Business users or the client confirm the software meets their needs before go-live. For a bank’s loan app, UAT might be done by operations staff who will process real applications. UAT focuses on business flows rather than edge-case defects.
Functional testing types (types 5-11)
5. Functional testing
Verifies each feature against its requirement. Example: entering a valid PIN on a UPI app completes the payment and shows a success screen. Most test cases you write as a fresher are functional. Our guide on how to write test cases covers the format.
6. Smoke testing
A quick, broad check on a new build to decide whether it is stable enough for deeper testing. Can the app launch, can users log in, does the home page load? If smoke fails, the build goes back to developers.
7. Sanity testing
A narrow, focused check after a small change or bug fix. If developers fixed a coupon calculation bug, sanity testing confirms the fix and the areas immediately around it, without a full regression run.
8. Regression testing
Re-tests existing features after changes to make sure nothing that worked before has broken. Regression suites grow with every release, which is why they are the first candidates for automation.
9. Retesting
Running the exact failed test case again after a fix to confirm the defect is resolved. Retesting is about one specific bug; regression is about side effects across the application.
10. API testing
Tests the application’s APIs directly: request, response, status codes, data and error handling. Example: the POST /jobs/apply endpoint returns 201 with an application id for valid data and 400 for a missing resume. Our Postman API testing tutorial is a good starting point.
11. End-to-end testing
Follows a complete user journey across systems. For an e-commerce app: search, add to cart, apply a coupon, pay through a gateway, receive an order confirmation SMS and email. These tests are valuable but slow and fragile, so keep the number small and focused on critical journeys.
Non-functional testing types (types 12-17)
12. Performance testing
Measures speed, stability and resource use under expected load. Example: the results page of a government exam portal on result day. Performance testing is an umbrella that includes the next two types. See our JMeter tutorial for beginners to try it.
13. Load testing
Checks behaviour at expected peak load, such as 5,000 concurrent users during a flash sale, against agreed response-time targets.
14. Stress testing
Pushes beyond expected load to find the breaking point and see how the system fails and recovers. A good system degrades gracefully, for example by showing a queue message instead of crashing.
15. Security testing
Looks for vulnerabilities such as broken access control, injection and weak authentication. Even functional testers can check basics, like whether changing an order id in the URL shows someone else’s order. The OWASP Top 10 is the standard starting list.
16. Usability and accessibility testing
Usability testing checks whether real users can complete tasks easily. Accessibility testing checks whether people with disabilities can use the product, for example with a screen reader or keyboard only. Both matter more as products reach users across age groups and languages.
17. Compatibility testing
Verifies the app across browsers, devices, operating system versions and screen sizes. In India, this includes low-end Android phones with limited memory and slow networks, not just the latest flagship devices.
Approach-based testing types (types 18-20)
18. Manual vs automation testing
Manual testing is performed by a person following test cases or exploring. Automation uses scripts and tools to run checks repeatedly. They are not competitors: automation handles repetitive regression, while people handle new features, usability and investigation.
19. Exploratory testing
Simultaneous learning, test design and execution, usually time-boxed with a goal (a charter). Example: “Explore the refund flow for partial cancellations for 45 minutes.” Skilled exploratory testing often finds bugs that scripted tests miss.
20. Black box vs white box testing
Black box testing checks behaviour without looking at the code, using inputs and expected outputs. White box testing uses knowledge of the code, such as covering every branch of a discount rule. Grey box sits in between, for example using database knowledge to design UI tests.
Which types does your project need?
Use risk and context, not a checklist, to decide. This table is a starting point:
| Project situation | Types to prioritise |
|---|---|
| New feature in sprint | Functional, exploratory, API, sanity |
| Every build | Smoke, automated regression |
| Before major release | Full regression, end-to-end, performance, UAT |
| Payments or personal data | Security, API, negative functional tests |
| Consumer mobile app | Compatibility, usability, performance on low-end devices |
| Public sector or large audience | Accessibility, load testing |
How to talk about testing types in interviews
Interviewers usually ask a follow-up after the definition. Prepare in this pattern:
- Definition in one line. “Regression testing re-checks existing features after a change.”
- Example from your project. “When we added a new payment method, we ran the checkout regression suite.”
- What you found or decided. “It caught a bug where saved cards stopped showing for returning users.”
Also prepare the classic comparisons: smoke vs sanity, retesting vs regression, functional vs non-functional, and black box vs white box. Many manual testing interview questions are variations of these.
Where testing types fit in the STLC
Testing types are not separate from the process. During test planning, the team decides which types are in scope. During test design, test cases are written for each type. During execution, the order often goes smoke, functional and API, then regression, with non-functional testing scheduled where environments allow. Our guide to the software testing life cycle explains each phase.
🚀 Looking for software testing jobs?
QA Jobs India shares 100+ fresh QA & software testing openings every morning — manual, automation, API and remote roles.
See today’s QA jobs →FAQs
What are the main types of software testing?
At a high level, testing is divided into functional and non-functional testing, performed at four levels: unit, integration, system and acceptance. Common functional types include smoke, sanity, regression and API testing; common non-functional types include performance, security and usability.
What is the difference between functional and non-functional testing?
Functional testing checks what the system does, such as whether a login succeeds with valid credentials. Non-functional testing checks how well it does it, such as how fast the login responds under load or whether it is secure.
Which type of testing is most important?
It depends on the product and risk. For most teams, regression testing is critical because it protects existing features with every release. For a payments product, security and API testing may matter as much.
Is regression testing manual or automated?
Both. Teams usually automate stable, high-value regression cases and keep manual regression for areas that change often or are hard to automate. Over time, the automated share usually grows.
Which testing types should freshers learn first?
Start with functional, smoke, sanity, regression and basic API testing, since these are what most entry-level roles involve. Then add one non-functional area, such as performance or accessibility, to stand out.
Conclusion
Pick an app you use daily, such as a food delivery or banking app, and write one example test idea for each of the 20 types above. That single exercise will make your interview answers concrete and help you see which type of testing you might want to specialise in.
- 100+ fresh QA jobs daily + Direct HR email IDsLive every morning at 9 AM — apply straight to HR
- Weekly Mega Job Fair800+ QA jobs from India & around the world, every week
- Certified QA coursesUp to 17 courses, with certificate
- AI ATS Resume BuilderFree resume points included
- Full LinkedQA feedEvery post, fully unblurred
- Complete QA Material libraryInterview Q&A, cheat sheets, templates & roadmaps
Instant activation right after payment · One login for jobs, courses, resume & LinkedQA
💎 Get every QA opening, every day
Join QA Jobs India Premium for 100+ verified QA jobs daily with HR contact details.