 |
|
Oracle regression testing tips
Oracle Database Tips by Donald Burleson
|
Deploying complex applications has
always been a challenge. Most ERP databases have thousands
of tables and millions of lines of related code.
Oracle Applications patch
management has always been a super complex task because of the
recursive many-to-many relationship between application patches.
For example, a patch for a Accounts Receivable screen may have
many prerequisite patches. Immediately after this patch is
released, it may become a prerequisite for a collection of
subsequent patches.
Remember, to an application, a
"patch" may take many forms, and it's not always a modified
application executable. The changes could be PL/SQL stored
procedure code changes, schema changes or external application
changes (i.e. changes to a host language like C++ or Java).
Managing QA testing for
Oracle-based Applications
The concept of "regression
testing" came about because people noticed that some fixes
became "un-done" as a result of later patches. In most
applications we see a complex network of related tables and a
corresponding complex network of interrelated application code.
When re-certifying a database
after a change to the application layer, most people use a
regression testing approach whereby the system behavior is
checked using a known solution set of "proper" results.
The system then undergoes a regression test using several
approaches:
-
Workload Simulation testing - An
artificial simulation of end-user interaction is applied to the new
software.
-
Workload Benchmark testing - Existing
workloads are "replayed" to stress the new software. There are many
approaches to
Oracle benchmarking.
The "impossible" certification
challenge of complete regression testing
In some software, the complex
interaction of the code and the sheer number of variables
presents a serious issue of "technological feasibility".
In these cases, there are billions of possible testing
permutations and it's technologically unfeasible to thoroughly
run the whole universe of possible test-case usage combinations.
For example, a medical treatment
machine once had a bug which killed someone, an obscure
combination of settings caused a lethal dose of radiation.
When challenged, the software company said that they had only
done spot-check testing because testing every possible
combination would have taken many years, unjustly delaying the
release of a life-saving medical treatment.
In the real-world the DBA must
choose a statistically-reliable sample size for the regression
test, one that does the deepest test of system functionality,
while falling within reasonable time constraints. While it
may not be possible to test all of the obscure functional
features, a workload of the most popular functionality can be
sampled from a working system.
Regression Testing and Oracle
Oracle has many tools to
facilitate regression testing in complex environments, tools to
help ensure a production-like environment, with production data
and a typical workload, long enough to capture all "popular"
system functionality"
-
Data Quality features - In Oracle11g we
now see a methods to automate regression tests using the popular
Oracle Data
Guard replication product. The new standby snapshot feature allows
you to encapsulate a snapshot for regression testing. You can collect
a standby snapshot and move it into your QA database, ensuring that your
regression test uses real production data.
-
Workload Quality Features - Oracle 11g
also provides an exciting new workload capture and replay feature that
promises to allow the DBA to record and playback a set of "popular"
transactions.