Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Test Automation Engineering Handbook

You're reading from   Test Automation Engineering Handbook Learn and implement techniques for building robust test automation frameworks

Arrow left icon
Product type Paperback
Published in Jan 2023
Publisher Packt
ISBN-13 9781804615492
Length 276 pages
Edition 1st Edition
Arrow right icon
Author (1):
Arrow left icon
Manikandan Sambamurthy Manikandan Sambamurthy
Author Profile Icon Manikandan Sambamurthy
Manikandan Sambamurthy
Arrow right icon
View More author details
Toc

Table of Contents (18) Chapters Close

Preface 1. Part 1: The Basics
2. Chapter 1: Introduction to Test Automation FREE CHAPTER 3. Chapter 2: Test Automation Strategy 4. Chapter 3: Common Tools and Frameworks 5. Part 2: Practical Affairs
6. Chapter 4: Getting Started with the Basics 7. Chapter 5: Test Automation for Web 8. Chapter 6: Test Automation for Mobile 9. Chapter 7: Test Automation for APIs 10. Chapter 8: Test Automation for Performance 11. Part 3: Continuous Learning
12. Chapter 9: CI/CD and Test Automation 13. Chapter 10: Common Issues and Pitfalls 14. Assessments 15. Index 16. Other Books You May Enjoy Appendix A:Mocking API Calls

Exploring the roles in quality engineering

There are three main roles in the testing world without involving people management. Different companies might use or call these roles in different ways. Quality-related roles also vary depending on the size and structure of the organization. For example, smaller companies might combine all of these into a single role and call it SDET. The main differences stem from their technical expertise and overall experience in the software and quality engineering domains:

  • Traditional manual tester (or quality assurance analyst)
  • Test automation engineer (or software quality engineer)
  • Software Development Engineer in Test (SDET)

The traditional manual tester role is not as prevalent as it used to be, as every role in quality is expected to perform some level of test automation in the Agile world. So, here, we will be focusing only on the latter two. This does not mean that manual testing is not done anymore. The responsibilities of a manual tester are shared by test engineers, SDETs, business analysts, and product owners/managers.

There are organizations where software engineers/developers perform their own testing. The engineer developing the feature is responsible for performing the required testing and delivering a high-quality product. Often, small- to mid-sized companies use this approach when they are still not able to build a separate quality organization or hire test engineers. An important downside of this is that there is a lot of context-switching that needs to be done by the developers. Also, consistently maintaining the test coverage at high levels becomes a challenge. A single developer will be focused on providing good coverage for their own feature, and it is very easy to miss the integration or system-level tests needed for a business workflow. Some developers, plain and simple, do not like to perform tests other than unit tests due to the tedious and repetitive nature of testing. It is also hard to keep track of the various details involved in testing different parts of an application.

Next, we will look at the most common testing roles that are prevalent in the market.

Test automation engineer

Test automation engineers are the core members of the quality organization within the software engineering teams. They can either be embedded into the engineering team or be part of a team of quality engineers reporting to a quality manager. The main responsibilities of a test automation engineer include the following:

  • Test planning and test strategy development for testing product features (both manual and automated)
  • Preparation of test cases and test data
  • Setting up the test environment (usually with help from other engineers)
  • Create, execute, and maintain automated tests for the product features
  • Uses the existing test automation infrastructure to build a sound test automation strategy
  • Collaborate with product and implementation teams to achieve good test coverage
  • Reporting and retesting of bugs
  • Coordinating bug fixes across teams if necessary
  • Streamline test processes

To sum it up, on a daily basis, test engineers have to partner with most of the members of the team and stay on top of the user stories. They take ownership of the product quality of the team they are embedded into. Next, let’s see how an SDET is different from a test automation engineer.

SDET

An ideal candidate for the SDET position exhibits sound technical skills and a deep expertise in testing methodologies. For all practical purposes, technically, an SDET is as good as a software engineer with extensive knowledge of the quality engineering space. An SDET will be involved throughout the development life cycle from unit test creation to production release validation and always strives to enhance the productivity of both the software engineer and quality engineer in the team.

The main responsibilities of an SDET include the following:

  • Setting clear objectives for test automation
  • Creating and improving the test automation infrastructure
  • Owning the test automation strategy
  • Liaison with software engineers on the team and across teams (if needed) to build and maintain the automation framework
  • Being involved in the design and architectural discussions
  • Acting as a mentor for the quality engineers in the team
  • Interfacing with the DevOps team to ensure testing happens at every stage of the development pipeline
  • Adapting and implementing the latest technological developments in the quality engineering domain

Table 1.2 highlights the differences between a test automation engineer and an SDET:

Test automation engineer

SDET

Creates and executes automated and manual tests

Creates and maintains the test automation framework

Collaborates with the product and implementation teams

Collaborates with software engineers and DevOps teams

Highly skilled in programming with testing skills

Experts in testing either manually or by automation

Develops test automation tools

Uses test automation tools

Table 1.2 – Test automation versus SDET

Even though their roles demand different responsibilities, both the quality engineers and SDET are equally accountable for the release of a bug-free product to the customer. Both should be in the meetings with product stakeholders to make a final decision on every feature release. A quality engineer is good at test case creation, while an SDET specializes in choosing the right ones to automate in the best possible way. There are times when quality engineers and SDETs have to work in tandem to keep the upper management informed and educated about the capabilities of test automation and the effort it takes to achieve the ROI. Also, it is important to note that the relationship between software engineers and quality engineers/SDETs is of utmost importance to the success of any test automation work. It is vital to get continuous feedback from software engineers on the test automation code and design. Software engineers should also be educated, when necessary, about the various benefits derived from test automation

In the next section, let’s get ourselves familiarized with some commonly used definitions in the world of testing and test automation.

You have been reading a chapter from
Test Automation Engineering Handbook
Published in: Jan 2023
Publisher: Packt
ISBN-13: 9781804615492
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at €18.99/month. Cancel anytime