(57)【要約】【課題】過去の検査パターンを利用して新たな検査パターンを自動生成する場合に、過去の検査パターンから効率的に利用する検査パターンを抽出することが可能な検査パターン自動生成装置を提供すること。【解決手段】過去に作成された複数の検査パターンから、検査対象であるソフトウェアに含まれる境界値の前後１ＬＳＢ範囲内で前記境界値に対する境界値検査を実行可能であること、及び前記ソフトウェアの入力から出力までの経路のうち前記複数の検査パターンの通過率が所定割合以下である経路を通過することの少なくとも一方を満足する検査パターンを抽出する抽出部と、前記抽出部により抽出される検査パターンに基づき前記ソフトウェアの単体検査を実行する検査パターンを自動生成する自動生成部を備える。【選択図】図３
2016206727.tif 000002
【特許請求の範囲】
【請求項１】
過去に作成された複数の検査パターンから、検査対象であるソフトウェアに含まれる境界値の前後１ＬＳＢ範囲内で前記境界値に対する境界値検査を実行可能であること、及び前記ソフトウェアの入力から出力までの経路のうち前記複数の検査パターンの通過率が所定割合以下である経路を通過することの少なくとも一方を満足する検査パターンを抽出する抽出部と、
前記抽出部により抽出される検査パターンに基づき前記ソフトウェアの単体検査を実行する検査パターンを自動生成する自動生成部を備える、
検査パターン自動生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの単体検査（ソフトウェアテスト）における検査パターンを自動生成する検査パターン自動生成装置に関する。
【背景技術】
【０００２】
従来、過去に作成したテスト仕様を利用して、ソフトウェアプログラムのテスト仕様を作成するテスト仕様作成支援装置が知られている。（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２２６６５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上述した特許文献１のテスト仕様と同様、複数のテスト仕様（テストケース）の集合である検査パターンについても過去に作成した検査パターンを利用して不足する分を自動生成する等によりソフトウェアの単体検査の効率化を図ることができる。
【０００５】
しかしながら、特許文献１には、テスト仕様を作成する際に過去のテスト仕様の何れを利用するかについての開示がない。そのため、例えば、過去の検査パターンが比較的多く存在する場合、利用する過去の検査パターンの抽出に時間が掛かってしまい、結果として、効率化を図ることができなくなるおそれがある。
【０００６】
そこで、上記課題に鑑み、過去の検査パターンを利用して新たな検査パターンを自動生成する場合に、過去の検査パターンから効率的に利用する検査パターンを抽出することが可能な検査パターン自動生成装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、一実施形態において、検査パターン自動生成装置は、
過去に作成された複数の検査パターンから、検査対象であるソフトウェアに含まれる境界値の前後１ＬＳＢ範囲内で前記境界値に対する境界値検査を実行可能であること、及び前記ソフトウェアの入力から出力までの経路のうち前記複数の検査パターンの通過率が所定割合以下である経路を通過することの少なくとも一方を満足する検査パターンを抽出する抽出部と、
前記抽出部により抽出される検査パターンに基づき前記ソフトウェアの単体検査を実行する検査パターンを自動生成する自動生成部を備える。
【発明の効果】
【０００８】
本実施の形態によれば、過去の検査パターンを利用して新たな検査パターンを自動生成する場合に、過去の検査パターンから効率的に利用する検査パターンを抽出することが可能な検査パターン自動生成装置を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態に係る検査パターン自動生成装置の構成の一例を示すブロック図である。
【図２】本実施形態に係る検査パターン自動生成装置による検査パターン自動生成処理の流れを説明するブロック図である。
【図３】過去に作成された検査パターンから有用な検査パターンを抽出する抽出条件を説明する図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して発明を実施するための形態について説明する。
【００１１】
図１は、本実施形態に係る検査パターン自動生成装置１の構成の一例を示すブロック図である。
【００１２】
本実施形態に係る検査パターン自動生成装置１は、車両等の各種制御装置のモデルベース開発において、制御の処理動作を記述したモデルと、オブジェクト（ＥＣＵ等に実装される機械コード）との一致性を確認する検査パターンを自動生成する。検査パターン自動生成装置１により自動生成される検査パターンを用いて、ＥＣＵ等に実装された機械コード（ソフトウェア）がモデルの記述通り（要求通り）の動作をするか否かの単体検査（ソフトウェアテスト）を実行することができる。以下、検査を行う対象であるソフトウェアを検査対象ソフトウェアと称する。
【００１３】
なお、検査パターンは、テストケース（検査仕様）の集合であり、予め定められる検査観点（例えば、命令、条件、経路等に関する網羅性や境界値検査の可否等）を満足するように自動生成される。
【００１４】
検査パターン自動生成装置１は、例えば、コンピュータ等により実現され、図１に示すように、ＣＰＵ、ＲＡＭ、ＲＯＭ、Ｉ／Ｏ等を含む処理部１０と、過去に作成された検査パターンを記憶する記憶部２０を含む。
【００１５】
なお、記憶部２０は、コンピュータの内部に設けられる記憶手段（内部メモリ等）であってもよいし、コンピュータの外部に設けられる記憶手段であってもよい。
【００１６】
一般的に、ソフトウェア開発では、差分開発（従来のソフトウェアをベースに変更、追加、削除を行う開発）が行われる。そのため、検査パターン自動生成装置１では、処理部１０が記憶部２０に格納される過去に作成された検査パターン（過去検査パターン）に基づき新たな検査パターン（追加検査パターン）を自動生成する。以下、図２を参照しつつ、処理部１０により実行される検査パターン自動生成処理について説明する。
【００１７】
図２は、本実施形態に係る検査パターン自動生成装置１による検査パターン自動生成処理の流れを説明するブロック図である。
【００１８】
なお、図中、点線部分が検査パターン自動生成装置１による処理を表す部分である。また、本実施形態では、検査パターン自動生成装置１が実装されるコンピュータ（即ち、処理部１０）において、検査自体も実行される前提で説明を行う。
【００１９】
ステップＳ１にて、処理部１０は、複数存在する過去検査パターンＤＢのそれぞれを検査対象ソフトウェアに対応するモデルに入力して、検査観点を満足するか否かをチェックする。そして、処理部１０は、各過去検査パターンＤＢと、満足する検査観点とを紐づけて、内部メモリ等に記憶させる。
【００２０】
過去検査パターンＤＢのうち、検査観点を全て満足するものが存在する場合、新たな検査パターンを自動生成する必要はない。そのため、処理部１０は、かかる流用可能な検査パターン（流用検査パターン）Ｏ１で検査対象ソフトウェアの単体検査を実行する（ステップＳ５）。
【００２１】
一方、処理部１０は、過去検査パターンＤＢのうち、検査観点を全て満足するものが存在しない場合、ステップＳ２に進む。
【００２２】
ステップＳ２にて、処理部１０は、追加検査パターンＯ２を自動生成する際のベースとなるベース検査パターンＭ２の候補である有用な検査パターン（有用検査パターン）Ｍ１の抽出を実行する。具体的には、以下に示す（１）、（２）の条件の何れかを満足する過去検査パターンＤＢを有用検査パターンＭ１として抽出する。各条件について、図３（過去検査パターンＤＢから有用検査パターンＭ１を抽出する抽出条件を説明する図）を参照しつつ、説明する。
【００２３】
（１）検査対象ソフトウェア（モデル）に含まれる境界値の前後１ＬＳＢ（Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ：最下位ビット）範囲内でかかる境界値に対する境界値検査が実行可能である。
【００２４】
ソフトウェアの単体検査における検査観点として、境界値における動作の妥当性を確認可能であるか否かがある。例えば、モデル内のブロック要素に入力される値が所定閾値以上である場合と所定閾値より小さい場合とで異なる出力を行う場合、かかるブロック要素が境界値（所定閾値）及びその前後の値の入力に対して適切な出力を行うか否かを検査する必要がある（境界値検査）。かかる境界値検査を行う場合、図３（ａ）に示すように、上限値から下限値の範囲で、境界値Ａ、境界値から１ＬＳＢを減じた値Ｂ、境界値に１ＬＳＢを加えた値Ｃの３値に対する動作を確認する必要がある。よって、検査対象ソフトウェアに含まれる境界値の前後１ＬＳＢ範囲内でかかる境界値に対する境界値検査を実行可能であれば、かかる過去検査パターンＤＢを有用な検査パターンであるとして抽出対象にする。
【００２５】
なお、検査対象ソフトウェアに複数の境界値が含まれる場合、少なくとも１つの境界値に対する境界値検査が実行可能であれば、有用検査パターンＭ１として抽出してよい。また、検査対象ソフトウェアに複数の境界値が含まれる場合、全ての境界値のうち一定割合以上の境界値に対する境界値検査が実行可能である場合に有用検査パターンＭ１として抽出してもよい。また、境界値は、上限値、下限値を含む場合がある。例えば、上限値から下限値の範囲外の値の入力に対してモデル内のブロック要素が無効である旨の出力をする場合、かかる上限値、下限値も境界値検査の対象になる。
【００２６】
（２）検査対象ソフトウェア（モデル）の入力から出力までの経路のうち、過去検査パターンＤＢの通過率が所定割合Ｔｈ以下である経路を通過する。
【００２７】
ソフトウェアの単体検査における検査観点として経路網羅性（検査パターンにより入力から出力までの経路の全てを網羅できるか否か）がある。例えば、図３（ｂ）に示すような検査対象ソフトウェアに対応するモデルがある場合、比較的多くの過去検査パターンＤＢが通過する経路（図中太い矢印）もあれば、ごく一部の過去検査パターンＤＢしか通過しない経路（図中細い矢印）も有り得る。経路網羅性の観点から言えば、全ての過去検査パターンＤＢのうち通過する割合が比較的低い経路を通過する過去検査パターンＤＢが有用であるため、このような過去検査パターンＤＢを抽出対象にする。具体的には、全ての過去検査パターンＤＢの通過率（全ての過去検査パターンＤＢに対する通過する過去検査パターンＤＢの割合）が所定割合Ｔｈ以下である経路を通過する過去検査パターンＤＢを有用検査パターンＭ１として抽出する。
【００２８】
なお、所定割合Ｔｈは、実験やシミュレーション等により適宜決定される適合値である。
【００２９】
ステップＳ３にて、処理部１０は、有用検査パターンＭ１の中から追加検査パターンＯ２を自動生成する上でのベースになるベース検査パターンＭ２を探索する。ベース検査パターンＭ２の探索においては、既知の探索アルゴリズム（例えば、遺伝的アルゴリズム等）が適宜採用されてよい。
【００３０】
ステップＳ４にて、処理部１０は、ベース検査パターンＭ２をベースに検査観点を満足するために不足するテストケースを追加する等により追加検査パターンＯ２の自動生成を実行する。
【００３１】
なお、追加検査パターンＯ２の自動生成処理は、例えば、既知の市販プログラム等を適用することで実行することができる。
【００３２】
ステップＳ５にて、処理部１０は、自動生成した追加検査パターンＯ２を用いて、検査対象プログラムの単体検査を実行する。
【００３３】
このように、本実施形態に係る検査パターン自動生成装置１は、過去に作成された検査パターンから有用な検査パターンを抽出し、かかる有用な検査パターンから新たに自動生成する検査パターンのベースとなる検査パターンを探索する。具体的には、過去に作成された検査パターンのうち、境界値検査が可能であること、及び経路網羅性を満足することという２つの検査観点において有用な検査パターンを抽出する。これにより、過去に作成された検査パターンを利用して新たな検査パターンを自動生成する場合に、過去に作成された検査パターンから効率的に利用する検査パターンを抽出することができる。
【００３４】
なお、本実施形態では、上記（１）、（２）の条件の何れか一方を満足する場合に過去検査パターンＤＢを有用検査パターンＭ１として抽出するが、（１）、（２）の双方を満足する場合に有用検査パターンＭ１として抽出する構成であってもよい。
【００３５】
以上、本発明を実施するための形態について詳述したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００３６】
１  検査パターン自動生成装置
１０  処理部
２０  記憶部
【図１】
2016206727.tif 000003
【図２】
2016206727.tif 000004
【図３】
2016206727.tif 000005