どんなソフトウェアでも少なからず不具合があるので、 バグの修正版や機能を追加したものがバージョンアップと称して提供される。 そのため、一般にはソフトウェアは最新版を使った方がいいと考えられている。 しかしながら、 時としてさまざまな理由からトラブルを引き起こすこともある。 そこで、今回はソフトウェアの更新にまつわる話を考えてみる。
バージョンアップしてますか
個人的に使用するソフトウェアのほとんどは、 ネットで公開されているいわゆるフリーソフトでほとんど事足りている。 日常使うソフトウェアは10〜20程度であるにもかかわらず、 それらのソフトウェアすべてを最新版にしているとは言えないのが実情だ。 これらの理由を考えてみると、 更新されているかどうか確認するのに手間がかかるというのが大きいだろう。 また、現在の設定や過去の情報がきちんと引き継がれるのかという不安もある。
ただし、商用のソフトウェアに関して言えば、 特に新しい機能を必要としていない、 大幅なバージョンアップには追加コストが必要となるため、 インストールしたまま使用してるケースも多いだろう。 また、最近でこそ影響の大きなソフトウェアであるOSのサポート期間が5年以上と長くなったが、 ベンダもバージョンの古いソフトウェアに対するサポートは、 PL法が適用されないこともあり、積極的に行なわないのが一般的だ。 大手家電メーカのPCに対して、 家電と同様の6〜8年程度の部品の保有期間を定めているのとは対照的である。 もっとも家庭用PCがそれほど長期に使われた上に、修理されることは少ない。
自動更新は便利だけど
定期的にバージョンアップしてもらうための対策としては、 商用ソフトウェアによくある自動更新のシステムである。 もっともよく使われているのが、マイクロソフトのWindows Updateであろう。 昨今のセキュリティ上の理由からWindows Updateは誰もが定期的に実施しているはずだ。 また、ウィルス駆除ソフトはデータの更新頻度が高いため、 自動更新が一般的に使われている。 Webブラウザを使用していると、プラグインの更新情報が表示されることもある。 オープンソースソフトウェアであるLinuxやFreeBSDにも、 パッケージ管理用ソフトウェアがあり、 ダウンロードした最新版をインストールしてくれる機能がある。
ただし、 ダウンロードされたデータやプログラムが正規のものであると確認した上で、 インストールしているものは意外と少ない。 本来、インストールしようとするパッケージに対して署名されていることが必要だ。 例えば、Linuxでよく使われている RPMには署名されるようになっている。 あるいは、FreeBSDのように、 ソースコードからコンパイルしてインストールする方法も有効である。 なお、Windowsの場合、ActiveXが有効になっていると、 ブラウザ経由で自動的にインストールされてしまう危険性もある。 MacOS最新版にも同様の危険性がある。
利便性を考えると自動更新は有用であるのは確かだ。しかしながら、 ソフトウェアの動作が保証されていないことが今回の騒動につながっている。 Windowsでもサービスパックのように大幅に入れ換えるようなものは、 検証してから使うように訴えている。 また、それぞれのソフトウェアが独自に自動更新する仕組みではなく、 もっと共通化して使えるようにする必要があるだろう。
テストにも限界
最近のソフトウェア開発では、 設計時に動作テストを決めて、開発中も常にテストを続ける「テストファースト」が 行なわれている。 そのため、本来このような不具合が発生する可能性は減ってもおかしくないはずである。
ウィルス駆除ソフトの不具合が原因で多数のパソコンに障害が発生し、 基幹系システムにも障害が発生したことで各種メディアで大きく報道された。 最新環境であるはずのWindows XP SP2で試験をしていなかったことが、騒動の一因である。 しかしながら、この場合には単純な人為的なミスとしては言い切れないだろう。 そもそも、さまざまなバージョンのOSやライブラリ等の組合せを考えると、 それだけの動作環境をそろえた上でテストするのは容易ではない。 むしろ、サービスパックを適用するという、 いわばバージョンアップしたOS環境のみで発生したことや、 アプリケーション一つの不具合がOS全体に影響することにも問題があった とも言えるのではないだろうか。 もちろん、ソフトウェアの性質上短期間で対応が求められるため、 ソフトウェア単体のテストが不十分であった可能性もある。
他にインストールされているソフトウェアの影響を受ける可能性があることを考えると、 すべての動作環境でのテストなどは既に現実的ではないのかもしれない。 実際、相性という言葉で問題が片付けられているものもある。 同様に、更新の速いWebブラウザの各種バージョンに対応させることも容易ではない。 比較的依存関係がはっきりしているプラットフォームであるLinuxでも ディストリビューションが多数あることを考えると、 商用ソフトウェアを提供するベンダにとって同様の問題が発生する可能性は高い。
重要なシステムであれば、ユーザ自身が実環境でテストすることが求められるにしても、一般ユーザにとってはベンダを信用して使うしかない。 それぞれのベンダが独自にテスト環境を構築するだけではなく、 共通に利用できるような環境を提供する、あるいは、 テストを実施するなどの独立した機関があるといいのではないだろうか。
本文中のリンク・関連リンク:
- ソフトウェアの更新にまつわるトラブル
- ソフトウェアの品質に関するTakeIT Easy記事