<img height="1" width="1" style="display:none;" alt="" src="https://dc.ads.linkedin.com/collect/?pid=306561&amp;fmt=gif">
Skip to content

QA vs QE with Westpac’s Aya Omar: It's More Than Just Vowel Change

Aya Omar, Quality Engineering Senior Manager at Westpac Group, discussed the shift in the quality function within software development with Corinium APAC Conference Director Maddie Abe.

In recent years, a shift from Quality Assurance (QA) to Quality Engineering (QE) in software development practices has been observed, largely driven by the adoption of Agile and DevOps methodologies by many organisations.

“In today's fast-paced market, quality engineering enables development teams to be more proactive by building quality into every stage of software development. This practice is cost-effective and increases team delivery speed and efficiency by providing constant feedback loops and early detection of issues through automated tests, code analysis, security scans, and other continuous integration tools,” Omar says. 

Shifting Gears in Quality Approaches

Specific practices and methodologies have been implemented to promote quality engineering within the team, distinct from traditional QA approaches. These initiatives typically begin with lean software development principles to identify areas for improvement and to build quality from the start.

“In addition, the Shift Left approach ensures testing begins at inception; development teams can start by enabling continuous testing and building automation into the pipeline across different testing pyramid stages. These practices have enabled the teams to detect and fix issues early when the cost of fix is low, and have decreased time to market by having automated tests integrated into pipelines for faster feedback,”

“Unlike traditional QA approaches that focus on an integral part of development when the cost of fix is high and testing is manual and repetitive.” 

She explores how her team leverages automation for testing, deployment, and monitoring and integrates automated testing into their CI/CD pipelines.

“We started by implementing sonar checks in our CI pipelines to detect unit testing coverage, unit test frameworks were then assessed and improved enabling higher test coverage, integration tests were automated and added as an additional quality check, tools like jenkins, artifactory and others were used for code deployment. In addition to monitoring logs and performance of the application which are key to identifying and resolving issues as they arise by setting up metrics and alerts in tools like splunk and AppDynamics.”

Omar advises that integrating automated tests into the CI/CD pipeline can be facilitated by developing the testing framework alongside the code base. This approach allows both developers and testers to share responsibility for creating automated tests. She also recommends incorporating an integration test stage in the pipeline, where tests are automatically executed following each new code commit and deployment.

For quality metrics, code coverage and static code analysis are used to track code quality with each code commit. Appropriate quality metrics provide valuable guidance for decision-making and help drive process improvements.

“Defects by root cause analysis, and mean time to detect (MMTD) have helped improve quality over multiple releases. By analysing data around defect detection time, we were able to enhance our shift left approach to increase test coverage earlier in the cycle. Learning about root causes of defects enabled the team to improve coding reviews, collaboration with business to improve requirement development and implementation and other areas.” 

The Human Challenge and Journey Continue

The shift from QA to QE is largely a cultural change, similar to the shift to DevOps or DevSecOps, rather than being purely technical. This transition involves altering mindsets, workflows, and collaboration methods across teams to embed quality throughout the software development lifecycle.

“Resistance to change was always one of the main challenges - which is human nature, I think! You need to be resilient by showcasing the benefits, gaining management and team support, identifying skill gaps, tools required, and balancing between delivery and quality. And most of all, identifying your success measures and monitoring them."

Omar underscores the importance of ensuring that team members share the same goals, leaving no room for a blaming culture. This approach fosters collaboration and trust among developers, testers, and operations.

“Conduct knowledge-sharing sessions led by different team members to enhance the team's cross-functional skill set. Hold regular sessions focused on improving and building quality in to address issues and challenges as a team.”

To ensure shared ownership of quality across the entire team, focusing on a cultural shift is crucial. “Start by sharing the challenges faced by the testing team due to their late involvement in the development process, and the challenges faced by developers and the business when defects are discovered and fixed later in the cycle.”

This involves gathering data on defects, their root causes, and their timing in the development cycle.

She suggests, “Enable quality check tools to monitor unit test coverage and revisit your code review standards to assess their effectiveness.”

By clarifying that “quality starts at inception” and adopting shift-left testing practices, ownership of quality becomes a collective responsibility. Testers should share their expertise in writing test cases so developers can begin testing as early as possible.

Omar highlights the importance of this by stating, “Testers should share their knowledge about writing test cases so developers can start testing as early as possible.”

Developers should contribute their technical insights on integration and dependencies, explaining how changes might impact existing functionalities. The business can play a crucial role by leading walkthrough sessions, “Explaining the requirements and answering questions about development and testing.”

This collaborative approach promotes a shared sense of ownership and improves team cohesion. Continuing to monitor defects and observing how early detection increases while enhancing quality and speed of delivery will further support this cultural shift.

Envisioning the Future

The future of quality practices in software development hinges on embedding quality throughout the development lifecycle.

As Omar asserts, “Quality must be embedded into software development by sharing quality ownership, shifting left and continuous testing.”

For this vision to become reality, development teams need to adopt a cross-functional approach where development and testing responsibilities are shared. Automation plays a crucial role, with testing needing to be automated at various stages of the test pyramid.

She highlights the potential of AI by stating, “AI usage should be leveraged to improve code quality, code coverage and automated tests.”

Integrating lean and DevOps practices is essential for fostering continuous collaboration and enhancing integration and delivery processes within the industry.

Furthermore, teams must maintain open communication with customers and establish constant feedback loops. This involves setting up metrics and dashboards to monitor both quality and performance in production, allowing teams to learn from real-time data.

Omar notes, “To ensure the team continues to evolve, delivering high-quality software must be ingrained in their culture. When teams start to take pride in the software they are working on, which contributes to a positive, less stressful work environment, they become more engaged and satisfied and you end up with higher customer satisfaction. Win-win!”

DevOps and Quality Engineering

In modern DevOps, quality engineering is a key component that integrates automated testing within CI/CD pipelines, ensures consistent environments through Infrastructure as Code (IaC), and leverages real-time monitoring for continuous feedback. The approach promotes a collaborative culture with shared responsibility for quality, security, and compliance. By incorporating security testing as part of DevSecOps, teams maintain high software standards throughout the development lifecycle, ensuring both efficiency and effectiveness in delivering robust, high-quality software. 

 

Save the date-3

 


Aya Omar will be speaking at Modern DevOps Melbourne 2024 on 8th October at Grand Hyatt. To learn more and register to attend today here.