What is an SDET?

QualityAssured_dropshadowSDET stands for Software Development Engineer in Test (or Software Design Engineer in Test). I believe this title was originated at Microsoft (but have not researched this). It is also used at Amazon.com and Google.

The SDET role can be compared with that of the SDE (Software Development Engineer) role. The latter is what most people would think of when they say "Developer". An SDE (depending on level and seniority) will Architect, Design, and Implement software systems that will be used by the target end users. SDEs are responsible for the quality of their software and will implement testing (often unit tests), as well as seek reviews for both their designs and their code. SDEs will often have influence on the software processes employed, and be responsible for following best practices in software development.

The SDET is also a developer. The SDET must have knowledge of what represents good software design. The SDET must be able to imagecreate high quality, maintainable, and performant code. The code generally created by the SDET however are for automated test cases and the frameworks to execute and report them. An SDET's knowledge of software design is often focused on testability, robustness, and performance, and they usually play a contributory or reviewer role in the creation of designs for production software. An SDETs skill set will often include more experience in software processes and how to test software. Testing software is generally done so as to assess and mitigate risk, and SDETs need to be expert in this. So an SDET can be summarized as having development skills and software quality skills. While SDEs should have this also, SDEs balance more towards the former while SDETs balance more towards the latter.

Also see my follow-up post to this.