6 Testing



next up previous
Next: 7 Future Work Up: An ARIES Log Manager Previous: 5.4.8 log::flush and log::bufmgr_flush

6 Testing

 

As and when a class was implemented, unit testing was done on it to determine whether its methods worked in isolation. Then, the classes implemented so far were integrated and integration testing was performed to ensure that the classes worked together. Each time a bug was found and a fix applied, regression testing was done with previous test cases to ensure that the bug fix did not break any other part of the code. Finally, after the whole log manager was put together, we wrote a test driver to test the entire code. The recovery manager and the buffer manager calls were faked so that a problem could not be the result of code that we did not develop. We had the additional benefit that we started from scratch and did not have to use any existing code base. The test cases developed for this driver exercised most paths of the log manager implementation including several special cases and boundary conditions. Quite a few problems were exposed and fixed.

Unfortunately, space constraints prevent us from describing the various test cases.



ajitk@cs.wisc.edu, cjin@cs.wisc.edu