入力の確認

作成日:2003-02-11
最終更新日:

値の確認

私が携わっていたかつてのプロジェクトで作成していたプログラムには、 多くのバグがあった。 その中には、今も私のホームページに存在する種類のバグがある。 それは、コンピュータの計算時に入力する値の確認である。 入力が正しくないと、当然のことながらコンピュータは不具合を起こす。

わかりやすい例を挙げよう。 私が携わっていたプロジェクトで開発したシステムには、 片対数グラフや両対数グラフを描画する機能がある。 この機能を使おうとして利用者が数値を入力したとたん、 異常終了することがあった。 賢明な読者はお気付きだろう。 そう、対数をとる部分の入力数値に負の値を入れていたのだ。 このバグは、入力の妥当性を確認するサブルーチンを作成することにより、 なくなった。

さて、自分のページはどうだろうかと振り帰ってみた。私のページには、JavaScript を用いて、 計算を行うページがある。 しかし、入力の妥当性についてはほとんど考慮していないのだった。 人の振り見てわが振り直せ、ということばもある。早速いくつかのページで、 入力の確認を行うようにした。その詳細は、 JavaScript 手習いの、 入力の確認に譲る。

バグの発見

さて、私はここから二つのことを考えた。 一つは、このバグがどのようにして明らかになったか、ということである。 これは、ユーザが発見したバグではない。 私がバグを見つけようとして怪しそうなこの個所に狙いを付けたら、 案の定見つかったという種類のバグである。 ところで、ユーザが発見したのではない、というのは正確ではないかもしれない。 次の事情が考えられる。

  1. ユーザは全くグラフ機能を使っていなかった
  2. ユーザはグラフ機能をを使う時、負の値を入れることは全くなかった
  3. ユーザは異常終了の現場を見て「負の数を入れてはいけない」と自らを納得させていた
  4. ユーザは会社の担当者に連絡したが、担当者は「負の数を入れないで下さい」で済ませていた
  5. ユーザは会社の誰かに連絡したが、 その誰かがプログラム修正依頼を責任者に伝えずにやり過ごしておいた

ほかにも多くの状況が考えられるし、上記の事情が複数同時に起こっていたかもしれない。 そのうちのどれが可能性が高かったのか。それによって、対応の仕方は違っただろう。 もちろんバグを直すことには変わりはない。しかし、他の対応として、 バグ発見から報告、修正、確認、伝達の経路をはっきりさせる、 ユーザが使っていなかったなら該当機能を削除する、なども当然考えられる。 当時はそこまで突っ込んで考えられなかった。

バグを排除するインターフェース

もう一つは、入力のインターフェースである。 今回は数値だからキーボードから入力しなくてはならない。 しかし、入力が限りある選択肢から選ぶものであれば、 GUI の特徴を活かして最初から入力に適したものだけを入れられるようにできたのだ。 文字を中心としたインターフェース(CUI)と、 グラフィクスを中心としたインターフェース(GUI)について、 利点や欠点がいろいろ言われている。 そのうち、GUI の利点として、 選択肢が限られている項目の入力が楽になるという側面がある。

ただ、選択肢が多すぎる場合に、どのようなインターフェースがよいかは一考の余地がある。 よく見る例では、WEB で都道府県名を選択させる画面がある。これは、 一覧が縦に伸びて、一瞬ぎょっとする。何かいい方法はないだろうか。

インターフェースの参考例

上記インターフェースの改善例は、 RMC 東京ニュースを読むというページでまとめた、 「optgroup タグによるグループ化」や 「JavaScript を利用したグループの動的表示」 などを参考にするとよい(2010-05-15)


まりんきょ学問所品質の部屋≫ 入力の確認


MARUYAMA Satosi