Test definitions vary. Sometimes they are categorized by type, level and approach. Below is my take on the different types of testing.
Unit Testing: Verifies that a single unit of code (a specific behavior in a method) behaves as intended.
Integration Testing: Verifies that two or more units communicating with each other behave as intended.
Component Testing: Verifies that a collection of related units communicating with each other behave as intended.
System Testing: Verifies that a collection of related components communication with each other behave as intended (end to end system testing).
Functional Testing: Verifies that a business feature behaves as expected.
User Acceptance Testing: Verifies that a business feature behaves as expected.
Smoke Testing: Verifies that the system is operational. The focus is more on the system being up and running vs. behaving as expected.
Regression Testing: Verifies that previously built functionality still behaves as expected.
Performance Testing: Verifies that the system or feature response time is acceptable under normal workloads.
Load Testing: Verifies that the system or feature response time is acceptable under heavy workload.
Security Testing: Verifies that the system and its data is not vulnerable to intruders or malicious users.
Stress Testing: Verifies that the system behaves correctly or fails gracefully when operated beyond it’s expected workload limits.
Usability Testing: Verifies that the design, layout, and user interface of a business feature is intuitive, easy to understand, easy to learn, easy to execute and attractive to the business users.
Exploratory Testing: A sophisticated and thoughtful approach to testing that combines learning, test design and test execution into one. It’s non-scripted, however, it is not ad hoc testing. Instead it applies test heuristics in a disciplined manner to supplement story testing and go beyond the obvious variations that have been already scripted and tested.
Next, let’s look at the Agile Testing Quadrant.
Also check out the entire Agile Testing series:
- 4 Typical Transitions Teams Go Through When They First Start Adopting Scrum
- The Most Common Misunderstanding of Agile Software Development
- What are the Different Types of Tests?
- What is The Agile Testing Quadrant?
- Which Tests Should We Automate?
- How Many Tests Are Enough?
- What is The Testing Pyramid?
- When Do We Start Testing in Scrum?
- Who Is Responsible for Testing in Scrum?
- What is Test Driven Development (TDD)?
- Why You Shouldn’t Do Functional Testing From the UI?
- What are Executable Specifications or Specifications by Example?
- What is Acceptance Test Driven Development (ATTD)?
- Testing Green Field Applications vs. Legacy Applications
- What is Exploratory Testing?
- Top 8 Things to Consider for Your Agile Testing Strategy
- Agile Testing – Testing from Day 1 Presentation