Tests automation in a project — when and why?

test automation in a project

The world of programming is characterized by two types of tests — manual and automated ones. Some of the manual tests, eg. usability or exploratory ones, are an indispensable and inevitable part of a tester’s work. Nevertheless, if we’re talking about regression or smoke testing, doing them manually, especially if we deal with an advanced project, can be extremely time consuming or sometimes even impossible. In that case, automated tests come to the rescue. In this article we will focus on their pros and cons.

What are automated tests?

  • unit testing
  • API testing
  • integration testing
  • end to end testing
  • safety testing
  • performance testing

Let’s take a closer look at some of the most important ones.

End to end testing is the best way to make sure that a particular system works properly. It doesn’t check other methods operations or a number of times a certain function has been performed. What matters the most is the end result — a fact that a product has been added to the basket, an order has changed its status, a user has been logged, etc. Such tests recreate an end user’s actions which can be quite beneficial. The purpose is to go through the processes using business logic to confirm that the implementation went well.

Performance tests don’t verify the functioning of buttons, fields, forms, and rolled-out lists. They examine the application’s behaviour in various load conditions — a load being a situation when x users use the same function simultaneously, eg. visit the same view of the app (searching through products or sending a return form). It’s worth adding that performance tests can be divided on the grounds of the amount of load and their purpose:

  • Performance testing shows the system’s weaknesses and helps establish the, so called, “bottleneck” using low and high load.
  • Load testing verifies how the system works under the maximum load and if it’s even capable of performing.
  • Stress testing verifies if the system launched eg. a safe mode and if it meets the safety standards. In this case, the load is definitely higher than the maximum.

Automated tests — pros and cons

Preparing automated tests allows better analysis and error reporting thanks to easy and simple access to the history of tests results. However, automated tests are not only the land of milk and honey. Initial phase requires investing more time and money. Maintaining, performing and developing the scripts also generates costs but they are still lower than manual regression tests in long-term projects.

What’s most important — automated tests can’t substitute a real person. Their purpose is performing the same test cases quickly but they won’t fill in for exploratory tests based on the tester’s imagination and experience. Automated tests usually cover only the basic test cases but allow a large number of test data and provide a software version faster. Additionally, testing new functionalities is typically performed manually to provide a thorough knowledge of a certain area. Later on, we can implement the automated testing, too.

Summing up

It’s good to remember that they don’t downgrade the tester’s qualifications. Quite the opposite. At the end, a tester is a person with full, in-depth business knowledge of a product which, as a result, provides the end users with satisfaction and is considered as highest priority in software quality assurance in the World Quality Report.

Do you want to implement automation tests in your project? Feel free to contact us, it will be our pleasure to cooperate with you. Together we can deliver everything!

human-centric software design & development. check out our website: www.iteo.com