Jul 18, 2016
Database Testing: The Inevitable Part Of Software Testing

A backend or database is the most important part of any client/server system. If the backend fails, it may cause data corruption, data loss, system deadlock, and bad performance. Many frontends log on to a single SQL server. A bug in a database may put serious effect on the whole system. Too many bugs in a backend might cost many resources to find and fix bugs and interrupt the system development.
Sometimes it is not very easy to understand and verify the database as compared to a frontend because a frontend generally has intuitive and friendly user interfaces. A backend has its own objects such as stored procedures, triggers and tables. Data integrity and protection is critical. Multi-user support and Performance are big issues. Slowness in operation can result in performance blockages and can be vital to the project’s future. To be able to do database testing, a tester must have strong background in SQL language and server.

Functional Testing: A database can be broken down into a finite number of testable pieces based on application’s functionality. The main focus remains on functionality of input and output but not on the execution and structure. Different projects have different structures and have different ways to break down.
Structural Testing: A database can be broken down into a finite number of testable pieces based on a Database structure. Tests will check each and every object in a type of structure.
Boundary Testing: Many fields have boundary conditions. For example, in a column for percentages, the value cannot be less than zero and cannot be greater than 100%. We should find out such boundary conditions and analyze them out.
Stress Testing: It involves exposing a database to heavy loads. For example, many users profoundly use the same table that has a large number of records. To build this situation, we need to start as many machines as possible and run the tests again and again.
Other important concerns while doing database testing is that it is a skill demanding job and it requires the widespread knowledge of different databases. This testing requires more perseverance and patience because unlike functional testing, there won’t be enough bugs to find.
I have seen database testing becoming more and more important in those cases when the application under test has to be combined with a third party application having different database. I have personally found database testing very interesting because individual needs vast knowledge of different databases, field mappings and also the possibility of finding project critical data loss bugs. Doesn’t that sound alluring?
There can be many directions to Database/Backend Testing. You have to keep exploring more ways to test the database. If you know of any such ways to make Database testing more interesting, Please do share via your Comments.