ソフトウェア品質保証(Software Quality Assurance, SQA)とは、
ソフトウェアの品質を適切に保証するために、プロジェクトで使用される
ソフトウェアエンジニアリングのプロセスと手法を監視する活動です。
SQAは、
ソフトウェアが品質基準を満たしていることを確認するために、管理者や開発者が
ソフトウェア製品と活動をレビューおよび監査する際に用いられる標準と手順を含みます。具体的には、
ISO/IEC 9126|ISO_IEC 9126(現在はISO 25010に置き換え)、SPICE、CMMIなどの規格に適合しているかを確認し、必要に応じて準拠を求められます。
Automotive SPICE(
ISO/IEC 15504|ISO_IEC 15504に基づく)では、SQAは全ての作業成果物、活動、プロセスが事前に定義された計画と品質戦略に準拠していることを独立して保証するサポートプロセス(SUP.1)と定義されています。このプロセスでは、プロジェクトの各段階で作成される成果物、実施される活動、および採用されるプロセスが、事前に定められた計画や品質戦略に適合しているかどうかを検証します。これにより、
ソフトウェア開発の初期段階から品質が確保されることを目指します。
SQAの活動範囲は、
要求工学から
ソフトウェア設計、コーディング、コードレビュー、ソースコード管理、
ソフトウェア構成管理、テスト、リリース管理、
ソフトウェア統合まで、
ソフトウェア開発プロセス全体に及びます。これらの活動は、SQAの目標、コミットメント、能力、活動、測定、検証、および妥当性確認といった要素に体系的に編成され、
ソフトウェアの品質を多角的に管理します。
SQAの目的とアプローチ
SQAには、以下の3つの主要なアプローチがあります。
1.
組織全体のポリシー、手順、および標準: 組織全体で一貫した品質基準を設け、すべてのプロジェクトがその基準に従うようにします。これにより、組織全体の
ソフトウェア品質が向上し、プロジェクト間の品質のばらつきを抑制することができます。
2.
プロジェクト固有のポリシー、手順、および標準: プロジェクトごとに、その特性や要件に合わせてカスタマイズされた品質管理の基準や手順を設けます。これにより、プロジェクトの特殊性に対応したより効率的な品質管理が実現できます。
3.
適切な手順への準拠: 定められた手順を遵守することにより、
ソフトウェア開発プロセスにおけるエラーや不具合を最小限に抑え、
ソフトウェアの品質を確保します。
また、ISO 9001:2015をコンピュータ
ソフトウェアに適用するためのガイドラインは、ISO/IEC/IEEE 90003:2018に記載されています。プロジェクトが標準に準拠していることを確認するために、外部の専門機関に評価を依頼することも可能です。さらに、
ソフトウェアの品質を評価する際には、
ISO/IEC 9126|ISO_IEC 9126(現在はISO 25010で置き換え)を検討し、
ソフトウェアの品質特性を評価することが重要です。
SQAの活動
SQAの活動は、
ソフトウェア開発の各段階で実施されます。
分析段階: アナリストは、モデル駆動型設計などの手法を用いて、高品質な仕様と設計を実現します。これにより、開発初期段階での不備を減らし、その後の開発工程における手戻りを抑制します。
開発段階: エンジニアや技術者は、テスト活動を通して
ソフトウェアのバグや問題点を発見します。これにより、
ソフトウェアの品質を向上させ、ユーザーが利用する際の不具合を減らすことができます。
管理段階: プロジェクトマネージャーや品質マネージャーは、標準やプロセスからの逸脱を開発全体を通して識別し、対処します。変更管理委員会などを通じて、機能、パフォーマンス、アーキテクチャなどの変更が適切にレビューされていることを確認し、
ソフトウェアの品質を維持します。
SQAは
ソフトウェア開発の各段階で品質を保証するための重要な役割を担っています。規格への適合性を確保し、組織全体で品質の高い
ソフトウェアを開発するための基盤となります。
関連事項
設計による品質
ソフトウェアアシュアランス
ソフトウェア品質アナリスト
ソフトウェア品質管理
ソフトウェアテスト