Software Engineer in Test

A new role description for progressive testautomation engineers

Posted by John Kronenberg on October 25, 2022

My previous article in TestNetNieuws entitled ‘Good testers are not good testautomation engineers. So what?’ has, for me somewhat surprisingly, received a lot of reads, likes and comments. I probably touched with that article a topic very much alive in our testing community. While that article was mainly about the fact that good testers don’t have to be good testautomation engineers to be of value to projects, this article sheds light on the other side: how could “progressive” testautomation engineers (maybe they should) position themselves in the market? I will explain my choice on the basis of a role description that may be new to many: ‘Software Engineer in Test’.

It’s been a while since I changed the role description in my LinkedIn profile to ‘Software Engineer in Test’. I made this decision after listening to a podcast with Andrew Knight (Test & Code episode 47. In this interview, Andrew describes his reasons for changing the role description in his LinkedIn profile. Analyzing the title ‘Software Engineer In Test’ it says exactly what I do in my working life: I use my Development skills to provide software solutions to test problems. A ‘Software Engineer in Test’ therefore moves between the field of testing on the one hand and the field of programming on the other. Exactly as shown in the picture below.

software developer in test

The “Software Engineer in Test” (SET) role was the first to be used by Google. Before that, Microsoft had already used the role description ‘Software Developer Engineer in Test’ (SDET) in 2005, but I personally find the Google name slightly more appropriate.

Historically, testers have focused on manual testing. Strong development skills have never been necessary for testers. Most testers, also under pressure from market demand, have increasingly focused on acquiring technical skills. In my opinion, a good Test Engineer is a tester who has acquired a lot of technical knowledge and he/she understands very well within which technical environment the software has been developed. A good Test Engineer does not have to be an accomplished testautomation engineer to be valuable for projects. This is also my personal position I described in my previous article.

The Software Engineer develops the software. A SET, on the other hand, not only writes test code, but does much more in practice.

Some of the tasks that the SET takes on are:

  • Working together with Software Engineers, Test Engineers and ProductOwners in the field of, for example, describing test scenarios (I believe this also applies to test engineers);
  • Monitor the code quality of the Software Under Test;
  • Setting up and maintaining Test Automation Frameworks;
  • Automating test scenarios within the Test Automation Framework;
  • Applying code quality rules to test code (just like Software Under Test);
  • Knowing and using Design Patterns when developing test code;
  • Setting up an infrastructure for automated testing (for example, performing tests in CI/CD, running tests in parallel, running tests with the correct test data);
  • Setting up dashboards for displaying real-time test results;
  • Develop tools that can be used in manual or exploratory testing.

Properly considered, the SET role can be seen as a (growth) function for developers (the Software Engineers) and as a (growth) function for testers (the Test Engineers). Given the skills needed to be a good SET, it’s more likely that developers would take up this role. It is less obvious that a traditional tester, who has gone through the above development, will take on the role, but that is of course not excluded, also given my own career development.

‘A Software Engineer in Test Must Have The Heart of a Developer’

  • Andrew Knight

It would be wonderful if companies massively embrace the role of the SET as a role that moves between Software Engineer and Test Engineer. It’s the best description I’ve come across of what testautomation engineers generally do in our companies. It also shows a clear differentiation between the Test Engineer on the one hand and the testautomation engineer on the other. It also underlines my point of view: “Good testers are not good testautomation engineers. So what?’. The function Test Engineer and Software Engineer in Test can coexist perfectly.


Published (in Dutch) in TestNet Nieuws on 30 oktober 2019 with the title SOFTWARE ENGINEER IN TEST: EEN ‘NIEUWE’ ROLOMSCHRIJVING VOOR VOORUITSTREVENDE TESTAUTOMATISEERDERS