by Harpreet Singh, Senior QA & Testing Consultant at Altius
Quality assurance (QA) is an essential part of data platform development and data projects. The role of the QA team is to understand what users need and to help developers build a high quality product that meets client requirements. Many organisations are moving from waterfall development methodology to an agile process in order to deliver projects quickly and iteratively. But with the shift from waterfall to agile, the role of the QA team must evolve.
Agile focuses on teamwork, interaction and collective responsibility, as well as short development cycles and frequent deliveries of working software.
From a QA perspective the principles of short development cycles are very challenging.
A QA bottleneck
In waterfall, the onus of testing is traditionally on the QA team, with testing taking place at the end of a long sequence of phases that also include requirements gathering, designing and coding. The entire waterfall cycle can take months with a generous amount of time (between 20-30% on average) allocated to thorough testing. However, with agile’s focus on short sprint cycles, the QA team isn’t given the luxury of time.
More often than not, teams evolving to agile carry over with them the waterfall mindset. Agile sprint cycles are usually around two to three weeks each, so trying to shoehorn the entire waterfall cycle into a sprint doesn’t work. If development overruns, then the QA team will become a bottleneck that holds up the next sprint. Reliance on writing complex test scripts and testing manually with regressions tests for each stage of the sprint will also create a backlog.
An additional challenge for data platform teams is that clients want firm assurances that the output data is good quality. However, when you’re working on a Minimum Viable Product (MVP) during a sprint, sometimes its hard to focus on data quality. Within such short sprint cycles, how can QA engineers make sure that the code and data quality is acceptable?
The evolving role of data platform QA teams
With agile, it’s clear there needs to be a shift in the way that development and testing teams work. The focus must change from working in separate development and testing team silos, to working together with proactive and collective responsibility for creating a high quality, defect and bug free product. This is an opportunity to expand the facets of the role of the QA team.
At Altius we believe an agile QA team has two main functions:
- They must become business analysts – gathering business domain knowledge to ensure the product being created has the functionality that the business needs.
- They must build the frameworks and tools to ensure the development team conduct the necessary testing during the sprint development process.
Introducing behaviour driven development (BDD)
The challenges of agile methodology and QA are solved with BDD, otherwise known as ‘specification by example’. This is the development practice where the behaviour of the software is defined before development starts, so that it isn’t left open to the interpretation of developers and testers.
Defining the behaviour requires involvement from all parties and stakeholders. With the required behaviour defined, the developer can write the code to satisfy that behaviour. The QA team can help by creating specification files that can be used to check if the developed output file matches the expected output file.
This BDD framework can be integrated with the DevOps pipeline to automate checks during the development process, without the need of pausing to test the output data.
The role of the QA team can then switch to focusing on defining the behaviours for the next sprint. By automating testing with BDD, the QA team has the time and capacity to really get to grips with the business’s requirements. And with in-depth knowledge of the business, quality output can be given centre stage.
To mitigate any concerns regarding data quality, Altius has also produced frameworks that complete QA checks in production environment. This provides our clients with the ability to check data quality via an intuitive dashboard, where any anomalies and data drift are flagged. With confidence in the data at the end of each sprint cycle, the client and developers can swiftly move on to the next sprint.
Sprints benefit the client by delivering a MVP iteratively. Although creating a quality product must be a collective responsibility, the primary responsibility for quality still lies with the QA team. As such, their role is to understand what the clients needs the product to do; root out problems and deliver robust frameworks to help the team deliver a product that the client can have complete confidence in. At Altius, we have frameworks in place to deliver Data Platforms with continuous data quality monitoring and 100% automated testing within each sprint for quality output.