Choosing test data for Information and Communication Technology (ICT) systems is a critical step in the software testing process, ensuring that the system functions correctly across a wide range of inputs and scenarios.
Review the system requirements or specifications to understand what the system is supposed to do. Test data should cover all functional requirements.
When choosing test data, it is necessary to consider the of the system.
Identify Test Cases
Positive Test Cases
Create test data that meets the expected input criteria to verify that the system behaves as intended.
Negative Test Cases
Generate test data that falls outside the expected input criteria to ensure the system handles errors gracefully.
Test data should include both and negative test cases.
Use Realistic and Synthetic Data
Realistic Data
Whenever possible, use data that mimics real-world scenarios to see how the system performs under typical conditions.
Synthetic Data
Generate data to test specific functionalities or to simulate data that may not be readily available due to privacy concerns or rare conditions.
Test data should cover a range of that users may encounter.
Include Extreme and Edge Cases
Stress Testing
Use data that tests the limits of the system's capacity or performance to see how it handles under stress.
Edge Cases
Consider scenarios that are unlikely but possible, to ensure the system can handle unexpected inputs.
One way to ensure comprehensive test coverage is by using values.
Data Variety and Volume
Variety
Ensure your test data covers different data formats, types, and structures expected by the system.
Volume
Test with various amounts of data, from the minimum to the maximum expected, to evaluate performance and scalability.
What is exploratory testing?
test data can help uncover unexpected issues in the system.
Automatic Testing
Test Data Generation Tools
Consider using tools that can generate test data based on your specifications to save time and ensure a broad coverage.
Test Automation Software
Automate testing where possible using automatic testing software (such as Python's Unit Test module)
What is the purpose of using test data generators?
Normal Test Data
Definition
Data that lies within the expected range of input and adheres to the system's intended use.
Example
If a system accepts ages between 18 and 60, normal test data could be 25, 40, or 58.
Purpose
Ensures the system operates correctly under typical conditions.
What is the definition of normal test data?
Abnormal Test Data
Definition
Data that falls outside the acceptable range or violates input constraints.
Example
For the same age range, abnormal data could be -5, 0, or 65.
Purpose
Tests the system's ability to handle invalid or unexpected input gracefullyPurpose
Which of the following is an example of abnormal data for an age input?
Extreme Test Data
Definition
Data that is at the boundary of the acceptable range or pushes the system to its limits.
Example
For the age range, extreme data could be 18 and 60 (boundary values). It might also include testing the system with maximum field lengths or the largest numbers it can process.
Purpose
Verifies the system's stability and behavior under boundary conditions.