Database is a valuable asset for each and every company in
today’s technology world. It is crucial and acts as the backbone of any
software application. Without an appropriate database, we cannot imagine the
application systems to function as per user requirements.
Initially the banks were using manual processes to record
the different transactions, but the technology help in streamlining their
processes. The software applications are
regularly updated to provide better functional benefits and convenience to
bank. What happens if while migrating
from one application to another the underlined database is not transferred properly?
The transactions will all get messed up and the basic use of technology gets
defeated. So we need to test our database for all related attributes.
The organizations generally utilize different
applications having the same database concurrently. These applications need to
be upgraded regularly as per latest market requirements. We have to migrate the
database carefully between the different applications. It is important to have
a good database management system due to high relevance of database and data
consistency.
In general, an application development includes
programming code, configuration files, CSS Files, JQuery files, third party
tools, SQL files, and other external systems. On the other hand, testing
an application means testing each and every part separately and also testing
how all these parts communicate within themselves and with external factors.
Traditionally, the data related testing is done at the
GUI/Client Layer or Business Logic Layer. Apart from testing the various codes
and attributes, testers would also need to test the vital part in the
system-the database.
Database testing is a process of testing the data
stored in the database. It requires some in depth knowledge of the given
application and a pre-planned approach to test the data. It is essential when
application has persistent storage of data, have centralized control over data,
control on data redundancy, control on consistency and integrity, includes multiple
user support, data sharing practice, data documentation, data autonomy, control
over data access and moreover client is concerned for security, backup and
recovery of data.
There are many database tools available like
MS-Access2010, MS SQL Server 2008 r2, Oracle 10g/11g, Oracle Financial, MySQL,
PostgreSQL, DB2 etc. The software applications must be developed using any of
the database tools.
The question comes in mind that what we have to test in
database testing. The main attributes to be considered in testing are:
- Accurate mapping of different screens of application and the relationship of its DB: For all CRUD operations, verify that respective tables and records are updated when user clicks ‘Save’, ‘Update’, ‘Search’ or ‘Delete’ from GUI of the application as per the design documents.
- Exhaustive testing of ACID properties of DB Transactions: ACID properties refer to the ‘Atomicity’, ‘Consistency’, ‘Isolation’ and ‘Durability’. Proper testing of these four properties must be done during the DB testing activity.
- Data integrity: Maintaining and assuring the accuracy and consistency of data over its entire life-cycle is a critical aspect to the design, implementation and usage of any system which stores, processes, or retrieves data.
- Implementation of Business Rules: The business rules describe the operations, definitions and constraints that apply to an organization and are put in place to help the organization achieve its goals and objectives.
Database is the engine of any client/server system. What if any malfunctions appear it may cause system deadlock, data corruption, data loss and bad performance. Hence, the importance of database testing in software testing should not be ignored.
No comments:
Post a Comment