BI Functional Testing
When a new report or dashboard is developed for consumption by other users, it is important to perform a few checks to validate the data and design of the included reports.
Report or Dashboard Design Check
Verify that the new report or dashboard conforms to the report requirement / design specifications. Some of the items to check are :
Verify that the report or dashboard page title corresponds to the content of the reports.
For reports with charts, the axis should be labelled appropriately.
The aggregation level of the data in the reports should be as per the report requirements.
Verify that the report or dashboard page design conforms to the design standards and best practices.
Validate the presence and functionality of the report download and print options.
Where applicable, verify that the report help text exists and is appropriate for the report content.
Verify the existance of any required static display text in the report such as FOIA text.
Prompts are used to filter the data in the reports as needed. They can be of different types but the most common type of prompt is a select list or dropdown with a lis of values. Some of the key tests for prompts are :
Verify that all the prompts are available as per requirements. Also check if the type of the prompt matches the design specification.
For each prompt verify the label and list of values displayed (where applicable).
Apply each prompt and verify that the data in the report is getting filtered appropriately.
Verify the default prompt selection satisfies the report or dashboard page design specification.
Report data accuracy Check
Verify that the data shown in the report is accurate. As is evident, this check is vital aspect of the report functional testing.
Cross check the report with data shown in a transactional system application that is trusted by the users as the source of truth for the data shown in the report.
Come up with an equivalent database query on the target and source databases for the report. Compare the results from the queries with the data in the report.
Review the database query generated by the report for any issues.
Apply reports prompts and validate the database query generated by the report as well as the query output.
Drilldown Report checks
It is common to have links to drilldown reports in a report so that the user can navigate to those reports for further details. Links to these reports can be at the column level or column headling level. For each link to the drilldown report, verify the following items :
Verify that the counts are matching between the summary and detail report where appropriate.
Verify that all the prompts from the summary reports are getting applied to the detail report.
Check if the links to the detail report from the summary report are working from charts, tables, table headings.
Verify the database SQL query for the drill down report is as expected.
Report Performance checks
Verify that the reports and dashboard page rendering times are meeting SLA requirements. Test the performance for difference prompt selections. Perform the same checks for the drilldown reports.
Adhoc Report Testing
BI tools such as OBIEE and Business Objects empower the business users by providing the capability to create their own reports without the help of a developer.
These tools generate the database queries automatically for the reports based on the measure and dimension definitions defined on top of the physical data model.
For OBIEE, this model is defined in the RPD while Business Objects stores the model in the form of an universe.
Business users can select any combination of dimension and measure attributes available in the subject area to come up with their own adhoc report.
From a testing perspective, this presents a huge challenge since the number of different combination of dimension and measures can be very large and impossible to test manually.
Subject Area design check
Subject areas contain related dimensions and measures that can be used for creating new reports on the fly. Verify that the subject areas follow the requirement / design specifications. Some of the items to check are :
Verify that the subjec area, dimension folders, fact folders, dimension attributes and measures following the standard naming convensions.
Verify that the attributes and measures are placed in the appropriate dimension and fact folders.
Valdate the help text for the subject area, folders, attributes and measures.
Check for any unrelated dimensions or measures in the subject area. Alternatively, check for any missing dimensions or measures.
Verify that all the dimension attributes and measures are mapped properly to available database tables and columns.
This can be done by creating adhoc reports by select all the attributes/measures from each folder.
Run these reports and validate that the data is as expected.
When a combination of dimension attributes and measures are added to a report, the database query generated includes joins between the tables involved. If the joins have issues, it usually results in errors.
Create separate reports by picking all the attributes in each dimension folder and one measure at time.
Select attributes from multiple dimension folders and one measure at a time.
Verify the database query generated if the join condition makes sense.
BI Stress Testing
Like any other web application, BI applications also have authentication and authorization security requirements.
BI applications are often integrated with single signon or embeded with other transactional applications.
It is important to test the security aspects of the BI application just like other web applications.
Report access security
The objective of this test is to validate that the BI users have access to the BI reports, subject areas and dashboards is limited according to their access levels.
Access to the reports is generally controlled by role based security in the BI tool.
Understand how the access to reports is different for different roles.
Identify users with those roles for testing.
Login as these users and validate access to the reports and subject areas.
Data Security (or Position based security)
In this form of security, different users have access to a report but the data shown in the report is different based on the person running the report.
Single signon security
Single signon is often used as the authentication mechanism for BI applications in large enterprises.
The objective of this testing is to ensure that users are able to access BI applications using their single signon access (or windows authentication).
BI Applications are sometimes embedded as part of other transaction system applications using a common authentication mechanism. This integration needs to be tested for different users.
BI Regression Testing
BI tools make it easy to create new reports by automatically generating the database query dynamically based on a predefined BI Model.
This presents a challenge from a regression testing standpoint because any change change to the BI Model can potentially impact existing reports.
Hence it is important to do a complete regression test of the existing reports and dashboards whenever there is an upgrade or change in the BI Model.
Regression testing of report data
The primary focus of this test is to verify that the data shown by a report or dashboard page is same before and after the change (or upgrade). In case of the BI tool upgrade, it is possible that the look and feel of the report might change. By validating the data of the report, we can be sure that the report content is same.
Regression testing of report format
Verify that there is no change in the look and feel of the report.
Regression testing of prompts
Verify that all the prompts are available as expected and the list of values showng in the prompts match the expected values. Apply the prompts and verify that the reports shows data as expected.
Regression testing of report database query
When data is changing in the underlying tables, it might be difficult to understand if the differences in the report data before and after an upgrade is because of a regression issue or data change. It is helpful to compare the database SQL query in such cases.
Regression testing of report performance
Any upgrade or change in the system can cause regression in performance of existing reports. It is important to verify that the reports are still performing as expected.
Regression testing of security
The BI security testing sections delves into various aspects of security testing. From a regression testing standpoint, the objective is to validate that the security is not adversely impacted.
BI Stress Testing
BI Stress testing is similar to testing of any web based application testing. The objective is to simulate concurrent users accessing reports with different prompts and understand the bottlenecks in the system.
Simulating user behavior
A typical BI user will login to the system and navigate to reports (or dashboards), apply prompts and drills down to other reports.
After the report is rendered, the BI User reviews the data for a certain time called think time. The BI user eventually logs out of the system.
The first step in conducting a stress test is to identify a list of most commonly used reports or dashboards for the testing.
Simulating concurrent user load
Conducting a stress test requires simulation of the above BI user behavior concurrently for different user loads.
So it is important to have a list of different user logins for the stress test.
When executing the reports, each user can pick a different set of prompt values for the same report.
The stress test should be able to randomize the prompt selection for each user so as generate a more realistic behavior.
Most of the BI tools support a caching mechanism to improve the performance of the reports.
Database queries and the data blocks used to generate the results are also cached in databases.
The question that frequently comes up whether cache should turned off for stress testing.
While turning off caching is a good way to understand system bottlenecks, our recommendation is to perform the stress test with the caching turned on because it is more closer to what a production system would look like.
The following points should be kept in mind to reduce the impact of caching :
1. Include a large set of reports and dashboard pages.
2. Randomize prompt values for a given report or dashboard page so that the same report is requested with different filter conditions.
3. User a large pool of user login so that different user based security is applied during the execution.
There are several performance data points that need to captured while running a stress test:
Initial and final response time for each of the report and dashboard pages.
Time spent for each request in the database and in the BI tool.
CPU and memory utilization in the server machines (BI Tool and database).
Load balancing across all the nodes in a cluster.
Number of active sessions and number of report requests.
Busy connection count in database Connection pool and current queued requests.
Database cache and disk reads.