Steven Edouard

Developer Advocate. Tech Enthusiast. Life Enthusiast.


What's it like being an SDET at Microsoft?

You really have to admit that the role of a software 'tester' doesn't sound as sexy as other developer jobs. In fact that's probably why the official title of 'testers' at Microsoft is 'Software DEVELOPMENT ENGINEER in Test' to convey that these folks are just as capable of developers as your standard software developer. Microsoft has truly innovated on this role in a way that most other software firms haven't. So much so, that in the past few years the 'SDET' role has just started spreading out to other reputable organizations such as Google and Amazon.

I spent a little over 2 years as a tester at Microsoft within the .NET Runtime (Common Language Runtime for you .NET fanboys out there) right after I got my Computer Engineering undergraduate degree. During that time Microsoft has churned the organization heavily as you may have seen in the tech blogs. With that churn, the role of the test position has shifted as well.

As a Microsoft SDET my job really wasn't to ensure that a particular API behaved in a certain way or that the unit test coverage of a certain feature was implemented. Our developers were responsible for doing that work. Instead the SDET work focused on test tooling such as static validation tools and sophisticated, reliable infrastructure that would run end-to-end and unit level tests that drove developer productivity. Developers were responsible for ensuring that the quality of the code they checked in was up to snuff. Testers like myself ensured that the holistic quality of the product was sound. This could be anything from harnessing apps to creating sophisticated semantic validation tools that could determine if two pieces of generated code were the 'same'.

Now, don't get me wrong my SDET experience may be differ from teams with products with faster cycles like online services but the theme remains the same. Testers at Microsoft are not simply 'point-n-click' testers. They do a lot of really sophisticated things and focus on ensuring the quality of the customer scenarios in the product. This is a lot more fun than what the title of 'tester' conveys.

What are the skills required? In general I would say it's nearly the same as any highly talent developer with an increased emphasis on creativity. You gotta have that creative edge to think about really cool ways to validate the product and even validate things like the usage of a feature through things like telemetry systems.