Usually, database testing is neglected at all or conducted formally without any detalization. But this software testing procedure is an inevitable part of agile testing and it should become an essential part of traditional testing approaches.
Actually, the process of database testing is the validation of its content, schema, and functionality. If to talk about relational database testing, then two types of threats should be reviewed: at the database interface (black box testing) and within the database (clear box testing). Besides that, relational databases include table structure, actual data, relationships between elements, classes, stored features, etc.
Relational Database Testing Includes:
- functional testing (triggers and stored procedures are checked),
- relationship checking (referential integrity is in the focus),
- data quality control (default values and data invariants are tested; validation of the attribute size),
- structural checking (the correctness of data insertion and view definitions are tested),
- performance testing (expected indexes are checked, the access time to read/write/delete a row, etc.).
The above-mentioned checking types can be conducted with applying TDDD (Test Driven Database Development). It is also known as Behavior Driven Database Development (BDDD). Only that part of database code is written which is required for running a single test. It is the way to specify the database design.
If some modification were made (code changes or the way of data input to the base), then database regression testing is performed. The point is that such modifications may potentially affect the correct work of the database.