testing

Manual testing a software on several DBMS


My team is developing a web application which should work on top of several RDBMS (Oracle and MSSQL). The developers have to write some database specific code for each database. Because of that the behavior on 2 different databases could be potentially different but should be identical. That why the QA guys have to perform all the test cases both against Oracle and MSSQL environment which is too costly for manual tests. Is there any way/tool/approach to perform manual tests against just one environment and to be sure that the behavior on the other environment is identical?


Solution

  • As you've discovered, manual testing makes it expensive to test the same software in multiple environments. The approach which allows you to solve this is to automate your tests. There are many tools for test automation, too many to list. Test automation has a myriad of benefits.


    Otherwise if you must manual test, one technique you can do is have the database API connect to both databases. All queries go to both databases and the code checks the queries return the same results.

    Since your queries are different, this might have to be done at a higher level of abstraction. For example, you'd have a subclass implementing Oracle and another implementing MSSQL. You'd create a wrapper object which, for every method, calls both the Oracle and MSSQL implementations and compares their results.

    This will require that both databases are in the same state at the start of testing, particularly with the same sequences. It can run afoul of any sort of randomness or anything relying on time.