システム開発がからむサイト構築において、非常に重要である「テスト」工程。
ネットショップオーナーから見ても、開発者の手に委ねられていた工程が終わり、やっと目に見える形でシステムと関わる瞬間です。所がこのテスト、意外にも軽視されがちな工程でもあります。
順調に進んでいるプロジェクトであれば問題ないのですが、仕様の変更や追加などで手戻りがあり、納期が迫ってくると一番影響を受けるのがこのテスト工程です。しかしながら、このテストを甘く見てはいけません。
マイコミジャーナル「開発計画における性能の位置づけがもたらす落とし穴」には、こんな話が書かれています。
『運用直前のシステムに対して負荷テストを実施したところ、ほんの数名が同時に利用しただけでアプリが全く動かなくなってしまったこともあります。開発者に話を聞いたところ、このプロジェクトは要件定義の段階では曖昧な性能目標しか定義しておらず、具体的な数値目標が存在しなかったため、開発段階では性能要件が忘れ去られていたのです。結局このプロジェクトでは、性能問題を解決するのにそれから3ヶ月を要しました』
上記の場合、3か月かかったとは言え、問題がリリース前に発覚したという点ではまだ良い方だと思います。
一番怖いのは、リリースを公表しているので、これを遅らせる訳にはいかないが、開発は遅れており、仕方なくテスト工程の時間がつぶれていった場合・・。
リリース直後、お客様にご利用頂いた途端、全くアプリケーションが動かなかったという事態になったら、大変な事になってしまいます。考えただけでも恐ろしいですね。
この記事の中では、エンジニア自身が、性能目標として要件定義すべき最低限のものは何か認識すべきという見解が書かれています。
そこでさらに、エンジニアだけでなく、発注者であるオーナー自身も、この「アプリケーションの性能を定義する事」と「テスト工程に参加する事」で、事前にトラブルを防ぐことが出来るのではないのでしょうか。
テストの色々 単体テスト?結合テスト?
システムが絡むサイト構築などの場合、一般的に「テスト」という作業が行われるのはどのタイミングでしょうか。
「テスト」というと、プログラミングが正常に動くか試す事ですので、プログラム単体でのテストから、複数のプログラムを結合させてのテスト、さらにシステム全体が仕様通りに動くかのシステムテスト、実際の運用で問題が起きないかテストする運用テストなど、さまざまな工程でテストが行われます。
この中で特にネットショップオーナーが関わりがあるのは、検収(運用)テスト。発注した通りに実装されているか、最終判断をする段階です。
お金を払っているのだから動いて当然、開発側でテストしてから、こちらがテストするのだから、この時点でミスは無いはずでは?とお考えの方もいるかもしれません。勿論、開発側も、そういう気持ちでテストに望んでいるのは当然です。
しかし、あってはならない事ですが、どうしても開発者側では見つけにくいミスもあるものです。是非、この工程で積極的に参加協力し、一つでもミスを見つけて下さい。
1:開発した側がテストをしただけでは、「前提を誤解していた場合」のミスが発見出来ない。
2:誤操作、誤データによるテストは重要な項目だが、実際に使用する人が一番有用なテストデータを作りやすい。
こういった理由から、テスト工程を丁寧に行い、一つでも多くミス(バグも含め)を減らすことは、長い目でみて、発注者の利益となります。
開発の遅れは、非常によくある事です。ですが、テストの工程を短くして良い事は一つもありません。
最初から発注先と相談して、このテスト期間を充分に設けて下さい。それをする事で確実にアプリケーションの性能は上がります。
ここで少し怖い話を一つ、参考としてリンクさせて頂きます。テスト不足から起こった、システムトラブルの例です。
木暮 仁氏「経営と情報」に関する教材と意見より
みずほフィナンシャル・グループ合併システムのトラブル
この記事を読んだ人におすすめの記事