Data Warehouse Testing Checklist

by Wayne Yaddow

Data Warehouse Testing ChecklistETL Testing Checklist

You probably use checklists to record and efficiently execute a wide range of daily work tasks. But if you don’t use checklists for developing and monitoring your data warehouse quality assurance (QA), you’re missing an enormous boost in productivity and proficiency.

Procedural data warehouse checklists serve as concrete reminders of which jobs we need to perform and the order in which we need to perform them. They are an informational aid used to reduce failure by compensating for the potential limits of human memory and attention.

In this article, I will provide test planners and testers with ideas for data warehouse checklists that help them avoid often-overlooked tasks, including tasks that require special attention during the complexity of data warehouse test planning and test execution efforts. Checklists can help with the development of the overall test strategy, the selection and prioritization of test cases, and the successful completion of troubleshooting.

Unit testing checklist

Some programmers are not well trained as testers. They may like to program, deploy the code, and move on to the next development task without a thorough unit test. A checklist will aid database programmers to systematically test their code before formal QA testing.

Check the mapping of fields that support data staging and in data marts.

Check for duplication of values generated using sequence generators.

Check the correctness of surrogate keys that uniquely identify rows of data.

Check for data-type constraints of the fields present in staging and core levels.

Performance and scalability testing checklist

As the volume of data in a warehouse grows, ETL execution times can be expected to increase, and performance of queries often degrade. These changes can be mitigated by having a solid technical architecture and efficient ETL design. The aim of performance testing is to point out potential weaknesses in the ETL design, such as reading a file multiple times or creating unnecessary intermediate files. A performance and scalability testing checklist helps discover performance issues.

Load the database with peak expected production volumes to help ensure that the volume of data can be loaded by the ETL process within the agreed-on window.

Compare ETL loading times to loads performed with a smaller amount of data to anticipate scalability issues. Compare the ETL processing times component by component to pinpoint any areas of weakness.

Monitor the timing of the reject process, and consider how large volumes of rejected data will be handled.

Perform simple and multiple join queries to validate query performance on large database volumes. Work with business users to develop sample queries and acceptable performance criteria for each query.

System testing checklist

One of the objectives of data warehouse testing is to help ensure that the required business functions are implemented correctly. This phase includes data verification, which tests the quality of data populated into target tables. A system-testing checklist can help with this process.

Make sure the functionality of the system meets the business specifications.

Look for the count of records in source tables and compare them with counts in target tables, followed by analysis of rejected records.

Check for end-to-end integration of systems and connectivity of the infrastructure—for example, make sure hardware and network configurations are correct.

Check all transactions, database updates, and data-flow functions for accuracy.

Validate the functionality of the business reports.

Technical shakedown testing checklist

Because of the complexity of integrating various source data systems, you can expect some initial problems with the environments. A technical shakedown test is conducted before commencing system, stress and performance, and user acceptance testing to help ensure several needs are met.

Hardware is in place and has been configured correctly including ETL tool architecture, source system connectivity, and business objects.

All software has been migrated to the testing environments correctly.

All required connectivity between systems are in place.

End-to-end transactions—both online and batch transactions—have been executed and do not fall over.

Testing checklist summary

The testing checklists provided here are by no means exhaustive. But I hope you see that these kinds of lists can be valuable for a complex series of data warehouse tests. Checklists help improve data warehouse QA success by compensating for potential limits of human memory. They help ensure consistency and completeness in carrying out the complex task of planning and executing data warehouse tests that are essential to the success of your projects.

If you have any thoughts or questions, please post them in the Comments.