AWS Global Infrastructure

Databases

Topics Covered
  • Cassandra (14 Blogs)
  • MongoDB Dev and Admin (15 Blogs)
  • MySQL (55 Blogs)
  • SQL Essentials Training and Certification (9 Blogs)
SEE MORE

MI-new-launch

myMock Interview Service for Real Tech Jobs

myMock-widget-banner-bg

What is Database Testing and How to Perform it?

Published on Oct 16,2019 76 Views
Swatee Chand
Research Analyst at Edureka. A techno freak who likes to explore different... Research Analyst at Edureka. A techno freak who likes to explore different technologies. Likes to follow the technology trends in market and write about...
36 / 37 Blog from Introduction to SQL

MI-new-launch

myMock Interview Service for Real Tech Jobs

myMock-mobile-banner-bg

myMock Interview Service for Real Tech Jobs

  • Mock interview in latest tech domains i.e JAVA, AI, DEVOPS,etc
  • Get interviewed by leading tech experts
  • Real time assessment report and video recording

Data is the heart of every software application and so is the Database which houses that data. But with the increase in the size of data or database complexities also increases making it difficult to handle the data. Thus validating data becomes very necessary. This where Database testing comes in handy and helps in checking the quality, security, and correctness of data that an application is retrieving or storing into the database. Through the medium of this article, I will be giving you complete insights into it.

Below are the topics covered in this tutorial:

So let’s get started.

What is Database Testing?

Before I talk about what is database testing, let me first brief you up on databases. A database is nothing but a systematic collection of data that provides data storage and helps in data manipulation. Data management becomes very easy using these databases as databases use objects for managing the data such as tables for storing data, view for data representations, functions, and triggers for data manipulation.

Now, Database Testing refers to the process of validating the data that is being stored in a database by verifying the objects controlling the data and various functionalities surrounding it. Generally, the activities like checking data validity, testing data integrity,  performance check relate, testing various procedures, triggers and functions in the database are covered during the database testing.

But in order to perform database testing, having sound knowledge of SQL is very important. Don’t worry if you don’t have the required expertise, you can refer to this article on SQL Basics to get started with it.

Why Database Testing?

As we know, the database is a dump of data where the data is collected in an enormous amount and stored in a structured format. Although DBMS (DataBase Management System) provides an organized way of managing, retrieving and storing this data, there are cases where data might get redundant, duplicated, etc. In such cases database testing comes into the picture which helps us in validating the data. Below I have listed down various aspects based on which a database needs to be validated:

  1. Data Mapping
    Data mapping is an integral aspect of database testing which focuses on validating the data which traverses back and forth between the application and the backend database.
  2. ACID properties validation
    ACID stands for Atomicity, Consistency, Isolation, and Durability. This is another important aspect that needs to be confirmed against each database transaction.

    • Atomicity: This means that all Database Transactions are atomic i.e. the transactions can result in either, Success or Failure. Also known as All-or-Nothing.
    • Consistency: This means that the database state will stay valid after the transaction is completed.
    • Isolation: This means that multiple transactions can be executed all at once without impacting one another and altering the database state.
    • Durability: This means that once a transaction is committed, it will preserve the changes without any fail irrespective of the effect of external factors.
  3. Data Integrity
    Testing the data integrity of a database refers to the process of evaluating all kinds of processes, operations and methods that are used for accessing, managing and updating the database also known as the CRUD operations. This solely focuses on testing the accuracy and consistency of the data stored in the database so that we get the expected or desired results.
  4. Business Rule Conformity
    With the increase in the complexity of the databases various components like relational constraints, triggers, stored procedures, etc also begin to complicate. In order to avoid this, the testers provide some SQL queries which are appropriate enough to validate the complex objects.

Types of Database Testing

There are 3 types of Database Testing which I have listed below:

  1. Structural Testing
  2. Functional Testing
  3. Non-functional Testing

Let’s now look into each of these types and their sub-types one by one.

Structural Testing

The structural database testing is the process of validating all the elements that are present inside the data repository and are primarily used for data storage. These elements cannot be manipulated directly by the end-users. Validating database servers is one of the most important considerations and the testers who manage to complete this phase successfully acquire mastery in SQL queries.

Various Types of Structural testing are:

  • Schema Testing

This type of testing is also known as mapping testing and is performed to ensure that the schema mapping of the front end and the back end are in sync. Some of the important checkpoints of this testing are:

    • Validates various types of schema formats that are associated with the databases.
    • Verification is required for unmapped tables/views/columns.
    • Verification is also required to ensure the consistency of the heterogeneous databases in an environment with the overall application mapping.
    • Provides various tools for database schema validation.
  • Database Table and Column Testing

Some of the important checkpoints of this testing are:

    • The compatibility of database fields and columns mapping at the back end and the front end.
    • Validating the length and naming convention of the database fields and columns as per requirements.
    • Detecting and validating any unused/unmapped database tables/columns.
    • Validating the compatibility of the data type and field lengths at the backend database columns with the front end of the application.
    • Validates that the users are able to provide desired inputs using the database fields which are specified in the business requirement specification documents.
  • Keys and Indexes Testing

Some of the important checkpoints of this testing are:

    • Ensure that the required Primary Key and the Foreign Key constraints are already there on the required tables.
    • Validate the references of the foreign keys.
    • Ensure that, in two tables the data type of the primary key and the corresponding foreign keys are the same.
    • Validate the names of all the keys and indexes based on the naming conventions.
    • Check the required fields and indexes size and length.
    • Ensure the creation of the Clustered indexes and Non-Clustered indexes in the required tables as per the business requirements.
  • Stored Procedures Testing

Some of the important checkpoints of this testing are:

    • Validate the adoption of the required coding standard conventions, exception and error handling for all the stored procedures by the development team in all the modules of the application under testing.
    • Ensure that the development team has covered all the conditions/loops by applying the required input data to the application under testing.
    • Check if the development team has properly applied the TRIM operations or not each time the data was fetched from the specified database tables.
    • Ensure that the required outputs are generated by manually executing the Stored Procedures.
    • Ensure that the table fields are updated as specified by the application under testing by manually executing the Stored Procedures.
    • Ensure that the required triggers are implicitly invoked by executing the Stored Procedures.
    • Detect and validate any unused stored procedures.
    • Validating the Null condition at the database level.
    • Ensure that all the Stored Procedures and Functions have been executed and tested on the blank database that is under test.
    • Validate the overall integration of the stored procedure modules as specified in the requirements of the application under testing.
  • Trigger Testing

Some of the important checkpoints of this testing are:

    • Validating that the required coding conventions are followed in the coding phase of the Triggers.
    • Ensure that the executed triggers are fulfilling the required conditions for the respective DML transactions.
    • Check whether the data is updated correctly once the triggers have been executed.
    • Validate the functionalities such as Update, Insert, Delete triggers functionality of the application under test.
  • Database Server Validations

Some of the important checkpoints of this testing are:

    • Validate the database server configurations as specified in the business requirements.
    • Ensure that the required user performs only those levels of actions that are required by the application under test.
    • Ensure that the database server is capable of catering to the needs of the maximum number of user transactions that are allowed as in the business requirement specifications.

Functional Testing

Functional database testing is the process that ensures that the transactions and operations that are performed by the end-users are consistent with the meet the business specifications.

Various Types of Functional Testing are:

  • Black Box Testing

Black Box Testing refers to the process that checks various functionalities by verifying the integration of the database. In this, the test cases are usually simple and are used to verify the incoming and outgoing data from the function. Various techniques like cause-effect graphing technique, boundary-value analysis, and equivalence partitioning are used to test the database functionality. It is generally performed at the early development stages and costs less when compared to other functional testings. But it comes with some drawbacks like some errors cannot be detected by it and there is no specification on how much of the program should be tested.

  • White Box Testing

White Box Testing is concerned with the internal structure of the database and the users are unaware of the specification details. This testing requires database triggers and logical views testing which supports the database refactoring. Moreover, database functions, triggers, views, SQL queries, etc., are also tested in this. White box testing is used to validate the database tables, data models, database schema, etc. It adheres to the rules of Referential Integrity and selects the default table values to verify the database consistency. Techniques like condition coverage, decision coverage, statement coverage, etc. are often used to perform White Box testing. Unlike Black box testing coding errors can be easily detected to eliminate the internal bugs present in the database. The only drawback of this type of testing is it doesn’t cover the SQL statements.

Non-Functional Testing

Nonfunctional testing is the process of performing load testing, stress testing, checking minimum system requirements which are required to meet the business specification along with detecting risks and optimizing the performance of the database. 

Major types of Non-Functional Testing are:

  • Load Testing

The primary function of performing load testing is to validate the performance impact of most of the running transactions in the database. In this testing, a tester is required to check the following conditions −

    • What is the response time required for executing transactions for multiple users located remotely?
    • What is the time taken by the database for fetching the specific records?
  • Stress Testing

Stress testing is a testing process that is performed to identify the breakpoint of the system. Thus, in this testing, an application is loaded until the point the system fails. This point is known as a breakpoint of the database system. The commonly used Stress Testing Tools are LoadRunner and WinRunner.

Let’s now see what are the various stages involved in Database testing.

Database Testing Stages

DB testing is not a tedious process and includes various stages in the database testing lifecycle in accordance with the test processes.

The key stages in database testing are:

  1. Set Up Testing Pre-Requisites
  2. Execute The Tests
  3. Verify Test Status
  4. Validate Results
  5. Consolidate And Publish Report

Now that you are aware of what is database testing and how to perform it, let me now throw some light on various tools that are majorly used for database testing.

Database Testing Tools

There are numerous tools in the market are used to generate the Test Data, manage it and finally perform database testing like Load Testing and Regression Testing, etc. Below I have listed down a few of the most preferred tools:

CategoryTools
Data Security Tools
  • IBM Optim Data Privacy
Load Testing Tools
  • Web Performance
  • Rad View
  • Mercury
Test Data Generator Tools
  • Data Factory
  • DTM Data Generator
  • Turbo Data
Test Data Management Tool
  • IBM Optim Test Data Management
Unit Testing Tools
  • SQLUnit
  • TSQLUnit
  • DBFit
  • DBUnit

So that was all about database testing. With this, I would like to conclude this article. I hope this article has helped you in adding value to your knowledge. For more information on SQL or Databases, you can refer to our comprehensive reading list here: Databases Edureka.

If you wish to get a structured training on MySQL, then check out our MySQL DBA Certification Training which comes with instructor-led live training and real-life project experience. This training will help you understand MySQL in depth and help you achieve mastery over the subject.

Got a question for us? Please mention it in the comments section of ”Database Testing” and I will get back to you.

Comments
0 Comments

Browse Categories

webinar REGISTER FOR FREE WEBINAR
REGISTER NOW
webinar_success Thank you for registering Join Edureka Meetup community for 100+ Free Webinars each month JOIN MEETUP GROUP

Subscribe to our Newsletter, and get personalized recommendations.