# How to Identify What to Test
During the testing process, it's necessary to identify what needs to be tested. To do this, understanding what a test is and how it's conducted is crucial.
# The 3 Main Ways to Document a Test
Let's understand the 3 ways to document a test so that we can identify what needs to be tested.
# Test Scripts
The most detailed way to document a test, scripts typically detail step-by-step actions and necessary data to run the test. It often includes steps to understand how the user interacts, what actions to perform, and in what order, including specific outcomes for each step, such as verifying changes. For example, the action might be clicking button X, and the result is a window closing. At the start of a project, the tester might not have an in-depth understanding of the function. Scripts assist in the smooth development of the process and understanding the system. However, projects often undergo changes, with pages redesigned, new features added, etc., so scripts must be regularly updated. The drawback here is that time spent updating the script could be invested in executing more tests. Moreover, scripts are designed to test very specific and repetitive actions, leaving room for bugs outside these predefined paths to go undetected, requiring constant evolution.
# Test Cases
The second most detailed way, test cases describe a specific idea to be tested without detailing the exact steps to be executed. For example, testing if a discount code can be applied to a discounted product. This doesn't describe which codes will be used, allowing different approaches to find the result. It provides greater decision flexibility to the tester to complete the test, benefiting experienced testers with a good understanding of the system's nature and functions. However, the absence of this familiarity and experience allows bugs to go unnoticed.
# Test Scenarios
The least detailed documentation, describing the goal the user might achieve when using the program. For instance, testing if the user can log out of the program when closing it. Various techniques are needed to properly validate and test the function, as scenarios provide minimal specification. Testers have ample flexibility in developing the test. This flexibility offers the same pros and cons as seen in test cases, being liberating for experienced testers and nearly impossible for novices.
A combination of these modalities, often used simultaneously, can be employed, divided among the team based on their different skills and competencies within the project's specific context.
# How to Identify What to Test
Let's understand the different ways to test.
# Documentation-Based Testing
When conducting any test, the most up-to-date documentation should be requested, such as use cases, business rules, and any relevant documentation.
It's crucial to start, finish, and report test cases continuously once the documentation is available, preventing forgetfulness and future rework.
# Testing Techniques
Testing everything is impossible, so applying techniques is essential to cover as much of the system as possible in the shortest time.
- Soft Skills
- Exploratory Curiosity
- Active Listening: Not all information is in documents; sometimes, it's in people.
- Team Player: Actively contribute to the group to complete tasks, achieve goals, and collaborate for the common objective.