ポイント: ソフトウェアテストにおける品質保証 (QA) は、体系的なプラクティスを通じて一貫したソフトウェア品質を確保し、早期の欠陥検出とユーザーフィードバックを強調します。これは、品質管理 (QC) とプロセス改善への積極的なアプローチの両方を含みます。
- 反復的なテスト作業のために自動化を実装し、生産性を向上させます。
- ソフトウェア品質基準を維持するために顧客中心のアプローチを採用します。
ソフトウェア品質は判断が難しい場合があります。それは、関与する各人が品質を異なって定義できるからです。さまざまな利害関係者やエンティティの視点の範囲は、ソフトウェア品質をそれぞれの要求、期待、および基準にどのように適合するかで測定する場合があります。
品質保証 (QA) は、任意のソフトウェア開発ライフサイクル (SDLC)の最終製品が全体的および範囲に合意された期待に適合することを保証する一般的なプラクティスです。
この記事では、品質保証 (QA) の基本と、ソフトウェアテストにおけるその役割について説明します。
品質保証とは何ですか?
品質保証を定義するためには、まず品質の定義から始めましょう:
品質とは、暗黙的または明示的な要求、期待、および基準への適合を指します。
これらの要求を満たすために、品質管理メカニズムが設定されます。
品質管理 (QC) は、プロセスであり、製品の品質を達成または改善するためのものです。QCプロセスには、SDLCにおける無駄なプロセスを排除するために使用される活動も含まれる場合があります。QC機能は、技術的な問題を検出して解決するために使用されるさまざまなテスト活動を含みます。これらはSDLCの過程で開発プロセスとともに行われます。
品質保証 (QA) は、メタプロセスを指し、QC作業を可能にするプロセスの継続的かつ一貫した改善と維持を保証します。
品質保証の視点
ソフトウェアテストにおいて、品質保証は品質管理機能とテスト活動を超えて、さまざまな視点に基づいてソフトウェア品質を評価します:
- 超越的視点。 品質を認識できるが、測定できないという概念。
- ユーザービュー。 エンドユーザーがソフトウェア品質をどのように認識し、体験するか。
- 製造視点。 製品が最初から正しく開発され、エンドツーエンドのSDLCプロセス中に欠陥がないか。
- 製品の視点。 内部および固有の特性が定義された要求にどの程度適合しているか。
- 価値ベースの視点。 製品が製品に関連するさまざまな利害関係者やエンティティの要求をどの程度満たしているか。
これらの異なる視点は、あらゆるQAプロセスの本質的な部分です。ソフトウェアビルドは、すべての必要な要求に適合し、基礎となる品質管理テストプロセスを通過することができますが、それだけではポジティブなビジネスインパクトや改善されたユーザー体験を保証するものではありません。
したがって、QAを次のように定義できます:
QAプロセスは、技術的およびビジネスの視点からすべての品質要件を満たすソフトウェアを提供することによって、ビジネスの広範な目標とビジョンが達成されることを保証します。
(一般的なソフトウェア品質メトリックを探る。)
QC対QA
実際のテストおよびQC活動をQAプロセスと比較して、各範囲とメカニズムを理解しましょう:
| 品質管理 | 品質保証 |
| 複数のテスト活動を含むウォークスルー | 異なる視点に基づいてソフトウェア品質を監査するプロセス |
| 製品指向の活動 | プロセス指向の活動 |
| QC活動は、製品が要求事項に適合していることを検証することに焦点を当てています | QA活動は、製品を作成するために使用されるプロセスに焦点を当てています |
| アクションは、検査、サンプリング、およびテストを含みます | アクションは、文書作成、監査、管理、トレーニング、変更管理および調査を含みます |
| 反応的かつ是正的なプロセス | 予防的なプロセス |
| チーム | チームと関連する利害関係者 |
現代のSDLC手法(例えばDevOps)を採用している組織では、ソフトウェアテストQAは継続的改善の概念に従います。これは、高品質のソフトウェアを提供するために使用するプロセスの反復的な改善です。
改善は、エンドユーザーやビジネス組織がソフトウェア品質をどのように認識するかに対して測定され、新たな要求に対応するために異なるまたは追加の品質管理機能がSDLCプロセスに導入されることを示唆しています。
品質保証のベストプラクティス
これらの業界で実証されたベストプラクティスは、QA能力、関連するSDLCプロセス、およびDevOps環境におけるソフトウェア製品の全体的な品質を向上させるのに役立ちます:
- テストを自動化する。 最小限の手動介入を必要とする反復的なテストを自動化することで、スピード、敏捷性、および生産性が向上します。
- シフトレフト。 ソフトウェアの欠陥を迅速かつ早期に特定することを確保する—シフトレフト—SDLCライフサイクル中に。
- フィードバックを集める。 エンドユーザーおよび利害関係者からのフィードバックは、QA戦略の継続的改善を推進すべきです。
- 目的を持ったテスト。 テストリソースが意味のある方法で使用され、ソフトウェア開発ライフサイクルのコード展開構造に従うことを確保します。
- セキュリティをソフトウェア品質の基盤に組み込む。 シフトレフトテスト戦略の一環として、セキュリティ関連のテストケースを導入します。
- 慎重に自動化する。 無駄なプロセスを自動化すると、より多くの無駄なプロセスが生まれるだけです。
- 人間のスキルを取り入れる。 自動化と継続的改善は、DevOpsのQA目標を達成するために常にうまく機能するわけではありません。たとえば、モバイルユーザーインターフェースやユーザー体験のテストは、多くの制御されない要因を考慮する必要があるため、自動化が難しい場合があります。このため、効果的なQA戦略の一環として人間の介入が必要な場合があります。
- 顧客を最優先する。 最後に、DevOpsのQAは、すべてのQA活動の最前線でソフトウェア品質の顧客視点を維持する必要があります。
関連情報
- BMC DevOpsブログ
- ソフトウェアのテストケースを書く方法
- SRS: ソフトウェア要求仕様の基本
- パフォーマンステスト、ロードテスト、ストレステストの説明
- テストをサービスとして提供するとは? TaaSの説明
- テストデータ管理とは何か、なぜ必要なのか?
これらの投稿は私自身のものであり、必ずしもBMCの立場、戦略、または意見を表すものではありません。