what is software quality assurance
ソフトウェア品質保証とは何ですか?
ソフトウェア品質保証(SQA) は、すべてのソフトウェアエンジニアリングプロセス、方法、アクティビティ、および作業項目が監視され、定義された標準に準拠していることを保証するプロセスです。これらの定義された規格は、ISO 9000、CMMIモデル、ISO15504などのいずれか1つまたは組み合わせです。
SQAには、要件の定義からコーディング、リリースまでのすべてのソフトウェア開発プロセスが組み込まれています。その主な目標は、品質を確保することです。
学習内容:
ソフトウェア品質保証計画
SQAPと略されるソフトウェア品質保証計画は、製品またはサービスがSRS(ソフトウェア要件仕様)で定義された要件に適合していることを確認するために使用される手順、手法、およびツールで構成されます。
この計画では、チームのSQA責任を特定し、レビューと監査が必要な領域をリストします。また、SQA作業成果物を識別します。
SQA計画文書は、以下のセクションで構成されています。
- 目的セクション
- 参照セクション
- ソフトウェア構成管理セクション
- 問題の報告と是正措置のセクション
- ツール、テクノロジー、方法論のセクション
- コード制御セクション
- 記録:収集、保守、保持のセクション
- テスト方法
SQAアクティビティ
以下に、SQAアクティビティのリストを示します。
#1)SQA管理計画の作成:
最も重要なアクティビティには、プロジェクトでSQAを実行する方法に関する適切な計画を立てることが含まれます。
従う予定のSQAアプローチ、実行されるエンジニアリングアクティビティ、およびチーム内で適切な人材の組み合わせを確保することも含まれます。
#2)チェックポイントの設定:
SQAチームは、各チェックポイント/プロジェクト段階でプロジェクト活動の品質を評価するために、さまざまなチェックポイントを設定します。これにより、定期的な品質検査とスケジュールどおりの作業が保証されます。
#3)ソフトウェアエンジニアリング技術を適用する:
いくつかのソフトウェアエンジニアリング技術を適用することは、ソフトウェア設計者が高品質の仕様を達成するのに役立ちます。情報を収集するために、設計者はインタビューやFAST(機能分析システム手法)などの手法を使用できます。
後で、収集された情報に基づいて、ソフトウェア設計者はWBS(作業分解図)、SLOC(コードのソース行)、FP(ファンクションポイント)見積もりなどの手法を使用してプロジェクト見積もりを準備できます。
#4)正式なテクニカルレビューの実行:
FTRは、プロトタイプの品質と設計を評価するために行われます。
このプロセスでは、ソフトウェアの実際の品質要件とプロトタイプの設計品質について話し合うために、技術スタッフとの会議が行われます。このアクティビティは、SDLCの初期段階でエラーを検出するのに役立ち、後の段階でのやり直しの労力を軽減します。
#5)マルチテスト戦略を持つ:
マルチテスト戦略とは、単一のテストアプローチに依存するのではなく、ソフトウェア製品をあらゆる角度から適切にテストして品質を向上させるために、複数のタイプのテストを実行する必要があることを意味します。
#6)プロセス遵守の実施:
パスワードと同じセキュリティキーです
この活動は、ソフトウェア開発プロセス中のプロセス順守の必要性を主張します。開発プロセスも、定義された手順に従う必要があります。
このアクティビティは、以下で詳細に説明する2つのサブアクティビティを組み合わせたものです。
(i)製品評価:
このアクティビティは、ソフトウェア製品がプロジェクト管理計画で発見された要件を満たしていることを確認します。これにより、プロジェクトに設定された基準が正しく守られます。
(ii)プロセス監視:
このアクティビティは、ソフトウェア開発中に正しい手順が実行されたかどうかを確認します。これは、実際に実行された手順を文書化された手順と照合することによって行われます。
#7)変更の管理:
このアクティビティでは、手動の手順と自動化されたツールを組み合わせて、変更管理のメカニズムを構築します。
変更要求を検証し、変更の性質を評価し、変更の影響を制御することにより、開発および保守段階でソフトウェアの品質が維持されることが保証されます。
#8)変更の影響を測定する:
QAチームから欠陥が報告された場合は、関係するチームが欠陥を修正します。
この後、QAチームは、この欠陥修正によってもたらされる変更の影響を判断する必要があります。変更によって欠陥が修正されたかどうかだけでなく、変更がプロジェクト全体と互換性があるかどうかもテストする必要があります。
この目的のために、マネージャーと開発者がSDLCの最初から最後までアクティビティと提案された変更を観察し、必要に応じて修正措置を開始できるようにするソフトウェア品質メトリックを使用します。
#9)SQA監査の実行:
SQA監査は、実際のSDLCプロセス全体を検査し、確立されたプロセスと比較します。
また、ステータスレポートでチームによって報告されたものが実際に実行されたかどうかもチェックします。このアクティビティでは、コンプライアンス違反の問題も明らかになります。
#10)記録とレポートの維持:
SQAに関連する必要な文書を保持し、必要なSQA情報を利害関係者と共有することが重要です。テスト結果、監査結果、レビューレポート、変更要求のドキュメントなどは、将来の参照用に保管する必要があります。
#11)良好な関係を管理する:
実際、QAと開発チームの間の調和を維持することは非常に重要です。
テスターと開発者はお互いに優れていると感じることがよくあります。プロジェクト全体の品質に影響を与える可能性があるため、これは避ける必要があります。
ソフトウェア品質保証基準
一般に、SQAは1つ以上の規格への適合を要求する場合があります。
最も一般的な標準のいくつかを以下で説明します。
ISO 9000: この標準は、組織が自社の製品またはサービスが顧客のニーズに適合していることを確認するのに役立つ7つの品質管理原則に基づいています。
ISO9000の7つの原則を以下の画像に示します。
CMMIレベル: CMMIは 能力成熟度モデル統合 。このモデルは、ソフトウェアエンジニアリングに端を発しています。プロジェクト、部門、または組織全体でプロセス改善を指示するために使用できます。
5つのCMMIレベルとその特性を以下の画像で説明します。
組織は評価され、評価のタイプに基づいて成熟度レベルの評価(1〜5)が与えられます。
コンピューターでスクリーンショットを撮るプログラム
テスト成熟度モデル統合(TMMi): CMMiに基づいて、このモデルはソフトウェア品質管理とテストの成熟度レベルに焦点を合わせています。
5つのTMMiレベルが下の画像に示されています。
組織がより高い成熟度レベルに移行するにつれて、欠陥の少ない高品質の製品を生産するためのより高い能力を実現し、ビジネス要件を厳密に満たします。
ソフトウェア品質保証の要素
参考までに、SQAには10の重要な要素があります。
- ソフトウェアエンジニアリング標準
- テクニカルレビューと監査
- 品質管理のためのソフトウェアテスト
- エラーの収集と分析
- 変更管理
- 教育プログラム
- ベンダー管理
- セキュリティ管理
- 安全性
- 危機管理
SQAテクニック
SQAにはいくつかの手法があります。監査は、広く採用されている主要な手法です。ただし、他にもいくつかの重要なテクニックがあります。
さまざまなSQA手法には次のものがあります。
- 監査: 監査には、一連の標準プロセスが実行されたかどうかを判断するための作業成果物とその関連情報の検査が含まれます。
- レビュー :ソフトウェア製品が内部および外部の利害関係者の両方によって検討され、コメントと承認を求める会議。
- コード検査: これは、静的テストを実行してバグを見つけ、後の段階で欠陥の拡大を回避する最も正式な種類のレビューです。これは、訓練を受けた調停者/ピアによって行われ、ルール、チェックリスト、入場および退場の基準に基づいています。レビューアはコードの作成者であってはなりません。
- 設計検査: 設計検査は、ソフトウェア設計の以下の領域を検査するチェックリストを使用して行われます。
- 一般的な要件と設計
- 機能仕様とインターフェース仕様
- コンベンション
- 要件のトレーサビリティ
- 構造とインターフェース
- 論理
- パフォーマンス
- エラー処理と回復
- テスト容易性、拡張性
- 結合と凝集度
- シミュレーション: シミュレーションは、調査中のシステムの動作を仮想的に調べるために、実際の状況をモデル化するツールです。
- 機能テスト: これは、システムの動作を考慮せずにシステムの動作を検証するQA手法です。このタイプの ブラックボックステスト 主にシステムの仕様または機能のテストに焦点を当てています。
- 標準化: 標準化は品質保証において重要な役割を果たします。あいまいさや当て推量を減らし、品質を確保します。
- 静的分析: これは、実際にプログラムを実行せずに自動化ツールによって実行されるソフトウェア分析です。この手法は、医療、原子力、航空ソフトウェアの品質保証に非常に使用されています。ソフトウェアメトリクスとリバースエンジニアリングは、静的分析の一般的な形式です。
- ウォークスルー: ソフトウェアウォークスルーまたはコードウォークスルーは一種のピアレビューであり、開発者は開発チームのメンバーをガイドして製品を調べ、質問を提起し、代替案を提案し、起こりうるエラー、標準違反、またはその他の問題についてコメントします。
- パステスト: それは ホワイトボックステスト手法 ここで、完全なブランチカバレッジは、各独立したパスを少なくとも1回実行することによって保証されます。
- ストレステスト: このタイプのテストは、システムが高負荷、つまり通常の状態を超えてテストすることにより、システムの堅牢性を確認するために行われます。
- シックスシグマ: シックスシグマは、ほぼ完璧な製品またはサービスを目指す品質保証アプローチです。ソフトウェアを含む多くの分野で広く適用されています。シックスシグマの主な目的は、製造されたソフトウェアに99.76%の欠陥がないように、プロセスを改善することです。
結論
SQAは、ソフトウェアのライフサイクル全体で採用される包括的なアクティビティです。
ソフトウェアの品質保証は、ソフトウェア製品またはサービスが市場で成功し、顧客の期待に応えて生き残るために非常に重要です。
成果物のソフトウェアが高品質であり、ビジネスニーズと密接に一致していることを保証するために従う必要のあるさまざまなアクティビティ、標準、および手法があります。
この有益な記事を通じて、ソフトウェア品質保証の概念について明確なアイデアが得られたことを願っています。
推奨読書
- ソフトウェアテストと品質保証の認定-パート2
- 品質属性とは何ですか?
- 偽の品質の神と真の人間-ソフトウェアの品質の責任者は誰ですか?
- 品質保証と品質管理の違い(QAとQC)
- 完璧なソフトウェアテスト履歴書ガイド(ソフトウェアテスター履歴書サンプル付き)
- ポカヨケ(ミスプルーフ)技術を使用してソフトウェアの品質を向上させる方法
- テストにおける相互理解:高品質のソフトウェアを提供するための鍵
- ソフトウェアテストQAアシスタントジョブ