QA Exercise 15

Exercise · Bug Hunt (Checkout Form: Validation & Pricing)

QA · Hands-on
Fill out the checkout form, test invalid inputs, toggle shipping/payment, and submit multiple times. Find defects in validation, price calculation, state resets, and error messaging. Then present a spoken bug report.
Intentionally buggy: email validation is weak, ZIP code rules are wrong by country, shipping can be charged even when free, card validation is inconsistent, tax can be calculated on the wrong base, and error messages can persist after fixing inputs.
Try short card numbers, letters, or spaces.
0 submits
Items subtotal$54.70
Shipping$0.00
Tax$0.00
Total$0.00
Test ideas:
- Use email: "a@b" or "alex@site" (should fail)
- Country: Vietnam + ZIP: "12345" (rules differ)
- Shipping: Standard with subtotal > $50 (should be free)
- Payment: COD should hide card input and not validate card
- Submit twice quickly (double-submit / duplicate order risk)
🎯 Instructions (Oral) task flow
  1. Enter a name and test different emails (valid and invalid). Observe validation behavior.
  2. Change country and test postal codes (letters, short/long codes). See if rules update correctly.
  3. Toggle shipping options and compare expected shipping cost (especially free standard shipping over $50).
  4. Switch payment method to COD and verify whether card input is hidden and skipped during validation.
  5. Click Submit order twice quickly and observe messages and submit count.
  6. Present a spoken bug report with: Title, STR, Expected vs Actual, Severity/Priority, Recommendation.
📖 Vocabulary definitions
  • form validation — rules that prevent incorrect or incomplete input.
  • client-side validation — checks performed in the browser.
  • server-side validation — checks performed on the backend (should still exist).
  • required field — input that must be filled in to proceed.
  • postal code format — country-specific rules for ZIP/postal codes.
  • free shipping threshold — minimum subtotal for free shipping.
  • double-submit — submitting the same form twice (can cause duplicates).
  • error state — UI showing a failure message and blocking progress.
🧩 Collocations natural pairings
  • enforce validation rules / reject invalid input
  • show an error message / clear the error
  • apply shipping charges / qualify for free shipping
  • calculate tax / recalculate totals
  • prevent double-submit / disable the submit button
🗣️ Idioms & Phrasal Verbs natural speech
  • slip through — not get caught: “Invalid emails slip through validation.”
  • mess up — handle incorrectly: “The form messes up the shipping fee.”
  • kick in — start applying: “Free shipping should kick in over $50.”
  • clear out — remove: “The error message doesn’t clear out after fixing the input.”
  • lock down — make strict: “We need to lock down validation.”
🎤 Model Answer (spoken style) example

Bug title: Checkout validation allows invalid emails and incorrectly charges shipping; COD still triggers card validation.

Steps to reproduce: First, enter email “a@b” and click Submit. Next, set shipping to Standard and keep subtotal above $50. Then switch payment to COD and submit again. Finally, fix the email and observe whether the error clears.

Expected result: Invalid emails should be rejected, standard shipping should be free over the threshold, COD should skip card validation, and errors should clear after inputs are corrected.

Actual result: Invalid emails can slip through, shipping is still charged sometimes, COD still triggers card errors, and error messages can persist even after fixing inputs.

Severity / Priority: High severity, P1 — blocks checkout and risks incorrect charges.

Recommendation: Use stricter email/ZIP rules per country, apply free-shipping logic consistently, disable submit during processing to prevent double-submit, and reset error state on input change.