Heading:
Almost all corporations use database to store and manipulate their information. database development desires a significant attention to keep the data atomicity, consistency, isolability, durability, integrity, etc; conjointly desires additional work to secure data, stop data loss, improve performance, etc. therefore testing databases is crucial for several corporations
What I am going to learn throughout this course?
Concept of Data, Database and Information
Database development life cycle by defining Entities, Attributes, Constraints, ER diagram, Normalization and final Schema.
You will develop an E-commerce database from beginning to end.
Database testing through database development life cycle.
Different SQL to define database, manipulate data in database and control database.
To test SQL correctness, complexity and performance.
Testing with Oracle and MySQL.
How to do backend testing using different testing tools.
For more information please check the curriculum...
Audience and Requirements:
QA, BA, Developer, Project Lead, Manager
Anyone who is interested to know about database, database development, SQL, and database testing in detail.
No prior knowledge needed but strong desire to learn.
Training Highlights:
Mentorship will be available through training and after training
You will practice on interview questions starting from day one
You will be working on three big projects and experience yourself
Curriculum
Introduction to database
Data vs information
Database
DBMS and RDBMS
RDBMS basics
Entity and Attribute
Data types
ER diagram
Primary key and foreign key
Table level and Column level Constraints
Normalization
Database Schema
Tables vs views
Indexing
Metadata
SQL: Structural Query Language
Data Definition Language
Data Manipulation Language
Data Control Language
Business interest on RDBMS
Batch data Loading and storing
Batch data Extraction
Application OnLine Transaction Processing read and write from RDBS
Test data generator feed to RDBMS
Need of RDBMS testing
Data is a vital asset of anything
Data integrity, confidentiality and privacy
Performance of data process
Scalability
What should we tend to test in RDBMS?
Black box test on the on top of RDBMS business interests
Object to Relation Mapping
On metadata and structure
Actual data
Incoming data values
From programs/scripts
From objects
From forms ...
Outgoing data values
From tables
From queries
From views...
White box test on RDBMS
Stored procedures/functions
Triggers
Views
Constraints
Existing data quality
Referential integrity/ data consistency/data integrity
Default values for columns
When should we tend to test in Agile environment?
Test First Development
Add a test
Run the tests
If pass back to step (i)
If fails build slightly change and back to step (ii)
Test Driven Development
Is TFD + Refactoring
More on test automate driven
Work on refactoring before and new feature
How should we test?
Database sandboxes
Unit test on Development sandboxes
Project level test on Project integration sandbox
System/acceptance test on Demo/Pre-production sandbox
Operations and support on Production
Writing database tests
Same to the other application, write test cases
Have test data
Form external source data: xml, Json, or tables
Test data creation scripts
Consist of Test Cases
Setup test environment
Run test
Check results
Setting up database tests
Create schema and load initial test data
Data re-initialization
Erasing the data and re load the initial data
Update the present data to urge the initial data
Database testing tools
Category of database testing tools
Interface test tools
Internal database test tools
Data privacy tools
IBM Optim Data privacy tool
Load testing tools
Loadrunner
Jmeter
Empirix
Mercury interactive
RadView
Web performance
Test data generator
Data factory
Datatect
DMT data Generator
Turbo data
Test data management
IBM Optim Test Data Management Tool
Unit testing tools
AnyDb Test
DBFit
DBUnit
NDbUnit
SQLUnit
TSQL Unit
Visual studio team edition for database professionals
XTUnit
Who should test?
Unit testing
Both Database Developers
Database Administrators tie along
Integration and other testings
Testers and others
Data management cluster or IT management cluster
Should promote importance of database testing
Should give training and testing tools
Current database regression testing challenges
Lacked testing skills
Lacked unit testing for actual databases
Lacked database testing tools
Data inspection testing
When?
During updating data
During importing data
During migrating data
How: compare and contrast
Count column
Use aggregation function(min, max, avg, ..) for compare and distinction
Use minus query
Take sample record check
Take schema comparison
Tools
QuerySurge
DB inspect
Tip for Schema testing
Use schema table of your RDBMS
Use SQL + aggregate functions
Check database name
SQL to Count tables
PL/SQL to Check table names
SQL to Count columns of each table
PL/SQL to check column names, data types and constraints(keys, null values, …)
Check triggers, views
Tips for performance test
Check indexes
Check views
Check Queries efficiency
Check functions and triggers
Check clusters and load balances
ACID property validation
Atomicity
Consistency
Isolation
Durability
Best practices
Use an in-memory database for regression testing, like HSQLDB (hyperSQL database)
Start fresh each major test plan : drop database, create new, and load test data
Take TDD approach
Get hint from experienced database testers
Assessment:
Scenario 1: Create a schema for Ecommerce database. Follow Database development life cycle
Scenario 2: Write 4 scenarios that you could test database migration. Write queries to.
Scenario 3: Write 6 scenarios that you would test during database development phase
Scenario 4: Write a query that runs 1) nested query 2) uses view 3) apply left outer join
Scenario 5: Write 4 scenarios that you would test front-end to back-end database integration test