連載
» 2020年02月13日 10時00分 公開

山浦恒央の“くみこみ”な話(126):ソフトウェア技術者のためのバグ百科事典(5)意外に多い「実装抜け」のバグ (1/3)

ソフトウェア技術者に向けて、バグに関する基礎知識をまとめていく新シリーズ「バグ百科事典」。第5回は、学生のプログラミング作成を事例に「実装抜け」のバグを取り上げます。学生の事例ですが、プロも意外とやりがちなので気を付けておきましょう。

[山浦恒央 東海大学 大学院 組込み技術研究科 非常勤講師(工学博士),MONOist]

⇒連載「山浦恒央の“くみこみ”な話」バックナンバー

1.はじめに

 「バグ百科事典」では、筆者が気になったバグを紹介し、読者の「バグの早期発見」

「バグの未然防止」に役立てていただくものです。今回は、学生からヒントを得たバグを紹介します。学生の話ですが、プロの開発現場でもよく起きるバグです。

2.学生とプロのソフト開発の違い

 過去のコラムでも何回か説明しましたが、学生とプロの開発方式には違いがあります。最も大きいのは、開発規模、働き方、品質要求の違いでしょう。

 学生が作成するプログラムの開発規模は、多くて1000行程度です。また、学生は労働基準法を順守する必要はなく、熱意と体力が続き、空腹を我慢できる限り作業に没頭します。ただし、学生が作るのは、「正常データで正常ケースさえ動けばよいプログラム」なので、異常ケースは考えません。

大河歴史小説 ※写真はイメージです

 プロのソフトウェア開発の規模では、数万行は当たり前で、携帯電話機やコピー機のソフトウェアのように数百万行もの大規模プログラムを作成、保守します(書籍なら、数千冊の大河歴史小説に相当します)。

 会社では働き方が決まっており、始業時間や終業時間はきちんと守らねばなりません。品質要求は非常に高く、ささいなバグでもユーザーの不信感につながりますし、異常ケースも設計しなければなりません。異常ケース系の処理は、筆者の感覚では、プログラム全体の50〜80%になると思います(社会生活で、人は絶対に間違いをせず、悪意のある人もいないと仮定すると、警察、鍵、印鑑、契約書、クレジットカードなど全て不要。スーパーマーケットでも宝石店でも、段ボール箱を1個置き、「代金をここに入れ、釣り銭をお持ちください」と書けばよく、無人営業できますので、世の中の半分以上の処理や仕事が不要になります)。

 学生とプロのエンジニアには上記の違いはありますが、筆者は、学生に生きる問題は、プロのエンジニアにも当てはまると思います。

 以下、実際に学生の開発で起こったバグを紹介します。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.