Who is this for? Test Engineers required to test an application’s interface with a relational database.
Today's heterogeneous data environments place an increasingly heavy burden
on test engineers. Applications, whether web-based or client-server, must be
tested for seamless interface with the backend databases. Testers are required
to know how to create and use SQL, stored procedures, and other database objects
to effectively test today's data driven environments. They also need to know
how to successfully test objects such as stored procedures and views in an application's
databases. This course will teach the tester the basics of Structured Query
Language for use in testing relational databases. Attendees will learn the SQL
constructs and features necessary to formulate and implement test cases uncovering
bugs in database systems causing data corruption. Common hacks for leaving databases
vulnerable to attack will be covered including test cases for protecting against
SQL Injection attacks.
Module 1: Database concepts primer
The Database Component : What is a Database Application?
Testing the Application vs. Testing the DBMS
Understanding Data Storage
Knowledge Requirements for Database Test Engineers
Back-end vs. Front End Testing
Data must pass Quality Assurance too!
General database basics
Relational Database Concepts
Exploratory Testing: Reading an ERD (Entity Relationship Diagram)
Ensuring data integrity: field, table and referential data integrity
How lack of data integrity causes bugs
Test Issues for High Performance database systems
Module 2: Basic SQL (Structured Query Language)
SQL Coding Standards -- what you need to know
Data Quality Issues: Assess data for timeliness, consistency, accuracy
SQL Basics: Select, Insert, Update and Delete
Using the Select Statement to Test data
Using the Insert Statement to generate Test data
Testing for application accuracy using the Update and Delete statements
Lab: Basic SQL Practice : Testing for basic data integrity
Module 3: Testing with SQL
Joining tables
Generating high volumes of Test Data
Useful SQL Queries for Data Verification
How Concurrency Issues affect data accuracy
Database objects: Constraints, Views, Stored procedures
Testing Stored procedures using SQL
Creating a stored procedure test harness
Performance Testing using SQL
Additional Areas to Test
Lab: Uncovering corrupt data bugs with SQL
Lab: Testing using stored procedures
Module 4: Using SQL in Scripting Languages
Bypassing the application to verify data
Creating a test harness for database testing Using Perl
Creating a test harness for database testing Using VBScript
Catching common Database application hacks:
test cases protecting against SQL Injection and other common hacks
Session Wrap-Up
Summary
Final Questions