Importance of manual testing when automating

Importance of manual testing when automating

The popularity of automation testing has grown so big, so that everyone is looking for automation tester nowadays. But how much of the automation testing is well implemented from testing perspective. I’m not talking from coding point of view where the code is written with clean code standards and reusability, but I’m talking from test design point of view. How many of you have seen properly set automation solutions, but the quality of the testing coverage is not sufficient? The testing coverage cannot be determined by the amount of tests, but by the well defined scenarios. This is the crucial part for having well-defined automation tests which are going to guarantee the quality of the application, and find potential regression issues.

To define quality test scenarios you need to have an understanding of the very basic techniques of testing. Such testing techniques are:

  • Equivalence Class Partitioning
  • Boundary Value Analysis
  • State Transition
  • Pairwise Testing
  • Error Guessing

Equivalence class partitioning technique is used to split test data into classes where all elements are similar and can fit in common group. By choosing this technique means that we are going to test few scenarios from the group. This does not ensure 100% testing coverage, but time-wise the code coverage would be sufficient to test the defined group.

An example for equivalence class partitioning scenarios is an e-commerce site where we need to test the ranking of the users based on their purchase history.

Boundary value analysis is similar technique to equivalence class partitioning, but the focus with this technique is the edge case scenarios, rather than the grouped scenarios.

An example for boundary value analysis scenarios would be an e-commerce site where we need to test the shipping cost. Depending on the location / quantity of items the shipping may be greater or smaller.

State transition testing technique is effective for creating test scenarios for systems that have many state variations, and this type of testing is commonly used for automation in the E2E scenarios.

An example for state transition scenarios would be an e-commerce site where we need to test the navigation to the store.

Pairwise testing on the other had is handful when we have complex forms with different types of inputs, and with this type of the testing we can minimize the scenarios to cover, but still have great test coverage. Helpful tools for generating pairwise combinations could be found online, just search for “pairwise tool“, and you will get everything you need.

Combining all testing techniques ensures to keep the testing coverage on sufficient level, and save time during the execution. There is no such thing as 100% test coverage and bug free software, but using this techniques allow us to save time, and publish the new features to production before the competitors.

Keep in my the very basics of testing, and happy automation.