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

Daily Work of a QA Engineer

Author: Devmountain Tutorials

what's covered
In this lesson, you will learn how to describe the common daily activities of a quality assurance engineer. Specifically, this lesson will cover:

Table of Contents

1. Start with a Meeting

Something that I really appreciate about my day-to-day work is how much it varies. Sure, there are some patterns to it, but the work I’m doing on any day frequently depends on where we are in the software development lifecycle.

One of the first things I do every day is a check-in with my team. This is a meeting where we talk about what we worked on the day before, what we’re planning to do that day, and then any roadblocks we’ve run into. This is a great way for me to know what everyone is doing and where I can help.

hint
If a developer is running into problems with a particular task, I know there’s probably more risk of lingering issues in that part of the project. If someone is about to finish a major feature set, then I know that I should make sure I’m ready to test it.

We have regular meetings to talk about the ideas in the backlog to help Jose, our Product Manager, understand the effort required for different ideas. Estimating how long it will take to build something can be challenging when the details are vague. But that’s okay; even rough estimates help him to weigh the development effort with the user value to plan the next iteration of ideas.

did you know
Asking questions when it seems like the plans are missing important details is the best thing any team member can do while planning new features.

2. QA in the Stages of the Software Development Life Cycle

six-part circle rotating to the right. The all phases are filled in and the phases are titled Analysis, Design, Development, Testing, Deployment, and the sixth phase is labeled Maintenance
Software Development Lifecycle

Early in an iteration, the developers start working on new code, and there are fewer things that demand my immediate attention, but that doesn’t mean I don’t have work to do. While there are no development tasks waiting for me to test them, it is the best time for me to look ahead and prepare. I write test cases based on the requirements and details from the developer. The test case specifies the inputs, conditions, procedures to test, and the expected results for a feature. This helps me structure the test plan that I’ll execute when the code is complete. I’ve started to write code to automate portions of my test. Because I’ve just started out, I’m not very fast at automation, but I’m getting better the more I practice. Learning automation is one of my favorite parts of the job!

In the middle of an iteration, development tasks start trickling into my queue as developers complete them. Testing something for the first time is called initial testing. It is likely I’ll come across some problems. Software is complex, and it doesn’t always work the first time. Depending on the problem, I might send a task back to the developer with notes on what to fix or report a new bug for them to fix in the future. Whatever the problem I find, it’s important to make sure we’re having the right conversations to address it appropriately.

As developers are wrapping up their development for the iteration, it’s time to get ready for delivery! Most of our initial testing passed. I’ll retest any tasks that were sent back to the developer; this is known as confirmation testing. It gives me a chance to make sure that everything was fixed and that it was fixed completely. It’s not unusual for miscommunication to occur around bugs, so it’s important to be thorough here. When features don’t work as expected, it is an opportunity to build relationships with the developers. I need to share what I’ve found in a non-judgmental way. Sometimes the issue is on my end with how I configured my test environment, but sometimes there is an issue with the code that the developer needs to fix it. Either way, assuming the best intentions and approaching the problem with an open mind will help us fix the problem more effectively.

hint
Remember, the worst thing you can do in quality assurance work is to keep your mouth shut. Ask questions!

Last but not least is regression testing. Regression testing is when I verify the major features or functionality of the product, not just what we developed in this iteration. This is important to make sure we didn’t accidentally break something. This is where my automation comes in handy because it reduces the amount of manual testing that I need to complete every iteration. Automation can’t catch everything, but it helps speed up the process.

This is a brief introduction to the different types of testing. In the next section, I’ll show you the details of how I set up a test plan.

terms to know
Initial testing
Testing something for the first time.
Confirmation testing
Retesting any tasks that were sent back to the developer to make sure that everything is fixed completely.
Regression testing
Verifying the major features or functionality of the whole product, not just the development on one iteration. It is important to make sure that nothing was accidentally broken.

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.

Terms to Know
Confirmation testing

Retesting any tasks that were sent back to the developer to make sure that everything is fixed completely.

Initial testing

Testing something for the first time.

Regression testing

Verifying the major features or functionality of the whole product, not just the development on one iteration. It is important to make sure that nothing was accidentally broken.