🛡️

品質保証とテスト

2023/10/07に公開

はじめに

6月からコラボスタイルにジョインしていますが、現在品質向上を目的とした業務にとりくんでいます。
これまでの経験では、開発のみでなく、上流やテスト、サーバー設定等幅広くお仕事をしていましたが、より目的を明確にした働き方は今回が初めてとなります。
そのため、品質に関わるインプットをしていますが、アウトプットをしてより理解を深めていきたいと考えています。

参考

JSTQB(ISTQB)のシラバスや、インターネットの記事等を参考に学習しています。
また、経験豊富な技術者たちから得た知見等もありますが、それについては別途アウトプットしていけたらと思います。まずは小さくアウトプットをしていきます。

QC、QAとは?

よく現場で耳にする言葉「QC」「QA」。両方とも品質に関する言葉ですが、似ているようで明確な違いがあります。それでは、それぞれについて違いを見ていきます。

QCとは?

QCとは、"Quality Control" のことで、日本語でいうと「品質管理」となります。
この品質管理とは、出来上がった製品に対して問題がないかを確認するプロセスとなります。「テスト」は、QC(品質管理)の一部となります。
テストや監査等を通じて品質を確認し、問題があれば報告をするのがQCとなります。

QAとは?

QAとは、"Quality Assurance" のことで、日本語で言うと「品質保証」となります。
この品質保証とは、製品の品質が計画どおりに達成するか、適切なレベルまで到達するかを確保するためのプロセスとなります。(よりプロセス重視の活動です。)また、QCによる検証後、製品をリリースしてユーザーからのフィードバックをもとに品質向上のための活動もQAとなります。

品質マネジメントとは?

QC, QAの他、品質マネジメントという概念があります。"Quality Management" です。
この品質マネジメントは、QCとQAを含みます。より大きな概念です。
品質に関する組織の方針を示し、組織をコントロールするためのすべての活動が含まれます。

品質保証(または単にQA)という用語がテストを意味するために使われることがある。しかし、品質保証とテストは、関連してはいるが同じではない。さらに大きな範囲を表す品質マネジメントという概念が両者を結び付けている。品質マネジメントは、品質に関して組織の方針を示し、組織をコントロールするための活動をすべて含む。品質マネジメントは、品質保証と品質コントロールの両方を含む
~ JSTQBシラバスより

欠陥、エラー、故障の違いについて

「欠陥」「エラー」「故障」も同じように似たような言葉ですが、JSTQB(ISTQB)ではそれぞれ別の意味として定義されています。

ちなみに私はエラーを理解するのに苦労しました。定義がややこしい。

それでは、ここで問題です。



あなたはゲームをしていました。広大なオープンワールドで走っていたとします。そのとき、床がすり抜けてずっと落ち続ける現象が発生しました。これは「欠陥」「エラー」「故障」のどれに該当しますか?



それでは、それぞれの言葉の違いを見ていきましょう。

欠陥とは?

欠陥とは、製品に含まれる設計やコーディングの問題です。

ユーザーが製品やサービスを利用した際、期待をしていない動作をしたとき、それは欠陥となります。つまり、バグのことです。

エラーとは?

JSTQBの定義では「間違った結果を生み出す人間の行為」となっています。

。。。

欠陥は、ユーザーから製品を見たときの製品の問題のこと。(ユーザー視点に限りませんが、あえて視点を書いてます。)

エラーは、開発プロセスを見たとき、欠陥が埋め込まれたときの開発者の行為のこと。欠陥を埋め込んだときのヒューマンエラーのことです。

理解に苦労した理由は、欠陥と同じくユーザー視点で考えていたこと、400系のエラー(Bad Request)をイメージしてしまった点です。あくまでもプロセス視点での人の行為(誤り)に対して、「エラー」という定義をしています。

故障とは?

正常に機能を提供できなくなることです。欠陥によって故障が起こることがありますが、放射線や磁気等による環境によって故障が起こることもあります。

参考

https://note.com/akiyama924/n/n3177be19c3b4
https://zenn.dev/j5ik2o/articles/6c4dbab802c9701fd878
https://q-media.jp/diff-error-failure/

さいごに

今回は定義についての投稿でした。
他の方の記事も参考にさせて頂いてますが、まだまだ学習が必要です。

コラボスタイル Developers

Discussion