SDET: Dev, QA or both?
SDET (Software Development Engineer in Test) is an increasingly popular position for software testers with differences from the traditional QA role. For many IT companies, the SDET role is actually still unknown or insufficiently defined, so it is often advertised differently. In this text, we want to shed light on it.
SDETs are a combination of developers and testers and are primarily responsible for automating test cases, and designing frameworks and testing tools. Hence, their background is equally strong in both programming and software testing.
To help you better understand this role, we introduce Tamara and Bojan, who work in SDET positions at TeleSign company, into the story.
Tamara is still a student with the opportunity to apply the knowledge she has acquired so far about automation testing, databases and testing techniques to real projects, and as an Intermediate SDET, she is very curious about further opportunities for progress. That is why the experience and advice of her colleague Bojan, who started his development journey as an SDET at TeleSign five years ago, means a lot to her.
We leave the guide through this roll to them from here.
What are the responsibilities of SDET?
Tamara: Bojan, how was your professional path and what do you do as a senior SDET today at TeleSign?
Bojan: "I started my career in 2008 in the company Routo Telecom as an SMS Support engineer, and after the acquisition by TeleSign in 2012, I continued my professional path through the Data team, where I got to know other products and the structure of the company. The acquired knowledge about SMS systems, databases, report creation and data visualization made it easier for me to adapt to the Messaging development team, where I started in 2017 as SDET."
As a senior, today I perform tasks related to the design and maintenance of robust test automation frameworks, leading test activities on the SMS platform. The senior SDET position involves planning test activities for complex backend systems, including test planning and strategies, test automation, mock service development and load/performance testing.
Tamara: What kept you in this position?
Bojan: "The possibility of working in an interesting environment, progress and professional development, I would say. The advantage of working in this position is testing and maintenance of our product, which enables the application of different technologies, the possibility of working in different programming languages, and the daily upgrading of knowledge. A good atmosphere and harmony within the team, as well as good mutual cooperation between the teams, contribute to a positive impression."
SDET and dev - relationship and cooperation
Tamara: Why did you decide to work as an SDET and not a dev?
Bojan: "Because of the very dynamics of work. I think that in the modern world of software development, testing is more dynamic and interesting than development. The range of tools to use when testing, then, and the fact that, unlike dev, I'm involved and overseeing a large number of system components. As an SDET you need to be able to think and act like a developer, to understand why things are done a certain way and why it makes sense. Also, the SDET must be able to think like the end user. Great attention to detail and developing the ability to think outside the box in order to spot a potential error or bug a kilometer away."
Tamara: Should SDET be inside or outside the team, what is the relationship between dev and SDET?
Bojan: "At TeleSign, SDET and dev are part of the same team, which has proven to be a good practice. This way of organizing teams allows us to function well, to work together on planning, developing and testing software. Together, we solve problems and conduct discussions at all levels, all with the aim of achieving a quality and stable product."
SDET, together with other team members, participates in planning and the development process itself, gives ideas and follows the code review with the devs. Also, SDET monitors the development of new functions through automatic tests and takes care of the coding standards that are implemented in the test framework.
When it comes to the organizational structure, each of the teams has one or more SDETs, while the SDET Lead is responsible for mentoring and introducing new colleagues to the work, as well as working on global initiatives that affect all teams to a greater or lesser extent.
SDET - skills development and learning opportunities
Tamara: Our goal is to automate all parts of the system, can it be fully automated?
Bojan: We are guided by the procedure that the task is not finished until it is fully tested, which also implies automation. As we have our own products, we have the freedom to choose technologies, tools and test frameworks. Considering that we are not an outsourcing company, we do not face short deadlines, but our main focus is on quality and thoroughness in our work.
Tamara: What is the most challenging project you have worked on?
Bojan: "Every project brings new challenges and new experiences. Among the most challenging projects, I would single out work on AWS services related to the automation process of SMS delivery reports sent by the SMS platform to AWS. The process involves creating and configuring three AWS stacks: AWS SNS Topic, AWS Lambda subscribed to the topic that retrieves, parses and writes messages to the DynamoDB (NoSQL) database. In the part of the test framework, aws-sdk was added in order to create an AWS DynamoDB client with the help of available functions and enable the mapping of AWS DynamoDB records to defined Java classes. I would not leave out the challenges and experiences gained while working on the creation of HTTP and gRPC clients, the process of synchronizing tests between the test framework and TestRail, which also contributed to my progress as a senior SDET."
Tamara: What knowledge and skills would you single out as necessary to become a senior SDET?
Bojan: "A good command of the business model is required, as well as a good knowledge of the tech stack required for system automation, which includes good programming skills."
Tamara: And what are the advancement opportunities for SDET?
Bojan: "The SDET position allows advancement, work and use of new technologies and testing tools. Some of the possibilities are the development and contribution to the improvement of the test framework, access and manipulation of data through different types of databases, process monitoring and administration of the servers that host our applications, and learning the CI/CD process. Can progress as both a developer and architect to design test automation solutions. The process of promotion from junior to senior positions takes place within the team and after that, the progression goes to higher positions such as Principal Engineer, Team Leader, etc."
Tamara: What technologies do you use in your work?
Bojan: "We write test frameworks and mock services in Java and Python. We practice TDD development practices as well as the BDD approach through Behave and Cucumber software tools. Most of our services communicate via API. We test RESTful and gRPC services and have the opportunity to better understand the architecture of the HTTP protocol and microservices through their implementation. We use AWS cloud solutions for development and testing, Docker for creating containers and applications based on containers, CI/CD pipelines. There is integration between our services, so the teams cooperate a lot with each other, which creates opportunities to learn about other company products."
Tamara: In addition to functional tests, there is also a lot of investment in non-functional testing?
Bojan: "That's right. SDET's obligation is to test our products, and performance and monitor how the system behaves under a certain load from all angles. We create and maintain load and performance tests through JMeter, in combination with the AWS distributed load test engine, in order to monitor and measure the performance of our services in a more efficient way before putting them into traffic."
Advice for new colleagues
Tamara: What advice do you have for me, as well as other ambitious SDETs at the beginning of their careers?
Bojan: "Take advantage of the opportunities offered by working in the SDET position to expand and master new testing techniques, participate in the development and design of the test framework, and familiarize yourself with the services of other teams. Also, through this kind of work and mutual cooperation, you can upgrade your knowledge in the field of non-functional testing in order to better monitor the stability of the system."
Tamara: What are you most proud of in your work at TeleSign?
Bojan: "I am proud of every successfully discovered bug, fully automated product, "green" tests and the speed of execution of the tests themselves. I am particularly satisfied by working on projects that involve new trends in the field of programming and system automation, as well as the fact that with my work I can contribute to better functioning, stability and quality of the SMS platform."
Are you interested in the SDET position or work at TeleSign? If you want to try your hand at this or another role, look at the company's profile on the Joberty platform, where you will find all the currently open positions they offer.