Automated Software Testing for Continuous Delivery
In continuous delivery, you want to bring your changes as fast as possible to your development, testing, and ultimately production systems. To develop and deploy often, you also need to always keep testing up. And to keep the quality of your software high automated software testing is inevitable.
In agile software development and agile software testing, we know many levels and forms of testing. From small and simple unit tests, up to interface tests with multiple systems involved. It does not matter if you want to test the user interface or an automated API, most of it can be automated, and entire peripheral systems can be emulated for testing purposes.
On the other hand, it’s not possible to automate the testing of the user experience and UI/UX design. If only your developers and testing framework understand how to use it, bug-free software is still not very effective.
Also, the user acceptance test is hard to automate. If your customer really got all the wanted features in the correct form is in the end the decision of the customer itself.
With testing in general you want to build yourself a safety net. With it, you can minimize the number of bugs that make it into your builds and get deployed to your environments.
So what levels you are going to test depends on your testing strategy. First, you need to know what you want to test, and then, you decide what is going to be tested manually and what is tested with test automation.
One approach is to look at your known bug list and analyze how you could have detected them earlier and even avoided them in the first place. If you have a lot of obvious and small bugs on the function level, probably the best way is to improve the unit and integration testing. If you have trouble e.g. in communication with other systems you need to build up a complex multi-system testing environment and automate the interface testing.
In summary, there is no testing strategy that fits all, and testing everything on every level is impossible. But automation and continuous delivery can help you on almost every testing level to improve the quality of your software and allow you to deploy more often and at lower risk.
The easiest way to automate your testing is with TestResults.io. Get your free account now