ビジネスでのIT活用術(IT初心者向け)-17:システム開発はテストが命

システム開発について大まかに言えば、次のようなプロセスがありますが、開発したシステムが問題なく運用できるようにするために、いちばん重要なのはテストです。

要件定義→システム設計→プログラミング→テスト

もちろん、どのようなシステムを開発するか決める要件定義や、その要件をどのようにシステムで実現するか設計して、その設計に基づきプログラミングを行いシステム構築するプロセスは重要です、しかし、案外その重要性が一般的には認識されていないように思えるのがテストで、その重要性は他のプロセスに負けず劣らず重要です。私としては、システム開発はテストが命といえます。

なぜなら、システム開発を終えて運用を始めると、様々な問題が発生するものですが、その問題の大半はシステムの不具合であり、それらはプログラムロジックやプログラム間の連携の問題であることがほとんどです。プログラムロジックやプログラム間の連携の問題については、テストをすることで発見することが可能です。すなわち、テストを行いそのような不具合を発見して、運用を始める前に不具合を解決しておくことが重要なのです。

テストで不具合を事前に発見するためには、システム開発ではテストに時間をかけるべきです。テストに十分な時間をかけないと、テストで不具合を発見することができずに、テストをしたけどエラーが無かったという結果になってしまいます。テストの結果、エラーがないというのは一見プログラムが優秀で問題がないように思われますが、実はシステムのテストでエラーがないのは問題です。つまり、本来であれば発見されるべき不具合が発見されずに、運用を始められることになります。

私も経験がありますが、一定以上のエラーが発見されない場合は、もちろん非常に優秀なプログラミングがされた場合もありますが、大抵はテストの仕方に問題がある場合が多いので、注意が必要です。

また、テストの仕方としては、テストを実施する要員は、プログラミング、すなわち実際のコーディングをした要員とは別要員ですべきです。これは、第三者の視点から、プログラムを検証するほうが不具合を発見しやすいためです。

最後に、業務プロセスの最初から最後までを実施するようなテスト、EtoE(End to End)テストと呼びますが、このようなテストをすることが望ましいです。これは、プログラム間やシステム間の連携に関する問題や不具合を発見するのに役立ちます。ドライランと呼ばれるいわゆるリハーサルを行うこともよくあります。

Follow me!

あなたのご意見をお知らせください。