(57)【要約】【課題】効率良くテストの方法を選定することを実現するテスト支援方法、テスト実行方法、テスト支援装置及びコンピュータプログラムを提供する。【解決手段】テスト支援方法では、ソフトウェアプログラムに対応する所定の複数のキーワードの内のいずれかを含む異なるユーザからの問い合わせを記憶し、前記ユーザからの問い合わせに含まれる前記所定の複数のキーワードのいずれかを抽出し、抽出したキーワードの出現頻度、又は問い合わせ元のユーザの重要度に基づいて、抽出されたキーワードに対する優先度を示す値を算出し、前記所定の複数のキーワードと算出された優先度を示す値とを対応付けて出力する。【選択図】図１
2020087106.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアプログラムに対応する所定の複数のキーワードの内のいずれかを含む異なるユーザからの問い合わせを記憶し、
前記ユーザからの問い合わせに含まれる前記所定の複数のキーワードのいずれかを抽出し、
抽出したキーワードの出現頻度、又は問い合わせ元のユーザの重要度に基づいて、抽出されたキーワードに対する優先度を示す値を算出し、
前記所定の複数のキーワードと算出された優先度を示す値とを対応付けて出力する
テスト支援方法。
【請求項２】
各々前記所定の複数のキーワードの内のいずれかを含む前記ソフトウェアプログラムに対するテストケースに対し、前記複数の複数のキーワードに対して算出された優先度を示す値を用いて評価値を算出し、
算出された評価値に基づいて高評価順に前記テストケースを抽出する
請求項１に記載のテスト支援方法。
【請求項３】
前記テストケースには実行履歴が対応付けて記憶されており、
前記評価値は、前記実行履歴に基づいて未実施のテストケースにより高い評価値が算出される
請求項２に記載のテスト支援方法。
【請求項４】
前記問い合わせを時間情報と対応付けて記憶しておき、
前記優先度を示す値は、異なる期間毎の前記出現頻度又は重要度を、より古い期間の成分に低い係数を乗じて加算することによって算出される
請求項１から請求項３のいずれか１項に記載のテスト支援方法。
【請求項５】
前記ソフトウェアプログラムに関する前記異なるユーザ毎の往訪回数を記憶しておき、
前記ユーザの重要度は、前記往訪回数を要素として算出される
請求項１から請求項４のいずれか１項に記載のテスト支援方法。
【請求項６】
前記ソフトウェアプログラムの契約ライセンス数を前記異なるユーザ毎に記憶しておき、
前記ユーザの重要度は、前記契約ライセンス数を要素として算出される
請求項１から請求項４のいずれか１項に記載のテスト支援方法。
【請求項７】
前記ソフトウェアプログラムの契約に基づく売上高を前記異なるユーザ毎に記憶しておき、
前記ユーザの重要度は、前記売上高を要素として算出される
請求項１から請求項４のいずれか１項に記載のテスト支援方法。
【請求項８】
前記優先度を示す値は、前記出現頻度、及び前記ユーザの重要度に寄与する複数の項目毎に異なる重み付けによって算出される
請求項１から請求項７のいずれか１項に記載のテスト支援方法。
【請求項９】
ユーザからの問い合わせを受け付ける入力層と、該問い合わせに含まれる前記所定の複数のキーワードの内のいずれかに対する重要度を出力する出力層と、前記問い合わせと、該問い合わせの文脈から特定される重要度とを含む教師データに基づいて学習させた中間層とを含む学習モデルを用い、
新たにユーザからの問い合わせを受け付けた場合に、前記ユーザからの問い合わせに含まれる、前記所定の複数のキーワードの内のいずれかを抽出し、
前記問い合わせを前記学習モデルの入力層に与え、
前記問い合わせに対して前記出力層から出力される前記所定の複数のキーワードの内のいずれかに対する重要度を用い、抽出されたキーワードに対する優先度を示す値を算出する
請求項１から請求項８のいずれか１項に記載のテスト支援方法。
【請求項１０】
ソフトウェアプログラムの更新完了が検知された場合に、前記ソフトウェアプログラムに対応する所定の複数のキーワードに対し、ユーザからの問い合わせに基づき算出されてある優先度によって抽出されたテストケースをコンピュータが参照し、
前記コンピュータは、参照したテストケースを実行する
テスト実行方法。
【請求項１１】
ソフトウェアプログラムに対応する所定の複数のキーワードの内のいずれかを含む異なるユーザからの問い合わせを記憶する記憶部と、
前記ユーザからの問い合わせに含まれる前記所定の複数のキーワードの内のいずれかを抽出する抽出部と、
抽出したキーワードの出現頻度、又は問い合わせ元のユーザの重要度に基づいて、抽出されたキーワードに対する優先度を示す値を算出する算出部と、
前記所定の複数のキーワードと算出された優先度を示す値とを対応付けて出力する出力部と
を備えるテスト支援装置。
【請求項１２】
コンピュータに、
ソフトウェアプログラムに対応する所定の複数のキーワードの内のいずれかを含む異なるユーザからの問い合わせを記録し、
前記ユーザからの問い合わせに含まれる前記所定の複数のキーワードの内のいずれかを抽出し、
抽出したキーワードの出現頻度、又は問い合わせ元のユーザの重要度に基づいて、抽出されたキーワードに対する優先度を示す値を算出し、
前記所定の複数のキーワードと算出された優先度を示す値とを対応付けて出力する
処理を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ソフトウェアプログラムのテスト工程の効率化を実現するテスト支援方法、テスト実行方法、テスト支援装置及びコンピュータプログラムに関する。
【背景技術】
【０００２】
多くのソフトウェアプログラムの開発では、ソフトウェアプログラムの品質管理を短期間で実現するために継続的改善（Continuous Integration）と呼ばれる品質改善手法が採用され、作成（ビルド）・テスト・デプロイを循環的に繰り返されている。非特許文献１には、あるプログラムが多数のユーザによって保守・更新された履歴が開示されている。
【０００３】
継続的改善の内のテスト工程では、プログラムのリリース後のバグ修正、機能追加等に応じた部分変更に対し、他の部分に影響がないか否かをテストする回帰テスト（regression testing）が行なわれる。回帰テストは継続的改善にとって重要であるが、時間及び費用を要し、プログラムの生涯管理費用の５０−６６％を要するとされている（非特許文献２）。
【０００４】
多くの回帰テストは、テスト担当者により、対象のソフトウェアプログラムが使用される状況を仮定して策定され、状況に則して実行される。しかしながら人手で策定するので工数を要する。回帰テストについては従来、自動でテストを行なうスクリプトの作成、修正箇所と関係するデータを扱うテストのみに絞り込む等、効率化に向けて多くの工夫がされている。その中でも非特許文献３には、ソフトウェアプログラムに含まれる関数又は変数の依存性を有効グラフとしてモデル化し、任意の入力群に対して重要度を決定し、テストの優先度を決定する方法が開示されている。このような方法で効率的にテストを選定して実行することが提案されている。
【０００５】
コンピュータ上で対象物における物理現象の解析を実現するソフトウェアプログラム、所謂ＣＡＥ（Computer Aided Engineering）プログラムは、構造解析、溶接ひずみ解析、熱流体解析、電磁界解析等の様々な分野で利用されている。物理現象解析用のソフトウェアプログラムはシミュレーションを実行するために解析に長時間を要し、仕様として解析の前提条件となる対象物の形状（構造）、材料、条件等を設定するためのファイルを読み込み、解析の結果をファイルとして出力するものがある（特許文献１等）。このとき、入出力されるファイルは、物理現象解析用のソフトウェアプログラム夫々について設定されているパラメータ名、変数名、関数名、所定値、エラー番号等に対応する予約語（キーワード）に、数値、論理値等を対応させて記述される（非特許文献４等）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開２０１３／０８４３０６号
【非特許文献】
【０００７】
【非特許文献１】“Debian Continuous Integration”、［online］、Debian Project、［2018年08月10日検索］、インターネット<URL:https://ci.debian.net/>
【非特許文献２】R. Pressman、“Software Engineering : A Practitioner's Approach”、McGraw-Hill Education、米国、2000年
【非特許文献３】Swarnendu Biswas et al.、“Regression Test Selection Techniques: A Survey”、Informatica 35、2011年、pp.289-321、インターネット<URL:https://users.ices.utexas.edu/~sbiswas/files/papers/informaticasurvey.pdf>
【非特許文献４】“LS-DYNA Manual R10.0-Vol I”、［online］、2017年10月16日、Livermore Software Technology Corporation 、［2018年08月10日検索］、インターネット<URL:https://www.dynasupport.com/manuals/ls-dyna-manuals/ls-dyna-manual-r10.0-vol-i>
【発明の概要】
【発明が解決しようとする課題】
【０００８】
この種の物理現象解析用のソフトウェアプログラムは、対象物の形状も千差万別であり、材料との組み合わせ、境界条件との組み合わせも多様である。このため非特許文献１に開示されているように、入出力ファイルの記述に利用される予約語の種類も多く、解析対象を記述するための予約語の組み合わせの数は膨大な組み合わせになる。したがって、物理現象解析用のソフトウェアプログラムに対するテストケースも、基本的にはその予約語毎に存在するため更に膨大な数となる。
【０００９】
物理現象解析用のソフトウェアプログラムに上述したようなテストの選定方法を適用することで膨大な数のテストケースから絞り込みが可能ではある。しかしながら、変更点と関係するデータ周辺に回帰テストを絞り込むことができたとしても、それがユーザのニーズに対応しているとも限らず、ニーズの高い部分のテストを効率化できるとは限らない。また、他から提供されたソフトウェアプログラムを取りこむ構成とした場合、その構成が不明であったり複雑であったりする場合には、ソフトウェアプログラムの設計情報に基づくテストの選定ができるとも限らない。
【００１０】
本開示の目的は、ソフトウェアプログラムのテストの優先度を更新してテストの工数を削減し、ユーザからのニーズに応えた継続的改善のためのテストの自動運用を実現するテスト支援方法、テスト実行方法、テスト支援装置及びコンピュータプログラムを提供することである。
【課題を解決するための手段】
【００１１】
本開示の一態様に係るテスト支援方法は、ソフトウェアプログラムに対応する所定の複数のキーワードの内のいずれかを含む異なるユーザからの問い合わせを記憶し、前記ユーザからの問い合わせに含まれる前記所定の複数のキーワードのいずれかを抽出し、抽出したキーワードの出現頻度、又は問い合わせ元のユーザの重要度に基づいて、抽出されたキーワードに対する優先度を示す値を算出し、前記所定の複数のキーワードと算出された優先度を示す値とを対応付けて出力する。
【００１２】
本開示の一態様に係るテスト実行方法は、ソフトウェアプログラムの更新完了が検知された場合に、前記ソフトウェアプログラムに対応する所定の複数のキーワードに対し、ユーザからの問い合わせに基づき算出されてある優先度によって抽出されたテストケースをコンピュータが参照し、前記コンピュータは、参照したテストケースを実行する。
【００１３】
本開示の一態様に係るテスト支援装置は、ソフトウェアプログラムに対応する所定の複数のキーワードの内のいずれかを含む異なるユーザからの問い合わせを記憶する記憶部と、前記ユーザからの問い合わせに含まれる前記所定の複数のキーワードの内のいずれかを抽出する抽出部と、抽出したキーワードの出現頻度、又は問い合わせ元のユーザの重要度に基づいて、抽出されたキーワードに対する優先度を示す値を算出する算出部と、前記所定の複数のキーワードと算出された優先度を示す値とを対応付けて出力する出力部とを備える。
【００１４】
本開示の一態様に係るコンピュータプログラムは、コンピュータに、ソフトウェアプログラムに対応する所定の複数のキーワードの内のいずれかを含む異なるユーザからの問い合わせを記録し、前記ユーザからの問い合わせに含まれる前記所定の複数のキーワードの内のいずれかを抽出し、抽出したキーワードの出現頻度、又は問い合わせ元のユーザの重要度に基づいて、抽出されたキーワードに対する優先度を示す値を算出し、前記所定の複数のキーワードと算出された優先度を示す値とを対応付けて出力する処理を実行させる。
【００１５】
本開示の一態様では、所定のソフトウェアプログラム用に設定されているパラメータ名、変数名、関数名、所定値、エラー番号等に対応するキーワード（予約語）の内、いずれか１つ又は複数を含む異なるユーザからの問い合わせが解析され、キーワードの優先度を示す値がその問い合わせ元のユーザの顧客としての重要度を反映させて算出される。キーワードの優先度を示す値が算出されることで、優先度の高いキーワードをより多く含むか、より相関が高いテストケースが選定される。
【００１６】
本開示の一態様では、優先度を示す値は、異なる期間毎に算出された出現頻度又は重要度をより古い期間のそれらの値の影響をより低くして加算して算出される。
【００１７】
本開示の一態様では、優先度を示す値は、対象のソフトウェアプログラムに関する往訪回数、契約ライセンス数、売上高等のいずれか１つ又は全部を要素として用いて算出されるとよい。要素毎に異なる重み付けが付与されて算出されてもよい。
【００１８】
本開示の一態様では、問い合わせに含まれているキーワードについて、その問い合わせの中で文脈上重要であるか否かを判定する学習モデルを用い、その重要度を用いて優先度を示す値が算出される。
【発明の効果】
【００１９】
本開示のテスト支援方法、テスト実行方法、テスト支援装置及びコンピュータプログラムによれば、効率良くテストの方法を選定することができる。
【図面の簡単な説明】
【００２０】
【図１】本実施の形態におけるテスト支援装置の概要を示す図である。
【図２】テスト支援装置の構成を示すブロック図である。
【図３】テストケースの選定の処理手順の一例を示すフローチャートである。
【図４】テストの自動実行処理手順の一例を示すフローチャートである。
【図５】優先度の算出方法の一例を示すフローチャートである。
【図６】テストケースの例を示す説明図である。
【図７】変形例１における優先度の算出方法を示すフローチャートである。
【図８】変形例２における優先度の算出方法を示すフローチャートである。
【図９】学習モデルの内容例を示す図である。
【図１０】変形例３における優先度の算出方法を示すフローチャートである。
【発明を実施するための形態】
【００２１】
本開示の実施形態に係るテスト支援装置及びコンピュータプログラムの具体例を以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【００２２】
図１は、本実施の形態におけるテスト支援装置１の概要を示す図である。テスト支援装置１は、解析プログラム１Ｐの利用についてユーザへのサポートを実現するサポートサービス、及び解析プログラム１Ｐの販売管理を行なうサービスと連携し、解析プログラム１Ｐの開発、改良を支援する。解析プログラム１Ｐは、物理現象解析用のシミュレーション演算を実行するエンジンを含む。シミュレーション演算では膨大なステップの演算が実行され、物理現象は多様であり、演算で使用される境界条件等も多様であり、解析プログラム１Ｐを実行する解析用コンピュータにおいて、解析プログラム１Ｐからエラーが出力されたり、強制終了したりする場合がある。解析プログラム１Ｐによる演算がユーザの意図通りにいかない場合に、ユーザはサポートサービス提供者へ問い合わせを行なう。サポートサービス提供者は、問い合わせを受け付け、受け付けた問い合わせのデータを記録し、これに基づき解析プログラム１Ｐの使用方法について、ユーザへサポートを実施する。テスト支援装置１は、サポートサービス提供者への問い合わせを元に解析プログラム１Ｐのテストを効率的に自動実行し、バグの洗い出し、又は機能の改善等を行なう。
【００２３】
本実施の形態のテスト支援装置１が対象とする解析プログラム１Ｐは物理現象解析用エンジンを含む。この物理現象解析用エンジンは、予め設定されているパラメータ名、変数名、関数名、所定値、エラー番号等に対応する予約語（キーワード）に、数値、論理値等を対応させて記述された入力ファイルＩＦを読み込んで処理を実行する。物理現象解析用エンジンの予約語の数は膨大であり、単純な予約語の組み合わせのみでも数万であり、更にその予約語に対するパラメータ値（数値、論理値等）のバリエーションを考慮すれば、全数テストは不可能である。そこで本実施の形態におけるテスト支援装置１が、優先して実行すべきテストケースに対応する入力ファイルＩＦを、ユーザへのサポートに関する情報に基づいて定まる予約語の優先度によって選定する。テスト支援装置１は、選定した入力ファイルＩＦを用いたテストケースに対応する自動スクリプトを実行し、実行結果を記憶装置３に出力する。
【００２４】
テスト支援装置１は、サポートサービスの事業者が管理するサーバ装置２及び記憶装置３に接続される。テスト支援装置１、サーバ装置２、及び記憶装置３は、同一のローカルネットワークＬＮに接続されている。サーバ装置２は、ローカルネットワークＬＮ及び公衆ネットワークＮを介してユーザが用いる通信端末装置５との間で情報の送受信が可能である。
【００２５】
サーバ装置２は、サポートサービスの管理者を送信者又は受信者とするメールを送受信するメールサーバの機能を含み、ユーザからの問い合わせに対するインタフェースとして機能する。サーバ装置２は、サポートサービスが対象としている解析プログラム１Ｐについての問い合わせメールを記憶装置３に記憶させることが可能である。メールには送信時間又は受信時間等の時間情報が含まれている。その他、サーバ装置２は、Ｗｅｂサーバの機能を有して、Ｗｅｂページ上で解析プログラム１Ｐについての問い合わせを受け付ける。サーバ装置２はユーザ毎の問い合わせの内容を、問い合わせを受け付けた時間情報に対応付けて記憶装置３に記憶する。更にサーバ装置２は、解析プログラム１Ｐに関するサポートについての情報を記憶装置３に記憶する。なお実施の形態１の説明では、サーバ装置２がメールサーバ及びＷｅｂサーバの機能を有する１台のサーバコンピュータとして説明を容易にしている。サーバ装置２は、複数のサーバコンピュータ及び記憶媒体に分散して処理を行なってもよいし、１台の大型コンピュータに仮想的に生成される複数のサーバコンピュータ（インスタンス）の内の１つであってもよい。
【００２６】
記憶装置３は、サポートサービス事業者で共有されている。記憶装置３は、解析プログラム１Ｐの予約語を記憶している。予約語は、解析プログラム１Ｐに対して設定されているパラメータ名、変数名、関数名、所定値、エラー番号等に対応するキーワードである。記憶装置３は、解析プログラム１Ｐの機能に応じて、予約語と、解析プログラム１Ｐのテストケースに対応させて予約語に対する数値、論理値等を記述したテスト用の入力ファイルＩＦを複数パターン記憶する。テスト用の入力ファイルＩＦは、テスト支援装置１又は他の装置によって自動的に作成されたものであってもよいし、テスト支援装置１を使用してオペレータによって作成されたものであってもよい。
【００２７】
テスト支援装置１は、対象の解析プログラム１Ｐを記憶しており、解析プログラム１Ｐに基づいて自動的にテストを実行することができる。テスト支援装置１は、サポートサービスのオペレータ又は解析プログラム１Ｐの開発者に用いられ、上述したように、記憶装置３に記憶してある情報を用いて、優先すべきテスト（テストケースに対応する入力ファイルＩＦ）を選定するための情報を作成する。テスト支援装置１は、作成された情報を用いて、テストケースに対応するテストスクリプトによって自動的に解析プログラム１Ｐのテストを行なう。テストを選定するための情報を作成する処理と、解析プログラム１Ｐのテストを実行する処理とは、別の装置で実施されてもよい。
【００２８】
ネットワークＮは、公衆網を含む。公衆網は所謂インターネットである。公衆網はアクセスポイントＡＰを含んでもよい。ユーザが用いる通信端末装置５はネットワークＮを介してサーバ装置２へ情報の送信が可能である。
【００２９】
図２は、テスト支援装置１の構成を示すブロック図である。テスト支援装置１が接続しているサーバ装置２は、メールサーバ２１及びＷｅｂサーバ２２の機能を有している。サーバ装置２はメールサーバ２１によりユーザが用いる情報端末装置から受信したメールデータと、Ｗｅｂサーバ２２により得られた問い合わせの内容とを、問い合わせデータとして記憶装置３に記憶する。
【００３０】
テスト支援装置１が参照する記憶装置３は、ＳＳＤ又はハードディスク等の大容量記憶媒体を用いてサポートサービス事業者で共有される情報を記憶する。なお記憶装置３については説明を容易にするために１台の記憶装置３として説明するが、複数の記憶装置３の記憶媒体を仮想的に１つの大容量の記憶媒体として扱われるものであってよい。記憶装置３は、ローカルネットワークＬＮに通信接続可能なテスト支援装置１、及びサーバ装置２から読み書きが可能である。
【００３１】
記憶装置３には上述したように解析プログラム１Ｐに対して設定されている予約語、予約語を一又は複数、解析プログラム１Ｐの設計に則って用いた複数のテストケースに対応する入力ファイルＩＦが記憶されている。記憶装置３には更に、記憶されている複数のテストケースの内のいずれかに対して実行されたテストの成否等を含むテスト実行履歴が記憶されている。
【００３２】
記憶装置３には、サーバ装置２によって解析プログラム１Ｐに関するユーザからの問い合わせメール、又はＷｅｂサーバ２２で受け付けられた問い合わせ内容を記述したテキストを含む問い合わせデータが記憶される。記憶装置３には、サポートサービスによるユーザ毎の対応（来訪、往訪）履歴が記憶されている。また記憶装置３には、解析プログラム１Ｐに関する売上管理システムから得られる解析プログラム１Ｐについてのユーザ毎の契約情報（契約数、契約履歴、契約バージョン等）が記憶される。
【００３３】
テスト支援装置１は、制御部１０、記憶部１１、表示部１２、操作部１３及び通信部１４を備える。なおテスト支援装置１について以下では説明を容易にするために１つのコンピュータ装置として説明するが、１又は複数のコンピュータ装置のハードウェア資源を用いた仮想マシンであってもよい。
【００３４】
制御部１０はＣＰＵ（Central Processing Unit ）又はＧＰＵ（Graphical Processing Unit ）を用いたプロセッサであり、内蔵する揮発性メモリ、クロック等を含む。制御部１０は、記憶部１１に記憶されている解析プログラム１Ｐに基づいた各処理を実行することが可能である。したがって演算負荷に耐えうる仕様のプロセッサを用いる。そして制御部１０は、記憶部１１に記憶されているテスト選定支援プログラム１００Ｐに基づいて、優先すべき予約語に優先度を付与する処理を実行する。
【００３５】
記憶部１１は、ＳＳＤ（Solid State Drive ）又はハードディスク等の不揮発性の記憶媒体を用いて解析プログラム１Ｐを記憶する。記憶部１１には、テスト選定支援プログラム１００Ｐが記憶されている。記憶部１１には、解析プログラム１Ｐのテストケースに対応するテストスプリクト１Ｓが記憶されている。テストスプリクト１Ｓは記憶装置３にてテストケース識別情報に対応付けてテストケースと共に記憶されており、制御部１０により記憶部１１に複製されたものであってもよい。記憶部１１は、制御部１０が参照するデータを記憶する。
【００３６】
表示部１２は、液晶パネル又は有機ＥＬディスプレイ等のディスプレイ装置を含む。操作部１３は、ユーザの操作を受け付けるインタフェースであり、キーボード、マウス等の入出力インタフェースを含む。操作部１３は、ディスプレイ内蔵のタッチパネルデバイスを含んでもよい。
【００３７】
通信部１４は、ローカルネットワークＬＮを介してサーバ装置２及び記憶装置３への接続を実現する通信モジュールである。通信部１４は具体的には例えばネットワークカードであり、有線によりネットワークＬＮを介した通信を行なう。
【００３８】
このようにテスト支援装置１によって、解析プログラム１Ｐのテストケースを選定する処理について具体例を挙げて説明する。オペレータはテスト支援装置１の操作部１３を用い、テスト選定支援プログラム１００Ｐ及び自動テストの実行スケジュールを設定しておく。例えば１日に１度、週に１度、若しくは月に１度等の定期的なタイミング、又は、オペレータが実行指示を行なったタイミングに、制御部１０は以下に示す処理を実行する。なお実行タイミング毎に、記憶装置３から読み出す問い合わせデータ、対応履歴、及びテスト実行履歴については前回の実行時点から今回の実行時点までの対象期間中に受け付けた問い合わせデータに限定して対象期間毎に処理を行なう。
【００３９】
図３は、テストケースの選定の処理手順の一例を示すフローチャートである。テスト支援装置１の制御部１０は、記憶装置３から対象期間の問い合わせデータを読み出し（ステップＳ１）、問い合わせデータに含まれる予約語を、メール又はＷｅｂ問い合わせの送信ユーザを識別するユーザ識別情報（ユーザアカウント）に対応付けて抽出する（ステップＳ２）。制御部１０は、ユーザ識別情報毎に、対応履歴及び契約情報を記憶装置３から読み出す（ステップＳ３）。
【００４０】
制御部１０は、ステップＳ２で抽出した予約語夫々について、予約語の問い合わせにおける出現頻度に、そのメール又は問い合わせをしてきたユーザの重要度を反映させた優先度を示す値を算出する（ステップＳ４）。優先度を示す値の算出方法については後述する。
【００４１】
制御部１０は、予約語夫々に対して算出した優先度の値を用い、その予約語を用いて記述されたテスト用の入力ファイルＩＦ（テストケース）夫々についての総合評価値を、これまでのテストの実行履歴を加味して算出する（ステップＳ５）。ステップＳ５において制御部１０は、テストの成否によって総合評価値を変動させる。例えば制御部１０は、未実施のテストケースの総合評価値が高くなるように変動させてもよい。なお回帰テストとしては前回成功していたテストが失敗するケースである程に重要性が高いから、制御部１０は例えば、前回の実行結果が成功であったテストについて総合評価値を評価が高くなるように変動させる。
【００４２】
制御部１０は、ステップＳ５で算出された総合評価値の高い順に、期間毎に実施可能な所定数分だけ、入力ファイルＩＦ（テストケース）を抽出する（ステップＳ６）。制御部１０は、抽出された入力ファイルＩＦを夫々識別するテストケース識別情報を出力し（ステップＳ７）、処理を終了する。ステップＳ７における出力は、ファイルへの出力、又は表示部１２への出力のいずれでもよい。
【００４３】
テスト支援装置１は図３のフローチャートに示した選定の処理手順に続けて、出力されたテストケース識別情報に基づいてテストスクリプト１Ｓを読み出して自動的に実行することが好ましい。図４は、テストの自動実行処理手順の一例を示すフローチャートである。テスト支援装置１は、図３のフローチャートに示した選定の処理後、直ちに以下の処理を実行してもよい。好ましくは、解析プログラム１Ｐの継続的改善における更新（ビルド）が完了したことを検知すると、以下の処理を実行して回帰テストを実行するとよい。
【００４４】
制御部１０は、図３のフローチャートに示した手順によって出力されている抽出されたテストケース識別情報を優先度順に参照する（ステップＳ１１）。制御部１０は、参照したテストケース識別情報に対応する入力ファイルＩＦを用い、対応するテストスクリプト１Ｓに基づいてテストを実行する（ステップＳ１２）。
【００４５】
制御部１０は、テストの実行結果であるテストの成否をテスト実行履歴として出力する（ステップＳ１３）。テストの実行履歴は、ファイルとして記憶装置３に記憶されるほか、テスト支援装置１の表示部１２に画面として出力されてもよい。
【００４６】
制御部１０は、ステップＳ１１−Ｓ１３の処理を抽出されたテストケース全て又はその一部について順に実行する。
【００４７】
次に、テストケースに対する優先度の算出方法について詳細に説明する。本実施の形態の優先度の算出方法では、優先度に寄与する要素の項目が予め設定されてあり、記憶部１１に記憶されている。また各要素に対し、優先度への重みが設定されており、同様に記憶部１１に記憶されている。テスト支援装置１の制御部１０は、これらの項目に基づいて記憶装置３から要素を予約語毎、又はユーザ毎に読み出し、設定されている重みを付与して優先度を示す値を算出する。以下に説明する一例においては、制御部１０は予約語の「出現頻度」、予約語を使用したメール又は問い合わせの送信主のユーザの重要度として「対応回数（来訪、往訪の回数）」、「契約ライセンス数」を使用する。その他、ユーザの重要度については「契約バージョン（プレミアムか否か等）」、「メール又は問い合わせの数」等を用いてもよい。
【００４８】
図５は、優先度の算出方法の一例を示すフローチャートである。制御部１０は、予約語夫々の出現回数を算出し、出現回数が所定回数（少なくとも「１」）以上である予約語を抽出する（ステップＳ４０１）。制御部１０は抽出された予約語毎に、その予約語を含むメール又は問い合わせの送信元であるユーザのユーザ識別情報を特定する（ステップＳ４０２）。
【００４９】
次に制御部１０は、契約中の全ユーザの内、ユーザ識別情報を１つ選択する（ステップＳ４０３）。制御部１０は、選択したユーザ識別情報について、対応するユーザ又はユーザが所属する会社等の組織に対する「契約ライセンス数」を記憶装置３から読み出す（ステップＳ４０４）。制御部１０は、選択したユーザ識別情報について対象期間における「対応回数」を記憶装置３の「対応履歴」から読み出す（ステップＳ４０５）。
【００５０】
制御部１０は、契約中の全ユーザのユーザ識別情報について選択したか否かを判断し（ステップＳ４０６）、全ユーザについては選択していないと判断された場合（Ｓ４０６：ＮＯ）、処理をステップＳ４０３へ戻して次のユーザ識別情報を選択する。ステップＳ４０６にて全ユーザのユーザ識別情報を選択したと判断された場合（Ｓ４０６：ＹＥＳ）、制御部１０は、処理を次のステップＳ４０７へ進める。
【００５１】
制御部１０は、ステップＳ４０１で抽出された予約語について１つ選択し（ステップＳ４０７）、選択された予約語の出現頻度（全予約語の出現回数に対する出現回数の割合）を算出する（ステップＳ４０８）。制御部１０は、ステップＳ４０８で算出した頻度、選択されている予約語に対してステップＳ４０２で特定されたユーザ識別情報についてステップＳ４０４で読み出した「契約ライセンス数」及びステップＳ４０５で算出した「対応回数」の全体に対する割合と、各々について設定されている重み値とに基づき、優先度を示す値を算出する（ステップＳ４０９）。これにより優先度が算出される。
【００５２】
ステップＳ４０１で抽出された予約語全てについて、制御部１０は選択して処理を実行したか否かを判断し（ステップＳ４１０）、全てについては実行していないと判断された場合（Ｓ４１０：ＮＯ）、制御部１０は処理をステップＳ４０７へ戻す。
【００５３】
ステップＳ４１０において、予約語全てについて処理を実行したと判断された場合（Ｓ４１０：ＹＥＳ）、優先度を示す値の算出を終了し、制御部１０は、図３のフローチャートに示すステップＳ５へ処理を戻す。
【００５４】
なお上述した通り、図５のフローチャートは、優先度を算出する一例に過ぎず、優先すべき顧客からの問い合わせの中で重要な予約語を含むテストケースを優先して自動的に実行できれば他の方法を用いてもよい。簡単な例であれば、ハッシュテーブル等を用い、予約語を用いて問い合わせを行なったユーザを、予約語をキーとするハッシュリストに追加するデータ構造によって情報を記憶装置３で記憶しておく。この場合、ユーザの検索（Ｓ４０２）又は予約語の選択、検索等の処理が不要になる。
【００５５】
図５のフローチャートに示した算出方法について具体例を挙げて説明する。具体例では、対象期間における出現回数が所定回数「１」以上である３つの予約語「*KEYWORD1 」、「*KEYWORD2 」、「*KEYWORD3 」について、「USER1 」、「USER2 」、「USER3 」のユーザ識別情報（ユーザ名）を持つユーザの重要度を反映させた優先度を算出する。
【００５６】
予約語夫々の出現回数は以下であり、「出現頻度」に対する重みは０．５である。
「*KEYWORD1 」：３回（「USER1 」から１回、「USER2 」から２回）
「*KEYWORD2 」：１回（「USER3 」から１回）
「*KEYWORD3 」：７回（「USER1 」から２回、「USER3 」から５回）
【００５７】
各ユーザの「対応回数」は以下であり、「対応回数」の割合に対する重みは０．２５である。
「USER1 」：１回、「USER2 」：５回、「USER3 」：０回
【００５８】
「契約ライセンス数」は以下であり、「契約ライセンス数」の割合に対する重みは０．２５である。
「USER1 」：１、「USER2 」：１、「USER3 」：２
【００５９】
ここで夫々の要素に対する重みは、総計が「１」となるように設計されている。
【００６０】
制御部１０は、１つ目に選択した「*KEYWORD1 」について、出現頻度を以下のように算出する（Ｓ４０８）。
「*KEYWORD1 」：３／（３＋１＋７）＝３／１１
【００６１】
制御部１０は、ステップＳ４１０において、選択した「*KEYWORD1 」を含むメール又は問い合わせを行なった「USER1 」及び「USER2 」について「対応回数」の割合を以下のように算出し、
「USER1 」：１／（１＋５＋０）＝１／６
「USER2 」：５／（１＋５＋０）＝５／６
「契約ライセンス数」の割合について以下のように算出する。
「USER1 」：１／（１＋１＋２）＝１／４
「USER2 」：１／（１＋１＋２）＝１／４
【００６２】
ステップＳ４１０において制御部１０は、選択した「*KEYWORD1 」に対し、これを使用したとして特定された「USER1 」及び「USER2 」について以下のように優先度を示す値を算出する。
優先度を示す値
＝  ｛「USER1 」について「対応回数」の割合＊０．２５
＋同「契約ライセンス数」の割合＊０．２５
＋「出現頻度」＊０．５｝
＋｛「USER2 」について「対応回数」の割合＊０．２５
＋同「契約ライセンス数」の割合＊０．２５
＋「出現頻度」＊０．５｝
＝  ｛（１／６）＊０．２５＋（１／４）＊０．２５＋（３／１１）＊０．５｝
＋｛（５／６）＊０．２５＋（１／４）＊０．２５＋（３／１１）＊０．５｝
＝  ｛０．０４１６＋０．０６２５＋０．１３６３６｝
＋｛０．２０８３＋０．０６２５＋０．１３６３６｝
＝０．６４７６２
【００６３】
次に制御部１０は、２つ目に選択した「*KEYWORD2 」について、出現頻度を以下のように算出する（Ｓ４０８）。
「*KEYWORD2 」：１／（３＋１＋７）＝１／１１
【００６４】
ステップＳ４１０において制御部１０は、選択した「*KEYWORD2 」に対し、これを使用したとして特定された「USER3 」について以下のように優先度を示す値を算出する。
優先度を示す値
＝  ｛「USER3 」について「対応回数」の割合＊０．２５
＋同「契約ライセンス数」の割合＊０．２５
＋「出現頻度」＊０．５｝
＝  ｛（０）＊０．２５＋（２／４）＊０．２５＋（１／１１）＊０．５｝
＝  ｛０＋０．１２５＋０．０４５４５｝
＝０．１７０４５
【００６５】
次に制御部１０は、３つ目に選択した「*KEYWORD3 」について、出現頻度を以下のように算出する（Ｓ４０８）。
「*KEYWORD1 」：７／（３＋１＋７）＝７／１１
ステップＳ４１０において制御部１０は、選択した「*KEYWORD3 」に対し、これを使用したとして特定された「USER1 」及び「USER3 」について以下のように優先度を示す値を算出する。
優先度を示す値
＝  ｛「USER1 」について「対応回数」の割合＊０．２５
＋同「契約ライセンス数」の割合＊０．２５
＋「出現頻度」＊０．５｝
＋｛「USER3 」について「対応回数」の割合＊０．２５
＋同「契約ライセンス数」の割合＊０．２５
＋「出現頻度」＊０．５｝
＝  ｛（１／６）＊０．２５＋（１／４）＊０．２５＋（７／１１）＊０．５｝
＋｛（０）＊０．２５＋（２／４）＊０．２５＋（７／１１）＊０．５｝
＝  ｛０．０４１６＋０．０６２５＋０．３１８１８｝
＋｛０＋０．１２５＋０．３１８１８｝
＝０．８６５４６
【００６６】
したがって、図３のフローチャートにおけるステップＳ４により、各予約語について以下のように優先度を示す値が算出される。
「*KEYWORD1 」：０．６４７６２
「*KEYWORD2 」：０．１７０４５
「*KEYWORD3 」：０．８６５４６
【００６７】
図６は、テストケースの例を示す説明図である。図６に示すように、テストケース「００１」の入力ファイルＩＦには、「*KEYWORD1 」が２回、「*KEYWORD2 」が１回含まれており、「００２」の入力ファイルＩＦには、「*KEYWORD3 」が１回含まれている。制御部１０は、図３のフローチャートにおけるステップＳ５にて、「００１」及び「００２」の入力ファイルＩＦに対し、夫々の総合評価値を以下のように算出する（Ｓ５）。なおこの例で制御部１０は、総合評価値を、入力ファイルＩＦに含まれる予約語の種類分だけ加算し、重複する場合にはその分は加算しない。また、テスト実行履歴は同条件であるとする。
「００１」の総合評価値＝「*KEYWORD1 」の優先度を示す値
＋「*KEYWORD2 」の優先度を示す値
＝０．６４７６２＋０．１７０４５
＝０．８１８０７
「００２」の総合評価値＝「*KEYWORD3 」の優先度を示す値
＝０．６４７６２＋０．１７０４５
＝０．８６５４６
【００６８】
このように制御部１０は、テストケース「００１」よりもテストケース「００２」に対して総合評価値を高く算出する（Ｓ５）。
【００６９】
この場合、１つだけテストケースを選定するケースでは、制御部１０は「００２」のテストケースを抽出することになる（Ｓ６）。
【００７０】
なお総合評価値は上述の例では、優先度を示す値の総和によって算出された。しかしながらこれに限らず、テストケースに含まれる予約語の分布と、優先度が高い予約語群との相関を算出し、算出された相関の高さを示す値が総合評価値として利用され、これによってテストケースが選定される構成としてもよい。
【００７１】
上述の例で示したように、本実施の形態においては、テストケースは変更箇所に関連する関数、また予約語を使用するテストケースが優先的に選定されるとは限らない。本実施の形態においては、優先すべきユーザからの問い合わせが多い予約語に関するテストケースが優先的に実行される。設計又は実装に基づくテストケースの選定及びテスト実行よりも結果的に、ユーザに利するテストが実施されユーザを満足させる品質向上を実現させることが可能である。また、本実施の形態における解析プログラム１Ｐのように、他のエンジンを組み込んだプログラムの場合には、実装、変更箇所に関わらずテストケースを選定できるから、エンジンの設計、実装状況が不明であったとしても、有効なテストを実行することができる。このようにして本開示のテスト支援装置１により、ソフトウェアプログラムの使用の実情に即した継続的改善を実現することが可能になる。
【００７２】
（変形例１）
予約語の優先度を示す値の算出方法は、図５のフローチャートに示した手順に限られず、優先度に寄与する要素を用いて多様な方法での実施が可能である。図７は、変形例１における優先度の算出方法を示すフローチャートである。制御部１０は、契約中の全ユーザの内、ユーザ識別情報を１つ選択する（ステップＳ４２１）。制御部１０は、選択したユーザ識別情報について、該ユーザからのメール又は問い合わせに含まれる予約語を抽出する（ステップＳ４２２）。制御部１０は、抽出された予約語について選択されているユーザからのメール又は問い合わせにおける出現頻度を算出する（ステップＳ４２３）。
【００７３】
次に選択したユーザ識別情報について、制御部１０は、対応するユーザ又はユーザが所属する会社等の組織に対する「契約ライセンス数」を記憶装置３から読み出す（ステップＳ４２４）。制御部１０は、選択したユーザ識別情報について対象期間における「対応回数」を記憶装置３の「対応履歴」から読み出す（ステップＳ４２５）。算出に用いられるユーザの重要度に関する情報はこれらに限らないことは勿論である。
【００７４】
制御部１０は、ステップＳ４２２で抽出されたユーザによって使用された予約語夫々についてステップＳ４２３で算出した出現頻度と、ステップＳ４２４で読み出した「契約ライセンス数」及びステップＳ４２５で算出した「対応回数」と、各々について設定されている重み値とに基づき、ユーザ別の各予約語についての優先度に関する値を算出する（ステップＳ４２６）。制御部１０は、ユーザ別の各予約語の優先度に関する値について、ユーザ識別情報に対応付けて一時記憶する（ステップＳ４２７）。
【００７５】
制御部１０は、契約中の全ユーザのユーザ識別情報について選択したか否かを判断し（ステップＳ４２８）、全ユーザについては選択していないと判断された場合（Ｓ４２８：ＮＯ）、処理をステップＳ４２１へ戻して次のユーザ識別情報を選択する。ステップＳ４２８にて全ユーザのユーザ識別情報を選択したと判断された場合（Ｓ４２８：ＹＥＳ）、制御部１０は、処理を次のステップＳ４２９へ進める。
【００７６】
制御部１０は、全ユーザに対するステップＳ４２１によって抽出された予約語、即ち、全予約語の内、少なくとも１回、出現回数が所定回数以上であるとして抽出された予約語群から、予約語を１つ選択する（ステップＳ４２９）。ステップＳ４２９で予約語は、前記所定回数よりも多い回数以上の出現回数で絞り込まれてもよい。
【００７７】
ステップＳ４２９で選択した予約語について、該予約語を含むメール又は問い合わせを送信したユーザを特定し（ステップＳ４３０）、特定されたユーザに対してステップＳ４２７で一時記憶してあるユーザ別の予約語の優先度に関する値を総計し、優先度を示す値を算出する（ステップＳ４３１）。
【００７８】
制御部１０は、全ユーザに対して抽出された予約語全てについて選択したか否かを判断し（ステップＳ４３２）、予約語全ては選択していないと判断された場合（Ｓ４３２：ＮＯ）、処理をステップＳ４２９へ戻す。
【００７９】
ステップＳ４３２にて予約語全て選択したと判断された場合（Ｓ４３２：ＹＥＳ）、制御部１０は、図３のフローチャートに示すステップＳ５へ処理を戻す。
【００８０】
図７のフローチャートに示した優先度の算出例について具体的に説明する。なお、３つの予約語「*KEYWORD1 」、「*KEYWORD2 」、「*KEYWORD3 」についての出現条件は、上述の例と同様であるとする。
【００８１】
図７のフローチャートに示す例では、各予約語に対する優先度を示す値は以下のように表せる。
予約語の優先度を示す値
＝その予約語を使用したユーザ毎に算出される優先度を示す要素夫々の値の総和
【００８２】
例えば「KEYWORD1 」の優先度に関する値については以下のようにユーザ毎に算出した優先度に関する値を総計して、
「KEYWORD1 」の優先度に関する値
＝「USER1 」についての｛「出現頻度」＊０．５＋「対応回数」の割合＊０．２５
＋「契約ライセンス数」の割合＊０．２５｝
＋「USER2 」についての｛「出現頻度」＊０．５＋「対応回数」の割合＊０．２５
＋「契約ライセンス数」の割合＊０．２５｝
＝｛（１／３）＊０．５＋（１／６）＊０．２５＋（１／４）＊０．２５｝
＋｛（２／２）＊０．５＋（５／６）＊０．２５＋（１／４）＊０．２５｝
＝０．２７０７７＋０．７７０８
＝１．０４１５７
【００８３】
ここで、「出現頻度」は、ユーザ毎のメール又は問い合わせ中の出現頻度なので、例えば「USER1 」については「*KEYWORD1 」が１回、「*KEYWORD3 」が２回であるから、出現頻度は以下である。
「*KEYWORD1 」：１／（１＋０＋２）＝１／３
「*KEYWORD3 」：２／（１＋０＋２）＝２／３
である。
【００８４】
同様にして「KEYWORD2 」の優先度に関する値
＝「USER3 」についての｛「出現頻度」＊０．５＋「対応回数」の割合＊０．２５
＋「契約ライセンス数」の割合＊０．２５｝
＝｛（１／６）＊０．５＋（０）＊０．２５＋（２／４）＊０．２５｝
＝｛０．０８３３＋０＋０．１２５｝
＝０．２０８３
【００８５】
同様にして「KEYWORD3 」の優先度に関する値
＝「USER1 」についての｛「出現頻度」＊０．５＋「対応回数」の割合＊０．２５
＋「契約ライセンス数」の割合＊０．２５｝
＋「USER3 」についての｛「出現頻度」＊０．５＋「対応回数」の割合＊０．２５
＋「契約ライセンス数」の割合＊０．２５｝
＝｛（２／３）＊０．５＋（１／６）＊０．２５＋（１／４）＊０．２５｝
＋｛（５／６）＊０．５＋（０）＊０．２５＋（２／４）＊０．２５｝
＝
＝｛「出現頻度」＊０．５＋「対応回数」の割合＊０．２５
＋「契約ライセンス数」の割合＊０．２５｝
＝｛（５／６）＊０．５＋（０）＊０．２５＋（２／４）＊０．２５｝
＝｛０．４３７４３＋０．５４１６７｝
＝０．９７９１
【００８６】
図７のフローチャートに示した処理手順で算出した場合、「KEYWORD3 」よりも「KEYWORD1 」の優先度が高く評価される。
【００８７】
（変形例２）
上述した例では、対象期間におけるメール又は問い合わせ、対応履歴を用いて優先度を算出する方法としたが以下では他の対象期間の履歴も用いて算出する。図８は、変形例２における優先度の算出方法を示すフローチャートである。図８のフローチャートに示す処理手順の内、実施の形態１における図５のフローチャートに示した処理と同様の処理については同一のステップ番号を付して詳細な説明を省略する。
【００８８】
制御部１０は、ステップＳ４０１−Ｓ４１０までの処理を実行すると、その時点ｔにおける優先度を示す値として記憶部１１に時間情報と対応付けて記憶する（ステップＳ４１１）。制御部１０は、記憶部１１に記憶してある前回までに算出した予約語毎の優先度を示す値を読み出す（ステップＳ４１２）。
【００８９】
制御部１０は、ステップＳ４１１で記憶した優先度を示す値と、ステップＳ４１２で読み出した前回までに算出された優先度を示す値とを用い、割引率ηを乗じて過去の値を鑑みた優先度を示す値を算出する（ステップＳ４１３）。制御部１０は、ステップＳ４１３で算出した値を用いて、図３のフローチャートにおけるステップＳ５へ処理を戻す。
【００９０】
時点ｔにおける優先度を示す値をＷt とすれば、ステップＳ４１３にて算出される優先度を示す値Ｍは、以下のような割引総和報酬で算出される。
Ｍ＝Ｗt ＋ηＷt-1 ＋η2 Ｗt-2 ＋…＋ηk Ｗt-k ＋…
なお、Ｗt-k は、ｋ回前に算出した優先度を示す値Ｗである。
【００９１】
これにより、過去における評価を反映させた予約語に対する優先度を算出することが可能となり、より効率的にテストケースを選定することが可能になる。
【００９２】
（変形例３）
本実施の形態のテスト支援装置１は基本的に、予約語については問い合わせ、メール等に含まれる頻度に基づいて優先度を算出する。しかしながら高頻度に予約語が含まれていても、問い合わせ、メール内におけるその予約語の使用のされ方が異なる。例えば文脈によっては肯定的（サポートサービスへのお礼）、又は否定的（不具合の報告）であるなどの差異があるはずである。実施の形態３では、予約語の出現頻度に対し、予約語に対する文脈に基づく重みを反映させる。
【００９３】
文脈に基づく重みは、記憶装置３に記憶してあるメールデータ及び問い合わせデータについて、それらに含まれる予約語に対する自然言語処理の学習モデルを作成しておく。作成した学習モデルは記憶装置３に記憶しておき、新たに対象期間が到来した場合、対象期間中の新たなメールデータ及び問い合わせデータを学習モデルに与えて導出する。
【００９４】
図９は、学習モデル３Ｌの内容例を示す図である。学習モデル３Ｌは、メールデータ又は問い合わせデータであるテキストデータを入力する入力層３０１と、テキストデータに含まれる予約語と該予約語に対する文脈に基づく重要度とのセットを出力する出力層３０２と、中間層３０３とを含む。中間層３０３は、入力されるテキストデータに含まれる予約語に対して、肯定的な内容であるか、否定的であるか又は中間的であるかが与えられた教師データ（データセット）により学習済みである。出力層３０２は、予約語ではなく重要度のみを出力するものであってもよい。図９に示すように、出力層３０２のノードは各予約語に対応し、予約語に対する重みが重要度に対応する。
【００９５】
図１０は、変形例３における優先度の算出方法を示すフローチャートである。図１０のフローチャートに示す処理手順の内、図７のフローチャートに示す処理手順と共通する手順については同一のステップ番号を付して詳細な説明を省略する。
【００９６】
制御部１０は、ステップＳ４２１で選択したユーザ識別情報について、該ユーザからのメール又は問い合わせのテキストデータを記憶装置３から順次読み出し（ステップＳ４４１）、学習モデル３Ｌの入力層３０１へ与える（ステップＳ４４２）。制御部１０は、学習モデル３Ｌの出力層３０２から出力される予約語と、該予約語に対する重要度とのセットを一時記憶する（ステップＳ４４３）。選択ユーザからの対象期間におけるメール又は問い合わせについてステップＳ４４２，Ｓ４４３の処理を実行し、これにより、選択したユーザ識別情報のユーザからのメール又は問い合わせに含まれる予約語が抽出される。
【００９７】
制御部１０は、抽出された予約語夫々について、各メール又は問い合わせについて学習モデル３Ｌによって出力された重要度を用い、重要度の累積、平均等に基づく優先度を示す値を算出する（ステップＳ４４４）。
【００９８】
制御部１０はその後、選択したユーザの「契約ライセンス数」の読み出し（Ｓ４２４）、「対応回数」の記憶装置３からの読み出し（Ｓ４２５）等を実施し、これらの情報から選択したユーザの重要度を算出して記憶する（ステップＳ４４５）。
【００９９】
制御部１０は、選択した予約語毎に、これを使用したユーザを特定し（Ｓ４３０）、特定したユーザ毎の該予約語に対してステップＳ４４４にて算出された優先度を示す値を積算するようにして総合評価値を算出する（ステップＳ４４６）。ステップＳ４４６において制御部１０は、総合評価値を積算する際に、ユーザ毎に算出されている優先度に、そのユーザの重要度の重みを付与する。
【０１００】
このように、予約語の使われ方（文脈）によって重要度、深刻度が異なる場合であっても、これらの情報を反映させて適切に優先すべきテストケースを選定することが可能である。
【０１０１】
上述した本実施の形態では、解析プログラム１Ｐに含まれる物理現象解析用エンジンに対して設定されている予約語（キーワード）を用いてテストケースを選定した。しかしながら、本実施の形態に示したテスト選定支援プログラム１００Ｐの対象プログラムは、物理現象解析用の解析プログラム１Ｐに限らない。テスト選定支援プログラム１００Ｐは、優先して実行すべきテストに関する予約語に対して優先順位を決定するので、決定された優先順位をどのように用いてテストケース（対応する入力ファイルＩＦ）を抽出すべきかは設計によって、変更が可能である。
【符号の説明】
【０１０２】
１  テスト支援装置
１０  制御部
１Ｐ  解析プログラム
１００Ｐ  テスト選定支援プログラム
３  記憶装置
３Ｌ  学習モデル
【図１】
2020087106.tif 000003
【図２】
2020087106.tif 000004
【図３】
2020087106.tif 000005
【図４】
2020087106.tif 000006
【図５】
2020087106.tif 000007
【図６】
2020087106.tif 000008
【図７】
2020087106.tif 000009
【図８】
2020087106.tif 000010
【図９】
2020087106.tif 000011
【図１０】
2020087106.tif 000012