Aligning quality control with actual requirements This is how software testing can be successfully automated
04.01.2022A guest post by Viktoria Praschl *
Who does not want to ensure that the quality is continuously checked during software development? The best way to do this is automated. But this can come with some hurdles.
Related companies
From a central platform to upstream interface testing, the strategies for test automation are diverse.
(© putilov_denis – stock.adobe.com)
Consistent testing: it is better to test too much than too little. Due to the corona pandemic, this is currently everyday life for many of us – and such a self– or quick test is done right away. The effort is usually in good proportion to the benefit.
This is not necessarily the case when testing enterprise software. A lot of testing is also done here, but these tests are often time-consuming and complex. Especially companies with software structures that have grown over decades and have been adapted again and again often have to spend a lot of time for constant quality control. Not everyone has the luxury, like many start-ups, of being able to think from the green field.
Wouldn’t it be great if you could automate testing processes and simplify them in this way? However, complex IT structures often stand in the way of integrating continuous testing into the DevOps pipeline. Consistent, automated testing can still work with the following strategies.
Automating only brings something if it makes it easier
Traditionally, automated tests run via scripts. An automation framework is created as the basis of this method. This frame structure is then extended by scripts. As the application under test evolves, the framework and scripts will also have to be reconsidered and possibly adapted. This can lead to the fact that testers have to be retrained. Even experienced staff can have difficulties keeping track of the constant changes.
If we remind ourselves that automation should accelerate something, this approach is counterproductive. If you want to automate quality control, you should adapt the technology to the application. For example, an app developer has different requirements than a backend developer. Nevertheless, cooperation should not be neglected. If you already have different approaches in your arsenal, everyone should know them and be able to understand what another team has done.
A “Swiss army knife solution” probably does not work with different technologies. Rather, it is important to implement a solution with which test cases can be automated across the entire technology stack and thus simplify the cooperation of the developer teams. This is possible with systems that run on a central platform.
The tool must match the craft
There is a lot of software. Whether open source or paid, the choice is also wide for tests. Therefore, think carefully about what your requirements are. A small company with fewer individual requirements can cope with a free testing kit. The larger and more complex the structure becomes, for example due to SAP and Salesforce applications, the more the tool must be able to do.
Before a test tool is purchased, you should therefore know exactly what it should be able to do and what it is needed for. The tool is only part of the process. If it is not the right one for the tasks or the operator, it will not fulfill its purpose.
If maintenance is difficult, automation suffers greatly
It takes a while for the automation to be fully implemented. But this can be saved in the long term. At least when maintenance does not become a resource eater. It is not possible without proper maintenance. In tests, one must be able to rely on the correct results. Two main problem areas are: Unstable test procedures and procedures that are difficult to update.
The solution of both problems begins even before testing. To avoid unstable processes, more stable identifiers can help. The more clearly criteria can be assigned and recognized, the better. In addition, the test tool should pay attention to how it reacts to variations and how easily it can be adapted to changes in the software. But be careful, even the best test can be affected by incomplete or incorrect data sets.
In order to keep the test application up to date, it should have a modular structure. When a process changes, it is not necessarily the whole application that needs to be adapted, but only a part of it. The modules must be integrated into the overall software in such a way that they still work in the infrastructure despite the update. A modular structure may invite you to add something here and there. Nevertheless, one should keep it moderate.
More focus on the interfaces
Many automated tests deal with the user interface (UI). After all, the user should be able to work with the software later. Tests of the interfaces (API) are better suited for the development process and will become more and more important in the future.
Tricentis study shows: API tests have advantages over UI test automation
(Photo by Tricentis)
According to a study by Tricentis, the setup, maintenance and runtime of API checks are many times easier and faster to accomplish (with the runtime by more than a factor of 100). In addition, interface tests can be performed earlier than UI tests. Under certain circumstances, the effects of new versions on certain areas can be detected earlier.
Not all strategies fit every company
Viktoria Praschl
Whether automated testing works in your company cannot be determined by strategies alone. The four mentioned here are recommendations based on experience. However, the best plan does not help much if the workforce is not ready for it or the infrastructure is not provided. Therefore, check your needs, check your opportunities, talk with colleagues. Make your own plan.
* Viktoria Praschl is VP Sales Central Europe at Tricentis.