In part 1 of this 3 part blog post, we reviewed many of the common challenges that organizations face when it comes to developing a test automation strategy. In part 2 we will review 5 suggestions that you can look at to start improving your test automation strategy.
What to do?
If you are in this test automation rat hole that we talked about in part 1 of this blog post and you are asking yourself “how do I get out of it?”, here are a few suggestions on where to start.
1. Test Automation must be an integral part of your software development process. In my experience every single project that I have seen which has attempted to “bolt on automation” at the end of a software development process has not gotten the Return on Investment (ROI) that it could get if Test Automation was an integral part of the process.
2. If you are doing Agile or attempting to do Agile, then Test Automation is mandatory. Anyone that is Agile or has attempted to go Agile knows that without Test Automation it is virtually impossible to deliver quality software in the shorter timeframes that are expected. If you are doing Agile or trying to move to Agile, then Test Automation in all of its flavours has to be in the team’s Definition of Done.
3. Test Automation must be executed on a regular and frequent basis. Too many companies spend a lot of money on test automation and then only execute it “when it is needed”. Why would you build automated scripts that can be executed all of the time and only execute it “periodically”? If your test automation scripts are sitting on the shelf, they are collecting dust and becoming obsolete. I have seen too many organizations that “complete” their test automation and the scripts are obsolete the minute they go on the shelf.
You need to setup your build process to automatically execute as much of your automated scripts as possible. The immediate feedback loop is essential to the team and the earlier they get the feedback, the faster they fix issues and save the company money. This feedback loop is part of the DevOPS process that I consider essential if a company is doing Agile or is attempting to go Agile.
4. Do the appropriate Test Automation in the different layers of the application. The internet has many representations of a testing pyramid. What follows is one example of a testing pyramid that I have used in engagements.
In essence the pyramid is showing the potential layers of an application, the recommended testing and the amount of testing that should be done in each of these layers. It is recommended that as much testing be done as close to the actual code as possible.
If we look at the pyramid I would expect developers to be writing automated unit tests for the code they are writing. This should be the largest layer of automated testing.
Then as the units get used and integrated into other code, the expectation is that automated integration tests be written.
In the functional layer, it depends on the application and how it is structured but in essence the expectation is that a higher level of functional testing would be done. Test Automation should be performed in this layer as well and can be complemented with manual testing if required.
Finally, you can also do Test Automation in the GUI layer but this should be the smallest amount of testing that is done regardless if it is automated or manual.
The key things to remember is that test automation must start with the developers as they write the code and continues in a diminishing rate as you move up the testing pyramid. By running test automation in these various layers, as early as possible and as frequently as possible you are enabling your team to prevent bugs from getting out of control and you actually enable the team to build in quality rather than trying to test it in by “bolting on” Test Automation at the end.
5. Be ready to use the best tool for the type of Test Automation being done. Tool vendors like to sell the idea that “one tool can do it all”. While this is a great concept, the reality is that certain tools are better than others in doing different types of test automation. You shouldn’t limit yourself to just one tool, especially if that tool is not delivering what it promised. One tool cannot do it all in my experience.
In the final part of this blog post, we will review 6 more suggestions you can use to improve your test automation strategy.
If you would like to discuss how Avant can help you develop a Test Automation strategy that can work with your software delivery goals, whether you work in Agile or not, please contact us.