Test automation. Yes or no?

Translation of the article was prepared on the eve of the start of the course “Python QA Engineer”


Before asking: “What to automate?”, You need to answer the following question: “Is it rational to automate anything in the current project?” If the answer is yes (which means that you have all the necessary resources to ensure automation, such as qualified QA specialists, enough time, money, etc.), you need to create a plan based on the requirements of the tested object, for which it will be developed automated tests. When creating such a document, you should have a clear understanding of what exactly you want to automate, how and which automation tools to choose. Now we will not go into the details of how exactly to test this or that function, since we are interested in where, in our opinion, the automation should be implemented.

Of course, the list below is far from complete, and a detailed list of tests for checking each function seems like a pointless undertaking. Our task is to select those parts in the project that need to be automated in the first place:

  1. Frequently used functionality where the risk of errors is high. Automated testing of key functional points will reduce the time to find errors and, accordingly, the time required to eliminate them will also be reduced.
  2. Typical, frequently performed data processing operations. For example, forms in which the number of fields to be filled out is large enough. The goal here is to automate the entry of data into the required field and to verify that the task is completed correctly after receiving the result.
  3. Validation messages. It is necessary to automate the sending of incorrect data to the appropriate fields and test the correctness of the data validation and error messages.
  4. Comprehensive testing of the behavior of the entire system as an integral object (end-to-end testing).
  5. Data validation requiring precise mathematical calculations (accounting or analytical software).
  6. Checking the correctness of the displayed search results in response to a data query (checking the correctness of the data search).
  7. Data retrieval validation.

What not to automate?

What types of tests should I not include in automated testing? Let’s list the situations in which test cases do not need to be automated:

  1. Usability tests that require manual intervention to check for errors or deviations from expected behavior;
  2. Test cases, which include installation or do not require re-execution of the function (however, tests that imply data entry are necessary to automate);
  3. Avoid automating tests that can lead to unpredictable results (for example, new features, temporary tests, expiration checks).
  4. UX tests, which include checking the behavior of objects on screens of various sizes.

To improve the efficiency of automated testing, special attention should be paid to test cases. It is necessary to highlight those that are focused on testing the following aspects:

  1. Create / read / update / delete operations (CRUD operations). The simplest example is the user interface. Entering, viewing and editing user data, deleting information.
  2. Standard scenarios for using the application. An example is working with a mail client: authorization, viewing letters, navigating through received letters, creating new ones and sending them, logging out. This end-to-end sequence tests the full range of actions and manipulations. The advantage of such scenarios is that at the end of the test, the system returns to its original state (well, or close to it), which means that the impact on the results of other tests is reduced.
  3. Other cases when manual testing is not suitable for some reason. For example, checking the structure of files created by the system.

It is from the automation of such functionality that you can get the most benefit!

Read more:

  • How to eliminate blind spots with visual testing
  • Top 4 Automated Testing Design Patterns (and 86 More)

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *