In the fifth article in the series on product teams, we will explore the Quality Assurance Engineer (QA) role. Our goal is to explain why having a person focused on the quality area is essential. To this end, we gathered the main doubts and questions that permeate this universe, and we talked to our experts to clarify them.
In the first article in this series, we explored the profiles, roles, and expertise needed by a product team. In the second, we addressed the importance of Product Owners (POs), followed by content that explored the role of Designers. In the last article published on our blog, we talked about Software Engineers.
A few years ago, the professional known as Test Analyst worked focused on the quality of the software product. Currently, this person is expected to act more broadly, as a Quality Assurance Engineer, validating not only the product’s quality but also its entire creation process.
In short, the Quality Assurance Engineer focuses on ensuring that the product has the best possible quality, participating from the discovery to the delivery of digital solutions. In the book Software Quality: The Framework for Success in Software Development, Sanders (1994) emphasizes, “a software product has quality depending on the degree of satisfaction of customer needs in all aspects of the product”. For this, the professional analyzes the creation cycle and the way of working of the squads that participate in the development.
According to Douglas Souza, QA at SoftDesign, this more global view helps to maximize results, as it is possible to find errors at the beginning of the process: “If this professional did not exist, the errors could remain uncorrected until the product is delivered. This avoids wasting time and money.”
As we have already mentioned, the Quality Software Engineer person has the role of analyzing the entire development cycle of a digital product. This professional is able to guarantee the correct functioning of the programs and review the prerequisites of the software, reporting faults to the development team. To achieve this, the QA uses functional and non-functional tests, carried out through Manual and Automated Testing techniques. It also helps in the creation of strategies, test plans, and assessment of results.
According to Raphael Rodrigues, Agilist at SoftDesign, while in the software factory model, the objective is to find faults to report to the customer, in the agile model it is to build a product and generate knowledge, thinking, and validate hypotheses throughout the process. “That’s why it’s important to understand what is considered value for the customer and the user. Sometimes what appears to be a problem can turn into an opportunity. There is no such thing as a perfect product; after all, we are talking about something that is under permanent construction. Therefore, a more critical look is essential”.
Moreover, the Quality Software Engineer thinks through scenarios that could critically affect the product. This person is responsible for anticipating possible usability problems and system behaviors that could lead to faults, such as the incorrect use of a screen element. Therefore, its role is also to work on reducing possible critical errors. Remember that adversities will always exist; however, they cannot be serious enough to compromise the operation of the application.
As the construction of digital products happens faster, the feedback of hypotheses and experimentation also needs to reach a faster pace. In this sense, Automated Testing has become essential to be able to perform all the necessary tasks.
Rodrigues emphasizes that Automated Testing serves to accelerate the feedback of what was built, that is, it verifies the existence of possible problems and impacts. In Manual Testing, the full attention of the person conducting this verification process is required. “After the QA does the manual work, he is expected to automate what is considered repetitive or critical in order to find out more quickly if the application is still working or not”.
Manual and Automated Testing is generally performed by the same person. However, in some cases, this can be a challenge, since programming knowledge becomes necessary. “To work with Automated Testing it is necessary to deal with code. Therefore, considering the volume of work and the need for quick feedback, I believe that Manual and Automated Testing should complement one another throughout the development journey”, the Agilist explains.
With the agile methodology, we seek to develop and deliver new features and products quickly, efficiently, and with quality. To achieve this, the squads are constantly looking for ways to improve the product, in order to maximize the value of deliveries to the customer in relation to the development time. One approach used to achieve these goals is CI/CD, where knowledge of Automated Testing is crucial.
According to Matheus Zanon Nunes, QA at SoftDesign, in a team that applies Continuous Integration (CI) and Continuous Delivery (CD), it is necessary to present new features to the customer quickly. “Automated Testing is critical for us to fulfill this flow, as it is not possible to automate continuous deliveries if the testing stage is manual and slow. Therefore, in order to make CD viable, we applied the previous stage, which is CI. CI is responsible for integrating and monitoring all changes to the software, as well as triggering automated routines to verify the quality and stability of this new code. That’s where Automated Testing comes in as a prerequisite stage for the execution of CD”.
Therefore, Automated Testing, in its various categories (Unit, Integration, End-to-End, Performance, etc.) has become a crucial stage to ensure that before, during, and after Software Development all requirements are met with quality and focus on delivery.
The Quality Assurance Engineer interaction with the product team must occur from the initial planning of the construction of the solution because, during the refinement of the functionalities, it is very important to understand its objective. This will help the professional define what types and levels of tests will be required. In addition, that person can also contribute with suggestions for the application’s capabilities.
The main skills of a Quality Assurance Engineer that contribute to the success of the product are critical thinking and a detail-oriented vision, which enable the early identification of different scenarios according to the business context. This considerably reduces the number of faults in the software, also allowing the types of tests to be identified.
Most common and necessary types of tests:
Depending on the application needs, Integration, Load, Performance, and Security testing can also be performed. For Denise Viegas, interactions with POs and Designers are critical when creating functionality and user journeys. “In addition, the partnership between the Developer and the Quality Assurance Engineer is also essential during the specification stage, especially during the delivery cycle. This collaboration is decisive in the delivery of product quality, as it is where all ideas and definitions come to fruition”, she highlights.
The Quality Assurance Engineer role is constantly changing. Currently, this person works between the business area and product development, so in addition to interpersonal skills, this person also needs developing knowledge.
With the Quality Assurance Engineer participating from the beginning of the process and being involved with Software Engineers and Product Owners in defining the solution, this professional can contribute by mapping test scenarios to be used by developers. In addition, the QA can indicate tools for certain types of tests in a simulation environment, among other possibilities.
For Denise, former QA at SoftDesign, the trend is that these professionals will increasingly acquire technical skills, aiming at more automated testing flows in continuous integration environments. “This allows for more agility in the early identification of faults, as well as greater ability when evaluating the feasibility of the technical solutions implemented”, she emphasizes.
From the moment we started to look more at people’s knowledge, their roles naturally evolved in order to consolidate critical thinking. With Agile Methods, we no longer have a person focused only on the quality of the software to expand this view to the entire process, and it is through this holistic view that SoftDesign Testers work in product teams.
If you need help developing quality digital solutions, please contact us using the form below. Together, we will seek differentiation by launching products that make good first impressions when they reach the end-user.
Experience having a reliable partner to your IT challenges. Let’s talk about our unique approach to discover and deliver outstanding solutions.
3 de May de 2023