JP2006251994A - 品質評価システム及び品質評価方法、品質評価用プログラム - Google Patents

品質評価システム及び品質評価方法、品質評価用プログラム Download PDF

Info

Publication number
JP2006251994A
JP2006251994A JP2005065381A JP2005065381A JP2006251994A JP 2006251994 A JP2006251994 A JP 2006251994A JP 2005065381 A JP2005065381 A JP 2005065381A JP 2005065381 A JP2005065381 A JP 2005065381A JP 2006251994 A JP2006251994 A JP 2006251994A
Authority
JP
Japan
Prior art keywords
evaluation
quality
function
ratio
test
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005065381A
Other languages
English (en)
Inventor
Ietoshi Itou
家年 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2005065381A priority Critical patent/JP2006251994A/ja
Publication of JP2006251994A publication Critical patent/JP2006251994A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】品質の評価及び進捗管理や品質の制御、品質保証において、明確な定量的指標及び評価基準に基づいて合理的かつ効果的な評価を行うこと及び適正な評価終了判定を下せるようにする。
【解決手段】検査対象に係る不良比率と、全テスト量のうち実行されたテスト量の割合を示す網羅率を、計測手段3a、3bにより計測する。そして、評価演算手段4において、不良比率と網羅率を含む状態平面を設定し、計測後の不良率及び網羅率に基づき検査対象の品質を座標点として特定する。品質判定のための評価量として、不良比率及び網羅率を独立変数として含む評価関数を設定した上で、評価関数値を予め決められた一定値又は評価時の指定値に等しいとおいて、状態平面上での評価基準線を算出する。この評価基準線を境界として区分される領域のうち、品質を示す座標点がどの領域に属するかを調べ、品質が許容範囲内に収まっているか否かを判定する。
【選択図】図1

Description

本発明は、明確な定量的指標及び基準に基づいて品質評価を行うための技術に関するものであり、テスト及び評価活動によって生み出される価値を客観的な形で呈示し、品質管理や評価判定の適正化、効率化を図るとともに、検査対象に係るテスト及び評価の終了時点を合理的根拠に基づいて判定することが可能である。
企業活動において製品の品質を定量的かつ合理的に評価すること及び所期の品質を保証することが重要である。
例えば、ソフトウェアを対象とする品質保証部門では、対象ソフトウェアをテストして評価計測を行い、その品質を保証すべく様々な努力がなされる。品質評価法として、開発規模に対する不良件数や不良内容の分析結果を用いる方法、あるいは、テスト工程でのテストカバレッジ率及び不良密度を用いて、不良密度がテスト進捗状況に対して適切な値がどうかを判定する方法が知られている(例えば、特許文献1参照。)。尚、後者の評価方法では、不良密度(単位:件/Kstep)とテストカバレッジ率(単位:%)を座標軸とした品質評価用プロット図を作成し、テストカバレッジ率100%の線とシステムの平均不良密度の線との交点と、プロット図の原点とを結んだ基準線を、該システムを構成する各モジュールの品質基準線と解し、当該基準線に対してその上下に位置する標準偏差線を計算する。そして、これらの標準偏差線で挟まれた領域内に、テスト及び評価が現在進行中のモジュールの座標点(現時点での不良密度の値と、テストカバレッジ率の値を座標成分とする。)が存在しているか否かを判断することにより、ソフトウェアの品質がテスト及び評価の進捗状況に対して適切であるか否かを把握できる。
特開平5−282178号公報
ところで、製品のテストや品質評価を行う場合に、品質評価基準となる定量的指標や品質評価判定の終了基準が重要であり、例えば、検査対象となる製品のテスト及び評価において、明確な定量的指標が少ない場合には、充分な修正や変更等の対策が講じられずに、潜在的な不良原因を抱えたままで製品が出荷されてしまい、市場で不良が発覚し、あるいは、製品出荷の直前で品質に問題が生じると出荷が遅れたり、テストや評価、修正等に要するコストが嵩む等の問題が起こり得る。
また、製品の平均不良率や不良密度に関する判断基準が明確でない場合には、品質評価判定の材料としての十分性があるとは言えず、例えば、判断基準が甘すぎたり、逆に厳しすぎるといった状況が生じる。例えば、後者の場合において、テストカバレッジ率100%(全量検査)に近い目標を達成することは、ソフトウェアのように、総ステップ数が数百万行にもなる対象に適用する場合に、実際的ではない。
品質評価において、テスト及び評価作業を十分に行い、不良箇所を発見してその修正や除去を行うことと、不要箇所が見逃された場合(残存バグ等)の不利益を最小限に抑えることとを両立させるには困難性を伴う(一般に、不良箇所を極力少なくしようとすると、その発見及び修正等に労力や費用、時間がかかることになり、両者の間には相反関係が認められる。)。
例えば、ソフトウェアの品質は、これに含まれるバグ数とバグの内容や重要度等に依存するが、定量的に計測されるバグ率又はバグ数が極力少ないこと、つまり、これらの計測結果が予め設定した許容範囲内に収まっていることが要求される。しかしながら、全テスト量のうち、どれだけの量を達成したかを示すカバレッジ率(網羅率)として、100%を実現するには、大変な人的労力と時間を投入せねばならず、莫大なコストがかかる。人命に関わるソフトウェア(例えば、航空機分野、軍事関係、原子力設備の分野等で使用されるプログラム)の場合には、如何にコストがかかろうとも、カバレッジ率100%の達成が不可欠とされるが、それ以外の一般的なソフトウェアであれば、テストや評価に係るコストを十分に吟味しなければならない。即ち、テストや評価の作業に要するコストが顕著にならない限度(カバレッジ率の許容範囲)内において、ソフトウェアのバグ数を極力低減して、潜在的なリスクを回避する必要がある。
また、検査工程において不良率や不良密度等は品質評価の目安とされるが、検査工程で見逃された不良箇所が、出荷後に発覚した場合に重要となるのは、不良の比率や密度ではなく、不良箇所の絶対数(例えば、残存バグの個数)である。
そこで、本発明は、品質の評価及び進捗管理や品質の制御、品質保証において、明確な定量的指標及び評価基準に基づく合理的かつ効果的な評価と、適正な評価終了判定の実現を課題とする。
本発明に係る品質評価システムは、上記した課題を解決するために、下記に示す構成要素を備えたものである。
・第1の計測手段(検査対象に係る不良比率として、実行されたテスト量のうち不良箇所が発見された割合を計測する。)
・第2の計測手段(検査対象に対する全テスト量のうち、実行されたテスト量の割合を示す網羅率を計測する。)
・評価演算手段(検査対象の品質を定量化して評価する。)
・判定結果出力手段(評価演算手段によって得られた判定結果を出力する。)。
上記評価演算手段は、座標軸として不良比率を示す第1軸及び網羅率を示す第2軸を含む状態空間又は状態平面を設定するとともに、上記第1及び第2の計測手段によって計測された不良率及び網羅率に基づいて、検査対象の品質を状態空間又は状態平面上の座標点として特定する。そして、検査対象の品質が許容範囲内であるか否かを判定するための評価量として、不良比率及び網羅率を独立変数として含む評価関数を設定するとともに、その評価関数値を、予め決められた一定値又は評価時に指定される指定値に等しいとおいて、状態空間上での評価基準面又は状態平面上での評価基準線を算出する。該状態空間又は状態平面での評価基準面又は評価基準線を境界として区分される領域のうち、検査対象の品質を示す上記座標点がどの領域に属するかを調べることによって、品質が許容範囲内に収まっているか否かを判定することができる。
また、本発明に係る品質評価方法は、下記の(1)乃至(6)に示す工程を有するものである。
(1)検査対象に係る不良比率として、実行されたテスト量のうち不良箇所が発見された割合を計測する工程及び検査対象に対する全テスト量のうち、実行されたテスト量の割合を示す網羅率を計測する工程。
(2)座標軸として不良比率を示す第1軸及び網羅率を示す第2軸を含む状態空間又は状態平面を設定するとともに、計測された不良率及び網羅率に基づいて検査対象の品質を状態空間又は状態平面上の座標点として特定する工程。
(3)検査対象の品質が許容範囲内であるか否かを判定するための評価量として、不良比率及び網羅率を独立変数として含む評価関数を設定する工程。
(4)評価関数値を、予め決められた一定値又は評価時に指定される指定値に等しいとおいて、状態空間上での評価基準面又は状態平面上での評価基準線を算出する工程。
(5)状態空間又は状態平面において評価基準面又は評価基準線を境界として区分される領域のうち、検査対象の品質を示す上記(2)の座標点がどの領域に属するかを調べて、品質が許容範囲内に収まっているか否かを判定する工程。
(6)(5)で得られた判定結果を出力(表示や印字等)する工程。
そして、本発明に係る品質評価用プログラムは、下記に示す処理ステップを有するものである。
・検査対象について実行されたテスト量のうち不良箇所が発見された割合を示す不良比率及び検査対象に対する全テスト量のうち、実行されたテスト量の割合を示す網羅率を計測し又は不良率及び網羅率の計測データを取得するステップ。
・座標軸として不良比率を示す第1軸及び網羅率を示す第2軸を含む状態空間又は状態平面を設定するとともに、計測又は取得された不良率及び網羅率に基づいて検査対象の品質を状態空間又は状態平面上の座標点として特定するステップ。
・検査対象の品質が許容範囲内であるか否かを判定するための評価量として、不良比率及び網羅率を独立変数として含む評価関数を設定するステップ。
・評価関数値を、予め決められた一定値又は評価時に指定される指定値に等しいとおいて、状態空間上での評価基準面又は状態平面上での評価基準線を算出するステップ。
・状態空間又は状態平面において評価基準面又は評価基準線を境界として区分される領域のうち、検査対象の品質を示す上記座標点がどの領域に属するかを調べて、品質が許容範囲内に収まっているか否かを判定するステップ。
従って、本発明では、不良比率及び網羅率を座標軸として含む状態空間又は状態平面を設定して、現状での品質を状態空間又は状態平面上での座標点として視覚的に把握することができる。そして、状態空間上での評価基準面又は状態平面上での評価基準線によって区分される領域のどちら側に品質を示す座標点が位置するかをみて、品質が許容範囲内である場合には、検査及び評価を打ち切ることができるとの判断を下せる。あるいは、品質が許容範囲内でないとの判定結果が得られた場合には、品質向上のための改変や不具合の修正工程(デバッグ等)に差し戻すことができる。
本発明によれば、不良比率及び網羅率を含む2次元以上の座標系において検査対象に係る品質評価及び進捗管理を行うことができるとともに、品質の制御、品質保証において、明確な定量的指標及び評価基準に基づく客観的な処理を行い、適正な評価終了判定を行うことができる。これにより、許容される品質に到達するまでに、検査対象に係るテスト及び評価をどの程度又は範囲まで行えば良いのかが明らかとなる。例えば、品質評価や保証の活動によって生み出される価値を定量化して視覚的に提示することが可能となり、また、当該活動の適正化及び効率化に寄与する。
上記評価関数については、出荷数及び出荷前の検査工程で発見された不良数又はこれらに比例する量を変数とし、不良箇所の事前発見による検査の成果を表す第1の関数を「F1」と記し、出荷前の検査工程で未発見の不良数又は該不良数に比例する量を変数とし、不良箇所が事後的に発見された場合の不利益を表す第2の関数を「F2」と記すとき、上記評価関数を第1の関数と第2の関数との差(「F1−F2」又は「F2−F1」)として定義することができる。つまり、第1の関数「F1」を用いてテスト及び評価活動の成果を評価関数に反映させ、第2の関数「F2」を用いて未発見不良に起因する不利益を評価関数に反映させることができる。例えば、第1の関数「F1」が評価関数における正因子であって、出荷数と出荷前の検査工程で発見された不良数との積に比例する回収量を表すものとし、また、第2の関数「F2」が評価関数における負因子であって、出荷前の検査工程で未発見の不良数に比例する損失量を表すものとすれば、評価量として機会損益(想定される利益と損失の和)をとることで、定量的かつ実質的な品質評価を行える。
あるいは、上記評価関数が、出荷前の検査工程で未発見の不良数又は該不良数に比例する量を変数とし、不良箇所が事後的に発見された場合の不利益を表す関数であるとした形態には、網羅率が100%でない場合において、検査対象に残存するであろう不良数に基づいて品質評価を行える。
さらには、上記評価関数が、検査対象について実行されたテスト量又は該テスト量に比例する量を変数とする第3の関数を、負因子として含む形態において、該第3の関数として、例えば、品質保証活動に伴う固定費を見積もることで、実質的な損益を含めた評価が可能となる。
また、複数の評価関数を用いることによって、多面的な評価が可能となり、定量的指標及び評価基準に基づく確実な品質評価が可能となる。つまり、第1の評価関数が、上記第1の関数と上記第2の関数との差(「F1−F2」又は「F2−F1」)として定義され、第2の評価関数については、その関数値が出荷前の検査工程で未発見の不良数又はこれに比例した関数として定義されている場合に、第1の評価関数から決まる評価基準面又は評価基準線と、第2の評価関数から決まる評価基準面又は評価基準線を算出し、それらを境界として、現状での品質を示す上記座標点がどちら側の領域に位置するかに応じて、品質が許容範囲内であるか否かを判定すれば良い。
本発明に係る品質評価方法は、網羅率100%の達成を前提としない各種の検査対象のテスト及び評価に幅広く適用することが可能であり、本発明に係る品質評価用プログラムをコンピュータ等の情報処理装置に用いることにより、上記処理ステップが実行されて評価演算処理が行われる。
本発明は、製品等のテストや評価活動又は業務の進捗状況に応じて、該活動又は業務の生み出す価値を定量的に評価し、品質評価の過程を視覚的かつ直感的に把握できるようにすること、そして、テスト及び評価に係る十分性の判定(つまり、どの程度又は範囲までテストや評価及びこれに伴う修正等の作業を行えば所期の品質が保証されるのかといった終了時点の判定)を可能にすることを目的とする。
尚、以下では、ソフトウェアを検査対象とした具体例を用いて、企業又はその品質保証部門における品質評価システムについて説明するが、本発明は、製品や食品等のサンプリングによるテスト(抜き取り検査)とその評価システム等に幅広く適用することが可能である。
図1は、本発明に係る品質評価システムの基本的構成を示す概念的な説明図である。
品質評価システム1は、検査対象2(本例では、ソフトウェア)のテストを行う検査手段3を有し、該検査手段3には、第1の計測手段3aと、第2の計測手段3bが含まれる。尚、対象とするソフトウェアは一般に複数のモジュールから構成され、例えば、開発規模が大きく、総ステップ数にして100万行以上にも及ぶ場合には、バグの混入が避けられないことを前提としたテスト作業が行われる。
第1の計測手段3aは、検査対象2に係る不良比率として、実行されたテスト量のうち不良箇所が発見された割合を計測するものである。つまり、ソフトウェアの場合には「バグ率」に相当し(以下、「x_bar」と記し、「0≦x_bar≦1」を満たす。)、その計測結果が後段の評価演算手段4に送出される。
第2の計測手段3bは、検査対象2に対する全テスト量のうち、実行されたテスト量の割合を示す網羅率を計測するものである。つまり、ソフトウェアの場合には「テストカバレッジ(Coverage)率」に相当し(以下、「Rc」と記し、「0≦Rc≦1」を満たす。)、その計測結果が後段の評価演算手段4に送出される。
評価演算手段4は、不良比率の計測データ及び網羅率の計測データを受けるとともに、検査対象2の品質を評価し、品質が予め規定され又は指定される許容範囲内であるか否かの判定等を含む演算処理を行う。例えば、CPU(中央処理装置)及び該CPUにより解釈されて実行されるプログラム等を用いて構成されるが、本発明の適用においては専用回路を用いた構成形態でも構わない。
評価演算手段4には、初期設定や条件設定等に必要なデータが操作入力又は設定手段5から送られ、また、計測データの集計結果、各種の評価結果や判定結果等はデータ格納装置6に送られて保存される。尚、操作入力又は設定手段5には、キーボードやタブレット、タッチパネルやマウス等のポインティングデバイスが用いられる。また、データ格納装置6には不揮発性記憶装置(磁気式記録媒体や光学式記録媒体等を用いたデータ記録装置や、不揮発性半導体メモリ装置等)が用いられ、品質評価に必要な参照データやファイル等が格納されている。
判定結果出力手段7は、評価演算手段4によって得られた判定結果を出力するために設けられており、例えば、グラフィック・ディスプレイ等の表示装置や、印字装置(プリンタ)、あるいは、判定結果のデータをネットワーク経由で所望の情報処理装置(サーバー等)に送出するための通信接続装置等が用いられる。
検査対象2の品質を評価した結果、品質が許容範囲内である場合には、その旨の判定結果(図1の「OK」参照)が得られる。また、品質が許容範囲外である場合には(図1の「NG」参照)、検査対象2のテスト作業で発見された不具合の修正や除去等(所謂デバッグ作業)が行われる。その後、再び検査対象2のテスト及び評価、判定が行われるという具合に、フィードバックループに従って品質が所期のレベルに達するまで品質保証のための作業が繰り返される。尚、本発明の適用において、検査対象によっては不具合の修正や除去等の自動化が可能である場合も挙げられ、その際には修正手段等を品質評価システム1に含めることができる。
企業やその品質保証部門では、ソフトウェアを可能な限り速やかにテストし、品質評価を行って、バグに起因する問題点の発見及び除去に努め、その品質を保証しなければならない。しかも、検査対象であるソフトウェアのテストや評価が現在進行中であったとしても、該ソフトウェアの開発部門においては、新規機能の追加はもとより、必要に応じた仕様変更等を並行して進めることさえ一般的である。
そこで、以下では、検査対象のテスト結果に基づいて品質を評価し、品質が許容範囲内であることを保証するための品質評価方法及び上記評価演算手段4のもつ機能等について説明する。
品質評価を技術的にかつ定量的に行うために、不良比率と網羅率を含めた独立な状態量を用いて品質をn次元(n≧2)の状態空間上で表現する。以下では、ソフトウェアのバグ率と、カバレッジ率という互いに独立な2種類の状態量を用いた状態平面について説明するが、本発明の適用において3次元以上の状態空間への拡張が可能である。
図2は、座標軸として不良比率を示す第1軸と、網羅率を示す第2軸を含む状態平面について説明するための概略的なグラフ図であり、本例では横軸にバグ率「x_bar」をとり、縦軸に(テスト)カバレッジ率「Rc」をとっている。
バグ率「x_bar」は、対象ソフトウェアに関してバグが発見されたテストケース数を「b」と記し、テストケース数(標本数)を「n」と記すとき、「x_bar=b/n」で定義される。状態平面の第1軸としては、テストで発見されたバグ個数でなく、規格化量である比率にて表現する。尚、バグ率は、テスト及び評価活動の目的制御量であって、計測ツールを用いて容易に計算可能であり、ソフトウェアの品質に関して不良箇所がどの程度の割合で含まれているかを定量的に表現している。
ソフトウェアのバグの種類には、例えば、致命的な結果等を齎す虞があり、速やかな回収を要するバグ(所謂「Fatalバグ」)と、何らかの機会に回収した方が好ましいバグ(所謂「Easyバグ」)があり、バグ率の計測に関して如何なるバグを対象とするかについては、例えば、以下の形態が挙げられる。
(1)直ぐに回収すべきバグのみを対象とする形態
(2)直ぐに回収すべきバグ及びそれ以外のバグ(「Easyバグ」を含む。)を対象とする形態
(3)ソフトウェアを構成するモジュール別に又は処理内容等の重要度に応じて上記(1)又は(2)を使い分ける形態。
また、カバレッジ率「Rc」は、対象ソフトウェアに関して実際に行われたテストケース数を「n」と記し、総テストケース数を「N」と記すとき、「Rc=n/N」で定義される(これは、実行ステップ数の総ステップ数に対する比率にほぼ比例する。)。状態平面の第2軸についても、規格化量である比率にて表現する。尚、カバレッジ率は、テスト及び評価活動の努力量に比例し、計測ツールを用いて計測可能な量である。また、テストケース数の代わりに実行ステップ数を用いる場合には、総ステップ数に対して占める割合が計測される。
図2に示す座標点P1(x1,x2)は、ある時点でのソフトウェアの品質を表しており、座標値x1がバグ率の計測値を示し、座標値x2がカバレッジ率の計測値を示している。つまり、状態平面(x_bar,Rc)を設定し、計測された不良率及び網羅率に基づいて検査対象の品質を座標点として特定することができる。
テスト及び評価活動の進捗状況は、例えば、座標点P0からP1、そして、P2への推移として視覚的に把握することができる。つまり、本例では、座標点P0に示すように、バグ率が比較的高く、カバレッジ率の低い状態から、デバッグ作業等によって不具合の除去や修正が適切に行われることで、座標点P1、さらにはP2へと次第にバグ率が低くなり、カバレッジ率が高くなっていく様子が分かる。
上記バグ率を定量的に扱う手法として確率・統計的手法があり、そのモデルとして、N個の全標本からn個の標本(サンプル)を抽出し、抽出したものを調べて不良の有無を検査する場合の統計処理が挙げられる。例えば、図3に概念的に示すように、壷の中にN枚(Nは、非常に大きな数である。)のカードが入っており、そのカードの表には「0」又は「1」の数値が書かれている(「0」の場合に「バグなし」、「1」の場合に「バグあり」とする。)。このN枚のカードの集合を統計用語で母集団と言うが、壷の中から1枚のカードを引いては、その表に記された数値(「0」又は「1」)を書きとめて、壷に戻すと言った操作を、n回(nはNに対して充分に小さい)繰り返す。そして、n枚のカードの結果を集計して数値が「1」であった数「b」(1の総数)をnで除した値がバグ率「x_bar」に相当し、この標本でのカードが「1」である事象の標本確率である。
N枚のカードからなる母集団において、そのカードの表の数値が「1」である事象の母集団確率を「m」と記すとき、標本確率(x_bar)が母集団確率(m)の周囲に正規分布することが、「中心極限定理」のもつ内容である。つまり、誤差「x_bar−m」が(0、s)の正規分布となる。ここで、「0」は平均値を示し、「s」は標本の標準偏差であり、母集団の標準偏差を「σ」と記すとき、「σ=(√n)・s」である。
中心極限定理を用いて、1回の評価標本値から母集団の確率mの区間推定が可能となる。但し、上記モデルでは壷からカードを1枚ずつ取り出しこれを元の壷に返すという条件がついており、現実のソフトウェアのテストケースでは該条件が満たされないが、一般に母集団の総数Nの値が非常に大きな値であって、仮に元の壷に戻したカードが再度引かれる確率は極めて小さいので、実用上では当該条件による誤差は無視し得る。
必要十分なカード総数(N枚)の母集団において、各カードの裏にそれぞれソースコードが記載されていると想定した場合に、それらのソースコードを全部集めることによってソフトウェア全体が構成され、従って、該ソフトウェアをテストする場合に、標本確率(x_bar)と母集団確率(m)との関係は、中心極限定理により下式で与えられる。
Figure 2006251994
尚、ここで、「Z(α/2)」は規格化正規関数値を示し、「α」は有意水準で外れる確率を表す(例えば、95%の信頼区間推定時に、「α=0.05」、「Z(α/2)=1.96」である。)。
母集団の上限バグ率を「m_max」と記すとき、下式のように[数1]式の右辺第2項の複号のうち「+」の方を採用し、カバレッジ率「Rc=n/N」を用いて次のように表すことができる。
Figure 2006251994
尚、Nが十分に大きな値であることから、「(1/N)〜0」の近似を用いている。上式は、N値を既知として、「m_max」と、変数「n」、「Rc」、「x_bar」の間に成立する関係式である。
[数2]式において、推定区間として、「+Z(α/2)」を乗じた上限「m_max」を採用する理由は、対象ソフトウェアの品質として、より厳しい数値で推定することによって、リスクを最小限に抑えるとともに、さらに品質を高めたいという要請に拠る(その意味で、精度面で一種の安全係数を乗じることに相当する。)。また、上式では、母集団確率を標本確率(バグ率「x_bar」)で推定する様に表現しているが、確率論上では、母集団確率は確定した値であり、標本確率が母集団確率の周辺に分布する。
推定精度を所望の値(これを「ε」と記す。)以下としたい場合の、n値(テストケース数)は、「[数1]式又は[数2]式における「x_bar」の付加項(第2項)の絶対値≦ε」からnについて解くことにより、下記のように求まる。
Figure 2006251994
次のステップでは、検査対象の品質が許容範囲内であるか否かを判定するための評価量として、バグ率「x_bar」及びカバレッジ率「Rc」を独立変数として含む評価関数を設定する。
多変数x1、x2、…の評価関数は、一般に、「F(x1,x2,…)」で表されるが、以下の説明では、状態平面上でのx_bar、Rcを含む2変数の評価関数「F(x1,x2)」を用いた場合を例にして品質評価及び判定方法について説明する。
図4は、評価関数に基づく評価基準線「LF」と、座標点Pa(xa1,xa2)、Pb(xb1,xb2)を状態平面上に示したグラフ図であり、横軸にバグ率「x_bar」をとり、縦軸にカバレッジ率「Rc」をとっている。
本例において、座標点Pa(xa1,xa2)は、評価基準線「LF」を境界として区分される2領域のうち、該評価基準線の上側領域に位置しており、他方の座標点Pb(xb1,xb2)は、該評価基準線の下側領域に位置している。「xb1>xa1」の関係からPaの方が品質が高いこと(バグ率が低い)及び「xb2<xa2」の関係からテスト作業の進捗状況ではPaの方がカバレッジ率が高いことが分かり、この場合、PaとPbとの間を通っている評価基準線「LF」が品質評価の目安になっている。
図5は、評価関数に基づく複数の評価基準線を状態平面上に例示したグラフ図であり、横軸にバグ率「x_bar」をとり、縦軸にカバレッジ率「Rc」をとっている。
本例では、評価基準線「LF(V)」(V=−2、−1、0、+1、+2)における括弧内の数値が評価量の違いを表しており、評価量の値が負値からゼロ、さらに正値へと変わるにつれて評価基準線が上方(Rc軸の正方向)に位置している。
座標点P(x1,x2)は計測後の品質を表しており、当該座標点がこれらの評価基準線によって区分される複数の領域のうち、どの辺に位置するかを見ることで評価量との関係を把握することができる。
本発明の適用において、評価関数は、検査対象の品質が許容範囲内であるか否かを判定するための評価量として、不良比率及び網羅率を独立変数として含む関数である。例えば、不良比率を「x1」、網羅率を「x2」と記すとき、両変数の関数として評価関数を「F(x1,x2)」と記すことができる。
そして、出荷数及び出荷前の検査工程で発見された不良数又はこれらに比例する量を変数とし、不良箇所の事前発見による検査の成果を表す第1の関数を「F1」と記し、また、出荷前の検査工程で未発見の不良数(推定数)又は該不良数に比例する量を変数とし、不良箇所が事後的(例えば、出荷後)に発見された場合の不利益を表す第2の関数を「F2」と記すとき、評価関数F(x1,x2)を、第1の関数と第2の関数との差、つまり、「F(x1,x2)=F1−F2」又は「F(x1,x2)=F2−F1」として定義することができる(具体例については、後で詳述する。)。
また、評価関数F(x1,x2)を、出荷前の検査工程で未発見の不良数又は該不良数に比例する量を変数とし、不良箇所が事後的(例えば、出荷後)に発見された場合の不利益を表す関数として定義することが可能である。
上記評価演算手段4(図1参照)では、このような評価関数を設定するとともに、その評価関数値を、予め決められた一定値又は評価時に指定される指定値に等しいとおき、状態空間上での評価基準面又は状態平面上での評価基準線を算出する(つまり、図4の例では状態平面上の評価基準線「LF」が算出される。)。そして、状態空間又は状態平面で評価基準面又は評価基準線を境界として区分される領域のうち、検査対象の品質を示す座標点がどの領域に属するかを調べて、品質が許容範囲内に収まっているか否かを判定することができる。
以下では、ソフトウェアのテスト及び評価活動が生み出す価値について、具体的に説明する。
上記評価関数に関して、企業又はその品質保証部門等の組織に係る機会損益、つまり、ソフトウェアのテスト及び評価活動の価値を表現する量が、例えば、以下の3種類の量から構成されるものとする。
(1)テスト及び評価活動に伴う固定費(これを「Cf」と記すとき、「Cf≦0」である。)
(2)テスト及び評価活動で発見されたバグが、仮に発見できずに出荷後に発見されたとした場合の回収費(これを「Lf」と記すとき、「Lf≧0」である。)
(3)テスト及び評価活動を逃れた未発見のバグ(残存バグ)が出荷後に発見された場合の回収費(これを「Luf」と記すとき、「Luf≦0」である。)
先ず、上記(1)の固定費「Cf」については、1個のテストケースの作成費用を「encf」と記するとき、テストケース数「n」に対して、「Cf=n・encf」から算出される。これは、テストケース数が多くなるほど、費用がかかることを意味し、企業等にとって支出(損失)である。尚、例えば、既に開発済みのソフトウェアの改変時等において、テストケースが作成済であって、その費用が償却済みとされ、そのまま流用できるような場合には、「Cf=0」である。
また、上記(2)の回収費「Lf」はテスト及び評価活動によってバグが発見され、よって、該バグが損失をもたらさなかったという意味で、当該活動の成果を示す。つまり、1個のバグの回収費を「enlf」と記し、出荷数(例えば、ソフトウェアの製品搭載台数)を「Nu」と記すとき、「Lf=n・x_bar・enlf・Nu」から算出され、実際の金銭的利益ではないが、企業等にとって機会収益である。
上記(3)の回収費「Luf」については、出荷後に発見されたバグ1個当たりの回収費を上記と同じ「enlf」と記すとき(勿論、「enlf」とは違う値でも良いが、ここで説明の簡単化を考慮して、回収費の単価を同じとする。)、バグ率(x_bar)、カバレッジ率(Rc)等を用いて、下式により算出される。
Figure 2006251994
尚、上式には、総テストケース数が「N」で、母集団上限バグ率が「m_max」であって、n個のテストケース中のバグ数(標本バグ数)が「n・x_bar」である場合に、母集団の残存バグ数の最大数が「N・m_max−n・x_bar」で、このときの損失が「Luf」であり、比例関係から「(Luf/enlf)=(N・m_max−n・x_bar)/(n・x_bar)」が成り立ち、これに[数2]式の「m_max」を代入することによって導出される。但し、母集団の残存バグ数は統計上、「N・m_max−n・m_max」が正しいと考えられるが、上式では、「N・m_max−n・x_bar」を用いていることに注意を要する。つまり、本例では、母集団の残存バグ数を、多目に見積もることで安全策を講じている(尚、「N・m_max−n・m_max」の採用も勿論可能である。)。
回収費「Luf」は、出荷後に残存バグが発見された場合に実際の金銭的損失を齎す可能性があり、企業等にとって機会損失である。
以上の量を合算するとテスト及び評価活動に係る最終的な機会損益(これを「G」と記す。)として、「G=Cf+Lf+Luf」あるいは絶対値記号「||」を用いて利益と損失を明確化した式「G=|Lf|−|Luf|−|Cf|」が得られる。
つまり、本例では、Lfが上記第1の関数(F1)に相当し、これは評価関数Gにおける正因子である。また、Lufが上記第2の関数(F2)に相当し、これは評価関数Gにおける負因子である。そして、Cfは第3の関数(これを「F3」と記す。)として評価関数に負因子として含まれる。つまり、本例のように、実行されたテスト量又は該テスト量に比例する量を変数とする第3の関数(F3)が評価関数に含まれる形態と、該第3の関数(F3)が評価関数に含まれない形態が挙げられる。
本例の機会損益Gに関する可制御パラメータは、バグ率(x_bar)及びカバレッジ率(Rc)であり、テスト及び評価活動における可制御量はカバレッジ率のみであるが(実行されたテストケース数に依存する。)、テスト及び評価の終了後に対象ソフトウェアを開発部門等に差し戻して発見バグの除去や修正等を行うプロセスを経ることにより、結果として、バグ率(x_bar)が制御されることになる。
尚、この他には、客先で発見されたバグによる企業のブランドイメージの低下や製品の買い控えといった、各種の損失等を最終機会損益に加味することも可能である(この場合、発見バグによる機会利益と、未発見バグによる機会損失の両方について考慮する必要がある。)。
最終機会損益は、関数「G(x_bar,Rc,n)」の形で得られ、その関数値を、予め決められた一定値又は評価時に指定される指定値に等しいとおけば、状態平面上での評価基準線が求まる。つまり、該一定値又は指定値を「VG」と記すとき、「VG=G(x_bar,Rc,n)」は、バグ率及びカバレッジ率を座標軸とする状態平面上での等高線(等値線)を表現している。
図6は、VG=0(つまり、「G(x_bar,Rc,n)=0」)とした場合の等高線を例示しており、横軸にバグ率(x_bar)をとり、縦軸にカバレッジ率(Rc)をとったグラフ図である。
状態平面上に、VG値を特定した機会損益Gの等高線で表現した評価基準線を描き、現時点のソフトウェア品質を表す座標点(図中の星印参照)と、該評価基準線との位置関係に基づいて、テスト及び評価活動(業務)の価値を視覚的・直感的に把握することができる。そして、テスト及び評価の十分性の判定については、バグ率及びカバレッジ率の計測後に確定する座標点が、該評価基準線の上側(カバレッジ率の正方向)に位置するか否かによって判断すれば良い。即ち、該座標点が評価基準線の上側の領域にあれば、テスト及び評価の終了と判定することが可能となる(実際は、後述するように、対象ソフトウェア全体の残存バグ数に係る等高線と併用して、最終的な判断を下すことが好ましい。)。
尚、図示の等高線は、「G(x_bar,Rc,n)=0」を、カバレッジ率について解いた関数「Rc(x_bar,n,Nu,encf,enluf,Z(α/2))」により表される。ここで、「enluf」はバグ1個当たりのLuf値を示す。また、本例では、統計的推定に係る信頼区間として95%の信頼限界(Z(α/2)=+1.96・σ)を採用している。
等高線がn値に依存することから明らかなように、n値の増加に対して新たな等高線を描くことができる。換言すれば、テストケース数の進捗に応じてn値が増加する度に、上記関数を用いて各時点での等高線を描くことにより、テスト及び評価の進捗状況の監視や計測、制御の指針として利用できることになる。
「G(x_bar,Rc,n)=0」から導出される等高線は、バグ率が極く小さい領域を除いたほぼ全域に亘って「Rc>0.5」を満たす。これは、上式「G=|Lf|−|Luf|−|Cf|」において、「Cf=0」の場合を想定したとき、「Rc=0.5」の直線となる(前記「Luf」のバグ1個当たりの回収費を「enluf」と記すとき、「(Rc値が0乃至0.5までの発見バグのenlf値)=(Rc値が0.5乃至1.0までのenluf値)」が常に成り立つからであり、バグの価値はテストや検査時に発見されようが、出荷後に客先等で発見されようが同じである。)。現実には、「encf>0」であって、固定費「Cf」の分だけ必然的にRc値が0.5よりも大きくなる。また、統計処理上の原因として、母集団には計測されたバグ率から求まるバグ数よりも多くのバグが推定され、この残存バグ数を減らすためにはカバレッジ率(Rc)をより大きく確保せねばならず、この分だけRc値が0.5よりも大きくなることが挙げられる。
現在の評価対象とされるソフトウェアの品質を示す座標点が、図6の状態平面に星印で示す位置、つまり、等高線の上側領域であれば、テスト及び評価活動は、所定(本例では、95%)の確からしさをもって利益(黒字)であると判断できることになる(座標点が該等高線の下側領域に位置する場合には、赤字であるとの即断はできず、所定の確率をもって利益が出ていないことが分かるだけである。)。
以上の説明では、「VG=0」とした場合の等高線、つまり、機会損益Gを構成する各回収費(Lf、Luf)、固定費(Cf)の釣り合い線(あるいは均衡線)を例示したが、必要に応じてVG値を正値又は負値として複数の等高線を状態平面上に描くことができる。その場合に、「G(x_bar,Rc,n)=VG」(「VG≠0」)として、Rcについて解いた関数「Rc(x_bar,n,Nu,encf,enluf,Z(α/2),VG)」を用いて等高線を描けば良い。必要に応じて、VG値を負値(赤字)から正値(黒字)の間に亘って所定間隔で段階的に描けば、VG値毎に所定の信頼度をもって多数の等高線を状態平面上に表した地図(機会損益地図)を得ることができる。尚、該等高線については、VG値が大きいほどカバレッジ率が大きく、VG値が小さいほどカバレッジ率が小さい(つまり、バグ率x_barを一定とした場合に、VG値が大きいときにRc軸の上方向(正方向)に等高線が位置する。)。
図7に示すように、等高線は、バグ率(x_bar)の低下とともにカバレッジ率(Rc)が上昇して、ある値でカバレッジ率が「1」に達する。そして、この点から状態平面の原点(0,0)へと向かう左肩下がりの特性を示す。即ち、バグ率が非常に小さい領域では、該バグ率の低下とともにカバレッジ率が低下して原点へと漸近していく。
バグ数が非常に少ない、高品質のソフトウェアのテスト及び評価を行う場合に、テストケース(n個)を作成して、対象ソフトウェアのテスト及び評価が、ある程度進んだ段階で機会損益Gに係る等高線を描いたときに、該等高線が図7のように、バグ率の小さい領域で上記のような特性を示したならば、当該対象ソフトウェアのテスト及び評価活動を出来るだけ早く中止すべきである。つまり、この場合に当該対象ソフトウェアの品質を示す状態平面上の座標点が既に等高線の上側領域に位置するにも関わらず、実行するテストケース数(n値)を増やしてカバレッジ率を上げること(図の矢印「U」参照。)は無駄な努力であって、企業の損失(固定費の増加)に繋がり、好ましくない。
次に、出荷後のソフトウェアに含まれる残存バグ数を評価に入れた品質判定方法について説明する。
利益追求を目的の一つとする企業において、機会損益を評価関数に取り入れることは勿論であるが、テスト及び評価が済んた後で対象ソフトウェアが製品に搭載されて市場に出た後、そのバグ(残存バグ)が発見された場合には、企業にとって最大の不安材料は、当該ソフトウェアのバグ率ではなく、実際に残っているバグ数であって、その回収費用がどのくらいになるかである。即ち、バグ率(x_bar)はあくまで比率(相対量)であって、具体的な残存バグの個数がソフトウェア品質に関して重要な判断基準となる(残存バグの発見により企業全体の信用等に重大な結果を及ぼすことがあり得る。)。例えば、出荷後に客先等でバグが1個でも発見されると、その回収には企業内の多くの部署が対応することになり、その損失の大きさが予想される。また、バグの発見直後には、その損失を直接的に把握し難い場合も多いが、企業全体へのイメージダウンや製品の買い控えと言った形で大きな機会損失が発生する虞がある。
図8は、状態平面上に、機会損益Gに基づく等高線「LG」(図の破線参照)とともに、許容される残存バグ数に基づく等高線「LNb」(図の実線参照)を併せて例示したグラフ図である。
等高線LNbは、原点(0,0)を通り、標本バグ率(x_bar)の増加に伴ってカバレッジ率(Rc)が増加していく、右上がりの曲線である。
テスト及び評価済みのソフトウェアは、デバッグ作業に回されることで、最終的には、検査工程で発見し得るバグを全て除去され又は修正された上で初めて製品等に搭載されて市場に出荷される。従って、この時点では一部例外を除いて対象ソフトウェアの標本バグ率(x_bar)は0である(換言すれば、標本バグ率が0になるまで、検査、評価及び修正、除去等の努力が続けられる。)。しかしながら、「x_bar=0」は、ソフトウェア全体、つまり母集団のバグ率「m=0」を意味しない。即ち、「x_bar=0」により「m=0」が保証されるのは、カバレッジ率が「1」である場合以外にはありえない。
既述のように、総テストケース数について完全なテストを行うことには甚大な労力と時間等を費やす必要があり、現実的でないことを前提として、バグの改修や除去後において母集団に残存してしまうと推定されるバグ数(これを「Nb」と記す。)についての関数式を以下に導出する。
出荷前の検査工程で見つかった全てのバグについて改修や除去を終えた後の母集団(対象ソフトウェア)の推定バグ率を「me」と記すとき、「me=m−(m・n)/N=m・(1−Rc)」から、「Nb=me・N=(n・m・(1-Rc))/Rc」が得られる。この式中のmに[数2]式の「m_max」を代入した上で、前記機会損益Gの場合と同様にこれをカバレッジ率について解けば、関数「Rc(x_bar,n,Nb,Z(α/2))」が得られ、そのNbの値を特定して状態平面上に描いたグラフ曲線が上記等高線LNbである(本例では、「Z(α/2)=1.96」としている。)。尚、該等高線については、Nb値が小さいほどカバレッジ率が大きく、Nb値が大きいほどカバレッジ率が小さい(つまり、バグ率x_barを一定とした場合に、Nb値が小さいときにRc軸の上方向(正方向)に等高線が位置する。)。
対象ソフトウェアに係る状態平面上での計測ポイント(座標点)が、図8に星印で示すように、等高線LNbよりも上側にあれば、95%の信頼度をもって対象ソフトウェアの残存バグ数がNb値以下であると判断することができ、この時点でテスト及び評価活動を中止すれば良い。つまり、品質を示す座標点が、等高線LNbを境界として区分される領域のどちらの側に位置するかが終了判定の基準となる。このようにテストや評価をどの時点で終了すべきかに関するアルゴリズムが明確であって、評価者の経験や能力等に依存する余地はない(このことは、前記機会損益Gに係る等高線を用いた判定についても同様である。)。
尚、残存バグ数Nbの具体的な数値については、客先等でバグが1個でも発見されてしまった場合の各種損失を考慮して、企業全体又はソフトウェアが搭載される製品の責任部署において十分に吟味して決める必要があり、前記した機会損益に基づく等高線と併せて総合的に判断することが望ましい。
これら複数の等高線を状態平面上に描くことで、対象ソフトウェアに対する多面的な評価及び判断が可能となる。
例えば、下記の手順に従って評価判定を行えば良い。
(1)対象ソフトウェアのテスト及び評価が、ある程度進んだ場合に、機会損益G及び残存バグ数Nbに係る等高線を状態平面に描く。例えば、現状の品質を示す座標点のカバレッジ率が0.5以上となった時点で両者をグラフ図に画面表示させる。これは、機会損益Gに係る等高線に関して、非常に高品質のソフトウェアを対象とする例外的な状況を除いて、バグ率が大きい初期の範囲で「Rc>0.5」とされること(つまり、0.5以下の領域でテスト作業が終了することは殆どないこと。)に拠る。
(2)対象ソフトウェアのバグ率(x_bar)及びカバレッジ率(Rc)の計測結果を、座標点として状態平面上にプロットする(図8の星印参照。)
(3)(2)の座標点が各等高線よりも上側領域に位置するかどうかを調べる。即ち、当該座標点が機会損益Gに基づく等高線LGよりも上側であって、かつ残存バグ数Nb(許容バグ数)に基づく等高線LNbよりも上側領域に位置していれば、機会損益が利益(黒字)であって、かつ残存バグ数Nbが目標値(許容値)以下であると、所定の信頼度(例えば、95%)をもって判断できる。
尚、図8の例では、両等高線の交点を基準として横軸(バグ率)における左側範囲では、最終機会損益に基づく等高線LGの方が残存バグ数に基づく等高線LNbよりも上側に位置することから、当該範囲では前者LGを基準線として採用し、計測後の座標点が当該基準線の下側に位置する場合には、デバッグ作業に差し戻して再びテスト及び評価を続行すれば良い。また、両等高線の交点を基準として横軸(バグ率)における右側範囲では、最終機会損益基づく等高線LGよりも残存バグ数に基づく等高線LNbの方が上側に位置することから、当該範囲では後者LNbを基準線として採用し、計測後の座標点が当該基準線の下側に位置する場合には、デバッグ作業に差し戻して再びテスト及び評価を続行すれば良い。
本発明の適用において、残存バグ数のように、出荷前の検査工程で未発見の不良数又は該不良数に比例する量を変数とし、不良箇所が事後的(例えば、出荷後)に発見された場合の不利益を表す評価関数だけを用いることもできるが、上記のように複数の評価関数を用いることによって、多面的な評価が可能となり、定量的指標及び基準線に基づく確実な品質評価が可能となる。
例えば、複数の評価関数のうち、第1の評価関数を「FA」と記し、第2の評価関数を「FB」と記すとき、これらは前記の関数F1、F2やNbを用いて下記のように定義できる。
・「FA=F1−F2」又は「FA=F2−F1」
・「FB=Nb」又は「FB∝Nb」
つまり、FAは、F1とF2との差として定義され、F1は、出荷数及び出荷前の検査工程で発見された不良数又はこれらに比例する量を変数とし、不良の事前発見による検査の成果を表す。また、F2は、出荷前の検査工程で未発見の不良数又は該不良数に比例する量を変数とし、不良が事後的に発見された場合の不利益を表す。
複数の評価関数FA及びFBを用いる場合において、第1の評価関数FAに基づいて決められる評価基準面又は評価基準線を「CLA」で表し、第2の評価関数FBに基づいて決められる評価基準面又は評価基準線を「CLB」で表すときに、これらCLA、CLBを境界として、品質を示す座標点が、例えば、状態平面上で評価基準線のどちら側に位置するかによって、現状での品質が許容範囲内であるか否かを判定できる。即ち、品質の判定基準に関して、各評価関数から決まる評価基準面又は評価基準線が明確に規定される(判定上の曖昧さを排除できる。)。
そして、品質及び進捗状況の管理においても有益性を齎す。
図9は、対象ソフトウェアの進捗状況に関して、品質を示す座標点の推移として状態平面上に例示したグラフ図であり、図中に示す各座標点P0乃至P5、Ptの意味は、下記の通りである。
・「P0」=>テスト及び評価に係る対象ソフトウェアについて計測を最初の開始したポイント
・「Pt」=>P0からP1へと推移する間の過渡状態でのポイント
・「P1」=>テスト及び評価の進捗に伴ってカバレッジ率がある程度大きくなった状況(例えば、「Rc>0.5」)を示すポイント(第1テストフェーズの終了時点)
・「P2」=>P1時点での検査工程で発見されたバグを除去又は修正して、テスト及び評価に再度戻された状態を示すポイント
・「P3」=>P1時点でのソフトウェアに対して、バグの除去等の他に、P0からP1までの期間に仕様変更や機能追加等が行われた場合を想定した状態を示すポイント
・「P4」=>P2又はP3時点の対象ソフトウェアに対して、さらにテスト及びデバッグ作業が実施されて、バグ率が下がり、カバレッジ率が高くなった状態を示すポイント(第2テストフェーズの終了時点)
・「P5」=>P4時点の後、最終的に対象ソフトウェアのバグが除去又は修正された状態を示すポイント
本例において、P0からP1、P2、P4、P5へと推移する場合に、バグ率が大きく、カバレッジ率が小さい右下隅の計測ポイント(P0)からスタートし、最終目標ポイントとして、バグ率が小さく、カバレッジ率の大きい左上隅に向かって進む。Ptの時点ではP0に比して、バグ率(x_bar)が小さくなって行く様子を示すが、バグ率が逆に大きくなる場合も勿論有り得る。また、P1時点でのテスト及び評価の結果を受けて、対象ソフトウェアが開発サイド等に戻され、そこでバグの除去や修正が行われてからテスト及び評価工程に戻ってきた時点がP2である。当該時点では、バグ率がP1時点よりも小さくなっているが、カバレッジ率についてはP1のときと同じである(∵P1、P2の各時点でテストケース数は同じであるから。)。
その後、P4へと進み、バグ率がP2時点よりも小さくなって品質が高められ、最終的にP5へと推移する(P4、P5は、いずれもLG、LNbの上側領域に位置している。)。
また、P0からP1、P3、P4、P5へと推移する場合、例えば、テスト及び評価の進行中(P0→Pt→P1)であっても対象ソフトウェアに係る機能追加、仕様変更等が同時並行して進められる状況では、P3に示すように、例えば、バグ率がP2時点と同じであるが、カバレッジ率が減少する場合がある(これは、開発規模やサイズの増加による。また、機能追加等に伴う新たなバグの混入によって、バグ率が高まる事態も生じ得る。)。本例では、P3からP4へと進み、バグ率がP3時点よりも小さくなって品質が高められ、最終的にP5へと推移している。
機会損益Gや残存バグ数Nbに基づく各等高線は、例えば、計測されたカバレッジ率が0.5(50%)以上の領域に入った時点で状態平面上に描かれるようになっており、これらの等高線を評価基準曲線として、前記したように計測ポイントの位置関係に応じて対象ソフトウェアの監視や制御、品質評価、さらにはテスト及び評価活動の終了判定が可能となる。
次に、上記した評価演算手段4や判定結果出力手段7の機能について、コンピュータ装置を用いた場合の構成例を説明する。
図10は、品質評価に用いる装置8の構成例について要部を示したものであり、CPU(中央処理装置)9、主メモリ10、ファイル記憶装置11、出力デバイス12、入出力部13(図中の「I/O」参照)がバス14で繋がれた構成を例示している。
主メモリ10には、コンピュータ読み取り可能な記録媒体から読み出されたプログラム15が格納されており、該プログラムの命令がCPU9により解釈されて実行される。
ファイル記憶装置11には、主メモリ10に対する補助記憶装置として、ハードディスク等の磁気記録媒体を用いた記録再生装置、あるいは光学式又は光磁気式の記録媒体を用いた記録再生装置、又は半導体記憶素子を用いた不揮発性記憶デバイス等が使用され、例えば、プログラム15に係る実行ファイル「fexec」と、以下のファイルが格納されている。
・入力ファイル「fin」(テスト及び評価結果表ファイルや、評価計算に必要なデータ表ファイル等)
・出力ファイル「fout」(機会損益の等高線グラフファイルや、残存バグ数の等高線グラフファイル等)。
上記入力ファイル「fin」には、ソフトウェアのテスト及び評価結果表ファイルが含まれ、例えば、ファイルに記録されたテスト結果データに基づくバグ率やカバレッジ率が取得される。また、上記の評価関数を用いた計算に必要な各種データ、例えば、機会損益Gに係る固定費や損失の単価(encf、enluf等の値)、出荷数Nu、上記VGやNbの設定値や指定値等をデータ表として含むファイルが使用される。
上記出力ファイル「fout」には、機会損益Gや残存バグ数Nbに係る出力データを記録したファイルが含まれ、例えば、状態平面上で前記等高線の2次元的表示に用いるグラフファイルや、状態平面に垂直な1軸を追加して、機会損益Gや残存バグ数Nbについての3次元的表示に用いるグラフファイル等が使用される。
出力デバイス12は、品質評価や判定結果等の出力に用いられ、例えば、ディスプレイ装置等を用いた視覚的表示が行われる。
また、キーボードやポインティングデバイス等を用いた入力手段からのデータが入出部13を介して装置8に入力され、また、品質評価の結果等を含むデータの印字出力が入出力部13から外部のプリンタ等に出力される。
CPU9は、プログラム15に記述された命令に従って、入力ファイル「fin」を読み出し、下記に示す処理ステップが実行される。
(1)不良率及び網羅率の計測データを取得するステップ
(2)品質を状態平面上の座標点として特定するステップ
(3)機会損益や残存バグ数等の評価関数を設定するステップ
(4)状態平面上での評価基準線を算出するステップ
(5)品質が許容範囲内に収まっているか否かを判定するステップ
先ず、(1)では、入力ファイル「fin」からバグ率とカバレッジ率の計測データが取得され、(2)では、状態平面において、現時点での品質が何処に位置しているかが特定される。
そして、(3)では、品質が許容範囲内であるか否かを判定するための評価量として、バグ率及びカバレッジ率を独立変数として含む評価関数を設定した上で、(4)にて、評価関数値を、予め決められた一定値又は評価時に指定される指定値に等しいとおき、例えば、カバレッジ率について解いた関数(前記「Rc(x_bar,n,Nu,encf,enluf,Z(α/2),VG)」や「Rc(x_bar,n,Nb,Z(α/2))」)に従って状態平面上の等高線(評価基準線)を算出する。
(5)では、状態平面上において、(4)で得た評価基準線を境界として区分される領域のうち、(2)で特定される座標点がどの領域に位置するのかを調べる。つまり、現時点での品質を示す座標点と評価基準線の位置関係に基づいて、品質が許容範囲内に収まっているか否かを判定する。そして、CPU9の制御下で、出力ファイル「fout」をファイル記憶装置11に格納するとともに、グラフ表示等の必要な処理を行う。
尚、この例では、(1)にてバグ率とカバレッジ率のデータを入力ファイル「fin」から取得しているが、バグ率やカバレッジ率を計測するステップを(1)に含めても良い。また、(2)と(3)とを逆にする等、処理ステップの順序については必要に応じた適宜の変更を加えることができる。
図11は、処理手順を例示したフローチャート図である。
ステップS1においてバグ率やカバレッジ率を取得し又は計測した後、次ステップS2では、状態平面上に2次元座標系を設定して、その座標点として品質を特定し、ステップS3にて、機会損益Gや残存バグ数Nbに係る等高線を評価基準線として設定する(例えば、「Rc≧0.5」を満たす場合)。そして、次ステップS4では評価基準線と座標点(計測点)との位置関係に基づいて対象ソフトウェアの品質について評価判定を行い、ステップS5にて現時点の品質が許容範囲内であるか否かを判断する。その結果、肯定的結果が得られた場合に、テスト及び評価が終了するが、否定的結果が得られた場合(品質不十分)にはステップS6に進み、バグの修正や除去等が行われた後、再びステップS1に戻る。
図12は機会損益Gについての3次元表示例を示した図であり、状態平面に対して直交する機会損益の座標軸をとって例示したものである。尚、本例では、機会損益Gの座標軸については上方向を損失方向に設定している。
機会損益Gは、バグ率及びカバレッジ率の関数であり(曲面「SG」参照)、任意の値「VP」を与えて「G=VP」の平面(切断面)を指定したときの断面線が、状態平面での上記等高線(例えばVP=0の場合のLG)に相当する。
図13は残存バグ数(Nb)特性についての3次元表示例を示した図であり、状態平面に対して直交する残存バグ数(個数)の座標軸をとって例示したものである。
残存バグ数Nbは、バグ率及びカバレッジ率の関数であり(曲面「SNb」参照)、その許容上限値を「Nbmax」と記すとき、「Nb=Nbmax」の平面(切断面)を指定したときの断面線が、状態平面上での上記等高線(LNb)に相当する。
尚、このような3次元表示をコンピュータ装置上で行うことによって、例えば、機会損益Gや残存バグ数Nbの特性や傾向等を容易に把握することができ、また、計測後の座標点を表示させて評価関数を表す曲面に対する位置関係を捉える場合等に有用であり、テスト及び評価活動の効率化に役立つ。
以上に説明した品質評価方法について箇条書きにまとめると下記のようになる。
(1)検査対象に係る不良比率(上記例では、x_bar)として、実行されたテスト量のうち不良箇所が発見された割合を計測する工程及び検査対象に対する全テスト量のうち、実行されたテスト量の割合を示す網羅率(上記例では、Rc)を計測する工程。
(2)不良比率を示す第1座標軸を「x1」で表し、網羅率を示す第2座標軸を「x2」で表す場合に、これらの座標軸を含む状態空間又は状態平面(2次元の場合)を設定し、計測された不良率及び網羅率に基づいて検査対象の品質を該状態空間又は状態平面上の座標点「P(x1,x2,…)」として特定する工程。
(3)検査対象の品質が許容範囲内であるか否かを判定するための評価量(例えば、前記した機会損益G等)として、不良比率及び網羅率を独立変数として含む評価関数「F(x1,x2)」を設定する工程。
(4)評価関数「F(x1,x2)」の値を、予め決められた一定値又は評価時に指定される指定値に等しいとおくことにより、状態空間上での評価基準面又は状態平面上での評価基準線(上記等高線LG、LNb等)を算出する工程。
(5)状態空間又は状態平面において評価基準面又は評価基準線を境界として区分される領域のうち、上記(2)の座標点「P(x1,x2,…)」がどの領域に属するかを調べることで、品質が許容範囲内に収まっているか否かを判定する工程。
(6)上記(5)で得られた判定結果を出力(表示や印字等)する工程。
前記した例では、バグ率及びカバレッジ率を含む2自由度の状態平面上にて各種の評価量を用いて、等高線(等値線)と座標点(計測ポイント)との位置関係に基づいて、ソフトウェアの品質及び進捗状況を視覚的に把握するとともに、企業や組織によるテスト及び評価活動の成果等を、定量的にかつ直感的に捉えることが可能であり、品質の監視や制御等において有用である。また、上記の説明では、評価関数に基づく等高線として、機会損益や残存バグ数を例示したが、必要に応じて、その他の様々な評価量を用いてその評価関数に基づく等高線を状態平面(又は状態空間)上で取り扱うことで、さらに多面的で総括的な判断を行えるようになる。
上記構成や方法によって得られる各種の利点をまとめると、例えば、下記のようになる。
(A)テスト及び評価活動(業務)の価値について
・開発規模やサイズ等の小さいソフトウェアを除いた一般的な品質評価においてカバレッジ率「1」(100%)の実現には大変な労力と時間、コストがかかることを考慮し、テストや評価活動(業務)の進捗状況に応じてその経済活動価値に関して、バグ率(x_bar)及びカバレッジ率(Rc)を座標軸とする状態平面上にて機会損益(G)に基づく等高線として表現することで視覚的かつ直感的に把握できること。そして、テスト及び評価の十分性に関する判定(終了判定)が可能となること
・テスト及び評価活動の評価量として、機会損益を用いた場合に、当該活動が黒字なのか又は赤字なのかを一目で判断でき、さらには、黒字化するには、カバレッジ率(Rc)やバグ率(x_bar)をどの様に制御したら良いのか等の指針を状態平面上の座標点及び等高線から視覚的にかつ直感的に把握できること。
(B)出荷後のソフトウェア全体に残ってしまう、残存バグ数(Nb)に基づく判断基準について
・ソフトウェア開発企業やソフトウェアを搭載した製品を販売している企業にとって、最終的なソフトウェアの品質とは、不良の割合(不良密度やバグ率等)ではなくて、残存バグの絶対数であり、テスト及び評価の進捗状況に応じて、推定される残存バグ数を明示的に表現するとともに、この値を各種の判断材料として使用できること。
(C)機会損益と残存バグ数の両者を加味した判断基準について
・残存バグ数に基づく等高線を、テスト及び評価の進捗状況に応じて状態平面上に表現し、機会損益に基づく等高線等との関係をも加味しつつ、各種の判断を多面的にかつ視覚的に行えること。
(D)従来の評価終了判定法との比較について
ソフトウェアの評価終了判定法には、経験則上、バグ累積数曲線(バグ曲線)がロジステック曲線等に近い変化を示すことを利用した方法が知られているが、この方法では、一時的な平坦部、つまり、カバレッジ率の増加に対してバグ曲線の変化量が小さくなった場合に、何らの根拠もなくバグ数の収束と判断されてしまう虞がある(このような欠点は、原理的に自由度の不足に依るものと考えられる。)。これに対して、本発明に係る品質評価方法では、2自由度以上の状態空間上での評価基準面又は評価基準線を拠り所として、現時点の品質を示す座標点がそれらのどちら側に位置するかという明確なアルゴリズムに従ってテスト及び評価の終了判定が可能であり、従来方法の抱える本質的な問題を回避することができる。
尚、本発明に係る品質評価方法の適用において、ソフトウェアを検査対象とする上記のプログラムに限らず、該プログラムを記録したコンピュータ読み取り可能な記録媒体、あるいは上記した検査対象の品質評価及び品質保証のためのデータ処理機能や各種の支援機能等を備えたアプリケーションを記録した情報記録媒体(当該記録媒体を情報機器等に装着してプログラムを読み取り可能とした各種のメモリ媒体)、ネットワーク設備を利用したオンライン処理システム等に幅広く利用できることは勿論である。
本発明に係る品質評価システムの基本構成例を示す説明図である。 バグ率とカバレッジ率を座標軸とする状態平面の説明図である。 確率・統計的手法のモデルに関する概念図である。 評価基準線と座標点を状態平面上に示したグラフ図である。 複数の評価基準線を状態平面上に例示したグラフ図である。 機会損益をゼロとした場合の等高線を例示したグラフ図である。 バグ率が小さい領域での等高線を例示したグラフ図である。 機会損益Gに基づく等高線「LG」と残存バグ数Nbに基づく等高線「LNb」を併せて例示したグラフ図である。 品質の推移を状態平面上に例示したグラフ図である。 品質評価に用いる装置構成例について要部を示した図である。 処理手順を例示したフローチャート図である。 機会損益Gについての3次元表示例を示した図である。 残存バグ数(Nb)特性についての3次元表示例を示した図である。
符号の説明
1…品質評価システム、3a…第1の計測手段、3b…第2の計測手段、4…評価演算手段、7…判定結果出力手段

Claims (8)

  1. 検査対象のテスト結果に基づいて品質を評価し、品質が許容範囲内であることを保証するための品質評価システムにおいて、
    検査対象に係る不良比率として、実行されたテスト量のうち不良箇所が発見された割合を計測する第1の計測手段と、
    検査対象に対する全テスト量のうち、実行されたテスト量の割合を示す網羅率を計測する第2の計測手段と、
    検査対象の品質を定量化して評価するための評価演算手段と、
    上記評価演算手段によって得られた判定結果を出力する判定結果出力手段を備え、
    上記評価演算手段は、
    座標軸として上記不良比率を示す第1軸及び上記網羅率を示す第2軸を含む状態空間又は状態平面を設定するとともに、上記第1及び第2の計測手段によって計測された不良率及び網羅率に基づいて検査対象の品質を状態空間又は状態平面上の座標点として特定し、
    検査対象の品質が許容範囲内であるか否かを判定するための評価量として、上記不良比率及び網羅率を独立変数として含む評価関数を設定するとともに、該評価関数値を、予め決められた一定値又は評価時に指定される指定値に等しいとおいて、上記状態空間上での評価基準面又は上記状態平面上での評価基準線を算出した上で、該状態空間又は状態平面で上記評価基準面又は上記評価基準線を境界として区分される領域のうち、検査対象の品質を示す上記座標点がどの領域に属するかを調べて、品質が許容範囲内に収まっているか否かを判定する
    ことを特徴とする品質評価システム。
  2. 請求項1に記載した品質評価システムにおいて、
    出荷数及び出荷前の検査工程で発見された不良数又はこれらに比例する量を変数とし、不良箇所の事前発見による検査の成果を表す第1の関数と、
    出荷前の検査工程で未発見の不良数又は該不良数に比例する量を変数とし、不良箇所が事後的に発見された場合の不利益を表す第2の関数を用いて、
    上記評価関数が上記第1の関数と上記第2の関数との差として定義される
    ことを特徴とする品質評価システム。
  3. 請求項2に記載した品質評価システムにおいて、
    上記第1の関数が上記評価関数における正因子であって、出荷数と出荷前の検査工程で発見された不良数との積に比例する回収量を表し、
    上記第2の関数が上記評価関数における負因子であって、出荷前の検査工程で未発見の不良数に比例する損失量を表す
    ことを特徴とする品質評価システム。
  4. 請求項1に記載した品質評価システムにおいて、
    上記評価関数が、出荷前の検査工程で未発見の不良数又は該不良数に比例する量を変数とし、不良箇所が事後的に発見された場合の不利益を表す関数である
    ことを特徴とする品質評価システム。
  5. 請求項3に記載した品質評価システムにおいて、
    上記評価関数は、実行されたテスト量又は該テスト量に比例する量を変数とする第3の関数を負因子として含む
    ことを特徴とする品質評価システム。
  6. 請求項1に記載した品質評価システムにおいて、
    上記評価関数が複数の評価関数であり、そのうちの第1の評価関数は、出荷数及び出荷前の検査工程で発見された不良数又はこれらに比例する量を変数とし、不良の事前発見による検査の成果を表す第1の関数と、出荷前の検査工程で未発見の不良数又は該不良数に比例する量を変数とし、不良が事後的に発見された場合の不利益を表す第2の関数を用いて、該第1の関数と該第2の関数との差として定義され、また、第2の評価関数は、その関数値が出荷前の検査工程で未発見の不良数又はこれに比例した関数として定義されており、
    上記評価演算手段は、上記第1の評価関数から決まる評価基準面又は評価基準線と、上記第2の評価関数から決まる評価基準面又は評価基準線を算出し、それらを境界として上記座標点がどちらの側に位置するかに応じて、品質が許容範囲内であるか否かを判定する
    ことを特徴とする品質評価システム。
  7. 検査対象のテスト結果に基づいて品質を評価し、品質が許容範囲内であることを保証するための品質評価方法において、
    検査対象に係る不良比率として、実行されたテスト量のうち不良箇所が発見された割合を計測する工程及び該検査対象に対する全テスト量のうち、実行されたテスト量の割合を示す網羅率を計測する工程と、
    座標軸として上記不良比率を示す第1軸及び上記網羅率を示す第2軸を含む状態空間又は状態平面を設定するとともに、計測された不良率及び網羅率に基づいて検査対象の品質を該状態空間又は状態平面上の座標点として特定する工程と、
    検査対象の品質が許容範囲内であるか否かを判定するための評価量として、不良比率及び網羅率を独立変数として含む評価関数を設定する工程と、
    評価関数値を、予め決められた一定値又は評価時に指定される指定値に等しいとおいて、状態空間上での評価基準面又は状態平面上での評価基準線を算出する工程と、
    状態空間又は状態平面において上記評価基準面又は上記評価基準線を境界として区分される領域のうち、検査対象の品質を示す上記座標点がどの領域に属するかを調べて、品質が許容範囲内に収まっているか否かを判定する工程と、
    品質が許容範囲内に収まっているか否かを含む判定結果を出力する工程とを有する
    ことを特徴とする品質評価方法。
  8. 検査対象のテスト結果に基づいて品質を評価し、品質が許容範囲内であることを保証するための処理ステップを備え、情報処理装置に用いられる品質評価用プログラムにおいて、
    検査対象について実行されたテスト量のうち不良箇所が発見された割合を示す不良比率及び該検査対象に対する全テスト量のうち、実行されたテスト量の割合を示す網羅率を計測し又は該不良率及び該網羅率の計測データを取得するステップと、
    座標軸として上記不良比率を示す第1軸及び上記網羅率を示す第2軸を含む状態空間又は状態平面を設定するとともに、計測又は取得された不良率及び網羅率に基づいて検査対象の品質を該状態空間又は状態平面上の座標点として特定するステップと、
    検査対象の品質が許容範囲内であるか否かを判定するための評価量として、上記不良比率及び網羅率を独立変数として含む評価関数を設定するステップと、
    評価関数値を、予め決められた一定値又は評価時に指定される指定値に等しいとおいて、状態空間上での評価基準面又は状態平面上での評価基準線を算出するステップと、
    状態空間又は状態平面において上記評価基準面又は上記評価基準線を境界として区分される領域のうち、検査対象の品質を示す上記座標点がどの領域に属するかを調べて、品質が許容範囲内に収まっているか否かを判定するステップとを有する
    ことを特徴とする品質評価用プログラム。
JP2005065381A 2005-03-09 2005-03-09 品質評価システム及び品質評価方法、品質評価用プログラム Pending JP2006251994A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005065381A JP2006251994A (ja) 2005-03-09 2005-03-09 品質評価システム及び品質評価方法、品質評価用プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005065381A JP2006251994A (ja) 2005-03-09 2005-03-09 品質評価システム及び品質評価方法、品質評価用プログラム

Publications (1)

Publication Number Publication Date
JP2006251994A true JP2006251994A (ja) 2006-09-21

Family

ID=37092443

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005065381A Pending JP2006251994A (ja) 2005-03-09 2005-03-09 品質評価システム及び品質評価方法、品質評価用プログラム

Country Status (1)

Country Link
JP (1) JP2006251994A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008171121A (ja) * 2007-01-10 2008-07-24 Fujitsu Fip Corp 開発プログラム部品決定システム、クライアント装置、開発プログラム部品決定装置、開発プログラム部品決定方法および開発プログラム部品決定プログラム
CN114860618A (zh) * 2022-07-06 2022-08-05 湖南三湘银行股份有限公司 基于rpa的自动化功能测试方法及系统
CN114862283A (zh) * 2022-07-05 2022-08-05 和尘自仪(嘉兴)科技有限公司 机床加工的质检方法、质检装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008171121A (ja) * 2007-01-10 2008-07-24 Fujitsu Fip Corp 開発プログラム部品決定システム、クライアント装置、開発プログラム部品決定装置、開発プログラム部品決定方法および開発プログラム部品決定プログラム
CN114862283A (zh) * 2022-07-05 2022-08-05 和尘自仪(嘉兴)科技有限公司 机床加工的质检方法、质检装置
CN114860618A (zh) * 2022-07-06 2022-08-05 湖南三湘银行股份有限公司 基于rpa的自动化功能测试方法及系统
CN114860618B (zh) * 2022-07-06 2022-09-23 湖南三湘银行股份有限公司 基于rpa的自动化功能测试方法及系统

Similar Documents

Publication Publication Date Title
US20180267500A1 (en) Method and system for integrated manufacturing production quality inspections
US20210287177A1 (en) Automatic monitoring and reporting system
US6092060A (en) Computer-aided methods and apparatus for assessing an organizational process or system
US7599819B2 (en) Method and system for generating a predictive analysis of the performance of peer reviews
US8732838B2 (en) Evaluating the effectiveness of a threat model
US20090199045A1 (en) Software fault management apparatus, test management apparatus, fault management method, test management method, and recording medium
US20090157458A1 (en) Supply chain evaluation system, method, and program
CN102346880B (zh) 企业资源规划计算机系统和方法
Lin et al. The Taiwan national quality award and market value of the firms: An empirical study
Card The challenge of productivity measurement
US20090112665A1 (en) Execution decision support program and device of regulation measures
US20140032380A1 (en) Computerized carbon footprint inventory of products and computng device for inventorying carbon footprint of the products
JP6975086B2 (ja) 品質評価方法および品質評価装置
JP2006251994A (ja) 品質評価システム及び品質評価方法、品質評価用プログラム
Javaid et al. Supply chain responsiveness and supply chain performance: the role of supply chain risk management
JP6436474B2 (ja) 組織改善活動支援システム、それに用いられる装置、方法およびプログラム
US20030088510A1 (en) Operational risk measuring system
KR20130085062A (ko) 리스크 관리 장치
US20230059609A1 (en) Assistance information generation device, assistance information generation method, and program recording medium
Perdikis et al. Distribution-free control charts for monitoring scale in finite horizon productions
JP7160789B2 (ja) プロジェクト管理システム、プロジェクト管理方法、およびプログラム
Roberts SPC for Right-Brain Thinkers
Duarte et al. Application of quality tools to reduce pneumatic leaks in the commercial vehicle brake system.
JP2024016300A (ja) 分析プログラム、分析装置、及び分析方法
Sharma et al. Six sigma approach: application, benefits and scope