品質管理は、ソフトウェアが定義された品質基準を満たしているかを確認し、必要な場合はその品質を向上させるための活動や手法を指します。
ソフトウェアの品質基準とは、メトリクス(ソフトウェアの品質を数値化して評価するための指標)を示します。メトリクスを評価することで、ソフトウェアの品質が確保されていることを確認し、改善します。
メトリクスの元となるデータを収集するためのプロジェクトの活動が、レビューとテストとなります。
レビューは、工程毎の成果物に対して、有識者を含むメンバーが内容を確認し、記述すべき事項の抜け漏れ、全体の整合性、内容の粒度と明確さ、考え方や見方の間違いなどを指摘し、改善する活動です。
レビューは、工程毎の成果物に限らず、プロジェクトで生成される細々としたアウトプットに対して実施される有効な手段です。レビュー自体の質は、レビューに参加するメンバーの知識や経験など、属人的な要素に左右されてしまうため、参加メンバーの選定が重要となります。
テストは、実際にソフトウェアを動作させ、仕様や機能がもれなく実装され、動作に欠陥がないかを検証する活動です。単体テスト、統合テスト、システムテスト、受け入れテストなど、テスト範囲を徐々に部分から全体へと広げながら段階を踏んで実施されます。
あわせて、ソースコードの質をチェックするツールの使用も品質管理の効率化を図る意味でも有効です。よく使われるツールに、静的解析ツール( ソースコードを実行せずにコードの品質や複雑さ、潜在的な欠陥を評価できる)などがあります。
品質管理の目的は、ソフトウェアの欠陥を最小限に抑え、プロジェクトの成功を確実にすることです。品質管理の活動は、ソフトウェア開発のライフサイクル全体に渡って組み込まれ、継続的に行われることで、最終的なソフトウェアの品質を向上させる役割を果たします。
■ まとめ
「レビューとテストにも、知識、スキル、センスがいる」
本当に品質を確保するには、泥臭くレビューとテストを実行する必要があります。
レビューに参加するだけとか、テスト項目を消化するだけとかでは、隠れた問題を洗い出すことはできません。