QA Exercise 8

Exercise · Bug Hunt (Notification Preferences & Quiet Hours)

QA · Hands-on
Configure channels (Email/SMS/Push), frequency, timezone, and quiet hours. Send a test alert. Find defects in toggles, time parsing, timezone offsets, rule deletion, duplicate rules, and summary counts. Report via STR → Expected vs Actual → Severity/Priority → Recommendation.
Intentionally buggy: channel toggles invert, quiet hours use wrong end-time logic, 12 AM/PM parsing broken, timezone ignored (fixed UTC), deleting a rule removes the next one, duplicates allowed, “Saved” shown randomly, test alert uses wrong channel, counts desync.
Tip: Try 12:00 am and 12:00 pm edge cases.
0 rules • 0 channels
Custom rules (add multiple; duplicates allowed on purpose)
🎯 Instructions (Oral) task flow
  1. Turn on Email and Push, leave SMS off. Set frequency to Daily.
  2. Set timezone to Europe/London. Enter quiet hours: 10:00 pm7:00 am. Then try 12:00 am12:00 pm.
  3. Add two rules named “Marketing” (Email/Daily) and “Ops” (SMS/Immediate). Add “Marketing” again (duplicate).
  4. Delete the second rule and observe which row actually disappears. Check the rules and channels counter.
  5. Click Save settings a few times. Then click Send test alert and note which channel(s) it claims to use.
  6. Present your spoken bug report: TitleSteps to ReproduceExpected vs ActualSeverity/PriorityRecommendation.
📖 Vocabulary definitions
  • toggle — a control that switches a setting on or off.
  • quiet hours — times when notifications should be suppressed.
  • time parsing — converting text like “7:30 pm” into a time value.
  • timezone offset — difference from UTC used to compute local times.
  • idempotent — repeating an action yields the same result (e.g., save doesn’t duplicate).
  • deduplication — removing repeated/identical entries from a list.
  • consistency — UI state and counters match the actual data.
  • suppression — intentionally blocking messages during quiet hours.
🧩 Collocations natural pairings
  • enforce quiet hours / respect timezones
  • parse AM/PM times / normalize to 24-hour
  • deduplicate rules / prevent conflicting settings
  • persist preferences / confirm saved state
  • verify channel routing / log deliveries
🗣️ Idioms & Phrasal Verbs natural speech
  • flip on/flip off — enable/disable: “Email flips off when I turn it on.”
  • trip up — cause mistakes: “12 PM/AM trips up parsing.”
  • line up with — match: “Counters don’t line up with rules.”
  • paper over — hide problems: “Random ‘Saved’ papers over failures.”
  • track down — locate: “Track down the off-by-one deletion bug.”
🎤 Model Answer (spoken style) example

Bug title: Toggle states invert; quiet hours and AM/PM parsing are incorrect; timezone ignored; deleting rules removes the wrong row; counters desync; test alert routes to the wrong channel.

Steps to reproduce: Enable Email and Push, set Daily. Choose Europe/London. Enter quiet hours 10:00 pm → 7:00 am, then 12:00 am → 12:00 pm. Add “Marketing” (Email/Daily) and “Ops” (SMS/Immediate), then add “Marketing” again. Delete the second row. Save several times and send a test alert.

Expected result: Toggles reflect user input, quiet hours suppress alerts locally with correct AM/PM parsing, timezone offsets applied, delete removes the selected row, counts equal current data, test alert uses selected channels only.

Actual result: Channel toggles invert, quiet hours treat the end as inclusive and block all day, 12 AM/PM is flipped, timezone fixed to UTC, delete removes the next row, counters over/under-count, and test alert ignores selections.

Severity / Priority: Major severity, P1 — users may miss or get spammed by alerts; routing is unreliable.

Recommendation: Normalize times to 24-hour, fix 12 AM/PM logic, apply real timezone offsets, make save idempotent with explicit success/error states, bind delete to stable IDs, deduplicate rules, and compute counters from canonical state.