Trusted answers to developer questions
Trusted Answers to Developer Questions

Related Tags

testing

What is database testing?

Hassaan Waqar

Grokking Modern System Design Interview for Engineers & Managers

Ace your System Design Interview and take your career to the next level. Learn to handle the design of applications like Netflix, Quora, Facebook, Uber, and many more in a 45-min interview. Learn the RESHADED framework for architecting web-scale applications by determining requirements, constraints, and assumptions before diving into a step-by-step design process.

A database is an important part of any system. We need to store and retrieve data in most applications. It is, thus, important to test whether the database functions properly, stores data as required, and is secure.

We can breakdown database testing into four major parts:

1. Data mapping

Data entered onto a UI screen can be stored to the backend as required. We should ensure that data is stored accurately in the database and each input is stored in its relevant field. Any action that takes place on the frontend screens should affect the backend. Actions include adding, removing, or modifying a record.

2. ACID properties

ACID stands for atomicity, consistency, isolation, and durability. Every database should conform to these four properties. The description of each property is listed below:

Property Description
Atomicity A transaction should either occur completely, or it should fail. Partial transactions cannot occur.
Consistency Transactions will be consistent across all venues of the database. The database should be updated instantly and should remain valid after every transaction.
Isolation Each transaction should be unaffected by other transactions. If multiple transactions occur at once, it should be such that they happen serially one after the other.
Durability Once a transaction occurs, it should remain despite power failures or external losses.

3. Data integrity

Users can perform one of the following four operations on a database:

  1. Create
  2. Read
  3. Update
  4. Delete

Each operation should cause changes in the database, and the database should remain consistent for all users. If the database is accessed from different browsers, locations, or systems, it should display the same results.

4. Business rules

Business rules refer to performance or standards that should be met for a software. In terms of databases, this includes storage capacity, the form in which data is stored, the time needed to access the data, and database uptime. A tester needs to ensure that a database setup satisfies all business rules.

What else needs to be tested?

A database tester should also check whether the schema of the database is complete and uniform. There should not be any duplication of information within the database. All storage requirements should be satisfied. The tester should set up primary and foreign keys carefully.

Constraints should be working accurately as well. All required checks should be in place, and each condition must be tested whether it works or not.

The illustration below summarizes testing elements of a database:

How to test a database

The steps below can be used to carry out tests on a database:

  • Prepare an environment to conduct the tests
  • Run a test
  • Analyze test results
  • Validate with expected results
  • Report findings

Benefits of database testing

Database testing has the following advantages:

  • It identifies potential bugs and bottlenecks in the early phases of development.
  • Data is precious. Testing prevents the collection of data that cannot be later analyzed.
  • Product performance is enhanced when the database is set up efficiently.
  • Makes it easy to read, write and update data.

RELATED TAGS

testing

CONTRIBUTOR

Hassaan Waqar
Copyright ©2022 Educative, Inc. All rights reserved

Grokking Modern System Design Interview for Engineers & Managers

Ace your System Design Interview and take your career to the next level. Learn to handle the design of applications like Netflix, Quora, Facebook, Uber, and many more in a 45-min interview. Learn the RESHADED framework for architecting web-scale applications by determining requirements, constraints, and assumptions before diving into a step-by-step design process.

Keep Exploring