QA Exercise 7
Exercise · Bug Hunt (Meeting Scheduler · Timezones & DST)
QA · Hands-on🎯 Instructions (Oral) task flow
- Create a meeting on the last Sunday in March or October, set 7:30 pm in Europe/London (DST edge).
- Add attendees in New York, Berlin, Ho Chi Minh City, Tokyo, and Sydney.
- Generate local times; then switch the organizer timezone to UTC and regenerate.
- Remove the second attendee and observe which row actually disappears; add the same person twice.
- 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.
- Present your spoken bug report: Title → Steps to Reproduce → Expected vs Actual → Severity/Priority → Recommendation.
📖 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.