Back to Course Description

Course Agenda for Database Application Testing Fundamentals

1. Course Overview
  • Course objective
  • Introductions
  • Identifying database applications
  • The difference between the DBMS, the database and the data
  • What’s wrong with a black-box approach to testing databases?
  • Separating back-end from front-end testing
  • Tracing data through an application
  • Testing the database design vs. testing the data
2. Understanding Database Structures
  • What is a relational database?
  • Common problems in a relational database
  • Understanding data and data types
  • Understanding attributes
  • Tables
  • Records
  • Primary/Secondary/Foreign keys
  • Relationships between tables (one-one, one-many, many-many)
  • Reading database schema diagrams
3. Data Integrity
  • Types of data integrity
  • Looking for data integrity bugs at the field, table, and relationship levels
  • Integrity of the data itself as defined by business rules
  • At what point does the data become permanent in the database?
  • What can happen to the data while it’s waiting to be served?
  • ACID test for transactions
4. Analyzing Database Design
  • Analytical databases (Data warehouse) vs Operational databases
  • Inspecting table structures to reveal design problems
  • Understanding Normalization and De-normalization (1st, 2nd and 3rd normal form)
  • Identifying bugs caused by improperly normalized databases
  • Stored Procedures
  • Timing and locking issues
5. Test Strategies
  • Organizing the approach to testing
  • Data Mining for bugs and test cases
  • Where is validation done?
  • Testing a database migration/conversion
6. Introduction to SQL
  • Know what you are looking for
  • SQL components
  • Simple SQL – Create, Retrieve, Update and Delete (CRUD)

    a. Finding the data needed – Retrieving

    b. Data Manipulation (create, delete, update)