Software Testing
What is Workflow Testing in Software Testing? with Examples
What is Workflow Testing? WORKFLOW TESTING is a type of software testing, which checks that each...
Database Testing is a type of software testing that checks the schema, tables, triggers, etc. of the Database under test. It also checks data integrity and consistency. It may involve creating complex queries to load/stress test the Database and check its responsiveness.
Database Testing is Important in software testing because it ensures data values and information received and stored into database are valid or not. Database testing helps to save data loss, saves aborted transaction data and no unauthorized access to the information. Database is important for any software application hence testers must have good knowledge of SQL for database testing.
The GUI is usually given the most emphasis by the test and development team members since the Graphical User Interface happens to be the most visible part of the application. However, what is also important is to validate the information that is the heart of the application, aka DATABASE.
Let us consider a Banking application wherein a user makes transactions. Now from Database Testing or DB Testing viewpoint following, things are important:
To ensure all these above objectives, we need to use data validation or data testing.
In this Database Testing tutorial, we will learn about different Database Testing concepts like:
User-Interface testing | Database or Data testing |
|---|---|
| This type of testing is also known as Graphical User Interface testing or Front-end Testing. | This type of testing is also known as Backend Testing or data testing. |
| This type of testing chiefly deals with all the testable items that are open to the user for viewership and interaction like Forms, Presentation, Graphs, Menus, and Reports, etc. (created through VB, VB.net, VC++, Delphi - Front-end Tools ) | This type of testing chiefly deals with all the testable items that are generally hidden from the user for viewership. These include internal processes and storage like Assembly, DBMS like Oracle, SQL Server, MYSQL, etc. |
This type of testing includes validating the
| This type of testing involves validating:
|
| The tester must be thoroughly knowledgeable about the business requirements as well as the usage of the development tools and the usage of automation frameworks and tools. | To be able to perform backend testing, must the tester have a strong background in the database server and Structured Query Language concepts. |
The 3 types of Database Testing are
In this Database Testing tutorial, we will look into each type and its sub-types one by one.
Structural Database Testing is a database testing technique that validates all the elements inside data repository that are mainly used for data storage and which are not allowed to be directly manipulated by end-users. The validation of database servers is also an important consideration in structural database testing. A successful completion of this testing needs mastery in SQL queries.
Schema Testing in database testing validates various schema formats associated with the database and verifies whether the mapping formats of tables/views/columns are compatible with mapping formats of user interface. The main purpose of schema testing is to ensure the schema mapping between front-end and back-end are similar. Thus, it is also referred to as mapping testing.
Let us discuss the most important checkpoints for schema testing.
Let us also look at some of the interesting Database Testing tools for validating database schemas.
For example, if the developers want to change a table structure or delete it, the tester would want to ensure that all the Stored Procedures and Views that use that table are compatible with the particular change. Another example could be that if the testers want to check for schema changes between 2 databases, they can do that by using simple queries.
Let us look into various checks for database and column testing.
of the back-end database columns with that of those present at the front-end of the application.
Important checks for keys and indexes -
constraints have been created on the required tables.
have been created on the required tables as specified by the business requirements.
Important tests to check stored procedures are:
for all the stored procedures for all the modules for the application under test.
Some of the useful Database Testing tools for testing stored procedures are LINQ , SP Test tool etc.
Functional Database Testing is a type of database testing that is used to validate the functional requirements of a database from the end-user’s perspective. The main goal of functional database testing is to test whether the transactions and operations performed by the end-users which are related to the database works as expected or not.
Following are the basic conditions that need to be observed for database validations.
This particular process is the validation of the field mappings from the end-user viewpoint. In this particular scenario, the tester would perform an operation at the database level and then would navigate to the relevant user interface item to observe and validate whether the proper field validations have been carried out or not.
The vice versa condition whereby, first operation is carried out by the tester at the user interface, and then the same is validated from the back end is should also be done.
Following checks are important
The validations of the login and user security credentials need to take into consideration the following things.
Non-functional testing in the context of database testing can be categorized into various categories as required by the business requirements. These can be load testing, Stress Testing, Security Testing, Usability Testing, and Compatibility Testing, and so on. The load testing, as well as stress testing, which can be grouped under the gamut of Performance Testing serves two specific purposes when it comes to the role of non-functional testing.
Risk quantification- Quantification of risk helps the stakeholders to ascertain the various system response time requirements under required levels of load. This is the original intent of any quality assurance task. We need to note that load testing does not mitigate risk directly, but through the processes of risk identification and risk quantification, presents corrective opportunities and an impetus for remediation that will mitigate risk.
Minimum system equipment requirement- The minimum system configuration that will allow the system to meet the formally stated performance expectations of stakeholders. So that extraneous hardware, software, and the associated cost of ownership can be minimized. This particular requirement can be categorized as the overall business optimization requirement.
The purpose of any load test should be clearly understood and documented. The following types of configurations are a must for load testing.
Important load testing tools are load runner, win runner and JMeter.
Database Stress Testing is a testing method used to stress test database system with heavy load such that it fails at some point. This helps in identifying the breakdown point of database system. It requires proper planning and efforts in order to avoid over usage of resources. Data stress testing is also known as torturous testing or fatigue testing.
Important stress testing tools are LoadRunner and JMeter.
A significant amount of overhead could be involved to determine the state of the database transactions
New test data have to be designed after cleaning up of the old test data.
An SQL generator is required to transform SQL validators in order to ensure the SQL queries are apt for handling the required database test cases.
The above mentioned prerequisite ensure that the set-up of the database testing procedure could be costly as well as time consuming.
Database Testing requires plenty of expertise and it is a very tedious job
Reality: Effective and efficient Database Testing in Software Testing provides long-term functional stability to the overall application thus it is necessary to put in hard work behind it.
Database testing adds extra work bottleneck
Reality: On the contrary, database testing adds more value to the overall work by finding out hidden issues and thus pro-actively helping to improve the overall application.
Database testing slows down the overall development process
Reality: Significant amount of database testing helps in the overall improvement of quality for the database application.
Database testing could be excessively costly
Reality: Any expenditure on database testing is a long-term investment which leads to long-term stability and robustness of the application. Thus expenditure on Database Testing or SQL Testing is necessary.
Checkout - Database Testing Interview Questions & Answers
What is Workflow Testing? WORKFLOW TESTING is a type of software testing, which checks that each...
What is The Waterfall Model? WATERFALL MODEL is a sequential model that divides software...
Cloud Testing Cloud Testing is a type of software testing in which the software application is tested...
Open-source testing tools are applications that support a range of testing activities. This...
Test Harness in Software Testing Test Harness in Software Testing is a collection of stubs, drivers...
What is Software Testing Life Cycle (STLC)? Software Testing Life Cycle (STLC) is a sequence of...