“Our BI system needs better testing. How?” always piques my interest. The breadth of the BI ecosystem means that testing the system end-to-end involves crossing many technologies, areas of responsibility (functional competencies), and physical systems. This covers most (all) the tool classes in this series, at very least:
- Data extracts/data acquisition – wide variety of tool/methods, possibly ETL, messaging/queuing, etc.
- Data ingestion (transform, load) – ETL tool.
- Data quality manipulation (matching, cleansing, stewardship activities) – ETL tool, cleansing tool, master data tool, stewardship interface(s).
- Data restructuring (3NF/relational to dimensional/star to OLAP cubes to in-memory analytics) – technology specific.
- BI delivery (reporting, visualization) – BI tool, visualization tool, notification tool
- Metadata – metadata platform, BI tool
- Operations (reporting issues, performance characteristics) – ETL tool, BI tool, issues management tool
Testing of BI systems varies as widely as the teams that delivery those systems, from formal and rigorous to informal and anecdotal relying largely on reporting of issues by users. Normally, I’d call this an issue of maturity, but sometimes it’s simply an issue of style or business alignment – sometimes the cost of testing isn’t justified. Here though, I’ll assume you’re interested in increasing your test effectiveness. Since this is a discussion of tools, I’ll leave the testing process to QA experts, which I am not. My interest here is primarily in the overall BI tools environment and how testing can be applied across the board.
As I was writing on this topic, I realized that it was going to be too lengthy for a single post, so I’ll break it up as:
- Test Data – Creating test data and test data sets including tooling that may be employed.
- Test Fixtures – How to get your system to a predefined state before running a test series.
- Test Cases – The actual tests, how to capture them, execute them, and regress.
- Test Management – Putting it all together and integrating testing into the development process (from a tools standpoint).
This subject is one where my opinion are constantly changing as I run across innovative testing environments. I’d love to read about anything you’ve found helpful in configuring your testing environment. Comment away!