posted August 02, 2000 07:29 AM
I can provide you with an example of a test plan I have used in the past that you can use as a starting point. Testing a database is different then testing other applications because you are focusing on validating the functionality of the database. Test cases are written to ensure the data is added, updated and deleted correctly. Some "pitfalls" you may want to watch out for are…
1.) Dirty read problem - A dirty read occurs when the application reads data from a database that has not been committed to permanent storage yet. Consider two users performing the following…
a.) User 1 reads the price for item XYZ from the database (Price for item XYZ = $10.00).
b.) User 1 adds $5.00 to the price of item XYZ. The price for item XYZ now equals $15.00. However, you have not saved the price to the database so the update is not permanent yet.
c.) User 2 reads the price for item XYZ from the database (Price for item XYZ = $15.00).
d.) User 1 cancels save which causes the database to restore the price for item XYZ to $10.00.
e.) User 2 adds $10.00 to the price of item XYZ and saves the data to the database. The price for item XYZ now = $25.00 when it should be $20.00. 2.) An unrepeatable read occurs when a component reads some data from a database, but upon reading the data, the data has been changed.
a.) A customer service representative (CSR) receives a call from a customer asking about a test that are available in their area. The CSR gets a list of tests that are available in the customers’ area from the database.
b.) Another user changes the list of tests that are available in the customers’ area.
c.) The CSR re-reads the data and the list has magically changed.
3.) A phantom problem occurs when a new set of data magically appears in the database between two read operations.
a.) A customer service representative (CSR) receives a call from a customer asking about a test that are available in their area. The CSR gets a list of tests that are available in the customers’ area from the database.
b.) Another user adds new tests and deletes a couple old tests from the list of tests that are available in the customers’ area.
c.) The CSR re-reads the data and new tests has magically been added.
4.) Losing an update to a single item. - One or more updates to a single data item can be lost due to inadequate concurrent update procedures.
5.) Inaccurate or incomplete data. - The integrity of data entered is lost.
If you have any questions please let me know.
------------------
Martin Hebig, CQA, CSTE
[This message has been edited by mhebig (edited August 02, 2000).]