This project demonstrates Manual QA testing for a MySQL database.
The database simulates a simple e-commerce system with users, products, orders, and order items.
The project contains test cases, bug reports, and SQL scripts to fully test the database functionality.
Tables:
- users – stores user accounts
- id, email, password, created_at, is_active
- products – stores products in the system
- id, name, price, stock, is_active
- orders – stores orders made by users
- id, user_id, status, total_price, created_at
- order_items – stores individual products in each order
- id, order_id, product_id, quantity, price
Constraints used:
- Primary Keys, Foreign Keys
- NOT NULL, UNIQUE, CHECK constraints
- ENUM for order status
- Open MySQL Workbench or any MySQL client.
- Run
schema.sqlto create the database and tables:
SOURCE database/schema.sql;- Load test data from test_data.sql:
SOURCE database/test_data.sql;- Open
test-cases/test-cases.mdto view all test cases. - Execute SQL queries from the Steps column in MySQL.
- Compare actual results with Expected Results.
- Bugs discovered during testing are stored in
bug-reports/. - Each bug contains:
- Related test case;
- Steps to reproduce (SQL);
- Expected vs Actual result;
- Severity and priority;
- Screenshots are stored in
screenshots/folder.
To clean up the database after testing, run:
SOURCE database/cleanup.sql;- All SQL queries in test cases are fully reproducible.
- Test data is designed to allow both positive and negative testing.
- This repository can be directly used as part of a QA portfolio