public class DeliveryControllerTest extends WebTestCase { public void testItShowsDeliveryDetailsForAValidTrackingCode() { // ... } public void testItDoesNotShowADeliveryForExpiredTrackingCode() { // ... } public void testItDoesNotShowADeliveryDeliveredMoreThanAMonthAgo() { // ... } } DeliveryController • it shows delivery details for a valid tracking code • it does not show a delivery for expired tracking code • it does not show a delivery delivered more than a month ago
1. Open a browser 2. Put the site URL in the browser and press enter 3. Give username 4. Give password 5. Press submit button 6. Check if I gained access to the secured area
Feature: Tracking deliveries As a Customer I need to see a status of my delivery So I could know when it's going to be delivered Scenario: Clicking a tracking URL Scenario: Clicking a tracking URL month after delivery
Feature: Tracking deliveries As a Customer I need to see a status of my delivery So I could know when it's going to be delivered Scenario: Clicking a tracking URL Given I am waiting for a delivery And I received a confirmation message When I click the tracking URL from the message Then I should see a status of my delivery Scenario: Clicking a tracking URL month after delivery Given I my package was delivered a month ago And I kept the confirmation message When I click the tracking URL from the message Then I should be informed the tracking URL has expired
Feature: Tracking deliveries As a Customer I need to see a status of my delivery So I could know when it's going to be delivered Scenario: Clicking a tracking URL Given I am waiting for a delivery And I received a confirmation message When I click the tracking URL from the message Then I should see a status of my delivery Scenario: Clicking a tracking URL month after delivery Given I my package was delivered a month ago And I kept the confirmation message When I click the tracking URL from the message Then I should be informed the tracking URL has expired
"I need users to sign into the site to track their delivery." "Why?" "So they could see where's their package." "Why?" "What do you mean? They need to track their deliveries." "Yes, but why?"
"Well, our mission is to offer the most customer friendly courier services. We want to increase the number of satisfied customers." "Aha!" "So they wouldn't get impatient and file complaints when the delivery is delayed." "Why?" "So they could know when is it going to be delivered." "Why?"
< 5% of customers filing complaints Customers Support Notifications Contact the Customer if delivery is delayed Add expected delivery time to the confirmation message SMS notifications Add a tracking URL to the confirmation message E-mail notifications List of deliveries after signing in Prevent complaints Check delivery status Why? Who? How? What?