This project automatically tests how customers manage their delivery addresses on an e-commerce website. Instead of manually checking that address forms work correctly, my automated tests verify the complete address lifecycle - from creation to deletion - ensuring customers can reliably manage their shipping information.
- Prevents Failed Deliveries: Catches address form bugs before they cause shipping problems
- Reduces Returns: Ensures accurate address capture prevents packages going to wrong locations
- Improves Customer Trust: Customers can confidently manage their delivery preferences
- Saves Support Time: Fewer calls about "where's my package?" issues
The automated tests verify the complete address management experience:
- Login → Can customers access their account?
- Navigate to Addresses → Is the address section accessible?
- Create New Address → Does the address form work properly?
- Verify Details → Are all address fields saved correctly?
- Delete Address → Can customers remove old addresses?
- Confirm Deletion → Is the deletion properly confirmed?
The tests are written in plain English using Behavior Driven Development (BDD):
Given I'm logged into my account
When I create a new address with "Home", "Avenida Marconi", "Lisbon"
Then all my address details should be saved correctly
And I should be able to delete the address when no longer neededThink of it like a meticulous customer who:
- Signs into their account
- Navigates to address management
- Carefully fills out address forms
- Double-checks every detail is correct
- Tests the delete functionality
- Reports any problems immediately
| What We Test | Status | Business Value |
|---|---|---|
| Address Form Validation | Working | Prevents shipping errors |
| Data Persistence | Working | Ensures reliable storage |
| Address Deletion | Working | Allows account cleanup |
| Success Messaging | Working | Clear user feedback |
- Selenium WebDriver: Controls the web browser automatically
- Java: Programming language for test logic
- Cucumber BDD: Makes tests readable in plain English
- Page Object Model: Keeps test code organized and maintainable
- JUnit: Executes tests and validates results
The project follows industry best practices:
Pages/ → Each webpage has its own class
├── AuthenticationPage → Handles login
├── MyAccountPage → Account navigation
├── AddressesPage → Address list management
└── NewAddressPage → Address form operations
Steps/ → Test scenarios in plain English
Features/ → Business requirements as test cases
# Execute address management tests
mvn test
# View test report
Open: target/cucumber-report.htmlAutomation validates address data integrity and provides clear success confirmations.
WorkshopTask1.mp4
Address bugs are expensive: What looks like a simple form actually causes a ton of headaches - wrong addresses mean failed deliveries, angry customers calling support, and packages bouncing back
Learned to test in depth: Instead of just checking if forms submit, I validated the complete data journey - ensuring what customers type matches exactly what gets saved and displayed back