ソフトウェア品質管理-はじめに

高品質のソフトウェアとは、適度にバグや欠陥がなく、指定された予算内で時間内に提供され、要件や期待を満たし、保守が可能なソフトウェアを指します。ソフトウェアエンジニアリングのコンテキストでは、ソフトウェアの品質は両方を反映しますfunctional quality と同様 structural quality

  • Software Functional Quality −機能要件または仕様に基づいて、特定の設計をどの程度満たしているかを反映します。

  • Software Structural Quality −堅牢性や保守性などの機能要件の提供をサポートする非機能要件の処理、およびソフトウェアが正しく作成された程度を扱います。

  • Software Quality Assurance−ソフトウェア品質保証(SQA)は、ソフトウェアエンジニアリングプロセスの品質を保証し、最終的に高品質のソフトウェア製品を生み出すための一連のアクティビティです。活動は、製品を生産するプロセスを確立し、評価します。これには、プロセスに焦点を合わせたアクションが含まれます。

  • Software Quality Control−ソフトウェア品質管理(SQC)は、ソフトウェア製品の品質を保証するための一連の活動です。これらの活動は、実際に生産された製品の欠陥を特定することに焦点を当てています。これには、製品に焦点を当てたアクションが含まれます。

ソフトウェア品質の課題

ソフトウェア業界では、他の工業製品メーカーが通常行うように、開発者はソフトウェアに欠陥がないと宣言することは決してありません。この違いは、以下の理由によるものです。

製品の複雑さ

これは、製品が許可する動作モードの数です。通常、工業製品では、機械設定のさまざまな組み合わせで数千未満の操作モードしか許可されていません。ただし、ソフトウェアパッケージでは、何百万もの運用の可能性があります。したがって、これらすべての運用の可能性を正しく保証することは、ソフトウェア業界にとって大きな課題です。

製品の可視性

工業製品は目に見えるので、その欠陥のほとんどは製造プロセス中に検出できます。また、工業製品に部品がないことは、製品内で簡単に検出できます。ただし、ディスケットやCDに保存されているソフトウェア製品の欠陥は目に見えません。

製品開発および製造プロセス

工業製品では、次の段階で欠陥を検出できます。

  • Product development −このフェーズでは、設計者と品質保証(QA)スタッフが製品のプロトタイプをチェックおよびテストして、欠陥を検出します。

  • Product production planning−このフェーズでは、製造プロセスとツールが設計および準備されます。このフェーズでは、製品を検査して、開発フェーズで気付かなかった欠陥を検出する機会も提供されます。

  • Manufacturing−このフェーズでは、QA手順を適用して、製品自体の障害を検出します。製造の最初の期間に検出された製品の欠陥は、通常、将来製造される製品のそのような欠陥を排除する方法で、製品の設計または材料または製造ツールの変更によって修正することができます。

ただし、ソフトウェアの場合、欠陥を検出できるのは開発フェーズだけです。ソフトウェアの場合、ソフトウェアコピーの製造とソフトウェアマニュアルの印刷が自動的に行われるため、製品の生産計画と製造段階は必要ありません。

ソフトウェア製品と他の工業製品の欠陥の検出に影響を与える要因を次の表に示します。

特性 ソフトウェア製品 その他の工業製品
複雑 何百万もの運用オプション 千の運用オプション
製品の視認性 目に見えない製品目で欠陥を検出するのは難しい 目に見える製品視覚による欠陥の効果的な検出
開発および製造プロセスの性質 1つのフェーズでのみ欠陥を欠陥にすることができます 次のすべてのフェーズで欠陥を検出できます
  • 製品開発
  • 製品生産計画
  • Manufacturing

複雑さや不可視性などのソフトウェアのこれらの特性により、ソフトウェア品質保証方法論の開発とその実装の成功は非常に専門的な課題となっています。