366日目の12月31日にも注意--マイクロソフトが「うるう年」バグの防止法を伝授

Mary Jo Foley (Special to ZDNet.com) 翻訳校正: 編集部 2016年02月04日 10時35分

  • このエントリーをはてなブックマークに追加

 2016年はうるう年だ。Microsoftは「Microsoft Azure」ブログで、うるう年関連で作り込んでしまいがちなバグに関する有益なアドバイスを提供している。

 MicrosoftのシニアソフトウェアエンジニアであるMatt Johnson氏による米国時間2月2日付けの投稿では、開発者が注意すべき点として以下の3つが挙げられている。

  • Off-by-oneエラー。特に、日付の範囲を取得してデータを選別する際の処理。
  • ユーザーインターフェースにおける、ユーザーの予期しない、あるいは好ましくない操作。
  • 境界条件における例外やクラッシュ、ハングの可能性。

 Johnson氏は多くの場合、単体テストのみでは不十分だと述べている。こういった問題は、開発されたコードがクラウド上で稼働するかどうかに関係なく発生する。

 同氏は「うるう年関連のバグはいたるところで、そしてあらゆる言語のコード上で見かけるが、最も危険なのはCやC++で記述されたコードだ。こういった言語では、アプリケーションのクラッシュやバッファオーバーフロー(セキュリティリスクにつながる)を引き起こす可能性がある」と記している。

 同氏によると、年を対象に加算や減算を行うCやC++のコードと、1年のそれぞれの日に対応した値の配列を宣言しているコードはいずれも、うるう年関連の問題を引き起こしやすいという。

 また、うるう年で影響を受ける日は2月29日だけではない。Johnson氏は開発者に対して、1年の366日目となる12月31日にも気をつけるよう促している。同氏は開発者に対して、自らのコードを精査し、「システム時刻の変更」による単体テスト手法を身に付け、うるう年直前だけではなく年を通じてテストするようアドバイスしている。

 Johnson氏の投稿「あなたのコードはうるう年の準備ができている?」には、ほかにもアドバイスやヒントが書かれている。


この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

  • このエントリーをはてなブックマークに追加

この記事を読んだ方に

関連ホワイトペーパー

連載

CIO
インシデントをもたらすヒューマンエラー
トランザクションの今昔物語
エリック松永のデジタルIQ道場
研究現場から見たAI
Fintechの正体
米ZDNet編集長Larryの独り言
大木豊成「仕事で使うアップルのトリセツ」
山本雅史「ハードから読み解くITトレンド放談」
田中克己「2020年のIT企業」
松岡功「一言もの申す」
松岡功「今週の明言」
内山悟志「IT部門はどこに向かうのか」
林 雅之「デジタル未来からの手紙」
谷川耕一「エンプラITならこれは知っとけ」
大河原克行「エンプラ徒然」
内製化とユーザー体験の関係
「プロジェクトマネジメント」の解き方
ITは「ひみつ道具」の夢を見る
セキュリティ
「企業セキュリティの歩き方」
「サイバーセキュリティ未来考」
「ネットワークセキュリティの要諦」
「セキュリティの論点」
スペシャル
ざっくりわかるSNSマーケティング入門
課題解決のためのUI/UX
誰もが開発者になる時代 ~業務システム開発の現場を行く~
「Windows 10」法人導入の手引き
ソフトウェア開発パラダイムの進化
エンタープライズトレンド
10の事情
座談会@ZDNet
Dr.津田のクラウドトップガン対談
Gartner Symposium
IBM World of Watson
de:code
Sapphire Now
VMworld
Microsoft WPC
Microsoft Connect()
HPE Discover
Oracle OpenWorld
Dell EMC World
AWS re:Invent
AWS Summit
PTC LiveWorx
より賢く活用するためのOSS最新動向
古賀政純「Dockerがもたらすビジネス変革」
中国ビジネス四方山話
ベトナムでビジネス
米株式動向
日本株展望
企業決算