Software Development

How Automation Can Help with Software Development

Monica Reichlova
October 12, 2021 | 8.5 min read
When a development team wants to be more dynamic in delivering releases i.e., faster, with the scope based on the current feedback from the market, it is not always best to stick to the waterfall methodology. This is the time when agile methods come to the forefront enabling multiple releases, often, with smaller scopes, which are based on the customers’ demands. This transformation brings a lot of changes to the development planning. Today, we will take a look at changes in testing especially with the role of automation.

Our own testing team used to focus on manual testing when working on bigger updates. There was a very wide regression catalog, which was growing with each feature exponentially. It took the testing team several weeks to go through and verify all the test cases. This was done before each release. Therefore the releases happened less often and they contained a lot of new functionalities.

Adding automated tests

When we changed the approach and started moving the applications to the SaaS world this required us to become more agile, otherwise we would not be able to dynamically react to our customers’ needs. This was also the time to change our approach to our testing. It was a fantastic opportunity to start with automation because the application was refactored from the scratch and there was time for setting up the automation approach and engine.

Tools we use for automation

Our testing team researched the pros and cons of some available automation tools and in the end the most suitable for our project was Postman and Cypress. Postman is an easy-to-use application for API testing. This means we can test the backend part of the application e.g., creating, updating, and deleting objects, checking correct validation messages, etc.

Above this there are some things that need to be checked on the user interface (UI) side – making sure they look as they should. For these types of tests, we use an application called Cypress. This is a testing application that can simulate clicking in the app as the user would do. Here is an example: Let’s take a user that is trying to save a new object without filling in the mandatory name field. We write some scripts to simulate this action and check if there is the correct validation message in black text in the upper right corner and that the field is highlighted in red. These tests run in the browser, and you can see a recording of the exact steps in the browser live, as the test is running. This is a big advantage of this particular application – you can check the recording and see where and how the errors occurred and what was the outcome.

Benefits of automation

With SaaS and an agile approach, we are releasing updates more often but with less functions per release. Before every release, the testing team is still doing the regression testing as it must still be checked and assured that the application will be delivered, in the highest possible quality, to the end user. Here are some benefits of automated testing:

Less bugs

With smaller releases and automated tests being in place, there are less bugs found in the regression and therefore less time needed for fixing bugs. This is very important as the bugs are found due to the automation, before the regression, and so one bug does not introduce another two which, originally, was very frustrating to the whole team. So now, less bugs also means a better mood in the team.

Efficiency

We definitely became more efficient. Here are some numbers to prove it. Before, we spent around 39% of our time dedicated to the release on stabilization of the app (testing + bug fixing). Now we only spend about 12% of our time. So, with automation, we are more than three times more efficient. This is great, as the saved time spent not bug fixing, can be put to more useful work that directly benefits the software and the end user.

Time flexibility of the tests

Once developers are ready to merge some new features into our testing environment it is great if they are tested right away, especially against major things like the app simply running, ability to create objects, perform basic operations, etc. The sooner issues are discovered, the sooner they are fixed and they will not block anybody else. Automated tests can be executed at any time, and they can run automatically after developing and merging a new function.

Regression testing is easier and faster

As we have about 40% of our regression catalog automated these do not have to be checked again manually so it takes much less time to go through all the tests. This saved time can be invested in writing more automated tests. This means, not only less bugs, but less time overall needed for regression.

Reusability

Tests are being written once and reused always when needed for some new feature. From time to time they may need some updating according to changes in our application, but that is usually a very fast fix. Also, it is possible to run these tests in different environments without any major additional work. For example, you have a web application, which needs to be tested in several web browsers. With manual testing you would need to do the same sets of tests across multiple browsers e.g., Chrome, Firefox, Edge, and Safari. With automated tests, you just change one line of code – that is so much easier.

Better manual testing

As testers have a lot of cases covered with automation, they can invest their time in more depth to manual testing and writing of quality and unique test scenarios. This gives them the opportunity for better understanding of the application and so, again, discovering new areas for automation.

How Accurity benefits from automated testing

We at Accurity believe in automated testing and it enables us to be agile with our software development, enabling us to release updates regularly and quickly for our Accurity data intelligence platform. If you are a user of our software, you benefit from quicker bug fixes and speedy new feature release. If you are not a user of our software, you can sign up for our SaaS product for free right now.

Would you like to be a software tester for Accurity?

We currently have an open, permanent position of Software Tester at Accurity – please do check it out if you are interested.

Monica Reichlova
Tester