(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023039273
(43)【公開日】2023-03-20
(54)【発明の名称】テスト支援装置及びテスト支援方法
(51)【国際特許分類】
G06F 11/36 20060101AFI20230313BHJP
【FI】
G06F11/36 184
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2021146364
(22)【出願日】2021-09-08
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】中沢 隆紀
(72)【発明者】
【氏名】西 佑介
(72)【発明者】
【氏名】受田 賢知
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042HH17
5B042MA08
5B042MA14
5B042MC39
(57)【要約】
【課題】ユーザシステムが複数のリソースで構成される場合でも、ユーザシステムのテストを行うためのテストケースの選定に係る負担を軽減すること。
【解決手段】記憶部102は、複数のユーザシステムの構成に関する複数の登録構成データのそれぞれを、当該登録構成データに対応するユーザシステムのテストを実施した際のテストケースと紐づけて記憶する。類似度計算部106は、テスト対象のユーザシステムである対象システムの構成に関する入力構成データと複数の登録構成データのそれぞれとの類似度であるデータ類似度を計算する。抽出部(スコア計算部107及びテストケース抽出部108)は、各データ類似度に基づいて、前記記憶部から前記対象システムのテストを実施する際のテストケースの候補である候補テストケースを抽出する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数のユーザシステムの構成に関する複数の登録構成データのそれぞれを、当該登録構成データに対応するユーザシステムのテストを実施した際のテストケースと紐づけて記憶する記憶部と、
テスト対象のユーザシステムである対象システムの構成に関する入力構成データと前記複数の登録構成データのそれぞれとの類似度であるデータ類似度を計算する類似度計算部と、
各データ類似度に基づいて、前記記憶部から前記対象システムのテストを実施する際のテストケースの候補である候補テストケースを抽出する抽出部と、
前記候補テストケースを出力する出力部と、を有するテスト支援装置。
【請求項2】
前記類似度計算部は、前記入力構成データの項目ごとに、当該項目の項目値と、前記登録構成データにおける当該項目と同じ項目の項目値との類似度である項目類似度を、前記データ類似度として計算する、請求項1に記載のテスト支援装置。
【請求項3】
前記抽出部は、
前記登録構成データに紐づけられたテストケースごとに、当該登録構成データと前記入力構成データとの各項目類似度の重み付け和であるスコアを計算するスコア計算部と、
前記スコアに基づいて、前記候補テストケースを抽出するテストケース抽出部と、を有する、請求項2に記載のテスト支援装置。
【請求項4】
前記テストケース抽出部は、前記スコアが閾値以上のテストケースを前記候補テストケースとして抽出する、請求項3に記載のテスト支援装置。
【請求項5】
前記閾値は、前記テストケースごとに設定される、請求項4に記載のテスト支援装置。
【請求項6】
前記出力された候補テストケースのいずれかを選択した選択結果を受け付ける入力部と、
前記選択結果に基づいて、前記重み付け和の各重み付け値及び前記閾値の少なくとも一方を更新する更新部と、をさらに有する請求項4に記載のテスト支援装置。
【請求項7】
前記登録構成データの項目のうち、前記入力構成データの項目の項目値との項目類似度が所定値以上の項目である共通要素を抽出する共通要素抽出部をさらに有し、
前記出力部は、前記共通要素をさらに出力する、請求項1に記載のテスト支援装置。
【請求項8】
前記抽出部は、所定の指定項目を含まない前記登録構成データと紐づけられたテストケースを前記候補テストケースから外す、請求項1に記載のテスト支援装置。
【請求項9】
テスト支援装置によるテスト支援方法であって、
複数のユーザシステムの構成に関する複数の登録構成データのそれぞれを、当該登録構成データに対応するユーザシステムのテストを実施した際のテストケースと紐づけて記憶し、
テスト対象のユーザシステムである対象システムの構成に関する入力構成データと前記複数の登録構成データのそれぞれとの類似度であるデータ類似度を計算し、
各データ類似度に基づいて、前記対象システムのテストを実施する際のテストケースの候補である候補テストケースを抽出し、
前記候補テストケースを出力する、テスト支援方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、テスト支援装置及びテスト支援方法に関する。
【背景技術】
【0002】
近年、サーバのメンテナンス性能の向上及び実行環境の可搬性向上のような計算機の効率化のために、IT(Information Technology)リソースの仮想化が進んでいる。ITリソースを仮想化する技術には、物理サーバを論理的に分割することで複数のサーバとして機能させる仮想サーバ、及び、サーバで動作するOS(Operating System)をプロセス単位に論理分割して1つのサーバのとして機能させるコンテナなどがある。また、仮想化したITリソースを効率的に管理したり運用したりするためのオーケストレーションツールが開発されている。また、これに伴い、オーケストレーションツールを有効的に使用する技術として、ソースコードによりITリソース及びサービスなどを管理し、アプリケーションが動作するユーザシステムを構築して運用することを可能とするIaC(Infrastructure as Code)が注目されている。
【0003】
オーケストレーションツールは、ITリソースにて構成されるユーザシステムを、そのシステム構成をコードで記述したシステム構成データを用いて管理している。システム構成データにより管理されるITリソースは、アプリケーションプログラムのソースコード、コンテナイメージ、アプリケーションプログラム、ライブラリ及びバイナリなど、多岐に渡り、近年では、大規模化の傾向にある。
【0004】
また、通常、ユーザシステムが不具合なく動作することを確認するために、ユーザシステムが本番環境で構築される前に、開発環境においてITリソースのユニットテストが実施される。ユニットテストでは、例えば、ソースコードのバリデーションチェック、ソースコードの機能チェック、コンテナイメージの脆弱性チェックなどが行われる。一方、ユーザビリティ及び障害許容性などの検証については、開発環境では十分に行うことができないため、ユニットテストでは実施せず、ステージング環境などにおけるシステムテストの段階で実施される。なお、ユニットテストは、CI(Continuous Integration)ツールで自動化することで、ユーザの負担削減を図ることが多い。CIツールによるユニットテストに合格したシステム構成データは、CD(Continuous Delivery)ツールによってステージング環境にデプロイされ、システムテストが実施される。
【0005】
システムテストにおいて検証されるユーザビリティ及び障害許容性については、ユーザシステムが複数のリソースの組み合わせで構成されているため、従来型の網羅的なテストでの検証が困難となりつつある。このため、探索的テストが用いられることが多い。しかしながら、探索的テストは、ユーザシステムの現在の状態及びユーザの経験などに基づいて、テストケースを選択する必要がある。
【0006】
また、オーケストレーションツールによるユーザシステムの構築においては、オーケストレーションツールのバージョンアップ及びアプリケーションの機能改修などに伴い、システム構成データなどを変更する必要がある。例えば、オーケストレーションツールのバージョンアップの際には、コミュニティ又はクラウドベンダの指示に従って、システム構成データを変更する必要がある。システム構成データを変更した場合、変更点に依存するプログラムが正常に動作しなくなったり、OS及びミドルウェアとの相性が悪くなり性能が低下したりするなど、ユーザシステムが影響を受ける可能性があるため、ユニットテスト及びシステムテストを再び実施する必要がある。また、オーケストレーションツールが管理するユーザシステムは複数のリソースにて構成されているため、1つのリソースが更新されたことにより、他のリソース及びシステム全体に、更新の影響による問題が生じていないかをテストする必要もある。しなしながら、少数のリソースが変更されるたびに、全てのテストケースを用いたテストを実施すると、ユーザの工数が増大してしまうため、効率が悪い。
【0007】
このため、実施すべきテストケースをユーザに提案することが考えられている。例えば、ソースコードのある箇所を変更した場合、変更内容に依存しない箇所に対するテストは実施する必要がないため、ソースコード変更内容に応じたテストケースをユーザに提案することで、テストを効率的に実施することが可能となる。しかしながら、ソースコードのある箇所の変更によって影響が生じる他の箇所を正確に把握するためには、ソースコード内の依存関係を正確に把握する必要があるため、実施すべきテストケースを選定する負担が大きい。
【0008】
これに対して、特許文献1には、このソフトウェアテストシステムは、ソフトウェアのソースコードの変更点とその影響範囲を特定し、その範囲に限定してテストケースを生成するソフトウェアテストシステムが開示されている。このため、ソースコードの変更に伴うテストのテストケースを選定する負担を軽減することが可能になる。
【先行技術文献】
【特許文献】
【0009】
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、オーケストレーションツールが管理するユーザシステムは、複数のリソースで構成されているため、ソースコードの依存関係から複数のリソースに渡る影響範囲を特定することが困難である。また、ソースコードの整合性は担保されているが、リソース間の相性によっては、動作不良又は性能低下が発生する場合もある。このような場合には、ソフトウェアのソースコードの変更点からその影響範囲を特定することが困難であるため、特許文献1に記載の技術では、テストケースの選定に係る負担を軽減することが難しい。
【0011】
本発明の目的は、ユーザシステムが複数のリソースで構成される場合でも、ユーザシステムのテストを行うためのテストケースの選定に係る負担を軽減することが可能なテスト支援装置及びテスト支援方法を提供することである。
【課題を解決するための手段】
【0012】
本開示の一態様に従うテスト支援装置は、複数のユーザシステムの構成に関する複数の登録構成データのそれぞれを、当該登録構成データに対応するユーザシステムのテストを実施した際のテストケースと紐づけて記憶する記憶部と、テスト対象のユーザシステムである対象システムの構成に関する入力構成データと前記複数の登録構成データのそれぞれとの類似度であるデータ類似度を計算する類似度計算部と、各データ類似度に基づいて、前記記憶部から前記対象システムのテストを実施する際のテストケースの候補である候補テストケースを抽出する抽出部と、前記候補テストケースを出力する出力部と、を有する。
【発明の効果】
【0013】
本発明によれば、ユーザシステムが複数のリソースで構成される場合でも、ユーザシステムのテストを行うためのテストケースの選定に係る負担を軽減することが可能になる。
【図面の簡単な説明】
【0014】
【
図1】本開示の実施例1の探索的テスト支援装置の機能的な構成を示す図である。
【
図4】類似度計算処理の一例を説明するためのフローチャートである。
【
図5】入力構成データ及び登録構成データの一例を説明するための図である。
【
図6】スコア計算処理の一例を説明するためのフローチャートである。
【
図7】テストケース抽出処理の一例を説明するためのフローチャートである。
【
図8】本開示の実施例2の探索的テスト支援装置の機能的な構成を示す図である。
【
図9】テストケース抽出処理の他の例を説明するためのフローチャートである。
【
図10】共通要素抽出処理の一例を説明するためのフローチャートである。
【
図11】テストケース候補表示画面の一例を示す図である。
【
図12】本開示の実施例3の探索的テスト支援装置の機能的な構成を示す図である。
【
図13】テストケース抽出処理の他の例を説明するためのフローチャートである。
【
図14】フィルタリング処理の一例を説明するための図である。
【
図16】探索的テスト支援装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0015】
以下、図面を用いて実施例を説明する。なお、下記はあくまでも実施の例に過ぎず、下記具体的内容に発明自体が限定されることを意図するものではない。また、以下の説明において、同一又は類似の要素及び処理に同一の符号を付し、重複説明を省略することがある。また、後出の実施例では、既出の実施例との差異を主に説明し、重複する説明を省略することがある。また、以下の実施例の説明及び各図で示す構成及び処理は、本発明の理解及び実施に必要な程度で実施例の概要を示すものであり、本発明に係る実施の態様を限定することを意図する趣旨ではない。また、各実施例及び各変形例は、本発明の趣旨を逸脱せず、互いに整合する範囲内で、一部又は全部を組合せることができる。
【実施例0016】
図1は、本開示の実施例1の探索的テスト支援装置の機能的な構成を示す図である。
図1に示す探索的テスト支援装置100は、オーケストレーションツールが管理する複数のリソースで構成されるユーザシステムのテストを実施する際のテストケースの候補である候補テストケースを選定することで、ユーザが候補テストケースからテストで実際に実施するテストケースを選択できるようにするためのテスト支援装置である。ユーザシステムのテストは、本実施例では、探索的テストである。
【0017】
図1に示すように探索的テスト支援装置100は、ユーザ端末111及びCIツール112と通信可能に接続される。ユーザ端末111は、CDツール114及び探索的テストツール116と通信可能に接続され、CIツール112は、リポジトリ113と通信可能に接続される。また、リポジトリ113は、CDツール114と通信可能に接続される。また、CDツール114及び探索的テストツール116は、アプリケーション実行環境115と通信可能に接続される。
【0018】
ユーザ端末111は、探索的テスト支援装置100を利用するユーザにて使用される端末装置である。ユーザ端末111は、例えば、ユーザからの操作に応じて、探索的テスト支援装置100による候補テストケースの選定に使用する情報を探索的テスト支援装置100に入力する。また、ユーザ端末111は、たとえば、ユーザからの操作に応じて、探索的テスト支援装置100にて選定された候補テストケースから実際のテストで使用するテストケースである実施テストケースを選択する。
【0019】
CIツール112は、継続的インテグレーションを行う。例えば、CIツール112は、テスト対象のユーザシステムの構成に関するシステム構成データをリポジトリ113から取得して探索的テスト支援装置100に入力する。リポジトリ113は、ユーザシステムを構築するための複数のシステム構成データを格納する。なお、システム構成データは、複数のファイルから構成されていてもよい。
【0020】
CDツール114は、継続的デリバリーを行う。例えば、CDツール114は、リポジトリ113からシステム構成データを取得し、そのシステム構成データに応じたユーザシステムをインスタンス化して構築する。アプリケーション実行環境115は、ユーザシステムを構築するためのハードウェアであり、例えば、システム構成データに応じて構築されたユーザシステム上でアプリケーション1151を実行する。
【0021】
探索的テストツール116は、ユーザ端末111にて選択された実施テストケースに応じた探索的テストをアプリケーション実行環境115にて実行する。
【0022】
なお、CIツール112、リポジトリ113、CDツール114、アプリケーション実行環境115及び探索的テストツール116は、コンピュータサーバなどに搭載することができ、その際、同一のコンピュータサーバなどに搭載されてもよい。
【0023】
探索的テスト支援装置100は、システム構成データ入力部101、記憶部102、ユーザ入力部103、重み付け設定部104、閾値設定部105、類似度計算部106、スコア計算部107、テストケース抽出部108、テストケース出力部109及び記憶データ更新部110を含む。
【0024】
システム構成データ入力部101は、テスト対象のユーザシステムである対象システムの構成に関するシステム構成データを入力構成データとして受け付ける入力部である。また、システム構成データ入力部101は、入力構成データを規定のデータフォーマットに変換する。本実施例では、後述するように入力構成データは記憶部102が格納するシステム構成データである登録構成データと比較されるため、システム構成データ入力部101は、この比較が可能なように、入力構成データを登録構成データと同じデータフォーマットに変換する。
【0025】
なお、システム構成データは、ユーザの操作に応じてユーザ端末111からシステム構成データ入力部101に入力されてもよいし、CIツール112にてリポジトリ113から取得されてシステム構成データ入力部101に入力されてもよい。
【0026】
記憶部102は、種々の情報を記憶する。具体的には、記憶部102は、システム構成データ記憶部1021、テストケース記憶部1022及び紐づけ情報記憶部1023を含む。
【0027】
システム構成データ記憶部1021は、システム構成データ入力部101に入力されるシステム構成データと比較するためのシステム構成データである登録構成データを記憶する。登録構成データは、例えば、過去にテストが実施されたユーザシステムに関するシステム構成データであり、ユーザにて事前に登録される。また、探索的テスト支援装置100の運用時には、登録構成データは、記憶データ更新部110にて追加又は更新されてもよい。
【0028】
図2は、登録構成データの一例を示す図である。
図2では、登録構成データとして、複数のシステム構成定義ファイル群200A~200Cが示されている。以下では、各システム構成定義ファイル群200A~200Cを区別する必要がない場合、システム構成定義ファイル群200A~200Cをまとめてシステム構成定義ファイル群200と呼ぶこともある。
【0029】
システム構成定義ファイル群200は、ユーザシステムを構成するリソースを定義するためのファイル群である。リソースとしては、アプリケーション、ネットワーク及びデータベースなどが挙げられる。システム構成定義ファイル群200に含まれる各ファイルであるシステム構成定義ファイル201は、ユーザシステムの構成を定義する1つ又は複数の項目を有する。項目は、リソースをアプリケーション実行環境115上で動作させるのに必要な情報を示す。例えば、項目は、例えば、リソースの名称、バージョン情報、機能情報及び保存方法や、使用するポート番号などである。例えば、項目がAPI(Application Programming Interface)のバージョン情報の場合、項目値として、ユーザシステムで使用する実際のAPIのバージョン情報が格納される。
【0030】
なお、オーケストレーションツールの利用者は、システム構成データの各項目に必要な内容を記載することで、アプリケーション実行環境115でユーザシステムをインスタンス化し、実行することが可能になる。このため、同様な構成を有するユーザシステムのシステム構成データは、互いに近似するという特徴がある。
【0031】
図1の説明に戻る。テストケース記憶部1022は、ユーザシステムに対して実施されるテストの内容を規定するテストケース10221を複数記憶する。テストケース10221は、例えば、テストを実施するスクリプト、テストを行うための前提条件及び操作手順、テスト結果の確認方法などを規定する。実際に実施するテストのテストケースは、例えば、システム構成データの項目などに応じて定まる。
【0032】
紐づけ情報記憶部1023は、登録構成データのそれぞれを、その登録構成データに対応するユーザシステムの探索的テストを実施した際のテストケース10221と紐づけた紐づけ情報を記憶する。
【0033】
図3は、紐づけ情報の一例を示す図である。
図3に示す紐づけ情報300は、テストケースフィールド301と、システム構成データフィールド302と、重み付け値フィールド303と、閾値フィールド304とを含む。
【0034】
テストケースフィールド301は、テストケース10221を識別するテストケース名を格納する。システム構成データフィールド302は、テストケースフィールド301のテストケース名のテストケース10221に紐づけられた登録構成データを識別する構成データ名を格納する。重み付け値フィールド303は、システム構成データフィールド302の構成データ名の登録構成データに含まれる各項目に対応する重み付け値を格納する。閾値フィールド304は、システム構成データフィールド302の構成データ名の登録構成データに対応する閾値を格納する。
【0035】
重み付け値及び閾値は、後述するように、テストケース記憶部1022に記憶されたテストケース10221から、システム構成データ入力部101が受け付けた入力構成データによるユーザシステムの探索的テストを実施するテストケースの候補である候補テストケースを選定するために使用される。
【0036】
ユーザ入力部103は、ユーザ端末111から、紐づけ情報記憶部1023に設定する重み付け値及び閾値を受け付ける。また、ユーザ入力部103は、ユーザ端末111から、候補テストケースから実施テストケースを選択した選択結果を受け付ける。
【0037】
重み付け設定部104は、ユーザ入力部103が受け付けた重み付け値を紐づけ情報記憶部1023の紐づけ情報に設定する。閾値設定部105は、ユーザ入力部103が受け付けた閾値を紐づけ情報記憶部1023の紐づけ情報に設定する。
【0038】
類似度計算部106は、システム構成データ入力部101が受け付けた入力構成データと、システム構成データ記憶部1021が記憶する各登録構成データを比較して、入力構成データと各登録構成データとの類似度であるデータ類似度を算出する。具体的には、類似度計算部106は、入力構成データの項目ごとに、入力構成データの項目値と各登録構成データの項目値とを比較し、各項目の項目値の類似度である項目類似度を、入力構成データと各登録構成データのデータ類似度として算出する。
【0039】
本実施例では、項目値は文字列であり、項目類似度は、項目値である文字列間の類似度を表す文字列距離である。文字列距離は、例えば、ゲシュタルトパターンマッチング、レーベンシュタイン距離法又はジャロ・ウィンクラー距離法などを用いて算出することができる。また、類似度は、各項目値が完全に一致した場合に所定値(例えば、100%)となるように規格化されてもよい。
【0040】
スコア計算部107及びテストケース抽出部108は、類似度計算部106にて計算された構成類似度(各項目の項目類似度)に基づいて、テストケース記憶部1022に記憶された複数のテストケース10221から候補テストケースを抽出する抽出部を構成する。
【0041】
具体的には、スコア計算部107は、紐づけ情報記憶部1023が記憶する紐づけ情報における各テストケース10221に紐づけられた各項目の重み付け値と、類似度計算部106が算出した項目ごとの項目類似度とに基づいて、各テストケース10221のスコアを算出する。具体的には、スコア計算部107は、各項目類似度の重み付け和(つまり、項目ごとに項目類似度に対して重み付け値を乗算した値の総和)をスコアとして算出する。
【0042】
テストケース抽出部108は、スコア計算部107によって算出された各テストケース10221のスコアと、紐づけ情報記憶部1023が記憶する紐づけ情報における各テストケース10221の閾値とを比較して、テストケース10221から候補テストケースを選定する。具体的には、テストケース抽出部108は、スコアが閾値以上のテストケース10221を抽出して候補テストケースとして選定する。
【0043】
したがって、本実施例では、重み付け値が大きいほど、テストケース10221が候補テストケースとして選定しやすくなる。また、テストケース10221のスコアは、テストケース10221が候補テストケースとして選定しやすさを表現する数値となり、大きいほど、テストケース10221が候補テストケースとして選定しやすくなる。閾値は、候補テストケースを選択するための基準となる数値である。閾値が高いほど、スコアが高いテストケース10221だけが候補テストケースとして選定される、つまり、テストケース10221に紐づけられたシステム構成データの項目が入力構成データの項目と強く類似する場合、テストケース10221が候補テストケースとして選択されることとなる。反対に、閾値が低いほど、スコアが比較的低いテストケースも候補テストケースとして選定される、つまり、テストケース10221に紐づけられたシステム構成データの項目が入力構成データの項目と比較的に弱い類似でも、テストケース10221が候補テストケースとして選択されることとなる。
【0044】
テストケース出力部109は、テストケース抽出部108にて選定された候補テストケースをユーザ端末111に出力する。なお、ユーザ端末111は、候補テストケースを表示し、その候補テストケースのいずれかが実施テストケースとして選択されると、その実施テストケースを探索的テストツール116に通知して探索的テストを実施させる。また、ユーザ端末111は、その選択結果を探索的テスト支援装置100のシステム構成データ入力部101に入力する。
【0045】
記憶データ更新部110は、システム構成データ入力部101が受け付けた選択結果に基づいて、紐づけ情報記憶部1023の紐づけ情報に含まれる重み付け値及び閾値の少なくとも一方を更新する更新部である。
【0046】
図4は、類似度計算部106による入力構成データと登録構成データとの類似度を算出する類似度計算処理の一例を説明するためのフローチャートである。
図5は、入力構成データ及び登録構成データの一例を説明するための図である。
【0047】
類似度計算処理では、先ず、ユーザ入力部103は、CIツール112から入力されたシステム構成データを入力構成データとして受け付ける(ステップS401)。例えば、ユーザ入力部103は、システム構成データ501(システム構成定義ファイル群X)を入力構成データとして受け付ける。システム構成データ501は、システム構成定義ファイル502(システム構成定義ファイルX-1)及びシステム構成定義ファイル503(システム構成定義ファイル群X-2)を含む。
【0048】
続いて、類似度計算部106は、ユーザ入力部103が受け付けた入力構成データに含まれるシステム構成定義ファイルのいずれかを評価構成定義ファイルとして取得する(ステップS402)。ここでは、類似度計算部106は、入力構成データとして最初に入力されたシステム構成定義ファイルを評価構成定義ファイルとして取得する。例えば、類似度計算部106は、
図5に示すシステム構成定義ファイル502を評価構成定義ファイルとして取得する。
【0049】
類似度計算部106は、システム構成データ記憶部1021から登録構成データのいずれかを比較対象構成データとして取得する(ステップS403)。ここでは、類似度計算部106は、最も古い登録構成データを比較対象構成データとして取得する。例えば、類似度計算部106は、
図5に示す登録構成データ511~541のうち、登録構成データ511(システム構成定義ファイル群A)を比較対象構成データとして取得する。なお、本実施例において「最も古い」とは、ファイルに付与された所定の種類のタイムスタンプ(例えば、更新日時など)の日時が最も古いことを示す。
【0050】
類似度計算部106は、比較対象構成データに含まれるシステム構成定義ファイルのいずれかを比較対象定義ファイルとして取得する(ステップS404)。ここでは、類似度計算部106は、最も古いシステム構成定義ファイルを比較対象定義ファイルとして取得する。例えば、類似度計算部106は、
図5に示すシステム構成定義ファイル512を比較対象定義ファイルとして取得する。
【0051】
類似度計算部106は、評価構成定義ファイルに含まれる項目のいずれかを評価項目として取得する(ステップS405)。ここでは、類似度計算部106は、評価構成定義ファイルの最初に記述された項目を評価項目として取得する。例えば、類似度計算部106は、
図5に示す項目1を評価項目として取得する。
【0052】
類似度計算部106は、評価項目の項目値と比較対象定義ファイルに含まれる項目のうち評価項目と同じ項目である同一項目の項目値とを比較して、評価項目と同一項目との類似度を計算する(ステップS406)。例えば、類似度計算部106は、
図5の場合、評価項目であるシステム構成定義ファイル502の項目1の項目値X1-1と、比較対象定義ファイルであるシステム構成定義ファイル512の項目1の項目値A1-1とを比較する。なお、評価項目と同じ項目である同一項目が比較対象定義ファイルに存在しない場合、類似度計算部106は、ステップS406の処理をスキップして、評価項目を類似度の計算対象から外す。
【0053】
類似度計算部106は、評価構成定義ファイルに評価項目として取得していない項目が存在するか否かを判定する(ステップS407)。
【0054】
取得ていない項目が存在する場合(ステップS407:Yes)、類似度計算部106は、評価構成定義ファイルに含まれる項目のうち、まだ取得していない項目を評価項目として取得し(ステップS408)、ステップS406の処理に戻る。ここでは、類似度計算部106は、まだ取得していない項目のうち最初に記述された項目及び項目値を取得する。
【0055】
取得していない項目が存在しない場合(ステップS407:No)、類似度計算部106は、比較対象構成データに比較対象定義ファイルとして取得していないシステム構成定義ファイルが存在するか否かを判定する(ステップS409)。
【0056】
取得していない比較対象定義ファイルが存在する場合(ステップS409:Yes)、類似度計算部106は、比較対象構成データに含まれるシステム構成定義ファイルのうち、まだ取得していないシステム構成定義ファイルのいずれかを比較対象定義ファイルとして取得し(ステップS410)、ステップS405の処理に戻る。ここでは、類似度計算部106は、まだ取得していないシステム構成定義ファイルのうち、最も古いシステム構成定義ファイルを比較対象定義ファイルとして取得する。
【0057】
取得していない比較対象定義ファイルが存在しない場合(ステップS409:No)、類似度計算部106は、システム構成データ記憶部1021に比較対象構成データとして取得していない登録構成データが存在するか否かを判定する(ステップS411)。
【0058】
取得していない登録構成データが存在する場合(ステップS411:Yes)、類似度計算部106は、システム構成データ記憶部1021に記憶された登録構成データのうち、まだ取得されていない登録構成データのいずれかを比較対象構成データとして取得し(ステップS412)、ステップS404の処理に戻る。ここでは、類似度計算部106は、まだ取得していない登録構成データのうち、最も古い登録構成データを比較対象構成データとして取得する。
【0059】
取得していない登録構成データが存在しない場合(ステップS411:No)、類似度計算部106は、入力構成データに評価構成定義ファイルとして取得されていないシステム構成定義ファイルが存在するか否かを判定する(ステップS412)。
【0060】
取得していないシステム構成定義ファイルが存在する場合(ステップS412:Yes)、類似度計算部106は、入力構成データに含まれるシステム構成定義ファイルのうち、まだ取得していないシステム構成定義ファイルのいずれかを評価構成定義ファイルとして取得し(ステップS413)、ステップS403の処理に戻る。
【0061】
取得していないシステム構成定義ファイルが存在しない場合(ステップS412:No)、類似度計算部106は、類似度計算処理を終了する。
【0062】
図6は、スコア計算部107によるテストケース10221のスコアを算出するスコア計算処理の一例を説明するためのフローチャートである。スコア計算処理は、
図4及び
図5を用いて説明した類似度計算処理の終了を契機に実行される。
【0063】
スコア計算処理では、先ず、スコア計算部107は、テストケース記憶部1022からテストケース10221のいずれかを取得する(ステップS601)。スコア計算部107は、紐づけ情報記憶部1023の紐づけ情報を参照して、取得したテストケース10221に紐づけられた登録構成データ(システム構成定義ファイル群)内のシステム構成定義ファイルに含まれる項目のいずれかを対象項目として取得する(ステップS602)。
【0064】
スコア計算部107は、紐づけ情報記憶部1023の紐づけ情報から対象項目に対応する重み付け値を取得する(ステップS603)。例えば、ステップS602において
図3に示した項目1が対象項目として取得された場合、スコア計算部107は、項目1に対応する重み付け値W
A1を取得する。
【0065】
スコア計算部107は、類似度計算部106にて算出された対象項目に対応する項目類似度(入力構成データの項目のうち対象項目と同じ項目と対象項目との項目類似度)に対して、取得した重み付け値を乗算する(ステップS604)。
【0066】
スコア計算部107は、取得したテストケース10221に紐づけられた登録構成データ内のシステム構成定義ファイルに対象項目として取得していない項目が存在するか否かを判定する(ステップS605)。
【0067】
取得していない項目が存在する場合(ステップS605:Yes)、スコア計算部107は、取得したテストケース10221に紐づけられた登録構成データ内のシステム構成定義ファイルに含まれる項目のうち、まだ取得していない項目のいずれかを対象項目として取得し(ステップS606)、ステップS603の処理に戻る。
【0068】
取得していない項目が存在しない場合(ステップS605:No)、スコア計算部107は、重み付け値を乗算した各項目類似度の総和を、取得したテストケース10221のスコアとして計算して保持する(ステップS607)。例えば、
図3に示すテストケースAのスコアは、項目1の項目類似度をD
A1、項目2の項目類似度をD
A2とすると、D
A1×W
A1+D
A2×W
A2となる。
【0069】
スコア計算部107は、テストケース記憶部1022に取得していないテストケース10221が存在するか否かを判定する(ステップS608)。
【0070】
取得していないテストケース10221が存在する場合(ステップS608:Yes)、スコア計算部107は、テストケース記憶部1022に記憶されたテストケース10221のうち、まだ取得していないテストケース10221のいずれかを取得して(ステップS609)、ステップS602の処理に戻る。
【0071】
取得していないテストケース10221が存在しない場合(ステップS608:No)、スコア計算部107は、スコア算出処理を終了する。
【0072】
図7は、テストケース抽出部108などによる候補テストケースを選定するテストケース抽出処理の一例を説明するためのフローチャートである。テストケース抽出処理は、
図6を用いて説明したスコア計算処理の終了を契機に実行される。
【0073】
テストケース抽出処理では、先ず、テストケース抽出部108は、テストケース記憶部1022からテストケース10221のいずれかを取得する(ステップS701)。ここでは、テストケース抽出部108は、テストケース記憶部1022から最も古いテストケース10221を取得する。例えば、テストケース抽出部108は、
図4のテストケースAに対応するテストケース10221を取得する。
【0074】
テストケース抽出部108は、スコア計算部107がS607で算出したスコアのうち、取得したテストケース10221のスコアを取得する(ステップS702)。以下では、取得したスコアをSAと記載することもある。
【0075】
テストケース抽出部108は、紐づけ情報記憶部1023の紐づけ情報から、取得したテストケース10221に対応する閾値を取得する(ステップS703)。例えば、テストケース抽出部108は、テストケースAに紐づけられた閾値TAを取得する。
【0076】
テストケース抽出部108は、取得したテストケース10221のスコアが閾値以上(例えば、SA≧TA)か否かを判定する(ステップS704)。
【0077】
スコアが閾値以上の場合(ステップS704:Yes)、テストケース抽出部108は、取得したテストケース10221を有効化する(ステップS705)。一方、スコアが閾値未満の場合(ステップS704:No)、テストケース抽出部108は、取得したテストケース10221を無効化する(ステップS706)。なお、テストケース10221の有効化及び無効化は、例えば、有効化したテストケース10221にはフラグを立て、無効化したテストケース10221にはフラグを立てないことなどで行う。
【0078】
その後、テストケース抽出部108は、テストケース記憶部1022に取得していないテストケース10221が存在するか否かを判定する(ステップS707)。
【0079】
取得していないテストケース10221が存在する場合(ステップS707:Yes)、テストケース抽出部108は、テストケース記憶部1022に記憶されたテストケース10221のうち、まだ取得していないテストケース10221のいずれかを取得して(ステップS708)、ステップS702の処理に戻る。
【0080】
取得していないテストケース10221が存在しない場合(ステップS707:No)、テストケース抽出部108は、有効化したテストケース10221を候補テストケースとして、テストケース出力部109を介してユーザ端末111に出力する(ステップS709)。このとき、ユーザ端末111は、例えば、候補テストケースの一覧を表示する。ユーザは、候補テストケースの一覧の中から実際に探索的テストを行うための実施テストケースを選択する。そして、ユーザ端末111は、ユーザの選択結果を探索的テスト支援装置100に出力する。
【0081】
その後、ユーザ入力部103がユーザ端末111からユーザの選択結果を受け付けると、記憶データ更新部110は、その選択結果に基づいて、紐づけ情報記憶部1023の紐づけ情報の重み付け値を更新して(ステップS710)、テストケース抽出処理を終了する。
【0082】
重み付け値の更新では、記憶データ更新部110は、例えば、実施テストケースとして選択されなかった候補テストケースに紐づけられた各項目の重み付け値が適切ではなかったと判断して、その重み付け値を下げる。このとき、記憶データ更新部110は、実施テストケースとして選択された候補テストケースに紐づけられた各項目の重み値を更新しなくてもよいし、重み値をさらに高くしてもよい。また、記憶データ更新部110は、ユーザ端末111に対して各候補テストケースに紐づけられた各項目の重み付け値を更新するための画面を表示してもよい。この場合、記憶データ更新部110は、その画面に応じてユーザがユーザ端末111に入力した内容に応じて、重み付け値を更新する。なお、記憶データ更新部110は、重み付け値の代わりに、又は、重み付け値に加えて、閾値を更新してもよい。閾値の更新では、記憶データ更新部110は、例えば、実施テストケースとして選択されなかった候補テストケースに紐づけられた各項目の閾値が適切ではなかったと判断して、その閾値を上げる。
【0083】
以上説明したように本実施例によれば、記憶部102は、複数のユーザシステムの構成に関する複数の登録構成データのそれぞれを、当該登録構成データに対応するユーザシステムのテストを実施した際のテストケース10221と紐づけて記憶する。類似度計算部106は、テスト対象のユーザシステムである対象システムの構成に関する入力構成データと複数の登録構成データのそれぞれとの類似度であるデータ類似度を計算する。抽出部(スコア計算部107及びテストケース抽出部108)は、各データ類似度に基づいて、前記記憶部から前記対象システムのテストを実施する際のテストケース10221の候補である候補テストケースを抽出する。したがって、テスト対象のユーザシステムの構成のシステム構成データに有効なテストケース10221を候補テストケースとして抽出することができるので、ユーザシステムが複数のリソースで構成される場合でも、ユーザシステムのテストを行うためのテストケースの選定に係る負担を軽減することが可能になる。
【0084】
また、本実施例では、類似度計算部106は、入力構成データの項目ごとに、当該項目の項目値と、登録構成データにおける当該項目と同じ項目の項目値との類似度である項目類似度をデータ類似度として計算する。この場合、入力構成データと登録構成データとの類似度をより適切に計算することが可能となるため、候補テストケースの選定精度を高くすることが可能となる。
【0085】
また、本実施例では、スコア計算部107は、登録構成データに紐づけられたテストケースごとに、登録構成データと入力構成データとの各項目類似度の重み付け和であるスコアを計算する。テストケース抽出部108は、スコアに基づいて、候補テストケースを抽出する。このため、候補テストケースをより適切に選定することができる。
【0086】
また、本実施例では、テストケース抽出部108は、スコアが閾値以上のテストケースを候補テストケースとして抽出する。このため、候補テストケースをより適切に選定することができる。
【0087】
また、本実施例では、閾値はテストケースごとに設定されているため、候補テストケースをより適切に選定することが可能となる。
【0088】
また、本実施例では、ユーザ入力部103は、候補テストケースのいずれかを選択した選択結果を受け付ける。記憶データ更新部110は、その選択結果に基づいて、重み付け値及び閾値の少なくとも一方を更新する。このため、ユーザの選択に基づいて重み付け値及び閾値の少なくとも一方を継続的に変更することが可能となるため、候補テストケースの選定精度をより高くすることが可能となる。
実施例1では、候補テストケースを選定してユーザに提示した例を説明したが、本実施例では、候補テストケースに加えて、候補テストケースを選定した選定理由をさらに提示する例を説明する。
共通要素抽出部800は、紐づけ情報記憶部1023の紐づけ情報において、テストケース抽出部108にて有効化されたテストケース10221に対応する登録構成データの共通要素を選定理由として抽出する。共通要素は、具体的には、入力構成データの項目の項目値との項目類似度が所定値以上の項目である。本実施例では、所定値は「100%」である。つまり、共通要素は、入力構成データと項目値が同じ項目である。
先ず、ステップS701~S708の処理が行われる。また、ステップS707において取得していないテストケース10221が存在しないと判断された場合(ステップS707:No)、共通要素抽出部800は、紐づけ情報記憶部1023の紐づけ情報から、テストケース抽出部108にて有効化されたテストケース10221に対応する登録構成データの共通要素を抽出する共通要素抽出処理を行う(ステップS901)。
そして、テストケース抽出部108は、有効化したテストケース10221を候補テストケースとし、候補テストケースと共通要素とを、テストケース出力部109を介してユーザ端末111に出力する(ステップS902)。その後、ステップS710の処理が実行され、テストケース抽出処理が終了される。
2つ以上のテストケース10221が有効化されている場合(ステップS1001:Yes)、共通要素抽出部800は、有効化されたテストケース10221のいずれかを取得する(ステップS1002)。例えば、共通要素抽出部800は、有効化されたテストケース10221のうち、最も古いテストケース10221を取得する。
共通要素抽出部800は、紐づけ情報記憶部1023の紐づけ情報を参照して、取得されたテストケース10221に対応する登録構成データを取得する(ステップS1003)。共通要素抽出部800は、取得した登録構成データから項目のいずれかを取得項目として取得する(ステップS1004)。
共通要素抽出部800は、紐づけ情報記憶部1023の紐づけ情報を参照して、他のテストケース10221に対応する登録構成データに取得項目と同じ項目が存在するか否かを判定する(ステップS1005)。
同じ項目が存在する場合(ステップS1005:Yes)、共通要素抽出部800は、その同じ項目の項目値が取得項目の項目値と同じか否かを判定する(ステップS1006)。
項目値が同じ場合(ステップS1006:Yes)、共通要素抽出部800は、取得項目を共通要素として抽出する(ステップS1007)。項目が異なる場合(ステップS1006:No)、共通要素抽出部800は、ステップS1007の処理をスキップする。また、同じ項目が存在しない場合(ステップS1005:No)、共通要素抽出部800は、ステップS1006及びS1007の処理をスキップする。
取得していない項目が存在する場合(ステップS1008:Yes)、共通要素抽出部800は、取得した登録構成データのうち取得していない項目のいずれかを取得し(ステップS1009)、ステップS1005の処理に戻る。
なお、S1006の判定時に、項目類似度が100%よりも低い項目も共通要素とすることで、バージョン違いのような項目値上の文字の細かい違いを含む項目も共通要素として抽出することができる。
以上説明したように実施例によれば、候補テストケースが選定された選定理由として共通要素をユーザに提示することが可能になるため、ユーザはテストケースに関係がある要素を把握することができる。したがって、ユーザが候補テストケースから適切な実施テストケースを選択することを支援することが可能となる。