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.
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.
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.
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:
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.
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.
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.
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.
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.
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.
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.
We currently have an open, permanent position of Software Tester at Accurity – please do check it out if you are interested.