バグはどこにでも存在する
近年では、ソフトウェアの適応領域も広がっており、普段の生活の中にもさまざまな機器で使われている。その結果、ソフトウェアのバグが引き起こす事件も増えている。
記憶に新しいところでは、SUICAの自動改札が自動改札機のメーカーのソフトが原因で一時停止するという事件もあった(半日で復旧)。コンピューターゲームにおいては、ゲームの進行に大きな支障をきたし、回収されたものもある。また裏ワザもソフトウェアのバグを利用したものである。
自動車においてはトヨタのハイブリッド車「プリウス」が、車載コンピューターのプログラムミスで一部の電気系統に不具合が発生し、約16万台の自主回収・無償修理を行った。このようにソフトウェアのバグは大きな損害を発生させることもある。
さらに、毎月さまざまなソフトウェアの脆弱性に関するニュースが流れているように、ソフトウェアのバグはセキュリティホールにもなることを忘れてはいけないだろう。セキュリティホールは、パッチなどの適用によって防ぐことができ、その情報には常に敏感になっていることだろう。
冒頭でも述べたように、ソフトウェア開発においてバグは常につきまとうものである。しかし、バグの管理を怠ると最終的な成果物において、大きな損失や損害が生まれる。限られた期間の中で、効率よく最大限バグを排除することが、求められるのである。
バグを効率的に管理する必要性
バグを効率的に排除する方法として、ソフトウェアのソースコードを公開して開発を進めることも1つの手である。エリック・レイモンド氏が「伽藍とバザール(訳:山形浩生氏)」の中で「目玉の数さえ十分あれば、どんなバグも深刻ではない」と述べているとおり、多くの開発者の目によってバグを減らすことができる。それは最終的にソフトウェアの品質に寄与する。
しかし、それが難しいのが実情でもある。特に企業システムの開発においては、ソフトウェアの情報自体がセキュリティホールになる場合もある。そのため、自社内においてバグの排除を行うことが一般的であろう。そのためバグの効率的な管理が重要である。バグの管理がうまくできないと、せっかく発見したバグを解消しないまま成果物として納品してしまうこともある。
では、実際にどのような手法でバグの管理は行われているのだろうか。まずはバグを管理するツールについてみていこう。 次のページ