Data corruption during
testing
How often do
find corrupt data in testing databases. Sometimes corrupt data results in
various system failures that were not really the code errors or bugs. This is a
challenge that testers may face while testing an application that has data
dependency.
Generally more
than one tester works on these applications simultaneously and as we all know testers
are good at modifying data as per our needs. In the process we modify data,
perform our testing and then forget about the data that we modified it sounds
so easy going and cute, correct? But if someone else picks up that modified
data and performs another operation, there is a possibility that the testing
may fail. Then we are happy that we found a bug, we log a bug, and approach a
developer like a master telling him that there is a major bug in the system.
The developer will then debug the code for the bug and find that there is
nothing wrong with the code, he again approach you and say that the code is
just fine. Then how did the bug arise?
The answer here
is that the bugs have been encountered due to data discrepancy in the database.
The code would just run fine on the correct data but as the data is incorrect,
the code is unable to determine the correct behaviour that should be performed
for such "discrepant" data
Data discrepancy
is as serious issue as a major code error. Just imagine a newspaper saying
"9000 people killed in bus accident" while it should say "9
people killed in a bus accident". The impact is huge. It’s just like
presenting an incorrect application to the client. It may even result in a very
angry client or a client laughing like it is taunting you. The end result is
EMBARRASSMENT!!!
There are
solutions to prevent data discrepancy in a database.
1. Take a backup: Before modifying any
data in the database take a backup of the database to ensure that if any woolly
mammoth is encountered we can make it disappear by a database restore.
2. Revert back data manually: If you think
database backup and restore are too lengthy process and there is not enough
time for such activity, just revert back the data that you modified to its
original state. This can be done using an UPDATE SQL query.
3. Division of data: Data can be divided
among the number of testers working on the application. This helps as each
member performs functionality on the data provided to them and hence keeps the
data very much clean.
4. Minimal Use of Update and Insert: While
using SQL, the use of update and insert should be minimal and should be used
only if required. Don't just use update and insert just for fun in the testing
database.
5. Ask before you do: One should always
ask a DBA or the senior database analyser for any changes being made to the
testing database. This will ensure that the DBA is aware of the changes and can
handle any data related discrepancy in the database.
Mohit Bhatia
No comments:
Post a Comment