また、Srinisvasan Desikan、Gopalaswamy RameshによるソフトウェアテストまたはISTQBの教科書によると。品質保証は、例えばです。製品、検査、ウォークスルーをレビューして、すべての基準が守られているかどうかを確認します。これは予防活動です。これがどのように予防できるのかわかりませんか?
参考のために:
不良防止(品質保証)
Srinisvasan Desikan、Gopalaswamy Rameshによるソフトウェアテスト
品質保証(QA)は、さらに一歩進んでいます。事後の欠陥の検出と修正に集中するのではなく、最初から欠陥の防止に焦点を当てています。
グローバルソフトウェアプロジェクトの管理-110ページ
QAは、開発中の製品の欠陥の防止を扱います。
ソフトウェアテストと品質保証
すべての答えに欠けているのは、開発プロセス自体の主なアイデアであるように私には見えます。開発プロセスとは何ですか?開発プロセスは、主に成熟度、品質に関するものです。そして、品質保証は、プロセスが正しく実行されていることを確認することに他なりません。したがって、その利点は、開発プロセスを持つことに深く関係しています。
次のシナリオを想像してみてください。
どの建物が(おそらく)より良い品質を示していますか?どちらが(おそらく)より多くの欠陥を示していますか?
ソフトウェア開発でも違いはありません。開発プロセス(および品質保証)は、それが定義するように、すべて欠陥と関係があります物事がどのように行われなければならないか。そして、それは、さまざまな専門知識(および日常の気分)を持つ貢献者が一緒に作業している場合に重要です。上記のシナリオをもう一度想像してみてください。しかし今回は、数人のジュニアエンジニアとインターンエンジニアが関わっています。プロセスが関与していない場合、これはどのような影響がありますか?
開発プロセス(および品質保証)は、最初からルールが守られていることを保証します。そして、それらのルールは、欠陥につながる可能性のある状況を回避します。
あなたの質問はセマンティクスに要約されると思います。 「欠陥の防止」という言葉は、実際には何の意味もありません。 「製品の欠陥の防止」はそれほど正確ではありません。
私の推測(そしてそれはまさにそれです)は、作者が「製品の欠陥の防止」と言うとき、彼らはではないコードの欠陥の作成を防ぐことについて話しているということです。彼らは、これらの欠陥がリリースされた製品になるのを防ぐことについて話している。
QAは間違いなく欠陥を防ぎ、リリースされた製品にすることを目的としています。開発者が内部の中間ビルドで欠陥を作成するのを防ぐことはできないと思います。
QAは、発見された欠陥に対して 根本原因分析 を実行することで欠陥を防止し、一般的な根本原因を特定して削除するのが理想的です。
ソフトウェア開発のコンテキストでは、これは、エラーが発生しやすい技術をより成熟した技術に置き換える、体系的にトレーニングされた新しい開発者を確保する、コードの単体テストがあることを確認する(コードカバレッジを追跡するなど)、コードレビューを実施するなどです。または、静的コード分析ツールを実行して、改善が必要な可能性のあるコードの領域を特定し、開発者が単体テストを記述して不良コードをリファクタリングするのに十分な時間を確保します。
逸話:私は、大手自動車メーカーでこの種のQAをサポートするワークフローアプリケーションに取り組んできました。ある報告は、「インドで販売されたユニットは、異常にホーンが壊れることが多い」というものでした。根本原因の分析によると、「ホーンは50,000サイクルの操作用に設計されています。インドではより集中的に使用されているため、これでは不十分です」。彼らがインドで販売されている車にもっと頑丈なホーンを作り始めたかどうかはわかりません:)
QA(品質保証)および対応するQE(品質エンジニア)は、製品が製品にリリースされる前に、製品に生じた欠陥を発見することになっています。最終的に、QAの役割は、開発チームに欠陥を認識させ、開発チームがそれらを修正することです。この意味で、QAは欠陥を防ぐことはできませんが、欠陥を発見します。
別の意味では、QAは、最初の欠陥が発見されなかった場合にその結果となる将来の欠陥を防ぎます。
製品が開発サイクルを開始する前に存在する仕様またはその他の調査資料を確認することも、QAが製品の誤って達成された一般的なアーキテクチャによって引き起こされる欠陥を発見するのに役立ちます。
例えば。 機能Xをお客様にリリースする必要があるため、開発中です製品A。ただし、将来のサイクルでは、間違いなく機能Yも開発する必要があります。したがって、開発中の機能Xだけでなく、将来の機能YおよびZもサポートするようにアーキテクチャを調整する必要があります。
QAは、ソフトウェア開発プロセス中に事前定義された手順に従っているかどうかを確認します。また、これらの手順を定義するためのフレームワークも指定します:ISO-9000、CMMi ...
したがって、QAは、製品の品質ではなく、プロセスの品質を保証します。製品の品質は、定義された手順に従うことによってカバーされると想定されます。
実際には、QAは別の視点でプロジェクトに他の目をもたらし、他の方法では隠されたままになる可能性のある製品の欠陥を実際に明らかにします。