Databases are an integral part of any software developed today. Whether you are a Software Tester or an owner of a web site, it is of an utmost importance to know about the underlying database.
The simplest task in dealing with databases is to write queries in order to communicate with a database. Web masters owning web sites or database administrators for complex or large software need certain level of expertise to perform complex tasks such as database monitoring, database auditing, database optimization, database models (also known as database schema), to name a few. This level of expertise calls for undergoing a comprehensive course.
For beginners, there is loads of online information about databases available on the Internet, like DatabaseGuides. It's a good idea for web masters to know about how their database works so that they can troubleshoot their own systems or know what is being done if a professional is hired.
Database Testing is an important aspect that a versatile Software Tester should be aware of. We'll discuss a few aspects of database testing here.
Why do we test database?
We all know that it's important to test the database our software uses. Your database holds confidential and valuable information which you would not like to be compromised. Testing the database provides us with a solid feedback essential for identifying defects.
What to test in database testing?
We need to consider the threats within the database (similar to White box Testing) as well as at the interface level (Similar to Black Box Testing).
Black Box testing might include, but not limited to:
Output Data (from queries, views, stored procedures)
White Box testing might include, but not limited to:
Unit tests for Stored Procedures / functions
Triggers / Views code
How to test?
When you want to test your database, you would need test databases that are replica of the original database. These are sometimes called as 'sandboxes' in agile terms. In this test database, you can experiment with data, develop new functionality, validate the changes and then integrate it with the project if satisfactory.
You'll need create database tests based on either rebuilding the existing database or starting afresh with creation of database and related schema. Identifying Test Data is an important task here. Once the tests are ready, you would execute them and check the results.
Database Testing is an elaborate topic that can't be fit in a single post. Would try and write more posts on the same.