enormous volumes of data in the BI target databases. Since most organizations do
not have more than three to four hours left in their nightly batch windows, the goal
is to find out how much data can be processed during that time and how many
nights it will take to complete the entire ETL process.
Unlike integration testing or regression testing, performance testing does not have to
be performed on every program module. Performance testing could be limited to
only the most critical program modules with the highest volumes of data and the
longest runtimes. In addition to running physical tests, you can use stress test
simulation tools. These simulation tools allow you to describe the production
platform, including other programs running on the same server and sharing the
same space. Based on your input, the tools calculate and project estimated
performance numbers. It is highly recommended to run a simulation prior to actual
performance testing with real data.
Quality Assurance Testing
Most large organizations have strict procedures for moving an application into
production. These procedures usually include QA testing, and in most cases a
separate QA environment is established for such testing. Operations staff direct the
developers in moving databases and programs into the QA environment. Then all
operating instructions and scheduled jobs have to be turned over to the operations
staff for testing. They will go through a simulated production run before allowing the
application components to transfer to the production environment.
Acceptance Testing
Acceptance testing can be performed in one of two ways, depending on how testing
as a whole is set up. Ideally, there should be a separate acceptance test
environment, which could also be used for regression testing of future releases. With
a separate acceptance test environment, QA testing and acceptance testing could be
done at the same time. However, it may not be feasible or justifiable to maintain a
separate acceptance test environment. A simpler alternative is to perform acceptance
testing after QA testing in the same QA environment.
If the business representative actively participated during integration testing or
regression testing, there should be very few surprises during acceptance testing. In
fact, if the business representative is comfortable with the integration or regression
test results, and barring any unforeseen problems detected during QA testing,
separate acceptance testing may not be necessary at all. However, if a traditional
approach was followed in which the business representative was not involved in any
design or testing activities except for occasional reviews, acceptance testing is the
most important test of all.
Some project teams limit acceptance testing to the access and analysis portion of the
BI application and exclude the business representative from ETL testing. That is a big
mistake. When business analysts and business managers complain about incorrect
data in the BI target databases, the reason may not be that the report programs do
not work properly but that the ETL process is faulty. Therefore, testing how to get
the data into the BI target databases correctly is more important than testing how to
get it out correctly because an error in a report program is a lot easier to find and
correct than an error in the ETL process. Moreover, since the business representative
is involved in source data analysis and in providing the business rules for data