QA Exercise 7

Exercise · Bug Hunt (Meeting Scheduler · Timezones & DST)

QA · Hands-on
Create a meeting and generate attendee local times. Find defects in time parsing, timezone offsets, DST handling, attendee actions, and summary counts. Use STR → Expected vs Actual → Severity/Priority → Recommendation.
Intentionally buggy: 12 AM/PM parsing wrong, DST ignored (static offsets), crossing-midnight date off-by-one, random minute rounding, removing an attendee deletes the next row, duplicate attendees can appear, summary count desyncs.
Attendees (0)
🎯 Instructions (Oral) task flow
  1. Create a meeting on the last Sunday in March or October, set 7:30 pm in Europe/London (DST edge).
  2. Add attendees in New York, Berlin, Ho Chi Minh City, Tokyo, and Sydney.
  3. Generate local times; then switch the organizer timezone to UTC and regenerate.
  4. Remove the second attendee and observe which row actually disappears; add the same person twice.
  5. Check for: wrong AM/PM interpretation, DST errors, dates shifting to the wrong day, inconsistent minutes, duplicate attendees, and summary counts that don’t match.
  6. Present your spoken bug report: TitleSteps to ReproduceExpected vs ActualSeverity/PriorityRecommendation.
📖 Vocabulary definitions
  • DST (Daylight Saving Time) — clocks shift forward/back seasonally, changing offsets from UTC.
  • timezone offset — the hours/minutes difference from UTC (e.g., UTC−5).
  • localization — adapting time/date to a user’s locale and timezone.
  • parsing — converting a text time (e.g., “7:30 pm”) into a machine time value.
  • rollover — when time calculations cross midnight and change the calendar date.
  • canonical ID — a stable timezone identifier like America/New_York.
  • edge case — unusual scenario (e.g., DST transition) likely to reveal defects.
  • single source of truth — one authoritative representation of the meeting time.
🧩 Collocations natural pairings
  • handle DST transitions / respect local offsets
  • parse 12-hour input / normalize to 24-hour
  • detect rollover / adjust the date
  • deduplicate attendees / sync summary counts
  • verify conversions / triage conflicting results
🗣️ Idioms & Phrasal Verbs natural speech
  • trip up — cause a mistake: “The DST change tripped up the offset.”
  • line up with — match: “Local times don’t line up with UTC.”
  • iron out — resolve: “We need to iron out AM/PM parsing.”
  • rule out — eliminate: “Rule out a data entry error; it’s a DST bug.”
  • edge out — slightly surpass: “The minutes edge out by +5 randomly.”
🎤 Model Answer (spoken style) example

Bug title: Scheduler ignores DST and misparses 12 AM/PM, causing wrong local dates/times; deleting attendee removes the wrong row; summary count desyncs.

Steps to reproduce: Set organizer to Europe/London on the last Sunday in March at 7:30 pm. Add attendees in New York, Berlin, HCMC, Tokyo, and Sydney. Generate times; switch organizer to UTC and regenerate. Remove the second attendee.

Expected result: Times reflect real DST offsets (London UTC+1, New York UTC−4, Berlin UTC+2, etc. when applicable). 7:30 pm parses correctly. Deleting an attendee removes that exact row. Summary count matches the visible list.

Actual result: Offsets use fixed UTC values (London 0, New York −5), some slots roll over to the wrong date, 12-hour parsing flips AM/PM, removing the second attendee deletes the next one, and the summary shows an incorrect total.

Severity / Priority: Major severity, P1 — high risk of missed meetings and confusion across timezones.

Recommendation: Use a timezone library with real DST data; normalize all inputs to UTC as the single source of truth; correct 12h→24h parsing; handle midnight rollover explicitly; bind actions to stable attendee IDs; always compute counts from current state.