Getty Images/iStockphoto

Tip

10 skills an SDET needs

SDETs need a blend of development and testing skills to be effective, as well as soft skills critical to both disciplines. Learn to develop important skills for this hybrid role.

Software development engineers in test wear many hats on modern development teams.

The SDET role arose as the result of changes within the traditional developer and testing models. Developer and testing roles are not distinct in teams that practice Agile, DevOps or CI/CD. A single employee may perform both testing and development, depending on the workload or project. As testers capable of programming code, SDETs are equipped to meet this need in Agile and DevOps environments.

SDETs may also serve as a bridge between developers and testers. In many Agile development teams, the SDET is the automated test developer. The SDET works alongside a tester to automate functional tests and manage the test automation framework and execution. Teams with an SDET can automate tests directly within the codebase, where they are generally more effective and easier to maintain.

Looking to move into the SDET role? Learn the 10 most important skills SDETs need for success and how to build a strong skill set.

What are the top 10 skills an SDET needs?

SDETs need a mix of soft and technical skills. They need to be technically savvy, as well as collaborative, communicative and capable of managing work efficiently. The following SDET skills list is intended to guide skill development. The list is not ranked by importance.

1. Testing

Testing code is a central responsibility of the SDET role. It is expected that an SDET have a strong understanding of -- or experience in -- developing a test strategy or test plan.

Additionally, an SDET needs to be well versed in analyzing user stories and creating valid test cases that identify defects. SDETs need to understand how the application functions for customers and keep the customer in mind when creating tests.

Finally, learn to run both positive and negative tests. Negative tests involve scenarios the users are not supposed to do but can. Try to break the code by taking unexpected paths through the application.

2. Programming

Proficiency in a variety of programming languages, such as Python, Java, JavaScript, C# and Gherkin, is important for the SDET role. A solid understanding of at least one coding language can help SDETs learn the idiosyncrasies of other languages. Coding languages change, so plan to upskill with new languages throughout your SDET career.

SDETs also need to understand CSS and HTML, as well as security concepts, such as HTTPS protocols, tokens and keys. It also doesn't hurt to have knowledge of SQL, database architecture and data management. At a minimum, SDETs might need to review data sets for accuracy and might even find themselves creating significant code in SQL.

Also, consider learning cloud-based technologies, such as AWS, Azure or Google Cloud. SDETs are sometimes tasked with building test environments, so develop an understanding of containerization with tools such as Docker to be able to spin up test environments as needed.

Other tools SDETs should be familiar with include the following:

Checklist of the skills an effective SDET needs
A checklist of the skills and tools an effective SDET needs

3. Automated test development

SDETs need to understand test automation frameworks. The automation framework is typically attached to a preferred coding language and set of tools. The framework can control what coding language and tools the tester uses for scripting and execution. For example, if the tester uses the Cucumber framework, they also use the Gherkin language. Consider learning Selenium, Cypress, Playwright, Appium, Cucumber or Katalon for automated test development. Each has features for script development, execution and test management.

4. Team collaboration and communication

The ability to communicate and collaborate with a team of designers, product managers, developers and testers is critical. The SDET is involved in both testing and development, so it's important to understand each side independently and bring the two sides together to improve test quality and coverage.

Plan to work with both testers and developers to create test automation.

5. Creativity and innovation

Problem-solving is a core component of the SDET role. Problem-solving requires creativity and innovation. SDETs need to identify, analyze and troubleshoot a variety of issues, including defects found by customers and testers.

SDETs must be innovative in their approach to automation development and their ability to fix defects without creating more. SDETs may even help developers create unit tests.

6. Time management

Like nearly any technical profession in software development, SDETs must have time management skills. Being able to prioritize and plan work helps to avoid burnout and work reasonable hours.

An essential part of managing work is being organized. SDETs need to organize work by priority and difficulty. Know when to ask for help from developers or testing team members.

7. Continuous learning

Like most software developers and testers, SDETs must be prepared to learn new tools, topics and methodologies continuously. Organizations may change development methodologies or tools every year.

Keep up to speed on what's going on in the organization, as well as the technical development world at large. Read blogs on development, cloud technology security and performance testing. Maintaining a solid understanding of where the tech industry is heading is important for deciding what skills to learn next or courses to take.

8. Security

Cybersecurity at large and security protocols change frequently. Security is crucial to understand and test. SDETs don't need to be security experts or penetration testers, but they should be able to perform basic security checks to identify vulnerabilities in the application code or infrastructure.

Open Worldwide Application Security Project (OWASP) is an open resource for the latest cybersecurity threats. The site describes different security threats and explains how to test for them. The more an SDET understands security basics, the better their test automation can check for vulnerabilities.

9. Agile, CI/CD and DevOps

As part of an Agile development team, an SDET may find themselves working in CI/CD development, QAOps or DevOps teams. CI/CD teams rely on automated test development to deliver continuous code deployments to customers while retaining application quality standards. QAOps and DevOps teams also use test automation heavily to keep up with rapid release schedules.

Agile has many variations. Start by reading up on Agile and the general principles in the Agile Manifesto. Every organization creates its own flavor of Agile, so don't get attached to any specific pattern. Instead, gain an understanding of the principles and processes that make up most Agile implementations.

10. UI/UX design

The final skill an SDET needs is UI/UX design. While many organizations hire UI/UX designers as part of the development team, some rely on developers. By understanding the basics of UI/UX design, SDETs become a voice for both development and customer experience.

UX design is critical for creating applications that not only work, but that customers want to use. SDETs need to develop an understanding of what makes an application usable for the customer. Technical functionality is great until it doesn't work for a customer.

How to build SDET skills

Build skills through continuous independent learning, learning on the job, or taking courses online or through various educational organizations. A word of caution: Before paying for courses, investigate the provider company and its reputation. Read over student reviews, and verify the business is legitimate before investing in a course. Consider course programs backed by accredited educational institutions.

There are several training providers that charge for boot camp-style training or more traditional course instruction. There are also numerous online options to take courses and build skills, such as Coursera, Udemy or Pluralsight.

SDETs can supplement education by acquiring certification in testing and test automation. Additionally, consider acquiring certifications in a coding language or cloud technology, such as AWS, Azure, Google Cloud or IBM.

For software testing certifications, go through the International Software Testing Qualifications Board or American Software Testing Qualifications Board. View training and certification options at the Association for Testing and Software Quality Assurance.

Another option is to learn by volunteering on open source projects. This is a way to contribute to a project, learn on the job and improve SDET skills. OWASP also supports open source projects for those seeking to learn more in the security field. By participating in open source projects, an SDET learns how to read different coding languages, troubleshoot and fix bugs. SDETs can also use these projects to practice coding and testing skills and get experience deploying into branches as well.

Amy Reichert is a 20-plus-year professional QA tester and a QA lead, specializing in test development, execution and management techniques. Her experience comes from a variety of sources, including ERP systems, architectural design, e-commerce and healthcare software.

Dig Deeper on Software development team structure and skills