I’ve been working in my spare time on a database testing tool, AnyDbTest, with my friend Liu Zhongwu (刘忠武）. The program is written in C#, based on the .Net Framework 3.5.
It can be used in many scenarios: business analysts and QA can use it to confirm and validate data, recordsets data comparison; database developers can use it for code refactoring, unit testing, and when run all test cases together, it can also help with regression testing, etc. It currently supports SQL Server, Oracle, and MySQL.
Here are some highlights:
- Writes test case with XML, rather than Java/C++/C#/VB test case code
- Many kinds of standard assertion supported, such as StrictEqual, SetEqual, IsSupersetOf, Overlaps, RecordCountEqual etc
- Allows using Excel spreadsheet/XML as the source of the data for the tests
- Supports Sandbox test model, if test will be done in sandbox, all database operations will be rolled back, meaning any changes will be undone
- Unique cross database testing, which means target and reference result set can come from two databases, even if one is SQL Server, another is Oracle.
Currently we are working on developing a command line version of the application, which will greatly aid automation. With a console application, it is possible to interact with code and test cases stored in source code repositories, and make complete integration and regression testing possible with a simple batch file.
I’d appreciate it if you could let me know your feedbacks and suggestions if you decide to try.