Topics In Demand
Notification
New

No notification found.

Building High-Quality Software with Software Development Engineers in Test
Building High-Quality Software with Software Development Engineers in Test

June 28, 2023

342

1

On the back of digital transformation altering consumer behaviours, the world of software development is constantly evolving - driven by the need for scale, faster pace, robustness, and autonomy. In this pursuit, the role of a Software Development Engineer in Test (SDET) is gaining significance. As global innovation centres adopt Agile and DevOps philosophies, the role of SDETs becomes even more crucial in ensuring the delivery of high-quality software.

The part played by SDETs is most often seen in the realm of testing, however they can add significant value when they are developers with a profound focus on value and testing – contributing to the transformation of software development practices. SDETs can be integral in enabling ‘shift-left’ quality practices, which include tooling, white-box testing, code reviews, coding, and more. These shift-left quality and test practices are foundational to DevOps, emphasising early and frequent testing throughout the development process to promote three fundamental outcomes: speed, autonomy and resilience. 

Speed of delivery or time to market is one of the most common parameters used to measure software development excellence. In this case, quality practices act as the checks and balances in the development process, instilling the ability to promote desired changes. This is where SDETs can play a crucial role in speeding this process by focusing on unit and service tests. When it comes to algorithm-intensive applications, unit tests are imperative, whereas for domain-driven applications service tests with code coverage mechanisms are useful. SDETs have the ability to facilitate the creation of stubs and mocks, managing dependencies effectively and enabling developers to sustain momentum in writing low-level tests to attain maximum coverage.

Integration and user interface (UI) tests play a vital role in validating flows and interactions within complex applications, which SDETs have the potential to own directly by writing and maintaining. It is recommended that UI field and boundary condition tests are owned by UI developers, while SDETs can leverage their expertise to take responsibility for writing automation frameworks, plugging them into CI/CD (continuous integration/continuous development) tools, and ensuring optimal test coverage. The automation framework that is created by SDETs can significantly reduce time and cost associated with running these tests, enabling organisations to deploy changes within minutes rather than waiting for days.

Autonomy, a defining characteristic of microservices architecture, grants developers the freedom to develop, test, deploy, operate, and scale services independently. SDETs enable autonomy by creating visibility on code coverage and implementing build-breaker disciplines as part of unit and service tests. These professionals have proficiency in performing code reviews effectively to understand dependencies, and recommend adequate tests be required. They can act as protectors of protocols, ensuring backward compatibility and enforcing the principle that ‘tests are forever’. SDETs can be made directly responsible for automated integration and UI tests, guaranteeing the seamless integration of services and empowering developers to push their changes independently.

Resilience refers to the ability of an application to withstand external factors or risks and recover quickly. Skilled SDETs are capable of conducting comprehensive performance tests including load, capacity, stress, and endurance tests, to evaluate response times and the application's ability to recover from failures. Additionally, SDETs can automate static and dynamic application security testing (SAST and DAST), incorporate chaos testing to simulate failure scenarios, and conduct infra tests, especially in the context of Infrastructure-as-Code (IaC) setups.

The role of SDETs in this case is tool-intensive – studying and identifying tools, seamless integration with CI/CD pipelines, facilitating end-to-end testing across various environments, and empowering owners to trigger tests and fix issues. 

In today’s digital world, SDETs can be at the heart of the software development ecosystem with their specialised skills and knowledge in testing thorough multiple tools and techniques, best practices and processes. By implementing shift-left quality practices and embracing a holistic approach to testing, SDETs have the potential to enable organisations in developing and delivering high-quality software efficiently with speed and reliability.

 

-Philip Mathews, Vice President, Software Development, Global Services, Fiserv


That the contents of third-party articles/blogs published here on the website, and the interpretation of all information in the article/blogs such as data, maps, numbers, opinions etc. displayed in the article/blogs and views or the opinions expressed within the content are solely of the author's; and do not reflect the opinions and beliefs of NASSCOM or its affiliates in any manner. NASSCOM does not take any liability w.r.t. content in any manner and will not be liable in any manner whatsoever for any kind of liability arising out of any act, error or omission. The contents of third-party article/blogs published, are provided solely as convenience; and the presence of these articles/blogs should not, under any circumstances, be considered as an endorsement of the contents by NASSCOM in any manner; and if you chose to access these articles/blogs , you do so at your own risk.


images
Philip Mathews
Vice President, Software Development

© Copyright nasscom. All Rights Reserved.