CAT GETTING OUT OF A BAG

What the tester is thinking.

テスターのあたまの中(サマータイム開始日と終了日)

 

サマータイムが話題ですね。システムやソフトウェアに手を入れなければならないようなサマータイム導入には反対ですが、サマータイムをお題に「起きたら嫌なこと」や「気にしたいこと」を想像するのは面白い。思いついたことをメモしていこうと思います。*1

この記事は

  • きれいにまとめるつもりはないので、粒度はバラバラです
  • 重複しても気にしないことにします(無理に1つにまとめると隠れて見えなくなってしまうものがある)
  • わざと言葉を曖昧、省略してるものがあります(ここからさらに想像を膨らませたい)
  • 不定期に更新します
  • こちらのBCN+Rさんの記事が、とても分かりやすかったので、これをお題にしました。図もモディファイさせていただきました(気にしたい時刻、時間帯を、赤い線や丸印でマークしました)

www.bcnretail.com

サマータイム開始日の午前2時、3時台はスキップされる

f:id:miwa719:20180815092931p:plain

  • バッチ処理が実行されない
  • 予約処理が実行されない
  • 1日=24時間を意識した処理がおかしくなる
  • 経過時間を意識した処理がおかしくなる
  • この日、週、月、四半期、年などの統計値がおかしくなる
  • 歯抜けの日時はおかしくないのに異常だと判断される
  • 実行すべきでないバッチ処理が実行される
  • 実行すべきでない予約処理が実行される
  • 実行すべきでないタイムアウト処理が実行される

サマータイム終了日は午前2時、3時台が2回訪れる

f:id:miwa719:20180815165713p:plain

  • 実行すべきでないバッチ処理が実行される(2回目)
  • 実行すべきでない予約処理が実行される(2回目)
  • 実行すべきでないタイムアウト処理が実行される
  • 順番に並べることができない
  • タイムアウト処理が実行されない
  • 重複したデータが作成される
  • データが上書きされる
  • データが存在することを前提に動いている処理がエラーになる(例えば、1回目でデータ削除、2回目で削除するデータは存在しない)
  • 1日=24時間を意識した処理がおかしくなる
  • 経過時間を意識した処理がおかしくなる
  • この日、週、月、四半期、年などの統計値がおかしくなる
  • 重複した日時はおかしくないのに異常だと判断される
  • 実行すべきでないバッチ処理が実行される(2回目)のは、実は正しかった(仕様が間違っていた)
  • 実行すべきでない予約処理が実行される(2回目)のは、実は正しかった(仕様が間違っていた)

その他

  • ファイルやデータの作成日時、更新日時、削除日時を意識した処理はないか
  • 日時を元に計算してるものはないか
  • 時間、または単一時間内を何かでカウントしているものはないか
  • 表示用の日時を誤って計算用に使ってしまう
  • 内部処理用の日時を誤って表示用に使ってしまう
  • 表示用の日時と内部処理用の日時の変数名が似ているかもしれない(ミスしても気づきにくい)
  • お客様に直接関わる機能のサマータイム対応は万全だったが、メンテナンス用のツールやサービスツールが対応できていない(サマータイムに対応したことで、これまであまり使われることがなかったツールを使う羽目になることを予想)
  • インストール時に使用期限を設定しているものはないだろうか
  • お客様の環境で、これまで一度も通ったことのない「エラー処理」が初めて実行される(例えば、日時データがおかしいことが原因で)
  • お客様が使わないデータ(例えば、アクセスログ、操作ログ、エラーログ)がサマータイムに対応してなかった(不具合の解析などで困る)
  • サマータイム用のロジックが、サマータイムではない日、月、年に実行されてしまう
  • オンラインヘルプ、取扱説明書などへの記載(サマータイム対応)を忘れる
  • 自システム(サマータイム未対応)では問題が露見しないが、接続している他システム(サマータイム対応)では日時エラーになり、結局やりたいことができない
  • サマータイム対応前に登録したデータが、正しく処理できない
  • 接続している他システムがサマータイムに対応してるとは限らない(おかしな日時データが指定されても、システムが耐えられるか)
  • 接続している他システムがサマータイムに対応してるとしても、自分たちが想定してる日時データを指定してくるとは限らない
  • サマータイムに対応するために、データフォーマット、データベース、ファイル構造が変わるものがあるかもしれない
  • データサイズが変わったことで、受け渡しに使うデータ群の1番最後の項目が正しく処理されないかもしれない(1番最後の項目が、今回追加した日時データでない場合は、注目されにくいかもしれない)
  • サマータイムは馴染みがないため、正解を想像するのが難しい(不具合かどうかがわかりづらい)
  • その仕様は本当に正しいのか、お客様のやりたいことができるようになっているだろうか 

*1:わたしはテスターとして組み込み系製品の開発に従事しています。