In a world of evolving culture, it’s expected that developers can do everything, but embedding Quality Management into a team can bring value to both the testing and the overall product. As lines between roles are becoming more blurred, we discuss why Godel QM specialists continue to bring benefits and are vital to your technology team.
Changing agile environments leads to slight fluctuations in the demand for QM specialists because some modern companies are developed technically enough to stick to the strategy to share QM tasks between team and the main load of testing fall onto Developers. That model works well enough when the companies are at a high level of technical maturity and testing practices have been thought out and established with good QA expertise and knowledge of the subject and such companies have reached the Continuous Deployment level. Sometimes, there are lots of ready out of box solutions (like Cypress, Playwright, Robot Framework, etc.) helping Developers to deal not only with the unit or integration testing but also with E2E UI and API testing as well.
Even though the boundaries between roles are getting blurred, nowadays we feel there is still a benefit in having QM engineers in teams. Developers can do testing, but in most cases, they cannot thoroughly cover Quality Assurance and Quality Management aspects. To provide an extensive clarification on WHYs, we would like to highlight the definition of QM and QA strategy:
- Quality Management: A set of processes, activities and practices aiming to continuously improve & maintain a desired quality level of product and meet business needs.
- QA Strategy: A concept of Product and Project quality, an integral element of successful delivery aiming to make a client happy with the product delivered on time and able to bring benefit for business with the balance of quality and resources spent. It includes analyses of the following SDLC (Software Development Lifecycle) areas: all stages of SDLC, delivery approach, processes, approaches within development & operations, business analysis & management, etc.
However, developers may be unable to test properly if they have biased feelings towards their written code, and their development is more focused on the positive scenario, unable to build a negative mindset, lack real-user perspective and E2E knowledge. That’s why we need QM engineers: either manual QA or SDETs depending on the business conditions.
Let’s look at an example of how QM engineers work in a team and assure quality. The Godel team were involved in developing the Admin Web portal to manage device communication and statistics in the IoT domain with JS frameworks using K8S, Azure Cloud. Our SDET worked in the team with full-stack developers, a Product Owner, an Agile delivery Coordinator and a DevOps engineer. Initially, when the team kicked off, there was a need to assess the current Automated testing approach introduced by Developers some time ago, suggest improvements and adjust QA setup.
As a result, the SDET introduced the following approach to promote a quality mindset in the team:
- All types of automated tests developed were qualified during user stories refinements. The SDET played a quality advocate role to suggest the best fit test types. In addition to unit and integration, there were API and UI end-to-end tests.
- Developers were responsible for implementation of unit & integration tests.
- Once the story was moved by the developer to ‘Ready to Test’ status, another developer or SDET available took the story ‘To test’ and completed all the remaining auto tests creation. The SDET reviewed all tests at the end. In case there was a need to add something or adjust, the developer completed test coverage for the story according to the received suggestions.
- In the end, the one who completed story testing, reviewed pipelines run and test results, fixed any failed tests or the code.
- SDET was responsible for monitoring overall quality during all stages of SDLC including the post-production phase.
Considering there are so many aspects of QA strategy, Developers simply don’t have enough time to think of all of them. Their main focus is development and are unable to prioritise and build an efficient QA strategy since they’re less experienced in all types of testing from manual to automated, functional to non-functional. Adding QM engineers to a team will ensure greater efficiency in the testing and play a quality advocate role that is responsible for ensuring the whole team upholds software quality.