システム開発の進行上、踏むべき手順として正しいか正しくないかという点を論じたいわけではありませんが、仕事としてシステム開発をする上では、予算の関係もあり、開発工数を抑えることはSEとして努力すべきことです。

そしてテスト工程での工数を削減するには、(現役のプログラマーとしては当たり前かもしれませんが)デバッグしながらコーディングをするとよい、という話をしていきたいと思います。

現代の開発環境だからこそデバッグしながらのコーディングが可能

かつては現代のように一人に一台パソコンが与えられているわけではなく、SEやPGが用意したプログラムを実行できるマシンも限られていました。そのためテストプログラムを実行しようと思っても、処理を流すにも順番待ちの状態が発生し、実行結果を確認するまでにとても時間がかかっていました。

何時間も待ってやっと返ってきた結果が想定通りでなければ、再度プログラムを修正し、処理結果を確認するのにまた数時間待たなければなりません。今考えると非常に効率が悪いのですが、コンピュータの性能もそこまで高くなかったため、ある意味仕方のないことでした。

しかし現代は違います。クライアント端末でがんがんプログラムを組んで、コンパイルをしてすぐに実行することができます。機械制御などで特別な環境が必要な場合は例外ですが、業務系システムの開発であれば、だいたいはその場で実行結果を確認することが可能でしょう。

だからこそデバッグしながらコーディングをすることで、テスト工程にかかる工数を削減することができるのです。エンジニアの負担も軽減されますので、ソースを書いている途中からどんどん動作確認を行えばよいと思います。

テスト工程でバグが見つかったときの対応

まずテストにおいてバグが見つかれば、もちろんその対応をしなければなりません。しかし不具合を生み出す箇所を修正して終わりではなく、いろいろと手がかかるものなのです。

不具合管理台帳のようなものを用意していれば、台帳に記載して対策済みなのか未対応なのかメンテナンスをする手間が生まれますし、修正箇所をただ直すだけでなく、修正によって影響が出てくるであろう箇所は、全て再テストをしなければなりません。

このように手間のかかるテスト工程ですが、プログラムに潜むバグを見つけるためには重要な工程となります。ただしテストも工数があまりかからないに越したことはありません。そしてテスト工数をかけないためには、バグ件数が少ないことが重要です。

テストまでにバグをつぶしておくことで工数を削減できる

バグ件数を少なくするために、テストをおろそかにしてしまえば品質の低下を招いてしまいます。しかしテストは抜け目なく行わなければなりません。そのためテスト工程に入るまでに、極力バグをつぶしておくことが、テスト工数を削減する秘訣となるのです。

プログラムを組んでいる最中から動作確認をして、仕様通りに動かないところは、その都度修正するようにしていきましょう。先にもご説明したように、現代の開発環境はデバッグしながらコーディングすることが容易なのですから。

その後のテストもバグを見つける気持ちで入念に実施

デバッグしながらコーディングを進めると「これだけ作りこんだのだからバグは出ないだろう」と思ってしまうかもしれませんが、テストはしっかりと「バグを見つけるぞ」という気持ちで取り組むようにしてください。

テストを行ってバグが0件というのも、管理者からは「本当にテストを行ったのか」と疑われてしまいます。小規模のプログラムであればバグ0件ということも珍しくはありませんが、ある程度の規模になればバグは必ず出てくるものです。

テストケースの作成時には先入観を取り除き、気を引き締めなおして作業に取り組むようにしましょう。

おわりに

システムエンジニアであれば、いかに工数をかけずに品質の高いシステムを構築できるか、という思考を持たなければなりません。

そしてテストにかける工数を削減するには、ある程度デバッグしながらコーディングしていくことが有効です。とは言ってもテストを雑にこなしてよいわけではないので、テストも入念に行い品質を高めていきましょう。

 



【X(旧twitter)でも情報発信中】

Xを最近始めたので、フォローしてもらえると嬉しいです(エンジニア界隈の方はフォローバックさせていただきます)! システム開発に関することや、最新テクノロジーのことなど、世のエンジニアにとって有用な情報を発信してます!

"X" @TECH_KEYSYS