Difference Between Functional and Exploratory Testing
Functional Testing
- Based on functional test cases.
- Mainly covers interactions, requirements, and functional scenarios.
- Focuses on verifying whether the system is functionally perfect and whether the implementation is accurate.
Exploratory Testing
- Relies on the experience of QA testers.
- Involves simultaneous test design and execution.
- Focuses on discovering missing edge cases that are not easily covered in the scope of other tests.
Common Methods
UAT(User Acceptance Testing)
- Focuses on business scenarios of online active users.
- Filters historical customer bugs in the module you are going to test.
- Expands by combining the two scenarios above to find out some complex cases.
Interaction Testing
- Tests multiple operations.
- Tests components rendering.
- Tests specific interactions among data points in the implementation (e.g., where a value depends on earlier values).
- Focuses on discovering unexpected interactions.
Exception Scenarios
- Tests how the system behaves under exceptional circumstances (e.g., when there is an unexpected input or an error).
Performance testing
- Tests the system’s performance under heavy load (e.g., large amounts of data or high QPS).
- Tests the system’s ability to handle concurrent requests (e.g., using semaphores).
Data Compatibility
- Tests whether the system can handle different types of data inputs (e.g., different formats, encodings, or character sets).
Expansion testing
- Tests the system’s ability to handle expansions in the database (e.g., MongoDB, Redis).
- Tests the system’s ability to handle expansions in caching mechanisms (e.g., local storage, cookies).
- Tests the order of completion of API requests.
Focus on the impact on other modules
- Tests how changes in one module can affect other modules in the system.
Blind Spot
Up to your project. You should list them by yourself.