(57)【要約】      （修正有）【課題】プログラムに対して行う試験の優先順位を決定する試験優先順位決定装置を提供する。【解決手段】試験優先順位決定装置１００は、プログラム８を読み込み、プログラム８の特徴を静的に解析する解析部３１と、解析部の解析結果に応じて、品質ＤＢ４１を検索して部位の特徴に対応する欠陥、欠陥の検出率、欠陥を検出するための試験ケースおよび試験を行うために必要な工数（人日）の情報を抽出して取得するデータ抽出部３２と、データ抽出部の抽出した情報と、情報入力部２を介して入力された重要度情報９とに基づいて試験対象部位および試験ケースにつき実行する優先順位を決定する優先順位決定部３３とを備える。【選択図】図１
2020115248.tif 000002
【特許請求の範囲】
【請求項１】
プログラムに対して行う試験の優先順位を決定する試験優先順位決定装置であって、
前記プログラムを読み込み、前記プログラムの特徴を解析する解析部と、
前記解析部の解析結果に応じて、前記プログラムに対して行う試験の優先順位を決定する優先順位決定部とを備える、
試験優先順位決定装置。
【請求項２】
プログラムの特徴と、これに対応するプログラムの品質に関する品質情報と、を対応付けた品質データベースを更に備え、
前記優先順位決定部は、前記品質データベースから、前記解析結果に対応する前記プログラムの品質情報を抽出し、
前記優先順位決定部が前記解析結果に応じて前記プログラムに対して行う試験の優先順位を決定する処理は、前記解析結果に対応する前記プログラムの品質情報に基づいて試験の優先順位を決定する処理である、
請求項１に記載の試験優先順位決定装置。
【請求項３】
前記品質情報は、対応する前記特徴を有するプログラムについての不具合の検出率を含む、請求項２に記載の試験優先順位決定装置。
【請求項４】
前記品質情報は、過去に開発されたプログラムに対して実行された試験の結果を含む、請求項２または３に記載の試験優先順位決定装置。
【請求項５】
前記優先順位決定部は、試験の優先順位を決定する処理を行う際、更に前記プログラムの開発の条件を示す制約情報に基づいて、試験の優先順位を決定する、
請求項１〜４のいずれかに記載の試験優先順位決定装置。
【請求項６】
前記制約情報は、前記プログラムの開発において利用可能な作業者の数、工数、試験装置の数、作業場所の面積、および、作業場所を利用できる時間のうちの少なくとも１つの情報を含む、請求項５に記載の試験優先順位決定装置。
【請求項７】
過去に開発されたプログラムの特徴と、前記過去に開発されたプログラムに対して実行された試験の結果と、を対応付けた試験結果情報に基づいて、前記過去に開発されたプログラムに付された優先度情報を教師データとする教師あり学習によって構築された学習モデルを記憶する記憶部を更に備え、
前記優先順位決定部が前記解析結果に応じて前記プログラムに対して行う試験の優先順位を決定する処理は、前記学習モデルを用いて、前記解析結果から前記優先順位を決定する処理である、
請求項１に記載の試験優先順位決定装置。
【請求項８】
前記試験結果情報に基づいて、前記過去に開発されたプログラムに付された優先度情報を教師データとする教師あり学習によって前記学習モデルを構築する学習部を更に備える、請求項７に記載の試験優先順位決定装置。
【請求項９】
前記試験に付された重要度を示す重要度情報を入力する入力部を更に備え、
前記優先順位決定部は、試験の優先順位を決定する処理を行う際、更に前記試験に付された重要度を示す重要度情報に基づいて、試験の優先順位を決定する、
請求項１〜８のいずれかに記載の試験優先順位決定装置。
【請求項１０】
前記解析部によって実行される解析は、静的解析および動的解析のうちの少なくとも１つを含む、請求項１〜９のいずれかに記載の試験優先順位決定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムに対して行う試験の優先順位を決定する試験優先順位決定装置に関する。
【背景技術】
【０００２】
ソフトウェアの規模は年々増加傾向にあるため、限られた工数では、想定される全ての不具合を検出する試験を網羅的にソフトウェアプログラムに対して実行することは困難となっている。そこで、重要な試験を優先的に行うために、試験に優先順位を付ける技術が知られている。例えば、特許文献１は、任意のソフトウェアの修正版に対する試験に係わる各テスト項目の優先順位を決定するシステムを開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−２１２６３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１の技術は、ソフトウェアの修正版にしか適用できない。本発明は、修正版でない新たなプログラムに対して行う試験の優先順位を決定する試験優先順位決定装置を提供する。
【課題を解決するための手段】
【０００５】
本発明の一態様は、プログラムに対して行う試験の優先順位を決定する試験優先順位決定装置を提供する。試験優先順位決定装置は、プログラムを読み込み、プログラムの特徴を解析する解析部と、解析部の解析結果に応じて、プログラムに対して行う試験の優先順位を決定する優先順位決定部とを備える。
【発明の効果】
【０００６】
本発明により、新たなプログラムに対して行う試験の優先順位を決定する試験優先順位決定装置を得ることができる。これにより、限られた工数で効率的に試験を行うことが可能になる。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施の形態１に係る試験優先順位決定装置の構成を示す図である。
【図２】実施の形態１に係る試験優先順位決定装置の動作の流れを示すフローチャートである。
【図３】実施の形態１の重要度情報の一例を示す図である。
【図４】実施の形態１の制御部による静的解析結果の一例を示す図である。
【図５】実施の形態１の品質ＤＢの一例を示す図である。
【図６】実施の形態１のデータ抽出部から優先順位決定部に入力される情報の一例を示す図である。
【図７】実施の形態１における、重要度と検出率との積を優先度とした場合における優先順位を示す図である。
【図８】実施の形態１の変形例１に係る制御部による動的解析結果の一例を示す図である。
【図９】実施の形態１の変形例１に係る品質ＤＢの一例を示す図である。
【図１０】実施の形態１の変形例２に係る試験優先順位決定装置の構成を示す図である。
【図１１】実施の形態１の変形例２に係る第１品質ＤＢを示す図である。
【図１２】実施の形態１の変形例２に係る第２品質ＤＢを示す図である。
【図１３】本発明の実施の形態２に係る試験優先順位決定装置の構成を示す図である。
【図１４】本発明の実施の形態３に係る試験優先順位決定装置の構成を示す図である。
【図１５】実施の形態３の学習装置を示す図である。
【図１６】実施の形態３の試験結果情報の一例を示す図である。
【図１７】実施の形態３の優先度情報の一例を示す図である。
【発明を実施するための形態】
【０００８】
本発明の実施の形態に係る試験優先順位決定装置は、プログラムを解析して、当該プログラムに対して行うべき試験の優先順位を決定する。以下、本発明の実施の形態に係る試験優先順位決定装置について、図面を参照して説明する。各実施の形態において、同一の構成には同一の符号を付して、説明を省略する。
【０００９】
（実施の形態１）
図１は、本発明の実施の形態１に係る試験優先順位決定装置１００の構成を示す図である。試験優先順位決定装置１００は、プログラム入力部１、情報入力部２、制御部３、記憶部４および出力部５を備える。
【００１０】
プログラム入力部１は、プログラム８を読み込み、制御部３に入力する入力インタフェース回路である。プログラム８は、例えばプログラムとして実行可能なソースコード等のテキストファイルである。情報入力部２は、後述の重要度情報９等の情報またはデータを読み込み、制御部３に入力する入力インタフェース回路である。プログラム入力部１および情報入力部２は、例えば図１のように別個の入力インタフェース回路で構成されるが、これに限定されず、同一の入力インタフェース回路で構成されてもよい。
【００１１】
制御部３は、種々の演算および試験優先順位決定装置１００の動作全体の制御等の動作を行う処理装置である。制御部３は、プログラムを実行することにより所定の機能を実現するＣＰＵ、ＭＰＵのような汎用プロセッサを含む。制御部３は、ハードウェアとソフトウェアの協働により所定の機能を実現するものに限定されず、所定の機能を実現するための専用回路として設計されたＦＰＧＡ、ＡＳＩＣ、ＤＳＰ等のハードウェア回路で構成されてもよい。
【００１２】
記憶部４は、試験優先順位決定装置１００の機能を実現するために必要なプログラムおよびデータを含む種々の情報を記録する記録媒体である。記憶部４には、例えば後述の品質データベース（ＤＢ）４１が格納される。記憶部４は、例えば、フラッシュメモリ、ＳＳＤなどの半導体メモリ装置、ハードディスク等の磁気記憶装置、その他の記憶デバイス単独でまたはそれらを適宜組み合わせて実現される。記憶部４は、種々の情報を一時的に記憶する高速動作可能なＳＲＡＭ、ＤＲＡＭなどの揮発性メモリを含んでもよい。
【００１３】
出力部５は、種々の情報を出力する装置またはインタフェース回路である。出力部５は、液晶ディスプレイ、有機ＥＬディスプレイ、プロジェクタ等の表示装置を含む。また、出力部５は、プリンタおよび音声を出力するスピーカを含む。出力部５は、ＩＥＥＥ８０２．３、ＩＥＥＥ８０２．１１またはＷｉ−Ｆｉ、ＬＴＥ、３Ｇ、４Ｇおよび５Ｇ等の規格に従い、ネットワークを介して外部機器への通信接続を可能とするためのインタフェース回路であってもよい。
【００１４】
図２は、試験優先順位決定装置１００の動作の流れを示すフローチャートである。まず、制御部３は、プログラム入力部１を介してプログラム８を入力し、情報入力部２を介して重要度情報９を入力する（Ｓ１）。
【００１５】
図３は、重要度情報９の一例を示す図である。重要度情報９は、プログラム８の第１部位、第２部位および第３部位等の部位に対して、その部位の重要度Ｍを対応付けた情報である。重要度情報９は、例えば、プログラム開発者、試験実行者またはプロジェクト管理者（以下、「プログラム開発者等」という。）がプログラム８の各部位に対して重要度Ｍを付すことによって形成される。重要度Ｍは、例えば０以上１以下の値である。例えば、部位の重要性が高いほど、大きな値の重要度Ｍが付される。
【００１６】
図２に戻り、ステップＳ１の後、解析部３１として機能する制御部３は、プログラム８に対して静的解析を実行する（Ｓ２）。静的解析とは、プログラムを実行せずにプログラムを解析する技術である。静的解析では、例えばソースコードのタイプミスおよび構文の誤り等の不具合を発見することができる。また、静的解析によって、ソースコードやソースコードに含まれる関数の行数、条件分岐の数および呼び出す関数の数等を検出することができる。
【００１７】
図４は、制御部３による静的解析結果の一例を示す図である。図４の静的解析結果によると、プログラム８の第１部位は、関数規模が大きく、かつ、複雑度が大きいという特徴を有し、第２部位は、判断条件段数が多いという特徴を有する。
【００１８】
例えば、制御部３は、ソースコードのある部位の行数が閾値以上である場合、その部位の関数規模が大きいと判断し、それ以外の場合には関数規模が小さいと判断する。また、例えばプログラムのある部位が呼び出している関数およびモジュールの数が閾値以上である場合、制御部３は、その部位の複雑度が大きいと判断し、それ以外の場合には複雑度が小さいと判断する。また、ソースコードの特定の部位におけるｉｆ文等による判断条件段数が閾値以上である場合、制御部３は、その部位の判断条件段数が多いと判断し、それ以外の場合には判断条件段数が少ないと判断する。静的解析結果は、解析部３１から出力されてデータ抽出部３２に入力される（図１参照）。
【００１９】
図２に戻り、ステップＳ２の後、データ抽出部３２として機能する制御部３は、図４のような静的解析結果としての部位毎の特徴をキーとして品質ＤＢ４１を検索し、当該部位の特徴に対応する欠陥、当該欠陥の検出率、当該欠陥を検出するための試験ケース、および、試験を行うために必要な工数（人日）の情報を、品質ＤＢ４１から抽出して取得する（Ｓ３）。
【００２０】
図５は、品質ＤＢ４１の一例を示す図である。品質ＤＢ４１には、プログラムの特徴と、その特徴に対応する欠陥、当該欠陥の検出率、当該欠陥を検出するための試験ケース、および、試験を行うために必要な工数（人日）の情報等の対応情報と、が格納されている。
【００２１】
品質ＤＢ４１は、例えば過去のプロジェクトにおいて作成されたプログラムに対して実行された試験の結果を集計したものである。例えば、図５の表の１行目は、過去のプロジェクトにおいて作成された関数規模が大きいプログラムには、類型的にコードクローンの欠陥が発生しやすく、その検出率が０．３件／ｋＬであったということを示している。また、図５の表の１行目は、欠陥を検出するために用いられた試験ケースがＴ１であり、試験に必要な工数が３人日であったことも示している。品質ＤＢ４１に格納される検出率および必要工数は、例えば過去の試験結果の最大値または平均値である。
【００２２】
品質ＤＢ４１に格納される情報は、過去の開発において取得されたものに限定されない。例えば、品質ＤＢ４１に格納される対応情報は、当該プログラム８に対する試験を行うことによって検出された情報を含んでもよい。これにより、当該プログラム８がどのような欠陥を含みやすいかを知ることができるため、より効率的に優先順位を決定することができる。例えば、定期的に（例えば毎朝）品質ＤＢ４１に試験結果を反映させることにより、定期的に試験の優先順位を変更し、時期に即した試験を行うことができる。
【００２３】
また、例えば、品質ＤＢ４１に格納される対応情報は、理論や経験則等に基づいてプログラム開発者等によって作成されてもよい。
【００２４】
図１を参照すると、データ抽出部３２は、ステップＳ３において抽出した情報を、優先順位決定部３３に対して出力する。データ抽出部３２から優先順位決定部３３に入力される情報は、図４に示した静的解析結果と、これに対応する図５の品質ＤＢ４１内の情報とを組み合わせた、図６のような情報である。
【００２５】
また、優先順位決定部３３には、情報入力部２を介して、重要度情報９（図１および図３参照）も入力される。
【００２６】
図２に戻り、優先順位決定部３３は、入力された情報に基づいて、試験の優先順位を決定する（Ｓ４）。具体的には、優先順位決定部３３は、試験対象部位および試験ケースにつき、実行する優先順位を決定する。
【００２７】
例えば、優先順位決定部３３は、試験対象部位および試験ケースに対して優先度を付し、優先度の高いものほど高い優先順位を付ける。優先度は、例えば重要度Ｍ（図３参照）、検出率（図６参照）、重要度Ｍと検出率との積、またはこれらの組合せである。あるいは、優先順位決定部３３は、必要工数が少ない試験の優先度を高くしてもよい。
【００２８】
図７は、重要度Ｍと検出率との積を優先度とした場合における優先順位を示す図である。図７は、優先度が最も大きな第２部位の判断組合せ誤りについての試験（例えば試験ケースＴ４による試験）の優先順位が１番となることを示している。
【００２９】
制御部３は、決定した優先順位を出力部５を介して出力してもよい。例えば、制御部３は、決定した優先順位を液晶ディスプレイに表示させ、ユーザに優先順位を知らせる。
【００３０】
以上のように、本実施の形態に係る試験優先順位決定装置１００は、プログラム８を読み込み、プログラム８の特徴を解析する解析部３１と、解析部３１の解析結果に応じて、プログラム８に対して行う試験の優先順位を決定する優先順位決定部３３とを備える。
【００３１】
これにより、プログラム８の特徴に応じて試験の優先順位を決定することができ、効率的に試験を行うことが可能になる。
【００３２】
試験優先順位決定装置１００は、プログラムの特徴と、これに対応するプログラムの品質に関する品質情報と、を対応付けた品質データベース４１を更に備えてもよい。この場合、優先順位決定部３３は、品質データベース４１から、解析結果に対応するプログラムの品質情報を抽出する。この場合、優先順位決定部３３が解析結果に応じてプログラムに対して行う試験の優先順位を決定する処理は、解析結果に対応するプログラムの品質情報に基づいて試験の優先順位を決定する処理であってもよい。
【００３３】
これにより、プログラム８の特徴に応じて、品質データベース４１から対応する品質情報を抽出し、品質情報に基づいて試験の優先順位を決定することができ、プログラム８の特徴に即した試験を行うことが可能になる。したがって、より効率的に試験を行うことが可能になる。
【００３４】
品質情報は、対応する特徴を有するプログラムについての不具合の検出率を含んでもよい。また、品質情報は、過去に開発されたプログラムに対して実行された試験の結果を含んでもよい。
【００３５】
これにより、検出率や過去に開発されたプログラムに対して実行された試験の結果を反映させ、プログラム８の特徴に即した試験の優先順位を決定することができる。したがって、より効率的に試験を行うことが可能になる。
【００３６】
（変形例１）
以下、実施の形態１の変形例１について説明する。上記の実施の形態１では、解析部３１として機能する制御部３（図１参照）は、プログラム８に対して静的解析を実行するものであった。しかしながら、プログラム８の解析は静的解析に限られない。例えば、解析部３１として機能する制御部３は、プログラム８に対して動的解析を実行するものであってもよい。
【００３７】
動的解析とは、プログラムを実行してプログラムを解析する技術である。動的解析では、静的解析で得られる複雑度、プログラム単位当たりの規模等の構造に加えて、プログラムの部位同士の関連性、および、プログラム中で用いられるデータのふるまい等をも解析することができる。動的解析により、プログラムを動作させて初めてわかる欠陥に至るリスクを検出することができる。
【００３８】
図８は、実施の形態１の変形例１に係る制御部３による動的解析結果の一例を示す図である。図８の動的解析結果によると、プログラム８の第１部位は、メモリリークを生じ、かつ、パラメータ範囲を逸脱するという特徴を有し、第２部位は、到達しないソースを有するという特徴を有する。
【００３９】
実施の形態１の変形例１では、品質ＤＢ４１の対応情報も、動的解析により解析できるプログラムの特徴に対応するものとなる。図９は、実施の形態１の変形例１に係る品質ＤＢ４１の一例を示す図である。図９の表の１行目は、過去のプロジェクトにおいて作成されたメモリリークを生じるプログラムには、類型的に制御構造が誤っているという欠陥が発生しやすく、その検出率が０．３件／ｋＬであったということを示している。また、図９の表の１行目は、欠陥を検出するために用いられた試験ケースがＴ７であり、試験に必要な工数が３人日であったことも示している。
【００４０】
データ抽出部３２は、品質ＤＢ４１から抽出した情報を、優先順位決定部３３に対して出力する。データ抽出部３２から優先順位決定部３３に入力される情報は、動的解析結果と、これに対応する品質ＤＢ４１内の情報とを組み合わせた情報である。
【００４１】
また、優先順位決定部３３には、情報入力部２を介して、重要度情報９（図１および図３参照）も入力される。
【００４２】
優先順位決定部３３は、入力された情報に基づいて、試験の優先順位を決定する。具体的には、優先順位決定部３３は、試験対象部位および試験ケースにつき、実行する優先順位を決定する。
【００４３】
このように、実施の形態１の変形例１では、動的解析を実行し、動的解析によって得られる特徴に応じて試験の優先順位を決定する。これにより、プログラム８の特徴に即した試験の優先順位を決定することができる。したがって、より効率的に試験を行うことが可能になる。
【００４４】
なお、実施の形態１と、実施の形態１の変形例１とは組み合わせられてもよい。すなわち、解析部３１は、静的解析および動的解析のうちの少なくとも１つを実行することができ、例えば両方を実行してもよい。
【００４５】
（変形例２）
図１０は、実施の形態１の変形例２に係る試験優先順位決定装置１２０の構成を示す図である。試験優先順位決定装置１２０の記憶部４には、第１品質ＤＢ４１ａと第２品質ＤＢ４１ｂとが格納されている。実施の形態１と異なり、プロジェクトの分野、困難度およびリソース等に応じて、第１品質ＤＢ４１ａと第２品質ＤＢ４１ｂとを切り換えて使用してもよい。
【００４６】
図１１は、第１品質ＤＢ４１ａを示す図である。図１２は、第２品質ＤＢ４１ｂを示す図である。第１品質ＤＢ４１ａは、過去の一の分野のプロジェクトにおいて作成されたプログラムに対して実行された試験の結果を集計したものである。第２品質ＤＢ４１ｂは、過去の他の分野のプロジェクトにおいて作成されたプログラムに対して実行された試験の結果を集計したものである。
【００４７】
例えば、試験優先順位決定装置１２０では、現プロジェクトが分野において当該一の分野のプロジェクトに類似している場合、第１品質ＤＢ４１ａが使用される。一方、現プロジェクトが分野において当該他の分野のプロジェクトに類似している場合、第２品質ＤＢ４１ｂが使用される。
【００４８】
このように、実施の形態１の変形例２では、現プロジェクトに類似したプロジェクトのデータを用いることによって、プロジェクトに即した判断材料が採用され、より効率的に優先順位を決定することができる。
【００４９】
（実施の形態２）
プログラム開発を含むプロジェクトでは、いかなるプログラム試験でも実行可能とは限らない。例えば、試験の実行において、リソースは無制限ではなく、一定の制約がある。リソースに制約があるとは、例えば作業者の数、作業場所の面積、作業場所を利用できる時間、コストおよび資源等に上限があることを意味する。本発明の実施の形態２では、これらの制約をも考慮して試験の優先順位を決定する試験優先順位決定装置が提供される。
【００５０】
図１３は、実施の形態２に係る試験優先順位決定装置２００の構成を示す図である。実施の形態１と比較すると、試験優先順位決定装置２００の情報入力部２０２には、重要度情報９の他、制約情報２１０が入力される。
【００５１】
制約情報２１０は、プログラム開発の条件を示す条件情報であり、例えば利用可能な作業者の数または工数、試験装置の数、作業場所の面積、および、作業場所を利用できる時間等を含む。制約情報２１０は、優先して試験すべき部位の情報を含んでもよい。
【００５２】
制約情報２１０は、重要度情報９とともに、情報入力部２０２を介して制御部３の優先順位決定部２３３に入力される。優先順位決定部２３３は、入力された情報に基づいて、試験の優先順位を決定する。
【００５３】
例えば、重要度Ｍと検出率が同一の２つの試験ＡおよびＢがあり、一方の試験Ａを行うために必要な作業者数がＮ１であり、他方の試験Ｂを行うために必要な作業者数がＮ２（＞Ｎ１）であったとする。そして、当該プロジェクトにおいて作業可能な作業者の数がＮ３であり、Ｎ１＜Ｎ３＜Ｎ２の関係が成り立つものとする。この場合、当該プロジェクトでは、作業者数が不足するため試験Ｂを行うことはできない。このような場合、優先順位決定部２３３は、試験Ｂの優先順位を下げる。あるいは、試験Ａの優先順位を上げる。
【００５４】
このように、本実施の形態に係る試験優先順位決定装置２００は、制約情報２１０に基づいて試験の優先順位を決定する。これにより、リソースに応じた実効的な優先順位決定を行うことができ、効率的に優先順位を決定することができる。
【００５５】
（実施の形態３）
図１４は、本発明の実施の形態３に係る試験優先順位決定装置３００の構成を示す図である。実施の形態３では、記憶部４には過去の試験結果データを学習することにより構築された学習モデル３４２が格納されている。実施の形態３では、優先順位決定部３３３は、入力された情報を学習モデル３４２に当てはめ、それによって得られた結果に基づいて優先順位を決定する。
【００５６】
学習モデル３４２は、学習装置３５０によって生成される。図１５は、本実施の形態に係る学習装置３５０を示す図である。学習装置３５０は、過去のプロジェクトにおいて作成されたプログラムに対して実行された試験の結果を格納した試験結果情報３６０に基づいて、機械学習を行う。
【００５７】
学習装置３５０は、学習部３５１と、記憶部３５２とを備える。学習部３５１は、制御部３と同様の処理装置であり、プログラムを実行することにより学習機能を実現するＣＰＵ、ＭＰＵのような汎用プロセッサを含む。記憶部３５２は、記録媒体であり、例えば学習部３５１によって生成された学習モデル３４２を記憶する。記憶部３５２は、例えば、フラッシュメモリ、ＳＳＤなどの半導体メモリ装置、ハードディスク等の磁気記憶装置、その他の記憶デバイス単独でまたはそれらを適宜組み合わせて実現される。記憶部３５２は、種々の情報を一時的に記憶する高速動作可能なＳＲＡＭ、ＤＲＡＭなどの揮発性メモリを含んでもよい。
【００５８】
学習部３５１は、試験結果情報３６０と、各試験結果に対してプログラム開発者等によって付された優先度情報３７０と、に基づいて機械学習を行う。図１６は、試験結果情報３６０の一例を示す図である。
【００５９】
図１６に示すように、試験結果情報３６０は、過去のプロジェクトにおいて作成されたプログラムを識別するＰ１、Ｐ２およびＰ３等の情報を含む。試験結果情報３６０は、各プログラムの各部位についての「重要度」、「特徴」、「試験ケース」、「欠陥」、「検出率」および「必要工数」の情報を含む。
【００６０】
試験結果情報３６０の「重要度」の欄には、過去のプロジェクトにおいてプログラム開発者等によって付された当該部位の重要度が示されている。その部位の重要性が高いほど、大きな値の重要度が付される。
【００６１】
試験結果情報３６０の「特徴」の欄には、過去のプロジェクトにおいて静的解析や動的解析等のプログラム解析を実行した結果が示されている。
【００６２】
試験結果情報３６０の「試験ケース」の欄には、過去のプロジェクトにおいて当該部位の試験のために使用された試験ケースが示されている。試験結果情報３６０の「欠陥」の欄には、過去のプロジェクトにおける当該部位の試験によって検出された欠陥が示され、「検出率」の欄には、その欠陥の検出率が示されている。
【００６３】
試験結果情報３６０の「工数」の欄には、過去のプロジェクトにおける当該部位の試験に要した工数が示されている。
【００６４】
図１７は、優先度情報３７０の一例を示す図である。各プログラムの各部位に、優先度が付されている。優先度は、例えば０以上１以下の値である。優先度は、例えば試験結果情報３６０を考慮して現プロジェクトのプログラム開発者等によって入力される。あるいは、優先度は、過去の各プロジェクトのプログラム開発者等によって付されたものであってもよい。また、優先度は、試験結果情報３６０の中に含まれてもよい。
【００６５】
学習部３５１は、試験結果情報３６０中の各情報に基づいて、優先度情報３７０を教師データとして教師あり学習を行い、学習モデル３４２を構築する。学習モデル３４２は、プログラムの特徴および重要度から優先度を予測できる学習モデルであればどのようなものであってもよい。例えば、学習モデル３４２は、ニューラルネットワーク、決定木学習およびサポートベクターマシン等によって学習を行うことによって生成される学習モデルである。
【００６６】
図１４に戻り、試験優先順位決定装置３００の記憶部４には、上記のようにして学習装置３５０によって生成された学習モデル３４２が格納される。優先順位決定部３３３として機能する制御部３は、情報入力部２を介して入力される重要度情報９と、解析部３１から入力されるプログラム８の解析結果とに基づいて、学習モデル３４２を用いた優先度の決定を行う。例えば、学習モデル３４２としてニューラルネットワークを用いる場合、制御部３は、重要度情報９と、プログラム８の解析結果とをニューラルネットワークに入力し、これによりニューラルネットワークから出力される優先度を取得する。
【００６７】
優先順位決定部３３３として機能する制御部３は、学習モデル３４２から各部位に対する試験の優先度を取得すると、優先度が大きい順に高い優先順位を付与する。このようにして決定された優先順位が出力部５に送信される。
【００６８】
以上のように、本実施の形態に係る試験優先順位決定装置３００は、過去に開発されたプログラムの特徴と、過去に開発されたプログラムに対して実行された試験の結果と、を対応付けた試験結果情報３６０に基づいて、過去に開発されたプログラムに付された優先度情報３７０を教師データとする教師あり学習によって構築された学習モデル３４２を記憶する記憶部４を更に備える。この場合、優先順位決定部３３３が解析結果に応じてプログラム８に対して行う試験の優先順位を決定する処理は、学習モデル３４２を用いて、解析結果から優先順位を決定する処理である。
【００６９】
この構成により、プログラム８の特徴に応じて試験の優先順位を決定することができ、効率的に試験を行うことが可能になる。
【００７０】
（変形例）
実施の形態３では、学習装置３５０によって生成された学習モデル３４２を、学習装置３５０とは別の装置である試験優先順位決定装置３００が利用する例について説明した。しかしながら、本発明はこれに限定されず、例えば試験優先順位決定装置３００の制御部３が学習機能を有し、試験優先順位決定装置３００に入力された試験結果情報３６０中の各情報に基づいて、優先度情報３７０を教師データとして教師あり学習を行い、学習モデル３４２を構築してもよい。
【００７１】
すなわち、本実施の形態の変形例に係る試験優先順位決定装置は、試験結果情報３６０に基づいて、過去に開発されたプログラムに付された優先度情報３７０を教師データとする教師あり学習によって学習モデル３４２を構築する学習部３５１を更に備える。この例では、試験優先順位決定装置３００は、機械学習を行って学習モデルを構築する機能と、構築した学習モデルを使用する機能とを含む。
【符号の説明】
【００７２】
１  プログラム入力部、２  情報入力部、３  制御部、４  記憶部、５  出力部、８  プログラム、９  重要度情報、３１  解析部、３２  データ抽出部、３３  優先順位決定部、４１  品質データベース、１００  試験優先順位決定装置、３４２  学習モデル、３５０  学習装置、３５１  学習部、３６０  試験結果情報、３７０  優先度情報。
【図１】
2020115248.tif 000003
【図２】
2020115248.tif 000004
【図３】
2020115248.tif 000005
【図４】
2020115248.tif 000006
【図５】
2020115248.tif 000007
【図６】
2020115248.tif 000008
【図７】
2020115248.tif 000009
【図８】
2020115248.tif 000010
【図９】
2020115248.tif 000011
【図１０】
2020115248.tif 000012
【図１１】
2020115248.tif 000013
【図１２】
2020115248.tif 000014
【図１３】
2020115248.tif 000015
【図１４】
2020115248.tif 000016
【図１５】
2020115248.tif 000017
【図１６】
2020115248.tif 000018
【図１７】
2020115248.tif 000019