(57)【要約】【課題】効率的で漏れのない検証を実現させる検証項目自動生成装置を提供すること。【解決手段】開発対象となるシステムの検証項目を該システムの仕様に基づいて自動生成するための検証項目自動生成装置（１００）は、その仕様に基づいて概念的機能を抽出する概念的機能抽出手段（１０）と、その仕様に基づいてそれら概念的機能のそれぞれを構成する構成要素的機能を抽出する構成要素的機能抽出手段（１１）と、それら構成要素的機能のそれぞれを検証項目として設定する検証項目設定手段（１２）と、それら概念的機能のそれぞれで重複して使用され得る構成要素的機能のそれぞれの重複度合いに基づいて検証項目の優先順位を決定する優先順位決定手段（１３）と、を備える。【選択図】図１
2011028313.tif 000002
【特許請求の範囲】
【請求項１】
開発対象となるシステムの検証項目を該システムの仕様に基づいて自動生成するための検証項目自動生成装置であって、
前記仕様に基づいて概念的機能を抽出する概念的機能抽出手段と、
前記仕様に基づいて前記概念的機能のそれぞれを構成する構成要素的機能を抽出する構成要素的機能抽出手段と、
前記構成要素的機能のそれぞれを前記検証項目として設定する検証項目設定手段と、
前記概念的機能のそれぞれで重複して使用され得る前記構成要素的機能のそれぞれの重複度合いに基づいて前記検証項目の優先順位を決定する優先順位決定手段と、
を備える検証項目自動生成装置。
【請求項２】
前記検証項目を検証者が視認できるように出力する検証項目出力手段を更に備え、
前記検証項目出力手段は、優先順位のより高い検証項目がより容易に検証者に認識されるように検証項目のリストを出力する、
ことを特徴とする請求項１に記載の検証項目自動生成装置。
【請求項３】
前記仕様に基づいて前記検証項目のそれぞれに対応するテストパターンを生成するテストパターン生成手段を更に備え、
前記テストパターン生成手段は、前記検証項目のそれぞれの優先順位に基づいて、テストパターン数又はテスト網羅率を決定する、
ことを特徴とする請求項１又は２に記載の検証項目自動生成装置。
【請求項４】
前記検証項目出力手段は、前記検証項目のそれぞれに対応するテストパターンを前記検証項目のそれぞれに対応付けて出力する、
ことを特徴とする請求項３に記載の検証項目自動生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、開発対象となるシステムの検証項目をそのシステムの仕様に基づいて自動生成するための検証項目自動生成装置に関し、特に、コンピュータ読み取り可能なそのシステムの仕様に基づいて優先順位が付された検証項目を自動生成するための検証項目自動生成装置に関する。
【背景技術】
【０００２】
従来、ＵＭＬ（Unified  Modeling  Language）で定義されるユースケースと二つのユースケース間の関係を示す関連情報とから成るユースケース図に基づいて各ユースケースが表す機能の検証に優先度を設定し優先度の高い機能の検証を優先させることによって、開発対象の検証作業の効率化を図るようにした検証支援装置が知られている（例えば、特許文献１参照。）。
【０００３】
この検証支援装置は、各ユースケースの上下関係（包含関係）を把握し、最上位のユースケースの優先度を所定の基準値として設定しながら他のユースケースの優先度をその基準値からの差として表し、ユースケースが下位概念になるほど機能も複雑化するとして、最下位のユースケースの優先度が最も高くなるように設定し、更に、その優先度を検証者に提示することによって、検証者がどの検証項目を優先して検証するかを決定できるようにする。
【０００４】
また、検証対象のシステム影響度とその業務影響度とに基づいてそのリスク度を決定し、そのリスク度と検証対象毎に予め決定されたテストシナリオとに基づいてそのテストシナリオの優先度を決定し、更に、その優先度をテスト計画立案者に提示することによって、そのテスト計画立案者がどのテストシナリオをどのような順番でテストするか、或いは、テストケースの深さ（テストケースのパターンの数）をどのようにするかを決定できるようにする情報処理装置が知られている（例えば、特許文献２参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２５２４８９号公報
【特許文献２】特開２００７−２２６５２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の検証支援装置は、開発対象の各機能の間の上下関係を考慮した、各機能に関する検証項目とその優先度とを関連付けた検証項目リストを検証者に提供するが、複雑さの増した下位のユースケースの優先度が高くなるように設定してその下位のユースケースの検証を優先させるので、検証者がその優先度に従って下位のユースケースの検証を先行して行った後、後続の上位のユースケースの検証で不具合が発見された場合には、既に成功裏に行われた下位のユースケースに対する検証結果を無意味なものにしてしまうこととなる。
【０００７】
また、特許文献２に記載の情報処理装置は、複数の検証対象を包含するシステムに関連する業務に対する各検証対象の影響度を考慮した、各検証対象に一対一で対応するテストシナリオの望ましい実行順をテスト計画立案者に提供するが、各検証対象の機能的なつながりを考慮していないため、実行順の遅いテストシナリオで不具合を発見した場合には、既に成功裏に行われた実行順の早いテストシナリオの検証結果を無意味なものにしてしまうこととなる。
【０００８】
上述の点に鑑み、本発明は、効率的で漏れのない検証を実現させる検証項目自動生成装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述の目的を達成するために、本発明の実施例に係る検証項目自動生成装置は、開発対象となるシステムの検証項目を該システムの仕様に基づいて自動生成するための検証項目自動生成装置であって、前記仕様に基づいて概念的機能を抽出する概念的機能抽出手段と、前記仕様に基づいて前記概念的機能のそれぞれを構成する構成要素的機能を抽出する構成要素的機能抽出手段と、前記構成要素的機能のそれぞれを前記検証項目として設定する検証項目設定手段と、前記概念的機能のそれぞれで重複して使用され得る前記構成要素的機能のそれぞれの重複度合いに基づいて前記検証項目の優先順位を決定する優先順位決定手段と、を備えることを特徴とする。
【００１０】
また、本発明の実施例に係る検証項目自動生成装置は、前記検証項目を検証者が視認できるように出力する検証項目出力手段を更に備え、前記検証項目出力手段は、優先順位のより高い検証項目がより容易に検証者に認識されるように検証項目のリストを出力するようにしてもよい。
【００１１】
また、本発明の実施例に係る検証項目自動生成装置は、前記仕様に基づいて前記検証項目のそれぞれに対応するテストパターンを生成するテストパターン生成手段を更に備え、前記テストパターン生成手段は、前記検証項目のそれぞれの優先順位に基づいて、テストパターン数又はテスト網羅率を決定するようにしてもよい。
【００１２】
また、本発明の実施例に係る検証項目自動生成装置において、前記検証項目出力手段は、前記検証項目のそれぞれに対応するテストパターンを前記検証項目のそれぞれに対応付けて出力するようにしてもよい。
【発明の効果】
【００１３】
上述の手段により、本発明は、効率的で漏れのない検証を実現させる検証項目自動生成装置を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明に係る検証項目自動生成装置の構成例を示すブロック図である。
【図２】概念的機能と構成要素的機能との間の関係を概略的に示す図である。
【図３】検証項目自動生成処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図面を参照しつつ、本発明を実施するための最良の形態の説明を行う。
【００１６】
図１は、本発明に係る検証項目自動生成装置の構成例を示すブロック図であり、検証項目自動生成装置１００は、開発対象となるシステムに関するコンピュータ読み取り可能な制御仕様に基づいてそのシステムの検証者が視認可能な検証項目に関する情報を生成して提示する装置であり、制御部１、仕様取得部２、及び出力部３で構成される。なお、開発対象となるシステムは、ハードウェアによって実現されるシステム、ソフトウェアによって実現されるシステム、又は、ハードウェア及びソフトウェアの組み合わせによって実現されるシステムの何れであってもよい。
【００１７】
制御部１は、ＣＰＵ（Central  Processing  Unit）、ＲＡＭ(Random  Access  Memory)、ＲＯＭ（Read  Only  Memory）等を備えたコンピュータであって、例えば、それぞれ詳細が後述される、概念的機能抽出手段１０、構成要素的機能抽出手段１１、検証項目設定手段１２、優先順位決定手段１３、テストパターン生成手段１４、及び検証項目出力手段１５のそれぞれに対応するプログラムをＲＯＭに記憶しながら、各手段に対応する処理をＣＰＵに実行させる。
【００１８】
仕様取得部２は、開発対象となるシステムに関するコンピュータ読み取り可能な仕様を取得するための装置であり、例えば、ハードディスクドライブ、ＤＶＤ（Digital  Versatile  Disk）ドライブ、半導体メモリ、通信インターフェース等であり、任意の記録媒体に記録された仕様を各記録媒体に対応するドライブを介して或いは通信ネットワークを通じて取得する。
【００１９】
出力部３は、各種情報を出力するための装置であり、例えば、ディスプレイ、プリンタ、スピーカ等であって、検証項目自動生成装置１００が生成した検証項目のリストやテストパターン等を検証者が認識できるように出力する。
【００２０】
次に、制御部１が有する各種手段について説明する。
【００２１】
概念的機能抽出手段１０は、開発対象となるシステムの概念的機能をその開発対象となるシステムに関するコンピュータ読み取り可能な仕様から抽出するための手段である。
【００２２】
なお、本書において、「概念的機能」は、開発対象となるシステムの利用者又はそのシステムの検証者が概念的に認識可能なそのシステムの各種機能を意味し、例えば、複数のステータスを取り得る昇圧システムを開発対象システムとした場合、所定の条件下で特定のステータスに移行するというその昇圧システムの機能を意味する。
【００２３】
概念的機能抽出手段１０は、例えば、仕様取得部２を介して取得される、その開発対象となるシステムに関するコンピュータ読み取り可能な仕様を取得し、その仕様のフォーマットに対応する仕様解析アルゴリズムを用いて概念的機能を抽出する。
【００２４】
構成要素的機能抽出手段１１は、開発対象となるシステムに関するコンピュータ読み取り可能な仕様に基づいてそのシステムの概念的機能のそれぞれを構成する構成要素的機能を抽出するための手段である。
【００２５】
本書において、「構成要素的機能」は、概念的機能のそれぞれを実現するために必要な構成要素（ハードウェア及びソフトウェアを含む。）の機能を意味し、例えば、複数のステータスを取り得る昇圧システムを開発対象システムとした場合、その昇圧システムを特定のステータスに移行させるために必要な各構成要素の機能を意味する。
【００２６】
図２は、概念的機能と構成要素的機能との間の関係を概略的に示す図であり、開発対象となるシステムが四つの概念的機能Ａ〜Ｄとソフトウェアで構成される九つの構成要素的機能ａ〜ｉとで構成されている状態を示す。
【００２７】
また、図２で示されるように、構成要素的機能ａは、概念的機能Ａ及びＢで共用され、構成要素的機能ｅは、概念的機能Ｂ及びＣで共用され、構成要素的機能ｈは、概念的機能Ｂ、Ｃ及びＤで共用され、構成要素的機能ｉは、概念的機能Ａ〜Ｄの全てで共用される。なお、構成要素的機能ｄ、ｇは、概念的機能Ａのみで使用され、構成要素的機能ｂは、概念的機能Ｃのみで使用され、構成要素的機能ｃ、ｆは、概念的機能Ｄのみで使用される。
【００２８】
このように、開発対象となるシステムの概念的機能は、複数の構成要素的機能の組み合わせで構成され、それら構成要素的機能は、複数の概念的機能において共用され得るものである。
【００２９】
例えば図２を例に取ると、構成要素的機能抽出手段１１は、その開発対象となるシステムに関するコンピュータ読み取り可能な仕様を取得し、その仕様のフォーマットに対応する仕様解析アルゴリズムを用いて、構成要素的機能ａ〜ｉを抽出し、概念的機能Ａが構成要素的機能ａ、ｄ、ｇ、及びｉで構成されることを認識する。
【００３０】
同様に、構成要素的機能抽出手段１１は、概念的機能Ｂが構成要素的機能ａ、ｅ、ｈ、及びｉで構成されること、概念的機能Ｃが構成要素的機能ｂ、ｅ、ｈ、及びｉで構成されること、並びに、概念的機能Ｄが構成要素的機能ｃ、ｆ、ｈ、及びｉで構成されることを認識する。
【００３１】
検証項目設定手段１２は、開発対象となるシステムの検証項目を設定するための手段であり、例えば、構成要素的機能抽出手段１１が抽出した構成要素的機能のそれぞれが仕様通りに動作するか否かを検証項目として設定する。
【００３２】
例えば図２を例に取ると、検証項目設定手段１２は、構成要素的機能抽出手段１１によって抽出された九つの構成要素的機能ａ〜ｉのそれぞれが仕様通りに動作するか否かを検証項目として設定する。
【００３３】
優先順位決定手段１３は、検証項目の優先順位を決定するための手段であり、例えば、概念的機能抽出手段１０が抽出した概念的機能のそれぞれで使用される、構成要素的機能抽出手段１１が抽出した構成要素的機能のそれぞれの重複度合いに基づいて、検証項目設定手段１２が設定した検証項目のそれぞれの優先順位を決定する。
【００３４】
本書において、「優先順位」は、検証項目の重要度を表す指標であり、優先順位が高い程その検証項目が重要であり、より優先的により多くのテストパターンを用いて検証されるべきであることを意味する。なお、優先順位は、各検証項目に固有の順位が与えられてもよく、複数の検証項目に共通する順位が与えられてもよい。
【００３５】
また、「重複度合い」は、構成要素的機能のそれぞれが複数の概念的機能で共用される度合いを意味し、一の構成要素的機能を共用する概念的機能の数が多いほど重複度合いが高くなるものとする。
【００３６】
例えば図２を例に取ると、優先順位決定手段１３は、概念的機能Ａ〜Ｄの四つ全ての概念的機能で共用される構成要素的機能ｉに最も高い優先順位を与え、次いで、概念的機能Ｂ〜Ｄの三つの概念的機能で共用される構成要素的機能ｈに二番目に高い優先順位を与え、次いで、概念的機能Ａ、Ｂの二つの概念的機能で共用される構成要素的機能ａ、及び、概念的機能Ｂ、Ｃの二つの概念的機能で共用される構成要素的機能ｅのそれぞれに三番目に高い優先順位を与え、最後に、単一の概念的機能でのみ使用される構成要素的機能ｂ、ｃ、ｄ、ｆ、ｇのそれぞれに最も低い優先順位を与えるようにする。
【００３７】
テストパターン生成手段１４は、検証項目のそれぞれに対応するテストパターンを生成するための手段であり、例えば、その開発対象となるシステムに関するコンピュータ読み取り可能な仕様に基づいて、検証項目設定手段１２が設定した検証項目のそれぞれに対応するテストパターンを生成する。
【００３８】
また、テストパターン生成手段１４は、優先順位決定手段１３が決定した各検証項目の優先順位に基づいて、テストパターン数、又は、テスト網羅率を決定するようにしてもよい。
【００３９】
本書において、「テスト網羅率」は、検証対象である検証項目（構成要素的機能）の全動作に占める、テストパターンによって検証される動作の割合を意味し、検証項目がソフトウェアで実現される場合のコード網羅率を含む概念である。
【００４０】
例えば図２を例に取ると、テストパターン生成手段１４は、最も優先順位が高い構成要素的機能ｉに対しては、命令網羅率（Ｃ０）、分岐網羅率（Ｃ１）、及び条件網羅率（Ｃ２）の全てが１００％となるようテストパターンを生成し、二番目に優先順位が高い構成要素的機能ｈに対しては、命令網羅率（Ｃ０）及び分岐網羅率（Ｃ１）が１００％、条件網羅率（Ｃ２）が５０％となるようテストパターンを生成し、三番目に優先順位が高い構成要素的機能ａ、ｅに対しては、命令網羅率（Ｃ０）が１００％、分岐網羅率（Ｃ１）が５０％となるようテストパターンを生成し、最も優先順位が低い構成要素的機能ｂ、ｃ、ｄ、ｆ、ｇに対しては、命令網羅率（Ｃ０）のみが１００％となるようテストパターンを生成する。
【００４１】
また、テストパターン生成処理１４は、通常処理に対するテストパターン数が例外処理に対するテストパターン数よりも多くなるように、各検証項目に対するテストパターン数を決定するようにしてもよい。
【００４２】
検証項目出力手段１５は、開発対象となるシステムの検証項目を検証者が認識できるように出力するための手段であり、例えば、優先順位の高い検証項目がより容易に検証者に視認されるよう、優先順位の高い検証項目が出力先である紙やディスプレイの上部に配置されるように検証項目のリストを出力部３であるプリンタやディスプレイに出力させる。
【００４３】
また、検証項目出力手段１５は、優先順位の高い検証項目がより容易に検証者に視認されるよう、文字の大きさ、文字位置、文字色等を変化させるようにしてもよい。
【００４４】
更に、検証項目出力手段１５は、検証項目のそれぞれと対応付けてテストパターンを出力するようにしてもよい。この場合、テストパターンは、例えば、検証対象のシステムに入力するための入力値とその入力値に対応する得られるべき出力値との組み合わせとして出力されてもよい。
【００４５】
次に、図３を参照しながら、検証項目自動生成装置１００が検証項目のリストを検証者に提示する処理（以下、「検証項目自動生成処理」とする。）の流れについて説明する。なお、図３は、検証項目自動生成処理の流れを示すフローチャートであり、検証項目自動生成装置１００は、開発対象となるシステムに関するコンピュータ読み取り可能な制御仕様を取得する度に、この検証項目自動生成処理を実行するものとする。
【００４６】
最初に、制御部１は、仕様取得部２を介して開発対象となるシステムに関するコンピュータ読み取り可能な制御仕様を取得する（ステップＳ１）。
【００４７】
その後、制御部１は、概念的機能抽出手段１０により、仕様解析アルゴリズムを用いながら、取得した制御仕様に基づいて概念的機能を抽出する（ステップＳ２）。
【００４８】
更に、制御部１は、構成要素的機能抽出手段１１により、仕様解析アルゴリズムを用いながら、取得した制御仕様に基づいて概念的機能のそれぞれを構成する構成要素的機能を抽出する（ステップＳ３）。
【００４９】
その後、制御部１は、検証項目設定手段１２により、構成要素的機能抽出手段１１が抽出した構成要素的機能のそれぞれがその制御仕様通りに動作するか否かを検証項目として設定する（ステップＳ４）。
【００５０】
その後、制御部１は、概念的機能抽出手段１０の抽出結果と構成要素的機能抽出手段１１の抽出結果とに基づいて、構成要素的機能のそれぞれの重複度合いを取得し（ステップＳ５）、優先順位決定手段１３により、それら重複度合いに基づいて各検証項目の優先順位を決定する（ステップＳ６）。
【００５１】
その後、制御部１は、検証項目出力手段１５により、検証項目設定手段１２が設定した検証項目を、優先順位決定手段１３が決定した優先順位に従って並べ替えた上で、出力部３を介してプリント出力させたり、或いは、ディスプレイ表示させたりする（ステップＳ７）。
【００５２】
更に、制御部１は、テストパターン生成手段１４により、優先順位決定手段１３が決定した優先順位に応じてテストパターン数やテスト網羅率を変化させながら、取得した制御仕様に基づいて各検証項目に対応するテストパターンを生成する（ステップＳ８）。
【００５３】
最後に、制御部１は、検証項目毎に分類したテストパターン（検証対象のシステムに入力する入力値とその入力値に対応する出力値との組み合わせ）をプリント出力させ、或いは、ディスプレイ表示させて（ステップＳ９）、この検証項目自動生成処理を終了させる。
【００５４】
以上の構成により、検証項目自動生成装置１００は、構成要素的機能の重複度合いに基づいて決定される優先順位に応じて検証項目を順序付けて出力するので、仮に優先順位の低い検証項目で不具合が発見された場合にも既に行われた優先順位の高い検証項目の検証を無意味なものとすることもなく、効率的で漏れのない検証を検証者に実行させることができる。
【００５５】
また、検証項目自動生成装置１００は、優先順位のより高い検証項目がより容易に検証者に認識されるように検証項目のリストを出力するので、検証者が優先順位のより低い検証項目を優先順位のより高い検証項目に先立って検証してしまうのを防止し、効率的で漏れのない検証を検証者に実行させることができる。
【００５６】
また、検証項目自動生成装置１００は、検証項目のそれぞれの優先順位に基づいて、テストパターン数又はテスト網羅率を決定するので、メリハリのある効率的で漏れのない検証を検証者に実行させることができる。
【００５７】
また、検証項目自動生成装置１００は、検証項目のそれぞれに対応するテストパターンをそれら検証項目のそれぞれに対応付けて出力するので、検証者がテストパターンをマニュアルで作成する負担を軽減し、効率的で漏れのない検証を検証者に実行させることができる。
【００５８】
以上、本発明の好ましい実施例について詳説したが、本発明は、上述した実施例に制限されることはなく、本発明の範囲を逸脱することなしに上述した実施例に種々の変形及び置換を加えることができる。
【００５９】
例えば、上述の実施例において、検証項目自動生成装置１００は、テストパターン生成手段１４により、その開発対象となるシステムに関するコンピュータ読み取り可能な仕様に基づいてテストパターンを自動的に生成するが、仕様作成者等のマニュアル入力を受け付けながらテストパターンの追加、修正、削除等を許容するようにしてもよい。
【符号の説明】
【００６０】
１      制御部
２      仕様取得部
３      出力部
１０    概念的機能抽出手段
１１    構成要素的機能抽出手段
１２    検証項目設定手段
１３    優先順位決定手段
１４    テストパターン生成手段
１５    検証項目出力手段
１００  検証項目自動生成装置
【図１】
2011028313.tif 000003
【図２】
2011028313.tif 000004
【図３】
2011028313.tif 000005