ソフトウェアの品質を学びまくる:SQ1.1-品質の概念
━ 2010/10/16:faultの定義に関する誤記と、その他誤認を訂正。
いわゆる「バグ」と、その周りの言葉は、定義が曖昧だったり使う人によったりして、誤解を招きやすいですよね。ちょっと整理してみました。
SQuBOKの定義
SQuBOK(第1版)では、JIS X 0014に従って、次のように定義しています。
誤差・誤り(error)・・・JIS X 0014:1999、SQuBOK |
---|
計算、観測もしくは測定された値または状態と、真の、指定されたもしくは理論的に正しい値または状態との間の相違。 |
ソフトウェア設計書の記述として、「または」「もしくは」を連発したこんな書きっぷりが蔓延していたら、0.01秒で差し戻しますが。。。
ロッキー山脈はどのように見えるのですか?
障害(fault)・・・JIS X 0014:1999、SQuBOK |
---|
要求された機能を遂行する機能単位の能力の、縮退または喪失を引き起こす、異常な状態。 |
故障(failure)・・・JIS X 0014:1999、SQuBOK |
---|
要求された機能を遂行する、機能単位の能力がなくなること。 |
faultの「状態」という言葉に違和感がありますが、これは「間違っている」という現実を指すものと理解しています。その間違いがもたらす結果が、failureというわけです。ちょっとわかりづらいですね。
JSTQBの定義
一方、JSTQBの用語集では、もう少しヒトに優しい高級言語で記されています。
モニタースピーカーは何ですか?
エラー(error、誤り)・・・JSTQB |
---|
間違った結果を生み出す人間の行為 |
「10以上」は10を含まないと小学生時代から信じたままコードを書いたとか、そういう「バグを作るキッカケ」と思えばよいでしょうか。
SQuBOKとはまったく立ち位置が違うので、要注意ですね。JSTQBでは「行為」、SQuBOKではその行為によって生じてしまった、あるべき姿との「差異」。
偽のクレジットカード番号を取得する方法
欠陥(defect、バグ、失敗)・・・JSTQB |
---|
要求された機能をコンポーネントまたはシステムに果たせなくする、コンポーネントまたはシステムの中の不備。(中略)実行中に欠陥に遭遇した場合、コンポーネントまたはシステムの故障を引き起こす。 |
「10以上」は10を含まないという頑なな思いから、また指の激しい滑りから、「if i > 19 then」とコーディングしてしまった・・・。
その結果が、欠陥ですね。JSTQBの「欠陥」は、「中の不備」とあるので、ドキュメント段階での問題点は含まないようにも見えます。
ちなみにわたし(の周りで)は、「バグ」をプログラム内部の問題点、「不良」を、システム/ソフトウェア構築に伴う生産物に含まれる問題点(バグを含む)といった意味で使っております。
故障(failure)・・・JSTQB |
---|
コンポーネントやシステムが、期待した機能、サービス、結果を提供できないこと。 |
指滑りコードがテストされる日がついにやってきた。境界値テストとして「i=9」と「i=10」を試してみる。この2つは結果が違うはずだが・・・。いや、何故か同じだ!
というように、欠陥がある現象として白日の元にさらされた状態。これが「故障」ですね。SQuBOKの「error」は、どちらかといえば、JSTQBの「故障」に近いように思います。
ついでに・・・
ついでながら、JSTQBの認定試験で、「故障率」と「欠陥密度」の定義に関する問いが出題されていました。
故障率(faiulre rate) |
---|
測定単位に発生したあるカテゴリの故障数の率。例えば、単位時間あたりの故障数、トランザクション数あたりの故障数、コンピュータの運用回数あたりの故障数。 |
欠陥密度(defect density) |
---|
コンポーネントまたはシステムの中で特定された欠陥の数をコンポーネントまたはシステムの大きさで割った値。 |
しっかり覚えていなかったので、故障率の方は間違えた気が。「欠陥」と「故障」の意味をちゃんと覚えていれば、間違いようもないですけどね。
余談ですが、「人間の行為」と書こうとして、「人間の」まで打った時点でgoogle先生が「人間のクズ」と予測変換してくれるのを見て、ネットの病を感じざるを得ません。
0 コメント:
コメントを投稿