The mabl blog: Testing in DevOps

How QA and QE Make Software Maintainable | mabl

Written by Bridget Hughes | May 13, 2021 12:00:00 PM

Mabl Software Quality Manager Bertold Kolics was recently featured on Maintainable, a podcast on improving existing software. In a wide-ranging conversation with host Robby Russell, Bertold discussed how testers contribute to long-term software health, the role of quality in maintainable software, as well as how development and quality teams can work together to integrate software maintenance into sprint cycles. 

The Changing Role of Testers in Quality Engineering

Software testers, especially manual testers, have a unique level of expertise and insight into their organizations’ products since they’re one of the few teams that focuses on the user perspective. They understand the product inside-out, backwards, and any other unexpected ways an end user could eventually navigate the site or app. As a result, testers are taking on a higher level of responsibility as every industry - including education, fintech, and travel - that competes on the user experience.  As development teams adopt DevOps and CI/CD to remain competitive, testers are shifting to quality engineering to ensure teams can deliver new features or products faster without sacrificing quality. 

Where Quality Meets Maintainability 

As quality engineering is implemented, a key - but often overlooked - aspect is maintainability. As product suites grow more quickly, they become harder to maintain and the risk of vulnerabilities from outdated code increases. Quality professionals recognize this challenge, and according to Bertold, can take action to reduce and manage this risk as part of standard sprint planning. 

First, the entire development and quality team needs to take advantage of automation to ensure that all documentation is kept up to date. Generally, documentation is not a popular part of the quality process, which means it’s often outdated. Adopting test automation, particularly through platforms that provide rich contextual information, helps software testers routinely update test documentation since test automation data tracks how tests and code evolve. 

Second, think of your code base like a plant. Just like gardens need to be pruned to ensure that each plant can focus on growing healthily, developers and quality professionals need to routinely audit their code for unused or outdated features to maintain product quality. This includes third party code, such as APIs, open source components, and other integrations that play a growing role in the modern software stack. Bertold also notes that this is an ongoing process - as you continue building/refining your product, consider what components will make your code easier to maintain long-term. The goal is minimal, well-maintained components that meet your code standards and build a foundation for long-term quality. 

Integrating Maintainability into Sprint Planning

The evolving role of QA is becoming more of an enablement role that supports developers as teams adopt modern testing practices. This expanded role now encompasses the entire SDLC as quality professionals simultaneously help engineers test their code earlier and connect the dots between users and developers to ensure that growth and quality are aligned with the customer. With this holistic, collaborative perspective, the focus of quality teams needs to be on maintaining or improving quality while also preventing testing from becoming a bottleneck. To adapt, quality teams are breaking out of the siloed work model to play a critical role in the sprint planning process. 

Generally, testers and developers have opposite perspectives on code. Testers work to understand new products and features from the outside perspective to understand how users will eventually navigate a product, while developers have an acute sense of how the product works from the inside. Bertold suggests harnessing the combined strengths of these two perspectives by organizing programming peer reviews that both review code and the code tests to maximize team expertise. As quality shifts even earlier in the design process, testing specialists can organize brainstorms that help the entire team identify high-risk sprint priorities and begin planning a quality strategy around those points. Engaging quality teams in the sprint planning process also allows teams to adapt to changing delivery schedules. Even if a short-term fix is needed to meet deadlines, truly effective QA teams will track when these fixes are implemented and plan for more permanent solutions later down the line. This way, product velocity is preserved while code quality and maintainability are improved. 

Quality Engineering: the Key to Growing Sustainability

With software growing and evolving more quickly than ever, development teams need effective strategies for managing quality and maintainability in the long-term. Quality teams, especially software testers, have the perspective and expertise to integrate maintainability into regular activities like documenting new features, sprint planning, and development pipelines to ensure that organizations can innovate while managing their code. 

Is your team looking to improve software maintainability with quality engineering? Register for mabl's 14-day free trial to experience test automation designed for high-velocity product teams.