HOME

TheInfoList



OR:

Database testing usually consists of a layered process, including the
user interface In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine f ...
(UI) layer, the business layer, the data access layer and the database itself. The UI layer deals with the interface design of the database, while the business layer includes databases supporting business strategies.


Purposes

Database In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases s ...
s, the collection of interconnected files on a server, storing information, may not deal with the same ''type'' of data, i.e. databases may be heterogeneous. As a result, many kinds of implementation and integration errors may occur in large database systems, which negatively affect the system's performance, reliability, consistency and security. Thus, it is important to
test Test(s), testing, or TEST may refer to: * Test (assessment), an educational assessment intended to measure the respondents' knowledge or other abilities Arts and entertainment * ''Test'' (2013 film), an American film * ''Test'' (2014 film), ...
in order to obtain a database system which satisfies the ACID properties (Atomicity, Consistency, Isolation, and Durability) of a database management system. One of the most critical layers is the data access layer, which deals with databases directly during the communication process. Database testing mainly takes place at this layer and involves testing strategies such as quality control and quality assurance of the product databases. Testing at these different layers is frequently used to maintain consistency of database systems, most commonly seen in the following examples: * Data is critical from a business point of view. Companies such as
Google Google LLC () is an American Multinational corporation, multinational technology company focusing on Search Engine, search engine technology, online advertising, cloud computing, software, computer software, quantum computing, e-commerce, ar ...
or Symantec, who are associated with data storage, need to have a durable and consistent database system. If database operations such as insert, delete, and update are performed without testing the database for consistency first, the company risks a crash of the entire system. * Some companies have different types of databases, and also different goals and missions. In order to achieve a level of functionality to meet said goals, they need to test their database system. * The current approach of testing may not be sufficient in which developers formally test the databases. However, this approach is not sufficiently effective since database developers are likely to slow down the testing process due to communication gaps. A separate database testing team seems advisable. * Database testing mainly deals with finding errors in the databases so as to eliminate them. This will improve the quality of the database or web-based system. * Database testing should be distinguished from strategies to deal with other problems such as database crashes, broken insertions, deletions or updates. Here, database refactoring is an evolutionary technique that may apply.


Types of testings and processes

The figure indicates the areas of testing involved during different database testing methods, such as
black-box testing Black-box testing is a method of software testing that examines the functionality of an application without peering into its internal structures or workings. This method of test can be applied virtually to every level of software testing: unit, ...
and
white-box testing White-box testing (also known as clear box testing, glass box testing, transparent box testing, and structural testing) is a method of software testing that tests internal structures or workings of an application, as opposed to its functionality ...
.


Black-box

Black-box testing involves testing interfaces and the integration of the database, which includes: # Mapping of data (including metadata) # Verifying incoming data # Verifying outgoing data from query functions # Various techniques such as Cause effect graphing technique,
equivalence partitioning Equivalence partitioning or equivalence class partitioning (ECP) is a software testing technique that divides the input data of a software unit into partitions of equivalent data from which test cases can be derived. In principle, test cases are d ...
and
boundary-value analysis Boundary-value analysis is a software testing technique in which tests are designed to include representatives of boundary values in a range. The idea comes from the boundary. Given that we have a set of test vectors to test the system, a topolog ...
. With the help of these techniques, the functionality of the database can be tested thoroughly. Pros and Cons of black box testing include: Test case generation in black box testing is fairly simple. Their generation is completely independent of software development and can be done in an early stage of development. As a consequence, the programmer has better knowledge of how to design the database application and uses less time for debugging. Cost for development of black box test cases is lower than development of white box test cases. The major drawback of black box testing is that it is unknown how much of the program is being tested. Also, certain errors cannot be detected.


White-box

White-box testing mainly deals with the internal structure of the database. The specification details are hidden from the user. # It involves the testing of database triggers and logical views which are going to support database refactoring. # It performs module testing of database functions, triggers, views, SQL queries etc. # It validates database tables, data models, database schema etc. # It checks rules of
Referential integrity Referential integrity is a property of data stating that all its references are valid. In the context of relational databases, it requires that if a value of one attribute (column) of a relation (table) references a value of another attribute (e ...
. # It selects default table values to check on database consistency. # The techniques used in white box testing are condition coverage, decision coverage, statement coverage,
cyclomatic complexity Cyclomatic complexity is a software metric used to indicate the complexity of a program. It is a quantitative measure of the number of linearly independent paths through a program's source code. It was developed by Thomas J. McCabe, Sr. in 1976. ...
. The main advantage of white box testing in database testing is that coding errors are detected, so internal bugs in the database can be eliminated. The limitation of white box testing is that SQL statements are not covered.


The WHODATE approach

While generating test cases for database testing, the semantics of SQL statement need to be reflected in the test cases. For that purpose, a technique called WHite bOx Database Application Technique "(WHODATE)" is used. As shown in the figure, SQL statements are independently converted into GPL statements, followed by traditional white box testing to generate test cases which include SQL semantics.


Four stages

* Set Fixture * Test run * Outcome verification * Tear down A set fixture describes the initial state of the database before entering the testing. After setting fixtures, database behavior is tested for defined test cases. Depending on the outcome, test cases are either modified or kept as is. The "tear down" stage either results in terminating testing or continuing with other test cases. For successful database testing the following workflow executed by each single test is commonly executed: # Clean up the database: If the testable data is already present in the database, the database needs to be emptied. # Set up Fixture: A tool like PHPUnit will then iterate over fixtures and do insertions into the database. # Run test, Verify outcome and then Tear down: After resetting the database to empty and listing the fixtures, the test is run and the output is verified. If the output is as expected, the tear down process follows, otherwise testing is repeated.


Basic techniques

* SQL Query Analyzer is a helpful tool when using
Microsoft SQL Server Microsoft SQL Server is a relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which ...
. * One commonly used function, create_input_dialog label"/code>, is used to validate the output with user inputs. * The design of forms for automated database testing, form front-end and back-end, is helpful to database maintenance workers. * Data
load testing Load testing is the process of putting demand on a structure or system and measuring its response. Software load testing The term ''load testing'' is used in different ways in the professional software testing community. ''Load testing'' gen ...
: ** For data load testing, knowledge about source database and destination database is required. ** Workers check the compatibility between source database and destination database using the DTS package. ** When updating the source database, workers make sure to compare it with the target database. ** Database load testing measures the capacity of the database server to handle queries as well as the response time of database server and client. * In database testing, issues such as atomicity, consistency, isolation, durability, integrity, execution of triggers, and recovery are often considered. # The setup for database testing is costly and complex to maintain because database systems are constantly changing with expected insert, delete and update operations. # Extra overhead is involved in order to determine the state of the database transactions. # After cleaning up the database, new test cases have to be designed. # An SQL generator is needed to transform SQL statements in order to include the SQL semantic into database test cases.


See also

*
Database normalization Database normalization or database normalisation (see spelling differences) is the process of structuring a relational database in accordance with a series of so-called normal forms in order to reduce data redundancy and improve data integrity ...
*
Software testing Software testing is the act of examining the artifacts and the behavior of the software under test by validation and verification. Software testing can also provide an objective, independent view of the software to allow the business to apprecia ...
*
Unit testing In computer programming, unit testing is a software testing method by which individual units of source code—sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures&md ...


References

* * {{cite book , url=https://books.google.com/books?id=sjAEAAAAMBAJ&q=Database+Testing&pg=PA46 , title=How We Tested Integrated Software Packages , publisher=InfoWorld , date=August 14, 1989 , access-date=December 4, 2011 , author=Zeichick, Alan, display-authors=etal


External links


Chapter 8. Database Testing
from PHPUnit Manual
Creating Datasets for Testing Relational Databases

SQL Test Coverage

Acolyte Framework
to mock up JDBC for persistence testing Database engines Database normalization