Being a test automation developer is challenging. Why? Because it takes many different disciplines and combines them. It’s relatively easy to find a manual software tester. It’s relatively easy to find a software developer. But to find someone who knows about both of them? That’s the difficulty.
The test automation developer market is currently very hot. The pandemic has made many people to want to change the scenery and to look for new opportunities and companies are willing to compete for the best talent. But the bigger reason for this increased test automation need, is the shift of focus for companies. Companies are turning their focus to improving their software business capabilities and want to secure their future. This means taking Agile and DevOps transformations seriously. And what is in the center of that transformation? That’s right. Test automation is one of key enablers of this Agile and DevOps transformation.
Of course, it’s difficult to say, what exactly makes a good test automation developer. There are so many different organizations and so many different processes and ways to implement this transformation. But there are some similarities that can be detected. We have identified a list of skills we think every test automation developer should know. Here’s the list:
- Ability to automate tests using a test automation framework
- Ability to work in an Agile environment
- Knowing about software testing practices
- Knowing about good software development practices
- Knowing about DevOps and Continuous Integration/Delivery
- Knowing about digital assurance
To explain these in more detail:
The ability to automate tests is probably the most visible part of a test automation developer’s output. In practice, this means, that the test automation developer understands user stories given by a business analyst and is able to convert them into automation script steps. The test automation developer can handle at least one relevant automation framework but could pick up any other automation framework with some preparation.
The ability to work in Agile environment is of course a requirement in modern software development. This means knowing about Agile concepts, such as, sprints, scrum, retros, and other Agile ways of working. This means also having a shared responsibility of quality.
Knowing about software testing practices is one of the corner stones of test automation developer’s expertise. The test automation developer has one foot in the software testing world and another in the software developer world. In practice, this software testing knowledge can be acquired by, for example, by completing a foundational level software testing certification.
Knowing about software development practices is the other corner stone. The test automation developer is capable of developing software that controls other software. In practice, this means writing automation scripts or automation libraries that contain automation functionality. The test automation developer should follow good software development practices and know about all the supporting software required, such as source version control management.
Knowing about DevOps and continuous integration is also important. This means understanding, what is the role of test automation in the software development pipeline. In practice, it also means configuring and maintaining test automation jobs on the CI-server and communicating test results to other stakeholders. It’s good to contemplate, what is the value that test automation brings to the process? It means understanding how test automation can accelerate the software delivery. It also means understanding how the DevOps mindset can be utilized to further improve the process.
Knowing about digital assurance is the last thing on this list. It’s about the high-level goal: to assure the functionality of our customer’s digital business. This includes all the quality engineering tasks we can provide to improve this business. In the end, it’s about quality assurance and making sure that software works as it should.