So what exactly does an SDET do?

We're just finishing up Mid-Year discussions here at work. It's a great time to take a step back and plan out the next few years of our careers, and I thought it would be worth talking about the testing career here at Microsoft.

Testing Positions at Microsoft

There are a few different testing positions at Microsoft and plenty of options if you are interested in an individual highly technical role, or a management role where you are coordinating cross-discipline and cross-team efforts. This post is going to focus on the individual career path and a future post will talk more about the management path.

The majority of testers are SDET's - Software Development Engineers in Test. The role and qualifications mirrors that of our SDE's, with just an emphasis on producing code that does the testing of the product, rather than the product code itself. Our testers are really the first customers of all of our features. They participate in all phases of the development of a feature and in essence become the expert of that feature. There is a career progression from entry level to senior level SDETs, where you take on larger and more complex challenges at each stage.

Usually test teams are organized into functional units grouped by a set of features. For example our team has had a team concentrating on all of the Application Services features of ASP.NET. These functional test teams are managed by an SDET Lead. These leads balance managing the careers of their direct reports with planning for future work and driving improvements into our engineering processes. Many SDET Leads continue to work on technical challenges as well.

Day-to-day core activities of a tester

It's really hard to describe a typical tester day, as there usually isn't a typical day. The primary core work that testers do is "own the testing of a feature". They are responsible for ensuring that the the feature meets the customer needs throughout it's lifecycle.

The tester for the UpdatePanel in the AJAX Extensions (for example) participates in the early design meetings for the feature and provides design feedback based on what they would expect (and want) as the customer. As the design becomes more solidified they next create a test plan that enumerates all of the scenarios they will be testing, and a priority order that indicates how important and how likely that scenario will be in the real world.

During the implementation of the feature, the tester is cranking out tons of code as well. We have an internally developed framework we use to automate all of our tests, and we are constantly building and evolving it. In many cases the features our tester needs might not be present, so they are adding that support as well as building out all of the test pages they need to prove the Update Panel is going to work for our customers.

Once the implementation is done, we subject it to the thorough testing planned out by the tester. In most cases this means running all of the now automated tests against the built code across many configurations of Windows versions and languages and security settings. During this time the tester works very closely with the developer to provide simple straight forward bug reports and repros. In some cases, the tester can even debug down to the actual error and suggest a fix.

Once the feature is complete, the finished tests become part of our larger automated test bed and will continue running against future builds and other configurations, providing the tester with even more information about how well the feature is working.

Other testing activities

Obviously ensuring our features meet customer needs and are of high quality is the primary job function, but there are alot of other activities that our testers engage in. Such as internal tool development, app building, community engagement and career development.

No Comments