You might think that the role of a software quality assurance engineer is just to test the applications before they are delivered to the customer. In this article, Oleksandra Melnikova shows us however that QA people have much more to offer to software development teams.
Author: Oleksandra Melnikova, Talend
What does the work of a Quality Assurance (QA) engineer entail? Is it just testing the code or more to it? What kind of skillset one needs to exhibit to be considered a good QA? I would like to bring up this important topic and discuss the value of quality assurance for the development team and the impact of this role on the product.
I often hear that the work of a QA is equal to software testing activities and is limited to writing test cases, executing test scripts, filing bugs reports and verifying fixes. And every time I hear this, I have some feeling of internal resistance. Working as a QA engineer in several companies, I have a solid understanding of the true expectations and value of this role. And usually, it is more than testing. It is actually a lot more. Here, I will try to expand on the qualities that distinguish a good QA from the average engineer.
First and foremost, QA is the final stop before software goes to a customer. Being this ‘gate’ means taking the responsibility for the software readiness. This aspect is very important as it entails owning the final version of the product rather than just checking for bugs. The QA engineer has to ensure that the software is ready to be released, meaning it is free from known bugs and also that the product is a right fit to customers’ needs. The latter is usually overlooked as we mostly focus on the quality of the software and answer the question: is the product built in a right way (built=coded)? But even the perfect piece of code could be a throw-away thing if it does not bring value to customers. So there comes another question: do we build the right product? I think that being able to validate the product and determine the design flaws is the critical skill for a good QA.
Managing the Quality Assurance Process
Another important quality of the good QA is the ability to establish QA process in the organization. In one of the companies that I used to work, I was on-boarded as a single QA on a team where they never had one before. Of course, the development cycle did not include QA activities and establishing QA process became my responsibility. I worked with the Scrum team to include QA on all stages of the software life-cycle, from product design meetings to the release support. We included the requirements review process and the code demos by developers where QA was participating and contributing. We started using Jira board as a process tool rather than the static board with user stories. Furthermore, we included QA sanity checks and smoke testing during the releases to ensure the highest quality. The highest accomplishment of the process was the increased quality of software and easy successful releases that could be delivered during business hours with minimal risk. When I started working at a company that had six QA members on a team, I thought that the QA process was already established, so I wouldn’t need to worry about it. How wrong I was. The QA process evolves with the changes in a team size, technologies, and projects. It is never static and the ability to find the right approach, change the existing process to fit the objectives of the project and maximize the benefits for the organization is the crucial skill of the QA engineer.
Being a Role Model
The third quality is setting quality standards and being the role model of this perfect bar. People can have an excellent technical background but lack this critical skill and therefore fail in a QA role. QA should promote perfection and never compromise the quality of the software product. I swear that I have faced similar situations on various projects, companies and teams when developers are saying: this is sufficient, we are not investing more time in fixing. Especially when the product manager is on the fence, QA can’t give up. QA is the one who should fight for excellence else the fight will happen later, in the world of the actual market competition.
To sum up my thoughts, I would like to reiterate that being the right fit for a QA role is a lot more than being able to find bugs. While software testing activities are obviously a good chunk of the QA’s daily routine, the expectations from a good QA are not limited to those. Being a ‘quality gate’ between the software development team and the customer, being able to drive excellence and improve the product, process and quality as a whole are the true merits of the QA. Software QA is not only about software testing, QA is about continuous improvement.
About the Author
Oleksandra Melnikova works as a Senior QA Engineer at Talend, a company that specializes on cloud technologies for analyzing, transferring and transforming data. Before, she used to work at Reed Tech, a company that processes patents for the USPTO and Ark Ideas, which is a marketing company. Her software quality assurance background and experience are diverse and multi-faceted.