ソフトウェア品質の測定と証明に関してはかなりの数の質問がありますが、この時点まで、Stackoverflow ではソフトウェア品質自体の正式な定義はありませんでした。
ソフトウェア製品の品質の正式で包括的な定義を教えてください。
質問はかなり一般的であるため、提出されるたびにより良い定義を受け入れることができてうれしいです. 何か価値のあるものを追加できる限り、以前に送信された回答の要点をコピーしてもかまいません。
ソフトウェア品質の測定と証明に関してはかなりの数の質問がありますが、この時点まで、Stackoverflow ではソフトウェア品質自体の正式な定義はありませんでした。
ソフトウェア製品の品質の正式で包括的な定義を教えてください。
質問はかなり一般的であるため、提出されるたびにより良い定義を受け入れることができてうれしいです. 何か価値のあるものを追加できる限り、以前に送信された回答の要点をコピーしてもかまいません。
ウィキペディアがソフトウェアの品質について述べていることは次のとおりです。
この記事では、ソフトウェアの品質に関する定義と見解をいくつか挙げています。ソフトウェア製品の品質に最も近いのは、
要件またはプログラム仕様への準拠。信頼性に関連しています。
信頼性とは、「指定された環境で、指定された時間、コンピュータ プログラムが正常に動作する確率」です。
製品の品質とともに、次のようにリストされています。
品質係数は、「顧客の契約によって呼び出されないソフトウェア プログラムの非機能的要件であるにもかかわらず、ソフトウェア プログラムの品質を向上させる望ましい要件」によって定義されます。リストは次のとおりです。
編集:品質要因が何を意味するのかを明確にしました。
品質は酸素のようなものだと聞いたことがあります。それがそこにあるとき、あなたはそれを当たり前だと思っています。それがそこにないとき、あなたはそれに気づき、不平を言うでしょう。したがって、「品質の悪い」ソフトウェアとは何かという観点から品質を定義する方が簡単かもしれません。たとえば、安全でないオンライン バンクの Web サイトは「低品質」の製品となります。
ウィキペディアの記事で参照されているように、ソフトウェア品質の正式な定義は、実際には ISO-9126 の形式で入手できます: http://en.wikipedia.org/wiki/ISO_9126
http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=22749は品質モデルを定義します
高品質のソフトウェア製品は、
編集:(ドキュメント、移植性、効率などは望ましいボーナス値ですが、「品質」にする必要はありませんが、同等にするためにはIMHO)
ソフトウェア製品の品質は、ソフトウェア製品の欠陥に気付く率の逆数です。
これは、バグが報告されなくても品質が高いという意味ではありません。問題の報告を難しくしすぎている可能性があるからです。また、問題が存在しても積極的に気付かれない場合は、品質に大きな影響はありませんが、常に問題が発生している場合は、品質に大きな影響を与えます。ボタンの位置が大きくずれていると、機能に影響がなくても品質が著しく低下します。
欠陥に気付くのはユーザーであることが多いため、それがバグなのか開発者による機能なのかは問題ではありません。ユーザーが何かを欠陥であると認識した場合、それはユーザー トレーニング、ユーザー ドキュメント、ユーザー インターフェイス、または実際の機能のいずれにおいても欠陥です。
これに対する唯一の答えはなく、受け入れられている多くの答えは互いに直接矛盾しています。人気のあるものには次のものがあります。
「品質は一部の人にとって価値のあるものです」 - Jerry Weinberg 著、Quality Software and Testing、2006 年 4 月
「品質は標準への適合です」 - フィリップ・クロスビー
「品質とは、ビジネスを継続する能力です」 - デミング
これについては、こちらの SQAforums で良い議論がありました。幅広いコンセンサスは、品質は主に主観的なものであるということです。個人的には、ジェリー・ワインバーグのテイクに賛成です。
私が品質の指標を平手打ちする場合、最良の外部指標は「人々がそれに対していくら払っても構わないと思っているか」だと思います。だれもお粗末な製品にお金を払いたくない。
いくつかの良い例と定義を示した、Winthrop University からの素晴らしい小さなPowerPoint プレゼンテーションがあります。役に立つかもしれません。
製品の品質は、機能的および非機能的な特性のすべての多数です。品質の尺度は、実際の製品の使用状況によって異なります。
ソフトウェア製品は、次の特徴があります。
機能的属性 (または製品が実行する作業)
非機能的属性(機能以外の製品特性)
a) ルック アンド フィール
b) ユーザビリティと人間性
c) パフォーマンス
d) 運用
e) 保守性とサポート
f) セキュリティ
g) 文化的および政治的
h) 法的事項
James and Suzanne Robertson http://www.volere.co.ukによって提案された機能的特性と非機能的特性の分類
品質に関する私のお気に入りの引用は次のとおりです。
品質は決して偶然ではありません。それは常に、高い意図、誠実な効果、知的な方向性、巧みな実行の結果です。それは、多くの選択肢の中から賢明な選択を表しています。
ソフトウェアの品質は、次のような 2 つの基準に依存する場合があります。
上記の両方に、ソフトウェアの全体的な品質を判断するために使用できる特性があります。一言で言えば、ソフトウェア品質の一般的な定義を提供することは良い考えではないかもしれません。ソフトウェアが異なれば目的も異なり、品質要件も異なる場合があります。たとえば、検索エンジンとしての Google は、検索の関連性と検索結果が得られる速度から、非常に高品質のソフトウェアと言えます。しかし、ルックス&フィールを基準に考えると、それは最も美しいデザインとは言えません。
ソフトウェアの品質定義の詳細については、このページを参照してください。
ソフトウェアの品質は、明示的に述べられた機能要件と非機能要件、明示的に文書化された開発標準、および専門的に開発されたすべてのソフトウェアに期待される暗黙の特性への適合として定義されます。