応用情報技術者試験 過去問 2010年(平成22年) 秋期 午後 問10

ソフトウェアパッケージ開発プロジェクトでの品質管理

Y社は、企業向けのソフトウェアパッケージを開発し、販売している。Y社では、現在、販売管理パッケージの全面改訂プロジェクト(以下、改訂プロジェクトという)を進めている。現行の販売管理パッケージは、度重なる仕様の追加・変更によってデータベースへのアクセスが複雑になり、レスポンスに悪影響を及ぼす状況が発生している。今回の改訂は、顧客から寄せられた要望への対応と、レスポンスの向上を目標としている。

販売管理パッケージの開発言語はJavaで、データベースには関係データベースを使用している。改訂プロジェクトの体制は図のとおりである。

改訂プロジェクトの体制図 - プロジェクトマネージャを中心とした技術支援チーム、開発管理チーム、A・B・Cチームの構成
図 改訂プロジェクトの体制図

A~Cチームは、それぞれ異なるサブシステムの開発を担当する。技術支援チームはデータベース設計の検証とプログラムのデータベース処理性能面に関する技術支援を担当する。開発管理チームは品質管理を担当する。

改訂プロジェクトは現在、プログラムの詳細設計工程を完了し、コード作成・単体テスト工程を開始したところである。

コード作成における品質管理

コード作成は、プログラムのコード作成、チェックリストに基づくコードの自己チェック、ピアコードレビュー、及びコードインスペクションの手順で実施する。

プログラムのコード作成では、詳細設計書に基づいて、Java言語コーディング規約に準拠したコードを作成する。自己チェックでは、コード作成の担当者自身が、チェックリストの項目に沿ってプログラムのコードを確認する。チェックリストは、本人の簡単な確認で是正できるチェック項目を列挙したものである。開発管理チームはチェックリストを提供し、必要に応じて、工程途中でもチェック項目の追加・改定をする。

ピアコードレビューでは、チームリーダが進行役となり、チーム内のメンバ同士でプログラムのコードを相互に確認する。コードインスペクションでは、技術支援チームが①特定の視点に絞ってプログラムのコードを検査する。

ピアコードレビューとコードインスペクションの品質基準は、次のとおりである。

  1. ピアコードレビュー
    • 作成されたプログラムのコードすべてをピアコードレビューの対象とする。
    • レビューを実施した結果の指摘数と、レビュー対象コードの行数からプログラム単位の指摘密度を算出する。
    • 指摘密度は、過去の類似プロジェクトにおける指摘密度の平均値である10件/千行に対し、±50%以下を適正範囲の目安とする。
    • 指摘密度が適正範囲の上限を上回ったプログラムについては、品質管理上の対策として、指摘への対処完了後、再度ピアコードレビューを実施する。
  2. 技術支援チームによるコードインスペクション
    • データベース処理を含むコードをすべてコードインスペクションの対象とする。
    • コードインスペクションによる指摘数は、指摘密度による管理対象としない。

単体テストにおける品質管理

単体テストは、プログラム単位に、コード作成担当者以外のメンバが、単体テストケースに基づいて実施する。単体テストケースは、単体テストを実施するメンバが、詳細設計書の要求事項を網羅するように作成する。単体テストで発見した不良については、一覧形式の管理表に記録し、プログラム単位の不良密度を算出する。

単体テストの品質基準は、次のとおりである。

  • 不良密度は、過去の類似プロジェクトの平均値を参考に設定した標準値である10件/千行に対し、±50%を適正範囲の目安とする。
  • 不良密度が適正範囲の上限を上回った、又は下限を下回ったプログラムについては、開発管理チームが問題点の有無を確認し、必要な場合には、品質管理上の対策を指示する。
  • 単体テストケースの妥当性を確認する一つの目安であるケース密度を算出するために、プログラムごとの単体テストケース数も測定する。過去の類似プロジェクトのケース密度の平均値を参考に、標準値を100ケース/千行に設定するが、適正範囲の設定は特に行わないものとする。

初期点検

コード作成・単体テスト工程全体の約2割まで進んだ時点で、開発管理チームは、工程の初期段階の問題から品質管理面の改善策を導き出す目的で初期点検を開始した。

初期点検では、チーム単位に、ピアコードレビューと単体テストを現時点までに終えているプログラムに対し、評価を実施することにした。開発管理チームは、最初にAチームのピアコードレビューの状況を表1にまとめた。

表1 初期点検におけるAチームのピアコードレビューの状況
プログラム コード行数
(千行)
指摘数
(件)
指摘密度
(件/千行)
評価
プログラム1 1.0 14 省略
プログラム2 2.0 24
プログラム3 1.5 12
プログラム4 1.0 18

A~Cの各チームとも、チェックリストに記載されている項目の確認は適切に実施されていた。しかし、ピアコードレビューでは、Java言語コーディング規約に規定されたコメントが、プログラムのコードに記載されていないという指摘が多かった。開発管理チームは、本人の簡単な確認で解消させるような②改善策を講じることにした。

開発管理チームは続けて、Aチームの単体テストの状況を表2にまとめた。品質管理上の対策として、プログラム1については、ピアコードレビューを再度実施してaを確認し、プログラム3については、bを確認するようAチームに指示した。

表2 初期点検におけるAチームの単体テストの状況
プログラム コード行数
(千行)
不良数
(件)
不良密度
(件/千行)
テストケース数
(件)
評価
プログラム1 1.0 18 18.0 110 不良密度が適正範囲の上限を上回った。
プログラム2 2.0 16 8.0 180 問題なし。
プログラム3 1.5 3 2.0 90 cが適正範囲のd
プログラム4 1.0 9 9.0 120 問題なし。
出典:平成22年度 秋期 応用情報技術者試験 午後 問10