5. Online Store
Objective
Trailhead Shop is an online store of expedition gear: tents, sleeping bags, thermoses, knives, ropes, stoves, lights and backpacks. Your task is to test the whole shopping journey — from searching the catalog to placing an order and tracking its status — against the requirements below, and find all the bugs and usability issues.
Requirements
General:
- The shop is available in English and Russian. Prices are in US dollars ($) in both versions.
- Anyone can browse the catalog and product pages. Adding to the cart or the wishlist, and placing orders, requires signing in.
- All data (users, carts, orders, reviews, stock) is stored in your browser. The Reset shop button in the Realbugz menu (the round «Rb» button in the top-left corner of the shop) deletes all of it and restores the initial stock. The same menu opens these requirements in a separate tab.
- All pages are usable on a phone (screen width from 360 px) with no horizontal scrolling. On a phone the filters are hidden behind the Filters button and the navigation — behind the menu button.
- The shop header contains the logo (leads to the catalog), search, Wishlist and Cart with item counters, and Sign in or the user's name (leads to the account).
Catalog:
- The catalog contains 64 products in 8 categories.
- A product card shows a photo, name, price (and the old price crossed out if there is a discount), rating, the Add to cart button and the wishlist button.
- Products that are out of stock are marked "Out of stock" and cannot be added to the cart.
- Search works by product name, is case-insensitive, ignores spaces at the beginning and end and starts from 2 characters. If nothing is found, the message "Nothing found" is shown.
- Filters: category (several can be selected), price from / to (whole numbers from 0, "from" not greater than "to"; boundaries are inclusive — a product priced exactly at the boundary is shown), "In stock only".
- Sorting: by popularity (default), price low to high, price high to low, name A–Z, rating.
- Search, filters and sorting work together. 12 products per page with page numbers below.
- After returning from a product page, filters, sorting and the page number are preserved.
- When a guest clicks Add to cart or the wishlist button, the sign-in page opens; after signing in, the user returns to the page they came from.
Product page:
- Breadcrumbs: Catalog → Category → Product.
- Photo, name, category, price, description and specifications.
- Stock: "In stock: N pcs" or "Out of stock".
- Quantity: from 1 to 10, but not more than the stock.
- Clicking the wishlist button again removes the product from the wishlist.
- Reviews: a rating from 1 to 5 stars and a text of 10–500 characters (spaces at the beginning and end are not counted). Only signed-in users can write a review, one review per product. The average rating is shown with one decimal place, next to the number of reviews.
Registration and sign-in:
- Name: 2–30 characters, letters (Latin and Cyrillic), spaces and hyphens.
- Email: a valid format, unique (case-insensitive).
- Password: 8–20 characters, at least one letter and one digit. There is a Show button.
- Password confirmation must match the password.
- The "I agree to the terms of use" checkbox is required.
- Errors are shown under the field as soon as you leave it. After registration the user is signed in.
- If the email or password is wrong, the message "Incorrect email or password" is shown (without specifying which one).
- The user stays signed in after closing the tab, until they click Sign out.
- Each user has their own cart and wishlist: after signing out they are hidden, after signing in they come back.
Cart:
- Each line shows a photo, name, price per item, quantity (− / + buttons and a field), line sum and a Remove button.
- Quantity: from 1 to 10 and not more than the stock. Trying to set more shows a message "No more than 10 pcs of one item per customer" or "Only N pcs available".
- Adding a product that is already in the cart increases its quantity (with the same limits).
- An empty cart shows a message and a link to the catalog.
- Delivery cost is calculated at checkout. All sums are rounded to cents.
Promo codes:
- Only one promo code per order. Letter case does not matter, spaces at the beginning and end are ignored.
TREK10— 10% off, only for items without a discount.SAVE15— $15 off if the items total is $100 or more.FREESHIP— free courier delivery (not express).SUMMER24— expired: the message "This promo code has expired" is shown.- An unknown code shows the message "Promo code not found".
Checkout:
- Recipient (prefilled with the profile name), phone ("+" and 10–15 digits), city (2–50 characters), street and house (3–100 characters), ZIP code (5–6 digits) — required; comment for the courier — up to 200 characters, optional.
- Delivery: store pickup — $0; courier — $10, free if the items total after discount is $150 or more; express — always $25.
- Payment: "Card online" or "Cash on delivery".
- One click on Place order creates exactly one order. The order gets a number like
RB-10001(in sequence), the cart is emptied, the promo code is reset and the stock is reduced. - Card payment is made on the order page while the status is "Awaiting payment": card number of 16 digits, expiry date MM/YY not in the past, CVV of 3 digits. Use the test card 4242 4242 4242 4242.
Order statuses:
- "Awaiting payment" — right after checkout with "Card online".
- "Paid, packing" — after card payment, or right after checkout with "Cash on delivery".
- "Shipped" — after "Paid, packing", when the order leaves the warehouse.
- "Delivered" — after "Shipped", when the courier delivers the order.
- "Cancelled" — the user clicked Cancel order; the stock is returned. An order can be cancelled only before it is shipped.
- The order page shows the status history with date and time.
My account:
- Profile: the name can be changed, the email cannot. Password change: current password, new password, confirmation.
- My orders: number, date, total and status; newest first. Clicking an order opens its details.
- Wishlist: product list, remove, add to cart.
Expected Outcome
Create a detailed bug report containing clearly identified issues, reproduction steps, actual and expected results, screenshots, and assessments of the potential impact. Try to apply test design techniques: boundary values, equivalence classes, decision tables and state transitions.
Simulator features:
This shop is for training purposes only: nothing is sold and no payments are made. Everything you enter — accounts, carts, orders, reviews — is saved only in your browser's local storage (localStorage) and stays on your computer: no data is sent to any server. Still, do not use real card details, email addresses or passwords.
In the top-left corner of the shop there is a round «Rb» button — the Realbugz menu. It opens these requirements in a separate tab (handy for switching while you test), the Reset shop button deletes all saved data and restores the initial stock, and ← Back to Realbugz returns you to the main site.
There is no real warehouse or courier: the shop imitates them. An order becomes "Shipped" 15 minutes after "Paid, packing" and "Delivered" one day after "Shipped". Time is taken from your computer's clock — to check these transitions without waiting, move the clock forward.