This project currently demonstrates professional requirement analysis, manual test design, requirements traceability, defect-documentation planning and executed PostgreSQL database validation for a sample online booking system.
REST API testing with Postman is the next project phase and remains in progress.
The purpose of the project is to show how a quality assurance professional can analyze requirements, design test cases, document potential defects, validate database information and prepare structured API testing workflows.
The project is being developed in phases so that each testing activity is documented clearly and can be reviewed directly through GitHub.
- Software Test Plan
- Manual Test Cases — CSV
- Requirements Baseline
- Requirements Traceability Matrix — CSV
- SQL Database Testing Documentation
- SQL Validation Queries
- Automated Database Validation Summary
- Day 4 Database Execution Report
- Defect-Report Drafts — CSV
- Execution Screenshots
The sample online booking system allows users to:
- Authenticate
- Create a booking
- Retrieve booking information
- Search for bookings
- Update an existing booking
- Partially update a booking
- Delete or cancel a booking
A booking may contain:
- First name
- Last name
- Total price
- Deposit-paid status
- Check-in date
- Checkout date
- Optional additional needs
Testing will verify that the system:
- Processes valid information correctly
- Rejects invalid or missing information appropriately
- Enforces authentication and authorization requirements
- Returns accurate API responses
- Stores accurate information in the database
- Maintains data integrity throughout the booking lifecycle
The objectives of this project are to:
- Create a professional software test plan
- Define clear and testable system requirements
- Develop functional, positive, negative and boundary-value test cases
- Demonstrate requirement-to-test-case traceability
- Document defects using a professional reporting format
- Test REST API endpoints with Postman
- Validate HTTP status codes, response bodies and response times
- Validate database records using SQL
- Compare API information with database information
- Document test-execution results accurately
- Demonstrate responsible credential and test-data handling
- Build a recruiter-friendly quality assurance portfolio
- Requirement analysis
- Test planning
- Authentication testing
- Booking-creation testing
- Booking-retrieval testing
- Booking-search testing
- Booking-update testing
- Partial-update testing
- Booking-deletion testing
- Required-field validation
- Date validation
- Price validation
- Positive testing
- Negative testing
- Boundary-value testing
- Authorization testing
- API response validation
- Database validation
- Data-integrity validation
- Requirements traceability
- Defect reporting
- Regression-test planning
- Test-execution reporting
- Production security penetration testing
- High-volume load testing
- Stress testing
- Production performance testing
- Payment-card processing
- Mobile application testing
- Production customer data
- Production deployment
- Disaster-recovery testing
- Full accessibility certification
The project follows a structured testing process:
- Define assumed portfolio requirements
- Analyze the requirements for clarity and testability
- Create a professional test plan
- Design detailed manual test cases
- Map requirements to test cases
- Prepare defect-report drafts
- Execute API tests using Postman
- Validate database information using SQL
- Compare API and database results
- Record actual results and test status
- Confirm or discard defect-report drafts
- Prepare a final test-execution report
- Software-testing fundamentals
- Requirement analysis
- Test planning
- Test-scenario development
- Test-case development
- Functional testing
- Positive testing
- Negative testing
- Boundary-value analysis
- Equivalence partitioning
- Authentication testing
- Authorization testing
- Regression-test planning
- Defect reporting
- Requirements traceability
- Test-execution reporting
The following API-testing capabilities will be demonstrated during the Postman execution phase:
- REST API testing
- HTTP methods
- Status-code validation
- Response-body validation
- Response-time validation
- Authentication-token handling
- Positive API testing
- Negative API testing
- CRUD workflow testing
- Postman collection development
- SQL
- PostgreSQL
- Database validation
- Data-integrity testing
- Null-value validation
- Duplicate detection
- Primary-key validation
- Foreign-key validation
- Data reconciliation
- Git
- GitHub
- Markdown
- Microsoft Excel
- Requirements documentation
- Test-plan documentation
- Defect-report documentation
- Test-data documentation
- GitHub
- Git
- Microsoft Excel
- Markdown
- Postman
- PostgreSQL
- DBeaver or pgAdmin
- SQL
- Microsoft Edge or Google Chrome
- Windows 10 or Windows 11
api-database-testing-portfolio/
├── README.md
├── test-plan/
│ ├── README.md
│ └── booking-system-test-plan.md
├── test-cases/
│ ├── README.md
│ ├── booking-system-test-cases.xlsx
│ └── booking-system-test-cases.csv
├── defect-reports/
│ ├── README.md
│ ├── booking-system-defect-report-drafts.xlsx
│ └── booking-system-defect-report-drafts.csv
├── requirements-traceability/
│ ├── README.md
│ ├── booking-system-requirements.md
│ ├── booking-system-requirements-traceability-matrix.xlsx
│ └── booking-system-requirements-traceability-matrix.csv
├── postman/
│ └── README.md
├── sql/
│ ├── README.md
│ ├── 01_create_schema.sql
│ ├── 02_seed_test_data.sql
│ ├── 03_validation_queries.sql
│ ├── 04_validation_summary.sql
│ └── 05_constraint_negative_tests.sql
├── reports/
│ ├── README.md
│ ├── day4-database-validation-summary.csv
│ └── day4-database-validation-execution.md
└── screenshots/
├── README.md
└── Day 4 execution screenshots
The completed project will include:
- Booking-system requirements baseline
- Professional software test plan
- Detailed manual test cases
- Positive test cases
- Negative test cases
- Boundary-value test cases
- Requirements Traceability Matrix
- Professional defect reports
- Postman API collection
- Postman environment template
- Positive and negative API assertions
- PostgreSQL database schema
- Synthetic database test data
- SQL validation queries
- API-to-database comparison
- Test-execution report
- Supporting screenshots
- Professional GitHub repository structure
- Initial project README
- Repository description and topics
- Booking-system requirements baseline
- Comprehensive software test plan
- Excel test-case workbook
- Requirements worksheet
- Test-data worksheet
- 25 detailed manual test cases
- GitHub-previewable test-case CSV
- Requirements Traceability Matrix
- GitHub-previewable traceability CSV
- Three clearly labeled defect-report drafts
- GitHub-previewable defect-report CSV
- Folder-level README documentation
- Local PostgreSQL database
-
booking_test_dbdatabase -
booking_portfolioschema - Customers, bookings and payments tables
- Customer and booking staging tables
- Primary-key and foreign-key controls
- Required-field and business-rule constraints
- Synthetic production-style test records
- Controlled staging data-quality anomalies
- 19 SQL validation and analysis queries
- 13 automated database-validation summary checks
- Six database-constraint negative tests
- Database-validation execution report
- SQL execution screenshots
- Updated database-requirement traceability
- Data-security and credential-handling rules
- Actual manual and API test execution
- Validation of defect-report drafts
- Postman API collection
- Postman environment template
- API response assertions
- API response-time validation
- Authentication-token workflow
- Booking CRUD API execution
- Direct API-to-database comparison
- Database verification after API deletion
- Final test-execution report
- API execution screenshots
Day 1 established the professional GitHub foundation for the project.
The following work was completed:
- Reviewed and optimized the GitHub account
- Removed or privatized weak and unfinished public repositories
- Updated the GitHub profile information
- Created a professional GitHub profile README
- Created the public
api-database-testing-portfoliorepository - Added a professional repository description
- Added repository topics
- Created the initial project README
- Created the project folder structure
- Added folder-level README files
- Reviewed the public profile using an InPrivate browser
Day 1 established a clean and organized public portfolio foundation.
Day 2 established the requirements, test-planning and initial manual testing foundation.
Files created:
requirements-traceability/booking-system-requirements.md
test-plan/booking-system-test-plan.md
test-cases/booking-system-test-cases.xlsx
test-cases/booking-system-test-cases.csv
Day 2 accomplishments include:
- Reviewed essential software-testing concepts
- Documented SDLC and STLC fundamentals
- Reviewed positive, negative and boundary-value testing
- Reviewed severity, priority and the defect lifecycle
- Created the booking-system requirements baseline
- Defined authentication requirements
- Defined booking-creation requirements
- Defined booking-retrieval requirements
- Defined booking-update requirements
- Defined booking-deletion requirements
- Defined database and data-quality requirements
- Defined nonfunctional expectations
- Created a comprehensive software test plan
- Defined testing objectives
- Defined in-scope and out-of-scope areas
- Defined the test approach
- Defined entry and exit criteria
- Defined risks and mitigation strategies
- Created the initial Excel test-case workbook
- Created the Requirements worksheet
- Created the Test_Data worksheet
- Created the first 10 manual test cases
- Created a GitHub-previewable CSV file
All Day 2 test cases were correctly left in Not Run status because execution had not begun.
Day 3 expanded the project’s manual test coverage and introduced formal requirements traceability and defect-documentation examples.
Files added or updated:
test-cases/booking-system-test-cases.xlsx
test-cases/booking-system-test-cases.csv
requirements-traceability/booking-system-requirements-traceability-matrix.xlsx
requirements-traceability/booking-system-requirements-traceability-matrix.csv
defect-reports/booking-system-defect-report-drafts.xlsx
defect-reports/booking-system-defect-report-drafts.csv
Day 3 accomplishments include:
- Expanded the test suite from 10 to 25 test cases
- Added missing-last-name validation
- Added minimum positive-price validation
- Added negative-price validation
- Added booking-retrieval test cases
- Added booking-search coverage
- Added full booking-update coverage
- Added partial booking-update coverage
- Added unauthorized-update coverage
- Added nonexistent-booking update coverage
- Added invalid-date update coverage
- Added authorized booking-deletion coverage
- Added unauthorized-deletion coverage
- Added deleted-booking retrieval coverage
- Added nonexistent-booking deletion coverage
- Completed the remaining Requirements worksheet entries
- Created a formal Requirements Traceability Matrix
- Mapped functional requirements to test cases
- Identified planned and partially covered requirements
- Created three clearly labeled defect-report drafts
- Updated folder-level documentation
- Updated the main project status
All test cases remain in Not Run status.
The defect reports remain Draft—Pending Validation and do not claim that actual defects have been observed.
Day 4 established the local PostgreSQL database-testing and data-quality foundation for the project.
Files added:
sql/01_create_schema.sql
sql/02_seed_test_data.sql
sql/03_validation_queries.sql
sql/04_validation_summary.sql
sql/05_constraint_negative_tests.sql
reports/day4-database-validation-summary.csv
reports/day4-database-validation-execution.md
Day 4 accomplishments include:
- Installed or verified PostgreSQL and pgAdmin
- Created the
booking_test_dbdatabase - Created the
booking_portfolioschema - Created the
customerstable - Created the
bookingstable - Created the
paymentstable - Created customer and booking staging tables
- Added primary-key controls
- Added foreign-key controls
- Added required-field controls
- Added case-insensitive unique-email controls
- Added booking-date validation
- Added positive-price validation
- Added booking-status and payment-status validation
- Inserted 10 valid synthetic customers
- Inserted 15 valid synthetic bookings
- Inserted 10 valid synthetic payments
- Added controlled staging anomalies
- Created 19 SQL validation and analysis queries
- Created 13 automated validation-summary checks
- Executed six database-constraint negative tests
- Updated database requirements in the Requirements Traceability Matrix
- Added database execution evidence
| Metric | Result |
|---|---|
| SQL validation and analysis queries created | 19 |
| Automated summary checks executed | 13 |
| Automated summary checks passed | 13 |
| Automated summary checks failed | 0 |
| Constraint negative tests executed | 6 |
| Constraint negative tests passed | 6 |
| Constraint negative tests failed | 0 |
| Production integrity failures identified | 0 |
The local database is a portfolio testing environment and is not the database used by the public demonstration booking API.
Direct API-to-database comparison and database verification after an API deletion therefore remain pending.
The current manual test suite contains 25 test cases covering the main functional workflows, business rules, authorization controls and negative scenarios for the sample booking system.
Authentication coverage includes:
- Valid username and password
- Valid username with an invalid password
- Missing username
- Missing password
- Blank username and password
- Successful authentication-token generation
Related test cases:
TC-AUTH-001
TC-AUTH-002
TC-AUTH-003
TC-AUTH-004
TC-AUTH-005
Booking-creation and validation coverage includes:
- Successful booking creation using valid information
- Missing first name
- Missing last name
- Missing booking dates
- Checkout date earlier than check-in date
- Total price equal to zero
- Minimum valid positive total price
- Negative total price
- Unique booking-identifier validation
- Submitted-data response validation
Related test cases:
TC-BOOK-001
TC-BOOK-002
TC-BOOK-003
TC-BOOK-004
TC-BOOK-005
TC-BOOK-006
TC-VAL-001
TC-VAL-002
Booking-retrieval coverage includes:
- Retrieving an existing booking using a valid booking identifier
- Attempting to retrieve a nonexistent booking
- Searching for bookings using supported customer-name criteria
Related test cases:
TC-RET-001
TC-RET-002
TC-RET-003
Booking-update coverage includes:
- Full booking update using valid authentication
- Update attempt without authentication
- Update attempt using a nonexistent booking identifier
- Partial update of the additional-needs field
- Update attempt using an invalid booking-date sequence
Related test cases:
TC-UPD-001
TC-UPD-002
TC-UPD-003
TC-UPD-004
TC-UPD-005
Booking-deletion coverage includes:
- Successful deletion using valid authentication
- Attempting to retrieve a successfully deleted booking
- Deletion attempt without authentication
- Deletion attempt using a nonexistent booking identifier
Related test cases:
TC-DEL-001
TC-DEL-002
TC-DEL-003
TC-DEL-004
The current test suite demonstrates:
- Functional testing
- Positive testing
- Negative testing
- Boundary-value testing
- Required-field validation
- Authentication testing
- Authorization testing
- Business-rule validation
- Error-handling validation
- Data-integrity validation
- CRUD workflow testing
- Regression-test planning
The current manual test cases provide coverage for:
- Authentication requirements
- Booking-creation requirements
- Booking-retrieval requirements
- Booking-update requirements
- Booking-deletion requirements
Local PostgreSQL testing has provided executed coverage for several database and data-quality requirements.
Current database-requirement status:
DATA-001— Partially Covered / PassDATA-002— Planned / Not RunDATA-003— Covered / PassDATA-004— Covered / PassDATA-005— Covered / PassDATA-006— Covered / PassDATA-007— Covered / PassDATA-008— Planned / Not Run
DATA-002 and DATA-008 remain pending because the local PostgreSQL
database is not connected to the public demonstration API.
Additional nonfunctional coverage will be added through:
- Postman response assertions
- API response-time validation
- Negative API testing
- Error-response validation
- Repository credential-exposure checks
| Test Area | Test Assets | Coverage Status | Execution Status |
|---|---|---|---|
| Authentication | 5 manual/API test cases | Covered | Not Run |
| Booking Creation and Validation | 8 manual/API test cases | Covered | Not Run |
| Booking Retrieval | 3 manual/API test cases | Covered | Not Run |
| Booking Update | 5 manual/API test cases | Covered | Not Run |
| Booking Deletion | 4 manual/API test cases | Covered | Not Run |
| Local Database Validation | 19 SQL queries | Initial local validation complete | Executed |
| Automated Database Summary | 13 checks | Covered | Passed |
| Database Constraint Testing | 6 negative tests | Covered | Passed |
| Nonfunctional API Validation | Planned Postman assertions | Planned | Not Run |
| Total Manual/API Test Cases | 25 | Functional coverage established | Not Run |
The local PostgreSQL validation has been executed successfully.
The 25 manual and API test cases remain in Not Run status because Postman execution has not started.
The local database is not connected to the public demonstration booking API. Therefore, local database success does not represent direct API-to-database validation.
The Requirements Traceability Matrix connects the project requirements to related test cases and planned validation activities.
The matrix includes:
- Requirement ID
- Requirement category
- Requirement summary
- Linked test-case IDs
- Coverage status
- Execution status
- Related defect IDs
- Coverage comments
Current traceability status:
- Authentication requirements: Covered
- Booking-creation requirements: Covered
- Booking-retrieval requirements: Covered
- Booking-update requirements: Covered
- Booking-deletion requirements: Covered
- Database requirements: Planned or Partially Covered
- Nonfunctional requirements: Planned or Partially Covered
Files:
requirements-traceability/booking-system-requirements.md
requirements-traceability/booking-system-requirements-traceability-matrix.xlsx
requirements-traceability/booking-system-requirements-traceability-matrix.csv
Three defect-report drafts were created to demonstrate professional defect-documentation structure.
The draft scenarios include:
- Booking may accept a checkout date earlier than the check-in date
- Booking update may be accepted without valid authentication
- A deleted booking may remain retrievable
These entries are clearly labeled:
Draft—Pending Validation
They are hypothetical portfolio examples and are not confirmed application defects.
After API test execution, each draft will be:
- Confirmed and converted into an actual defect report
- Updated with actual results and supporting evidence
- Or discarded when the system behaves correctly
Files:
defect-reports/booking-system-defect-report-drafts.xlsx
defect-reports/booking-system-defect-report-drafts.csv
| Metric | Current Value |
|---|---|
| Test cases created | 25 |
| Test cases executed | 0 |
| Passed | 0 |
| Failed | 0 |
| Blocked | 0 |
| Not Run | 25 |
| Confirmed API defects | 0 |
| Defect drafts pending validation | 3 |
| Metric | Current Value |
|---|---|
| SQL validation and analysis queries created | 19 |
| Automated summary checks executed | 13 |
| Automated summary checks passed | 13 |
| Automated summary checks failed | 0 |
| Constraint negative tests executed | 6 |
| Constraint negative tests passed | 6 |
| Constraint negative tests failed | 0 |
| Production integrity failures identified | 0 |
The local PostgreSQL checks have been executed.
The 25 manual and API test cases remain in Not Run status because Postman API execution has not begun.
The three defect reports remain hypothetical drafts pending validation.
No API execution results or confirmed API defects have been invented or assumed.
The project uses synthetic, nonproduction test data.
Example placeholders include:
{{validUsername}}
{{validPassword}}
{{authToken}}
{{bookingId}}
{{deletedBookingId}}
Example synthetic booking information includes:
First Name: Dhruba
Last Name: Aryal
Total Price: 450
Deposit Paid: true
Check-in Date: 2026-08-10
Checkout Date: 2026-08-14
Additional Needs: Breakfast
The use of names in this project represents synthetic portfolio test data and not production customer information.
The repository will not contain:
- Real customer information
- Real passwords
- Live authentication tokens
- Private API keys
- Confidential employer information
- Payment-card information
- Production database records
- Personal health information
- Secret environment files
Actual credentials and tokens will not be uploaded to GitHub.
Sensitive values will be represented using placeholders or secure environment variables.
This is a portfolio demonstration project based on:
- Assumed requirements
- Synthetic test data
- A nonproduction testing environment
- A publicly available demonstration API
- A locally created PostgreSQL database
The selected demonstration API may not enforce every assumed business requirement.
A difference between the expected requirement and actual system behavior will be documented honestly as:
- An observed behavior
- A project limitation
- A potential defect pending review
- Or a confirmed defect after reproduction
The next project phase will focus on REST API testing with Postman.
Planned activities are:
- Install or verify Postman
- Select and document the demonstration booking API
- Create the Postman workspace and collection
- Create collection variables
- Create a sanitized Postman environment template
- Create the authentication-token workflow
- Create booking-creation requests
- Create booking-retrieval and search requests
- Create full-update and partial-update requests
- Create booking-deletion requests
- Add positive API assertions
- Add negative API assertions
- Add status-code assertions
- Add response-body assertions
- Add response-time assertions
- Execute the applicable manual and API test cases
- Record Actual Result and Pass or Fail status
- Confirm, revise or discard the defect-report drafts
- Export a sanitized Postman collection
- Add API execution screenshots
- Prepare the combined test-execution report
Direct API-to-database comparison will remain out of scope unless the selected API provides authorized access to its underlying database.
Dhruba Aryal
QA Automation, API Testing and Database Testing Portfolio
This project is licensed under the MIT License. See the LICENSE file for details.