Use Sophia to knock out your gen-ed requirements quickly and affordably. Learn more
×

Role of a Quality Assurance Engineer (QA)

Author: Devmountain Tutorials
what's covered
In this lesson, you will learn how to explore the responsibilities and job characteristics of a quality assurance engineer. Specifically, this lesson will cover:

Table of Contents

Hi, I’m Amanda. I’m the Quality Assurance (QA) Engineer for Poodle Jumper, and I’ve been working here for a year and a half. I started as a customer service representative and worked closely with the engineers to solve issues before I was promoted. Quality Assurance is a great entry-level role in IT. The core of quality assurance is a mindset more than anything else, and it can be a great place to learn more about coding and development. When I was young, I always pointed out the broken or weird things in our house, like the door jamb that had a gap or a bottle that didn’t sit flat. It made my mom crazy, but that’s just how I’ve always been. I love that I get to play detective by digging for problems or inconsistencies in our product to help make it better for our customers. I’m a Poodle Jumper customer too, and I love being able to use our service for my dog, Watson.

1. Quality Mindset

Understanding the role of a QA Engineer might seem straightforward. We are responsible for testing software to ensure a good experience for our users and raising the team’s confidence in the quality of our software. We don’t just test or point out all the problems at the end; we get to contribute throughout the whole process by asking questions, raising risks, and making sure everything lines up.

At Poodle Jumper, or really at any software development company, things don’t usually go right the first time. It’s my job as the QA Engineer to poke around the software and make sure things work as expected. I investigate risky areas, find problems, log issues, and collaborate with the developers to uncover what is really causing the problem.

big idea
Sometimes problems are simple; other times, there is a reason that isn’t so obvious. Finding the root cause of a problem with software is called root cause analysis.

The other day I found a link in our web application that wasn’t working. Reuben, my team’s web developer, is really practical and was happy that I let him know. After I found a second broken link, I did a little digging and realized that our design didn’t explain some of the user flow very well. I asked Mori (UX) to walk me through it and we found a gap that hasn’t been resolved. We added a few notes to the design document so that we didn’t lose track. This collaboration is helpful for everyone, including Ruben (Web Dev), who will also have a better understanding of what need needs to develop.


2. How a QA Engineer Does the Work

Working as a QA Engineer, you’ll spend a good amount of time using the software to see how it behaves. It’s important to understand how our customers use the product, so I test different variations. I spend time reviewing documentation, asking questions, or talking to our users. No matter where we are in our software development lifecycle, there is something that I can do to raise confidence in our product. The earlier we find or prevent problems, the better, and my role is key.


One of the hardest things for me to learn was that I’m not perfect. No matter how much I test a new feature, I can never be 100% sure that it will work flawlessly. I spent my first few months on the job running as many tests as I possibly could, and it was tough. I even sacrificed my walking time with Watson because I was working extra hours!

I spent so much time looking for bugs that I let a few major problems escape to our customers, and I was worried for a little while I might lose my job. I felt like I let my whole team down, but Jose, our product manager, reiterated that the entire development team is responsible for the quality of our product. We have to work together as a team to pull it off. A friend of mine in QA helped me to understand how to prioritize more effectively. I learned to organize and plan my time to focus on the riskiest and most important parts of our product. As a result of this focus, I’ve identified several important bugs and greatly improved my productivity.

Image of a large list of tests, showing test #4,633,189

big idea
Exhaustive testing (testing every possible combination of inputs and outputs of software) is impossible, or at least highly impractical. Instead, QA engineers need to work smarter rather than harder to test as efficiently as they can. Productivity is crucial, so you have to decide what are key issues and what are distractions.

So much of my job requires effective communication:

  • I have to ask hard questions about things that are important to the people I’m talking to. Using good positioning statements is helpful in delivering my questions in a non-confrontational way.
  • Different people respond differently, so I need to be socially aware when delivering information to get the best results.
  • Articulating technical ideas requires precision and the ability to talk to individuals with different technical skill levels.
  • Being a junior member of the team can be difficult because I’m still learning. When I ask questions, it is helpful to let them know what I’ve done to try and solve the issue on my own or what I’ve researched, so they don’t feel like I’m wasting their time. Effectively listening helps me learn a lot.
  • Coordination between different teams, team members, or even customers is an important part of being on a software development team.
did you know
Did you know that in 2014 Forbes Magazine rated QA Engineering as #2 happiest job? And, 2018 CareerBliss also named QA Analyst as the #2 happiest job? The factors they considered included work environment, growth opportunities, compensation, company culture, daily tasks, reputation, and relationships!

summary
This lesson explored the role of quality assurance engineer (QA) through the perspective of Amanda, a QA engineer at Poodle Jumper. Amanda described the importance of having a quality mindset and contributing throughout the whole development process by asking questions, raising risks, and making sure everything lines up. We saw how a QA engineer does the work: Amanda spends a significant amount of time testing software to ensure a good experience for users and raising the team's confidence in the quality of the software. She also emphasized the importance of effective communication, prioritization, and coordination between different teams or members.


Source: This tutorial was authored by DEVMOUNTAIN and Sophia Learning. Please see our Terms of Use.