One of the main advantages of Qlikview is the quick and easy implementation. Users connect Qlikview to their DWH, directly to operational sources or connect to source files. In most cases, this means that Qlikview applications will contain a lot of logic and calculations, perhaps even transformations, similar to those that are performed on complex ETL tools. If you are facing a lot of data, you are also performing an incremental load of your recently updated data. This means you are facing all challenges as any ETL tool, without the flexibility and simplicity of writing your testing scripts.
Data flows go through many steps, some of them can simple and some complex. The question is how can you be sure that all the data was loaded correctly and calculation logic is valid before the end user raises the flag of inaccurate data?
Quality Gates can assist you combine a variety of tests that will validate completeness and accuracy of the data along all loading steps and according to business standards. The methodology for that can be clarified in this post.
Quality Gates can be combined in each of the loading steps mentioned below. Full integration of Quality Gates in the Qlikview process, will support alerting at real loading time and even preventing final publication to the user when one of the steps fails. Quality Gates can operatively stop the next loading step when its prior step did not pass the test. Each Quality Gate can be operated externally from Qlikview or different kind of orchestrators, the Quality Gate returns a status to the operator that can be used as a trigger.
Best Practice Integration of QualityGates in Qlikview Process:
1-Completeness and accuracy of Qlikview ODS layer
Validate that your source was loaded correctly into the QVW or QVD, according to your loading implementation method. If you are keeping your data also in a QVW file, then you will have 2 comparisons to perform: source to QVW and QVW to QVD, or you directly compare the source to the QVD. Aggregated and detailed comparison of your source to the QVW or QVD of the load will cover it. The QVW is storing data and therefore functioning as a pre-ODS layer. The source can be DWH, files, Operational source like SAP or multi-dimensional sources like OLAP or BW.
2-Completeness and accuracy of Qlikview Data Model
Validate that the data model is correct. This data model layer will probably contain logic. The purpose is to validate the expected result matches the source result. At this layer you need to test the population according to the loading logic, if same number of rows is expected, the Quality Gates will connect to both sources and validate the number of rows and measures aggregation match.
Technically, some implementations will not contain a staging layer and in fact the data model will be the final application file presented to the user. As part of the data flow validations, you will want to validate that all data was loaded correctly from the QVDs to the QVW application. If you are not separating your data model from your final application that holds the data model without the presentation objects layer, best practice will be to set up a Qlikview additional tab that will contain your testing objects. When facing a lot of loading data you can also set a statistics object that will contain the aggregation and number of rows and use it for the comparison for improved testing performance.
3-Completeness and accuracy of Qlikview final presentation layer
Validate your presentation aggregated object against the row data in the suitable QVD. Make sure all rows were taken into consideration and all values appear. If your dashboards are complex (containers, cyclic groups, hidden objects), best practice will be to simplify the testing objects as mentioned in the Data Model part. Like in any other testing environment, it is important to stick to the “keep it simple” principle and avoid complex logic in tests.
4-Business standards verification of final presentation layer
Validation of completeness and accuracy is done by comparing the final presentation object to the row data making sure that no report logic harmed the final result. In addition, the business user knows that the numbers should be at a certain standard, when something is wrong, he can smell it! This can be a result of a loading problem, logic problem or an alert for the business person. Taking this known KPI standard and implementing it as an automatic alert will set the alert at loading time.