日付計算で13月が生まれる!?実際のバグ事例から学ぶUnitテストの必要性 by すか

PHPカンファレンス福岡2023
LT(5分)

日付計算で13月が生まれる!?実際のバグ事例から学ぶUnitテストの必要性

sucalul すか sucalul
1

私は、現在の会社で約1年間、料金チームに所属していました。このチームでは、締め日や売上日など、ビジネスにとって重要な日付の扱いが欠かせません。しかし、日付計算には様々な落とし穴があり、月末処理が適切に行われなければ企業に請求できないなど、クリティカルなバグを引き起こす可能性もあります。

日付計算は、時にうるう年や月末日の考慮が必要であり、さらにタイムゾーンの扱いも慎重に行わなければなりません。そのため、日付計算で様々なバグが発生することがあります。

このセッションでは、実際に発生した日付計算のバグについて取り上げ、実際のコードを交えながらその原因や修正方法について話します。

具体的には、以下のバグを取り上げます。

  • 13月が生まれてしまったバグ
  • プラン終了の1ヶ月前に送るべきメールが送信されていなかったバグ

これらのバグは、特定の日付でのみ発生するため、十分な手動テストが困難です。そのため、Unitテストによる日付計算のテストについても取り上げます。