7 habits of highly effective SDETs

Software developers in test (SDETs), engineers who are a hybrid of software developer and tester, are in high demand. From small startups to mega-tech companies, great SDETs are highly sought after.

But what exactly makes a great SDET? As someone who regularly interviews people to fill SDET positions, I can attest that finding a top-notch one is not easy. This is due not to a shortage of applicants, but to a shortage of applicants who possess the traits that make for an awesome SDET.

Here are seven habits that I see in highly effective SDETs.

Gartner Magic Quadrant for Software Test Automation

1. Be intentional

Inexperienced SDETs are of the mindset that they must automate "all the things," or at least all of the things that can be automated. Their goal is to eliminate as much manual testing as possible.

But SDETs who have participated in successful automation projects know that blindly automating tests can cause more problems than it solves. Effective SDETs are very intentional about what they automate and ensure that their selections align with their end goal.

2. Enhance development skills

Many aspiring SDETs believe that learning how to use popular test automation APIs is enough to be successful. That is certainly a starting point, but to be truly effective, more software development skills are required.

Having a firm grasp of programming logic and concepts certainly makes for a more effective SDET. All of the mature automation projects I've been part of have used object-oriented programming, decision structures, repetition structures, and data structures.

Clean coding practices, as well as the use of design patterns, are critical for maintenance as well as reusability and extendability.

3. Enhance testing skills

While it's important that SDETs be strong programmers, the most effective SDETs are strong testers as well. If the most beautifully written test automation code is not adequately validating the expected behavior, then it's worthless. This type of script will almost always report success because it's not actually validating anything—or at least not what it should be. This sounds really trivial, but I've caught this negligence in many code reviews.

One major reason for this is that the SDET doesn't understand how meticulous testing truly is and doesn't capture all of the many verification points a tester processes before declaring a test successful. 

Another reason for such oversight is that it takes great skill to be able to balance the developer and tester mindsets that this hybrid role requires. When developing the framework for a particular test, it's easy to get caught up in the act of creation, and once the test is completed, there is a sense of accomplishment. Effective SDETs can switch their brain to testing mode within this same session.

4. Explore new tools

Mastering an automation tool is a great feat; however, effective SDETs know that not all challenges can be solved with the same tool. Because of this, they continuously evaluate and add to their collection of tools.

Not only do they learn how to use several tools, but more important, they also know in which contexts each tool is best utilized. Scroll through any test automation forum on the web, and it won't take long before you find someone asking about how to use a UI automation tool such as Selenium WebDriver to automate web service testing or about which tool to start studying to learn automation.

Effective SDETs are able to analyze the problem that needs to be solved and choose which tools are best for that particular problem, as opposed to trying to solve every problem with the one tool that they know how to use. 

5. Automate throughout the product's tech stack

Effective SDETs are well aware of the costs and risks of automating at the UI layer of the application. Because of this, they do it sparingly and only when necessary. They understand that to effectively automate tests, it's wise to also understand the tech stack of the system under test so that more reliable layers can be utilized in automation.

They look for seams within the application that will enable faster, targeted testing, and they aren't afraid to code tests at the unit and service layers. Again, having knowledge of multiple tools enables SDETs to automate outside of the box of UI automation.

6. Collaborate

Great SDETs realize that automation is not their responsibility alone. They are not blindly automating tests, but are instead strategic in their approach. Part of figuring out the strategy is to collaborate with other key players. 

This includes those who are doing manual or exploratory testing. These types of testers usually have deep domain knowledge of the application and broad thoughts on how to approach testing it. Their input is extremely valuable in determining which tests should be automated.

Developers are also great resources to collaborate with. Not only can they contribute to the test automation code base, but they can also help SDETs understand what additional layers and seams are available.

Business analysts and product owners also provide value to SDETs by helping them understand why certain features are being built and how they will be used. They can also provide historical data of how customers use existing features. All of this information is valuable in determining an automation strategy.

7. Automate beyond the tests

While most SDETs mostly focus on automating tests, the great ones also use their skills to automate other tasks as well. They regularly seek out opportunities to make the software development process more efficient by eliminating the boring, repetitive tasks that distract humans from doing the really important and interesting things. Data generation, environment setup, and log parsing are all time-consumers that can be automated to assist with testing efforts.

Understand the role and prosper

The demand for SDETs isn't slowing down anytime soon. However, companies have learned to be very selective when hiring SDETs. They are not simply looking for testers who write code or developers who write tests. They are looking for people who understand that there's more to being an SDET, and who are highly effective at delivering in such a role.

What other habits do highly effective SDETs possess? Be sure to leave your thoughts in the comments field below.

Topics: Dev & Test
Article Tags 

Popular Posts