(57)【要約】【課題】試験工程の開始前に適切に試験項目を抽出し、開発期間の延伸や追加費用の発生を抑止して高品質のソフトウェアを開発すること。【解決手段】特定部１５ｂが、過去に開発された機能部のうち、解析部１５ａが抽出した試験対象の機能部と同一または類似の機能部を特定し、判定部１５ｃが、特定された過去の機能部についてのバグ情報１４ｂを参照し、該機能部について発見されたバグの傾向を示す特徴量に基づいて、試験対象の機能部について実施する試験の数の重み付けを反映する重要度を判定し、抽出部１５ｄが、特定された過去の機能部についての試験項目情報１４ａを参照し、判定された重要度に応じて優先度の高い順に実施する試験項目を抽出する。【選択図】図２
2018018373.tif 000002
【特許請求の範囲】
【請求項１】
過去に開発された機能部と実施された試験と各試験の実施の優先度合いを示す優先度とを対応付けした試験項目情報と、前記機能部と実施された試験で発見されたバグとを対応付けしたバグ情報とを記憶する記憶部と、
前記機能部のうち、試験対象の機能部と同一または類似の機能部を特定する特定部と、
特定された前記機能部についての前記バグ情報を参照し、該機能部について発見されたバグの傾向に基づいて、前記試験対象の機能部について実施する試験の数の重み付けを反映する重要度を判定する判定部と、
特定された前記機能部についての前記試験項目情報を参照し、判定された前記重要度に応じて前記優先度の高い順に実施する試験を抽出する抽出部と、
を備えることを特徴とする抽出装置。
【請求項２】
前記判定部は、さらに、前記バグの傾向に基づいて、バグに関する品質評価の指標値を決定することを特徴とする請求項１に記載の抽出装置。
【請求項３】
過去に開発された機能部と実施された試験と各試験の実施の優先度合いを示す優先度とを対応付けした試験項目情報と、前記機能部と実施された試験で発見されたバグとを対応付けしたバグ情報とを記憶する記憶部と、
前記機能部のうち、試験対象の機能部と同一または類似の機能部を特定する特定部と、
特定された前記機能部についての前記バグ情報を参照し、該機能部について発見されたバグの傾向に応じて、該バグ情報の各バグを重大性の順に特定し、該バグに対応する試験を実施する試験として抽出する抽出部と、
を備えることを特徴とする抽出装置。
【請求項４】
抽出装置において実行される抽出方法であって、
前記抽出装置は、過去に開発された機能部と実施された試験と各試験の実施の優先度合いを示す優先度とを対応付けした試験項目情報と、前記機能部と実施された試験で発見されたバグとを対応付けしたバグ情報とを記憶する記憶部を備え、
前記機能部のうち、試験対象の機能部と同一または類似の機能部を特定する特定工程と、
特定された前記機能部についての前記バグ情報を参照し、該機能部について発見されたバグの傾向に基づいて、前記試験対象の機能部について実施する試験の数の比率を表す重要度を判定する判定工程と、
特定された前記機能部についての前記試験項目情報を参照し、判定された前記重要度に応じて前記優先度の高い順に実施する試験を抽出する抽出工程と、
を含んだことを特徴とする抽出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、抽出装置および抽出方法に関する。
【背景技術】
【０００２】
一般に、ウォーターフォールモデルによるソフトウェア開発において、方式検討／基本設計、機能設計、詳細設計、製造、単体試験、結合試験、および複数複合試験／安定化試験等の各工程が順次実施される（非特許文献１参照）。従来、上流工程と呼ばれる方式検討／基本設計、機能設計、および詳細設計において生成される仕様書や設計書を基に、下流工程と呼ばれる単体試験、結合試験、および複数複合試験／安定化試験における試験項目が手動で抽出されている。
【０００３】
下流工程の各試験工程においては、品質評価のためのバグ密度等の指標値が定められており、各試験工程が完了した後に、指標値の実績値が所定の目標値の範囲を満たしているか否かの品質評価が行われる。その結果、指標値の実績値が所定の目標値の範囲を満たしている場合に、当該試験工程の終了判定が行われる。一方、指標値の実績値が所定の目標値の範囲を満たしていない場合には、品質向上のため、試験項目を追加した強化試験が行われる場合がある。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】ＳＱｕＢＯＫ策定部会  村上和夫、「ソフトウェア品質知識体系ガイド（第２版）−ＳＱｕＢＯＫ  Ｇｕｉｄｅ  Ｖ２−」、株式会社オーム社、２０１４年１１月２８日、ｐ．９４−９５、ｐ．１６９−１７０
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、強化試験は各試験工程の完了後に行われるため、強化試験の実施に伴い、開発期間の延伸や追加費用の発生等の問題があった。
【０００６】
本発明は、上記に鑑みてなされたものであって、試験工程の開始前に適切に試験項目を抽出し、開発期間の延伸や追加費用の発生を抑止して高品質のソフトウェアを開発することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明に係る抽出装置は、過去に開発された機能部と実施された試験と各試験の実施の優先度合いを示す優先度とを対応付けした試験項目情報と、前記機能部と実施された試験で発見されたバグとを対応付けしたバグ情報とを記憶する記憶部と、前記機能部のうち、試験対象の機能部と同一または類似の機能部を特定する特定部と、特定された前記機能部についての前記バグ情報を参照し、該機能部について発見されたバグの傾向に基づいて、前記試験対象の機能部について実施する試験の数の重み付けを反映する重要度を判定する判定部と、特定された前記機能部についての前記試験項目情報を参照し、判定された前記重要度に応じて前記優先度の高い順に試験を抽出する抽出部と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、試験工程の開始前に適切に試験項目を抽出し、開発期間の延伸や追加費用の発生を抑止して高品質のソフトウェアを開発することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本発明の一実施形態に係る抽出装置の処理の概要を例示する模式図である。
【図２】図２は、本実施形態に係る抽出装置の概略構成を例示する模式図である。
【図３】図３は、試験項目情報のデータ構成を例示する図である。
【図４】図４は、バグ情報のデータ構成を例示する図である。
【図５】図５は、抽出処理手順を示すフローチャートである。
【図６】図６は、抽出装置の抽出処理による効果を説明するための説明図である。
【図７】図７は、抽出装置の抽出処理による効果を説明するための説明図である。
【図８】図８は、抽出プログラムを実行するコンピュータを例示する図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【００１１】
［抽出装置の処理概要］
図１は、本実施形態に係る抽出装置１の処理の概要を例示する模式図である。図１に例示するように、抽出装置１は、仕様書または設計書に記載されている開発対象の機能部を試験対象として、過去に開発された機能部の試験に関する統計情報を参照し、試験対象の機能部で実施する試験の試験項目表を出力する。その際、抽出装置１は、過去に開発された機能部について実施された試験で発見されたバグ数、開発規模数に対するバグ数の割合を意味するバグ密度、バグ解決期間、または複雑度を表すメトリクス指標等で表されるバグの傾向を参照して、試験項目数の重み付けを行う。併せて、抽出装置１は、バグ傾向に応じた品質評価の指標値を出力する。
【００１２】
具体的に、試験対象の機能部について、統計情報から推定されるバグの傾向に基づいて試験項目数の重み付けを反映する重要度が判定され、重要度に応じて各機能部の試験項目が決定される。図１に示す例において、重要度１は、強化対象すなわち強化試験対象を意味する。また重要度２は、通常すなわち通常の試験対象を意味する。また、重要度３は、軟化対象すなわち試験項目数を低減する軟化試験対象を意味する。例えば、試験対象の機能部Ａについて、判定された重要度１に応じて、１０項目の試験項目が決定される。また、機能部Ｂについて、判定された重要度２に応じて、５項目の試験項目が決定される。また、機能部Ｃについて、判定された重要度３に応じて、２項目の試験項目が決定される。
【００１３】
［抽出装置の構成］
図２は、本実施形態に係る抽出装置１の概略構成を例示する図である。図２に例示するように、抽出装置１は、パソコン等の汎用コンピュータで実現され、入力部１１、出力部１２、通信制御部１３、記憶部１４、および制御部１５を備える。
【００１４】
入力部１１は、キーボードやマウス等の入力デバイスを用いて実現され、操作者による入力操作に対応して、制御部１５に対して処理開始などの各種指示情報を入力する。出力部１２は、液晶ディスプレイなどの表示装置、プリンター等の印刷装置等によって実現される。
【００１５】
通信制御部１３は、ＮＩＣ（Network  Interface  Card）等で実現され、ＬＡＮ（Local  Area  Network）やインターネットなどの電気通信回線を介した各種のセンサ等の外部の装置と制御部１５との通信を制御する。
【００１６】
記憶部１４は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。本実施形態において、記憶部１４には、過去に開発された機能部の試験に関する統計情報として、試験項目情報１４ａおよびバグ情報１４ｂが記憶される。なお、記憶部１４は、通信制御部１３を介して制御部１５と通信する構成でもよい。
【００１７】
試験項目情報１４ａは、過去に開発された機能部と実施された試験と各試験の実施の優先度合いを示す優先度とが対応付けされた情報である。図３は、試験項目情報１４ａのデータ構成を例示する図である。図３に例示するように、本実施形態の試験項目情報１４ａは、機能部と試験項目とを含む。各試験項目には、優先度が対応付けされている。
【００１８】
ここで、機能部とは、過去に開発された機能部を意味する。試験項目とは、実施された試験を識別する項目名を意味する。優先度とは、各試験の実施の優先度合いを意味し、予め設定される。例えば、後述するバグ情報１４ｂの各バグの重大性に応じて、当該バグが発見された試験に対する優先度が設定される。
【００１９】
図３には、例えば、機能部ａについて、試験項目１〜試験項目４の４つの試験が実施されたことが例示されている。また実施された試験のうち、例えば、試験項目１および試験項目２の優先度が１すなわち最も高い優先度が設定されていることが例示されている。
【００２０】
バグ情報１４ｂは、過去に開発された機能部と実施された試験で発見されたバグとが対応付けされた情報である。図４は、バグ情報１４ｂのデータ構成を例示する図である。図４に例示するように、本実施形態のバグ情報１４ｂは、機能部とバグと試験項目と特徴量とを含む。各試験項目には優先度が対応付けされている。
【００２１】
ここで、バグとは、実施された試験で発見されたバグを意味する。試験項目とは、バグが発見された試験を識別する項目名を意味する。また、特徴量は、発見されたバグの傾向を示す。例えば、バグ数、バグ密度、バグ解決期間、またはメトリクス指標等のうち、１つあるいは複数の組み合わせで表される。
【００２２】
図４には、例えば、機能部ａについて実施された試験においてバグａ〜バグｄの４つのバグが発見されたこと、また特徴量としてバグ密度がαであったことが例示されている。また、発見されたバグのうち、例えば、バグａは、優先度が１に設定された試験項目４の試験において発見されたことが例示されている。
【００２３】
図２の説明に戻る。制御部１５は、ＣＰＵ（Central  Processing  Unit）等を用いて実現され、メモリに記憶された処理プログラムを実行する。これにより、制御部１５は、図１に例示するように、解析部１５ａ、特定部１５ｂ、判定部１５ｃおよび抽出部１５ｄとして機能する。
【００２４】
解析部１５ａは、入力された仕様書または設計書を解析して、試験対象の機能部を抽出する。例えば、仕様書または設計書に記載されている自然言語情報から、開発対象の機能部が抽出される。ここで抽出された開発対象の機能部が試験対象とされる。
【００２５】
特定部１５ｂは、過去に開発された機能部のうち、試験対象の機能部と同一または類似の機能部を特定する。具体的に、特定部１５ｂは、試験項目情報１４ａまたはバグ情報１４ｂに含まれる機能部のうち、解析部１５ａが抽出した試験対象の各機能部と、例えば名称や構成要件等が同一または類似の機能部を特定する。
【００２６】
判定部１５ｃは、特定された過去の機能部についてのバグ情報１４ｂを参照し、該機能部について発見されたバグの傾向を示す特徴量に基づいて、試験対象の機能部について実施する試験の数の重み付けを反映する重要度を判定する。すなわち、過去の機能部のバグの傾向が試験対象の機能部のバグの傾向として推定され、推定されたバグの傾向に基づいて試験対象の機能部の重要度が判定される。例えば、特徴量がバグ数で表されている場合に、バグ数を所定の閾値で３段階に分類し、バグ数が多い順に重要度が高いものと判定する。図１に示した例では、重要度１が最も高い重要度とされている。
【００２７】
なお、後述する抽出部１５ｄの処理において、ここで判定された重要度に応じて、図１に例示したように、試験対象の機能部が強化試験対象、通常試験対象、または軟化試験対象等に分類され、分類に応じて各機能部で実施される試験項目数の重み付けが行われる。
【００２８】
また、判定部１５ｃは、特徴量に基づいて、バグに関する品質評価の指標値を決定する。これにより、バグ傾向に応じて適切に品質評価の指標値が決定されるので、開発期間の延伸を防止することができる。
【００２９】
抽出部１５ｄは、特定部１５ｂにより特定された過去の機能部についての試験項目情報１４ａを参照し、判定部１５ｃにより判定された重要度に応じて優先度の高い順に実施する試験項目を抽出する。例えば、図１に例示したように、重要度が高いほど多数の試験項目が、優先度の高い順に抽出される。これにより、試験に関する統計情報から、試験対象の機能部に対して実施される試験のバグの傾向が推定され、推定されたバグの傾向に応じて試験項目数に重み付けされて試験項目が抽出される。また、試験項目は、統計情報から優先度の高い順に抽出されるので、重要な試験項目の試験漏れが防止される。
【００３０】
なお、抽出部１５ｄが、特定された過去の機能部についてのバグ情報１４ｂを参照し、過去の機能部の特徴量に応じてバグを重大性の順に特定し、そのバグに対応する試験項目を実施する試験項目として抽出してもよい。その場合、抽出部１５ｄが、特徴量に基づいて、バグに関する品質評価の指標値を決定する。また、上記の判定部１５ｃの処理を省略できる。
【００３１】
［抽出処理］
次に、図５を参照して、本実施形態に係る抽出装置１による抽出処理について説明する。図５は、抽出処理手順を示すフローチャートである。図５のフローチャートは、例えば、仕様書または設計書が入力されたタイミングで開始される。
【００３２】
まず、解析部１５ａが、入力された仕様書または設計書を解析し、試験対象の機能部を抽出する（ステップＳ１）。
【００３３】
次に、特定部１５ｂが、過去に開発され、試験項目情報１４ａまたはバグ情報１４ｂに含まれる機能部のうち、試験対象の機能部と同一または類似の機能部を特定する（ステップＳ２）。
【００３４】
次に、判定部１５ｃが、特定された過去の機能部についてのバグ情報１４ｂを参照し、該機能部について発見されたバグの傾向を示す特徴量に基づいて、試験対象の機能部について実施する試験の数の重み付けを反映する重要度を判定する。また、判定部１５ｃが、特徴量に基づいて、バグに関する品質評価の指標値を決定する（ステップＳ３）。
【００３５】
次に、抽出部１５ｄが、特定された過去の機能部についての試験項目情報１４ａを参照し、判定された重要度に応じて、優先度の高い順に試験項目を抽出し（ステップＳ４）、試験対象の機能部に対して実施する試験の試験項目表として出力する。これにより、一連の抽出処理が終了する。
【００３６】
以上、説明したように、本実施形態の抽出装置１において、特定部１５ｂが、過去に開発された機能部のうち、解析部１５ａが抽出した試験対象の機能部と同一または類似の機能部を特定する。また、判定部１５ｃが、特定された過去の機能部についてのバグ情報１４ｂを参照し、該機能部について発見されたバグの傾向を示す特徴量に基づいて、試験対象の機能部について実施する試験の数の重み付けを反映する重要度を判定する。また、抽出部１５ｄが、特定された過去の機能部についての試験項目情報１４ａを参照し、判定された重要度に応じて優先度の高い順に実施する試験項目を抽出する。
【００３７】
これにより、試験に関する統計情報から、試験対象の機能部に対して実施される試験のバグの傾向が推定され、推定されたバグの傾向に応じて試験項目数に重み付けされて試験項目が抽出される。その際、試験項目は、統計情報から優先度の高い順に抽出されるので、重要な試験項目の試験漏れが防止される。
【００３８】
図６および図７は、抽出装置１による抽出処理の効果を説明するための説明図である。図６に示すように、従来、試験工程の終了後に品質評価が行われ、品質に問題がなければ開発終了と判定されていた。一方、品質に問題があれば、その後に強化試験が実施されていたため、開発期間の延伸やそれに伴うコスト増加が発生していた。これに対し、本実施形態の抽出装置１の抽出処理によれば、限られた開発期間内に限られたコストを分配して強化試験を先行的に実施できる。したがって、開発期間の延伸やそれに伴うコスト増加を防止することができる。
【００３９】
例えば、図７には、３つの機能部Ａ、機能部Ｂ、機能部Ｃを含む開発において、通常の試験のコストが各１であり合計３であった場合について例示されている。従来、強化試験を実施する場合、３つの機能部の全てを強化試験の対象とするため、強化試験のコストが各２であれば合計６になっていた。
【００４０】
これに対し、本実施形態の抽出装置１は、３つの機能部のそれぞれについて、試験に関する統計情報に基づいて強化対象、軟化対象、または通常等に分類する重要度を判定して、重要度に応じて試験項目数の重み付けを行う。これにより、例えば、機能部Ａおよび機能部Ｃは軟化対象として試験項目数を半減させコストを０．５に抑える一方、機能部Ｂのみを強化対象としてコスト２として、合計３のコストを重要度に応じて分配することができる。このように、本実施形態の抽出装置１によれば、試験工程の開始前に適切に試験項目を抽出し、開発期間の延伸や追加費用の発生を抑止して高品質のソフトウェアを開発することができる。
【００４１】
また、判定部１５ｃが、バグの傾向を示す特徴量に基づいて、バグに関する品質評価の指標値を決定する。これにより、バグ傾向に応じて適切に品質評価の指標値が決定されるので、開発期間の延伸を防止することができる。
【００４２】
［プログラム］
上記実施形態に係る抽出装置１が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。一実施形態として、抽出装置１は、パッケージソフトウェアやオンラインソフトウェアとして上記の抽出処理を実行する抽出プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の抽出プログラムを情報処理装置に実行させることにより、情報処理装置を抽出装置１として機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）などの移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistants）などのスレート端末などがその範疇に含まれる。また、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の抽出処理に関するサービスを提供するサーバ装置として実装することもできる。例えば、抽出装置１は、仕様書または設計書を入力とし、試験項目を出力する抽出処理サービスを提供するサーバ装置として実装される。この場合、抽出装置１は、Ｗｅｂサーバとして実装することとしてもよいし、アウトソーシングによって上記の抽出処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。以下に、抽出装置１と同様の機能を実現する抽出プログラムを実行するコンピュータの一例を説明する。
【００４３】
図８に示すように、抽出プログラムを実行するコンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有する。これらの各部は、バス１０８０によって接続される。
【００４４】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０３１に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１０４１に接続される。ディスクドライブ１０４１には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース１０５０には、例えば、マウス１０５１およびキーボード１０５２が接続される。ビデオアダプタ１０６０には、例えば、ディスプレイ１０６１が接続される。
【００４５】
ここで、図８に示すように、ハードディスクドライブ１０３１は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３およびプログラムデータ１０９４を記憶する。上記実施形態で説明した各テーブルは、例えばハードディスクドライブ１０３１やメモリ１０１０に記憶される。
【００４６】
また、抽出プログラムは、例えば、コンピュータ１０００によって実行される指令が記述されたプログラムモジュール１０９３として、ハードディスクドライブ１０３１に記憶される。具体的には、上記実施形態で説明した抽出装置１が実行する各処理が記述されたプログラムモジュール１０９３が、ハードディスクドライブ１０３１に記憶される。
【００４７】
また、抽出プログラムによる情報処理に用いられるデータは、プログラムデータ１０９４として、例えば、ハードディスクドライブ１０３１に記憶される。そして、ＣＰＵ１０２０が、ハードディスクドライブ１０３１に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して、上述した各手順を実行する。
【００４８】
なお、抽出プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０３１に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ１０４１等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、抽出プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【００４９】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例および運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【００５０】
１  抽出装置
１１  入力部
１２  出力部
１３  通信制御部
１４  記憶部
１４ａ  試験項目情報
１４ｂ  バグ情報
１５  制御部
１５ａ  解析部
１５ｂ  特定部
１５ｃ  判定部
１５ｄ  抽出部
【図１】
2018018373.tif 000003
【図２】
2018018373.tif 000004
【図３】
2018018373.tif 000005
【図４】
2018018373.tif 000006
【図５】
2018018373.tif 000007
【図６】
2018018373.tif 000008
【図７】
2018018373.tif 000009
【図８】
2018018373.tif 000010