Data plays a key role in generating valuable insights and visualizations to build quality deliverables and drive delivery excellence. The need and importance of data is not restricted to the testing community but to all stakeholders including developers, business users, domain users and end customers. As part of digital transformation, organizations are moving to Big Data and Artificial Intelligence platforms to leverage the power of data and utilize cloud’s capability and scalability. There is a need to validate data across different layers i.e. project level, enterprise level, and audit level to build brand assurance. Due to this evolution, the focus of data testing is no longer limited to pure technical testing.
The need is to consider testing the data from non-functional testing and business parameters. There is a demand for a mechanism to build end-to-end automation by leveraging open source tools and small scripts used in individual pockets to build data automation pipeline. There is also a need to have a good strategy to deliver assurances towards data on both Waterfall and Agile methodologies that can facilitate validation at all intersections of data movement.
Paradigm shift – Data testing to data assurance to data engineering
Some years ago, ‘data testing’ was focused more on meeting compliance requirements, facilitating audit activities during test completion phase, and supporting functional and UI testing with a few injections to test data. This has gradually matured to – ‘data assurance’ where the focus is on the detection of issues or bugs well before the functional testing phase begins. This has shifted the role of testers from being silo team members to being collaborators with development partners. ‘Data Engineering’ is the matured phase of data testing, where the focus is on preventing defects from moving into subsequent phases, engaging with business (since business change initiation), and measuring impact to business along with process and product metrics. This is achieved with the contribution of the entire IT team (primarily developers and QA).
The need is to shift from data assurance to data engineering in order to leverage the power of data and assure business.
Key tenets to consider for scaling up from data assurance to data engineering
End-to-end testing strategy
The need is to have an end-to-end testing strategy that focuses on functional and non-functional testing aspects and environments, creating test data with sanitization, enabling automation using tools and accelerators, and most importantly, supporting new projects, in-flight projects and future projects, including cloud movement.
Testing areas focusing on non-functional requirements
Since data travels between multiple layers, there is a need to check the performance of jobs, data movements, and security aspects apart from standard technical validation. Supporting systems like test data management, test environment management should be prioritized and given due importance when testing is planned.
Process and methodology improvements
Focus should be on eliminating redundant processes and tasks, automate repeatable tasks, explore new ways of execution with a focus on crowdsourcing, as a service model etc. Agile way of delivery, test-driven development will facilitate frequent release of production quality with constant feedback and acceptance mechanism. Process improvements may vary across organizations and domains: it is better to do a complete assessment before marching with implementation plans.
End-to-end automation focus including tools and accelerators
Data automation should be focused on all layers i.e. ETL layer, Data mart layer, Semantic layer, Master Data Management (MDM) layer, Business Intelligence layer. We need to adopt existing automation frameworks and scripts, and try to build end-to-end ecosystem rather than focusing only on solving the problem. Apart from technical automation, process automation i.e. test case design, test management activities should also be part of automation framework.
Multi-disciplinary team members with SDET skills
As the focus of delivery is moving towards Agile and DevOps methodology, there is a need to upskill existing testers. They need to know automation script development and have to become multi-skilled software development engineers in the testing phase. The focus should be on getting people skilled with specialized technology, augmented with functional/domain knowledge and appended with multi-technology roles on Agile. In short, he/she should be a SDET team member capable of driving programs end to end.
Engineering value with data
Data is the new currency in the global market. It takes different forms, shapes, and sizes as it gets transported, transformed and enriched across different layers. It is necessary to assure the business processes and requirements on technical (functional and non-functional) aspects, business aspects and domain aspects. Assurance to data platform should be focused on data lifecycle right from the sourcing layer to the consumption layer inclusive of all intermediate layers, be it MDM/Big data/Presentation layers.
Strategies should incorporate future needs (Big Data/cloud platform) with more adoption of open source frameworks. Given that the trends in delivery systems are focused more towards Agile and DevOps methodology, it is recommended to incorporate test-driven development focused on data-driven methodology, best practices, and proven templates and checklists, which will help in bringing greater maturity in the data testing process.