Evgeny Zhuravlev
Evgeny Zhuravlev

Reputation: 133

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?

Upvotes: 0

Views: 71

Answers (2)

sahil salaria
sahil salaria

Reputation: 1

To handle testing across both Oracle and MSSQL without duplicating manual efforts, the best approach is to automate your tests. Automation tools can help execute the same test cases across both environments, saving time and reducing errors.

If automation isn’t feasible, another technique is to create a wrapper object or API that connects to both databases simultaneously. This wrapper can send the same queries to both Oracle and MSSQL, compare the results, and ensure they match. This requires keeping both databases in the same state before testing and being mindful of factors like randomness or time that could affect results.

Additionally, using database versioning tools like Liquibase or Flyway ensures both databases have consistent schemas, reducing discrepancies. You can also consider cross-database testing tools like DbFit or QuerySurge, which automatically run tests on both databases and compare the outcomes.

Upvotes: 0

Schwern
Schwern

Reputation: 164679

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.

Upvotes: 1

Related Questions