ソフトウェア技術者に向けて、バグに関する基礎知識をまとめていく新シリーズ「バグ百科事典」。第5回は、学生のプログラミング作成を事例に「実装抜け」のバグを取り上げます。学生の事例ですが、プロも意外とやりがちなので気を付けておきましょう。
「バグ百科事典」では、筆者が気になったバグを紹介し、読者の「バグの早期発見」
「バグの未然防止」に役立てていただくものです。今回は、学生からヒントを得たバグを紹介します。学生の話ですが、プロの開発現場でもよく起きるバグです。
過去のコラムでも何回か説明しましたが、学生とプロの開発方式には違いがあります。最も大きいのは、開発規模、働き方、品質要求の違いでしょう。
学生が作成するプログラムの開発規模は、多くて1000行程度です。また、学生は労働基準法を順守する必要はなく、熱意と体力が続き、空腹を我慢できる限り作業に没頭します。ただし、学生が作るのは、「正常データで正常ケースさえ動けばよいプログラム」なので、異常ケースは考えません。
プロのソフトウェア開発の規模では、数万行は当たり前で、携帯電話機やコピー機のソフトウェアのように数百万行もの大規模プログラムを作成、保守します(書籍なら、数千冊の大河歴史小説に相当します)。
会社では働き方が決まっており、始業時間や終業時間はきちんと守らねばなりません。品質要求は非常に高く、ささいなバグでもユーザーの不信感につながりますし、異常ケースも設計しなければなりません。異常ケース系の処理は、筆者の感覚では、プログラム全体の50〜80%になると思います(社会生活で、人は絶対に間違いをせず、悪意のある人もいないと仮定すると、警察、鍵、印鑑、契約書、クレジットカードなど全て不要。スーパーマーケットでも宝石店でも、段ボール箱を1個置き、「代金をここに入れ、釣り銭をお持ちください」と書けばよく、無人営業できますので、世の中の半分以上の処理や仕事が不要になります)。
学生とプロのエンジニアには上記の違いはありますが、筆者は、学生に生きる問題は、プロのエンジニアにも当てはまると思います。
以下、実際に学生の開発で起こったバグを紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.