1. HOME »
  2. Java Tips »
  3. Methodology & Design

Methodology & Design Article

ソーシャルブックマークに登録 : Yahoo!ブックマークに登録 はてなブックマークに登録 del.icio.usに登録 newsing it!に登録 Buzzurlにブックマーク livedoorクリップに登録 Choix!にブックマーク イザ!ブックマーク

print 印刷用ページの表示

プログラムの品質向上テクニック

第1回 さまざまな角度からソース・コードを検証する

プログラムの品質を高めることは、システム上の不具合を回避するうえで、とても重要です。本連載では、NTTコムウェアの「Javaソースコード検査チーム」がまとめた、プログラムの品質を高めるのに役立つテクニックや、多くのプログラムで見られるバグのパターン(バグ・パターン)を紹介します。

2006年6月26日更新

text ●  NTTコムウェア 長谷川 明

多方面からプログラムを検証する

 皆さんの中には、以下のようなシチュエーションに遭遇した方もおられるのではないでしょうか。

開発したシステムの納入先から、「システムの調子が悪いので見に来てほしい」との連絡が入った。早速、現場に出向き、該当のシステムが出力したログを調べてみたところ、例外java.lang.NullPointerExceptionが発生したことがわかった。どうやら、オペレーターが想定外のデータを入力したようだ。この種の不具合の場合、その発生場所を突き止めるには、あらゆるデータを使ってテストしなければならない。だが、さまざまなデータを用意したり、それを使って検証したりするのは、相当の時間と手間を要するはずだ……。

 上記のように、本稼働後のシステムに不具合が発生した場合は、その対応に相当のコストがかかってしまいます。

 こうした状況を回避するべく、筆者が所属するNTTコムウェアでは、「Javaソースコード検査チーム」という専門部隊を通じて、プログラムの検査を実施しています。例えば、これまでの実績データ(総検査規模は十数万ラインに上る)を基に、バグとなりやすいコード・パターン(バグ・パターン)を分析し、そうした実装部分を検査ツールなどで抽出します。そして、バグ・パターンの周辺を重点的に調べ、不良個所を特定するといった具合です。

 ただし、バグ・パターンを用いた不具合の特定作業の前に、プログラムを多方面から概観する必要もあります(詳細は後述)。そのうえで、「つぶせるバグがまだ残っているはず」という“もう一押し”的な心構えでバグ・パターンを検出/分析することが、プログラムの品質をより高めることにつながるのです。

 本連載では、NTTコムウェアにおけるソース・コード検査の実績から得られた、高品質なプログラムを実現するのに有用なテクニックやノウハウを数回にわたって紹介します。初回となる今回は、プログラムをどのような観点で検査すべきかについて解説します。併せて、「Javaソースコード検査チーム」が採用する検査ツールも取り上げます(ただし、本連載の主旨とは異なることから、各ツールの詳細な説明は割愛)。

 以下、NTTコムウェアでのソース・コード検査フローに沿って解説します。その作業手順は以下のとおりです。

(1)プログラム規模の測定とアーキテクチャの分析
(2)Javaソース・コードの文法チェック
(3)JSP/HTMLデータのチェック

ページの先頭へ戻る