(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022092445
(43)【公開日】2022-06-22
(54)【発明の名称】プログラム、方法、情報処理装置、及びシステム
(51)【国際特許分類】
G06F 11/36 20060101AFI20220615BHJP
G06F 8/20 20180101ALI20220615BHJP
【FI】
G06F11/36 184
G06F8/20
【審査請求】有
【請求項の数】24
【出願形態】OL
(21)【出願番号】P 2020205267
(22)【出願日】2020-12-10
(11)【特許番号】
(45)【特許公報発行日】2021-06-18
(71)【出願人】
【識別番号】507179553
【氏名又は名称】株式会社SHIFT
(74)【代理人】
【識別番号】110002815
【氏名又は名称】IPTech弁理士法人
(72)【発明者】
【氏名】丹下 大
(72)【発明者】
【氏名】小林 元也
(72)【発明者】
【氏名】西本 浩平
【テーマコード(参考)】
5B042
5B376
【Fターム(参考)】
5B042HH17
5B042HH49
5B042NN10
5B376BA03
5B376BC65
(57)【要約】
【課題】テストを効率的に実施すること。
【解決手段】本開示のプログラムは、プロセッサと、メモリとを備えるコンピュータに実行させるためのプログラムである。プログラムは、プロセッサに、テスト工程において実施されたテストに関する情報を記憶するステップと、テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択するステップと、テスト工程において、選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出するステップと、抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定するステップとを実行させる。
【選択図】
図4
【特許請求の範囲】
【請求項1】
プロセッサと、メモリとを備えるコンピュータに実行させるためのプログラムであって、前記プログラムは、前記プロセッサに、
テスト工程において実施されたテストに関する情報を記憶するステップと、
前記テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択するステップと、
前記テスト工程において、前記選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出するステップと、
前記抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定するステップと
を実行させるプログラム。
【請求項2】
前記選択するステップにおいて、前記テスト実施済みのテストケースから、次に優先してテストを実施するべきテストケースを選択し、
前記抽出するステップにおいて、前記選択した次に優先してテストを実施するべきテストケースと類似するテストケースを、前記テスト未実施のテストケースから抽出し、
前記設定するステップにおいて、前記抽出したテストケースについてテストを実施する優先度を、前記設定した優先度よりも低く設定する請求項1記載のプログラム。
【請求項3】
前記抽出するステップにおいて、前記テスト実施済みのテストケースを規定する要素のいずれかが一致するテストケースを前記類似するテストケースとして、前記テスト未実施のテストケースから抽出する請求項1又は2に記載のプログラム。
【請求項4】
前記抽出するステップにおいて、前記テスト実施済みのテストケースの因子及び水準と一致する因子及び水準のテストケースを、前記類似するテストケースとする請求項3記載のプログラム。
【請求項5】
前記抽出するステップにおいて、前記テスト実施済みのテストケースと、作成の際に参照した機能仕様書が一致するテストケースを、前記類似するテストケースとする請求項3記載のプログラム。
【請求項6】
前記選択するステップにおいて、ユーザからの指示に応じ、前記優先してテストを実施するべきテストケースを選択する請求項1乃至5のいずれかに記載のプログラム。
【請求項7】
前記選択するステップにおいて、前記テストが所定数実施されると、前記優先してテストを実施するべきテストケースを選択する請求項1乃至5のいずれかに記載のプログラム。
【請求項8】
前記記憶するステップにおいて、前記テストの実施結果を記憶し、
前記選択するステップにおいて、前記実施結果に含まれる、不具合が発生する件数に係る数値に基づき、前記優先してテストを実施するべきテストケースを選択する請求項1乃至7のいずれかに記載のプログラム。
【請求項9】
前記記憶するステップにおいて、前記テスト工程におけるテストで発生した不具合を改修する工数を記憶し、
前記選択するステップにおいて、前記発生した不具合を改修する工数に係る数値に基づき、前記優先してテストを実施するべきテストケースを選択する請求項1乃至7のいずれかに記載のプログラム。
【請求項10】
前記記憶するステップにおいて、前記テスト工程におけるテストで発生した不具合の要因を記憶し、
前記選択するステップにおいて、前記発生した不具合の要因に基づき、前記優先してテストを実施するべきテストケースを選択する請求項1乃至7のいずれかに記載のプログラム。
【請求項11】
前記選択するステップにおいて、前記要因が由来するプロジェクトの工程に基づき、前記優先してテストを実施するべきテストケースを選択する請求項10記載のプログラム。
【請求項12】
前記設定した優先度をユーザへ提示するステップを、前記プロセッサに実行させる請求項1乃至11のいずれかに記載のプログラム。
【請求項13】
前記提示するステップにおいて、一式のテストケース毎、又は単一のテストケース毎に前記優先度を付して前記優先度を前記ユーザへ提示する請求項12記載のプログラム。
【請求項14】
前記抽出したテストケースのテストの結果を前記テストの実施結果から予測するステップと、
前記テスト未実施のテストケースのテストが、前記設定した優先度に従った順序で実施された際のテストの動向を予測するステップと
を前記プロセッサに実行させる請求項1乃至13のいずれかに記載のプログラム。
【請求項15】
プロセッサと、メモリとを備えるコンピュータが実行する方法であって、
テスト工程において実施されたテストに関する情報を記憶するステップと、
前記テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択するステップと、
前記テスト工程において、前記選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出するステップと、
前記抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定するステップと
を実行する方法。
【請求項16】
プロセッサと、メモリとを備える情報処理装置であって、
前記プロセッサが、
テスト工程において実施されたテストに関する情報を記憶するステップと、
前記テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択するステップと、
前記テスト工程において、前記選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出するステップと、
前記抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定するステップと
を実行する情報処理装置。
【請求項17】
テスト工程において実施されたテストに関する情報を記憶する手段と、
前記テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択する手段と、
前記テスト工程において、前記選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出する手段と、
前記抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定する手段と
を具備するシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プログラム、方法、情報処理装置、及びシステムに関する。
【背景技術】
【0002】
ソフトウェアは、その品質を担保するため、ローンチの前に機能がテストされる。ソフトウェアの機能のテストは、一般的にテスト仕様書に基づいて行なわれる。テスト仕様書には、テストの方法、又は合否を判定するための条件等がテストケース毎に記載されている。
【0003】
ソフトウェアについてのテストに関し、テスト計画を効率的に作成すること、及び精度の高いテスト計画を立てることはプロジェクトを進める上で大切である。特許文献1では、過去に行った同一又は類似のテストの実績工数に基づき、未実施のテスト項目にかかる工数を予測している。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ソフトウェア開発では、テストを実施する順序は、プロジェクトにおけるテスト工程を計画通りに進める上で重要な要素である。例えば、不具合が発生する確率の高いテストが存在する場合、それらのテストの実施が遅くなるほど、デグレーションが発生するリスクが向上する。このため、不具合が発生しそうなテストについては、テスト工程の早期段階で実施した方が、テスト工程におけるテストを効率的に進めることが可能である。
【0006】
本開示では、テストを効率的に実施することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するため、本開示のプログラムは、プロセッサと、メモリとを備えるコンピュータに実行させるためのプログラムである。プログラムは、プロセッサに、テスト工程において実施されたテストに関する情報を記憶するステップと、テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択するステップと、テスト工程において、選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出するステップと、抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定するステップとを実行させる。
【発明の効果】
【0008】
本開示によれば、テストを効率的に実施できる。
【図面の簡単な説明】
【0009】
【
図1】本実施形態のシステムの全体構成を示す図である。
【
図2】本実施形態のシステムに含まれる端末装置の構成を示すブロック図である。
【
図3】本実施形態のシステムに含まれるサーバの機能的な構成を示すブロック図である。
【
図4】サーバが記憶するテストケースDBのデータ構造を示す図である。
【
図5】テスト実施者によりテストが実施される際のシステムの動作を説明する図である。
【
図6】ディスプレイに表示されるプロジェクトリストの例を表す模式図である。
【
図7】ディスプレイに表示されるテストスイートのリストの例を表す模式図である。
【
図8】ディスプレイに表示されるテストケースデータのリストの例を表す模式図である。
【
図9】ディスプレイに表示されるチケットの入力フォームの例を表す模式図である。
【
図10】ディスプレイに表示されるチケットの内容の例を表す模式図である。
【
図11】開発者によりソフトウェアが改修され、改修されたソフトウェアがテスト実施者によりテストされる際のシステムの動作を説明する図である。
【
図12】テストスイートに設定された優先度を設定する際のサーバの動作の例を示すフローチャートである。
【
図13】分析部の動作の具体例を示すフローチャートである。
【
図14】ディスプレイに表示されるテストスイートのリストの例を表す模式図である。
【
図15】ディスプレイに表示されるテストケースデータのリストの例を表す模式図である。
【
図16】ディスプレイに表示されるテストスイートのリストの例を表す模式図である。
【
図17】ディスプレイに表示されるテストケースデータのリストの例を表す模式図である。
【
図18】テスト動向を予測する際のサーバの動作の例を示すフローチャートである。
【
図19】ディスプレイに表示される、テスト動向を表すグラフの例を表す模式図である。
【発明を実施するための形態】
【0010】
以下、図面を参照しながら、実施の形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本開示の内容を不当に限定するものではない。また、本実施形態で説明される構成の全てが、本開示の必須構成要件であるとは限らない。
【0011】
<概要>
本実施形態に係るシステム1は、所定のプロジェクトのテスト工程において、実施済みのテストケースを分析し、優先的にテストを実施するべきテストケースをテスト未実施のテストケースから抽出する。システム1は、抽出したテストケースについてのテストを優先的に実施するように、テスト実施者に提示する。そして、システム1は、テスト実施者、開発者、プロジェクト管理者等からの要求に応じ、テストの実施順序を変更したことにより予測されるテストの動向を要求元へ提示する。
【0012】
なお、本実施形態において、テストケースは、テスト設計書に基づいて設定される。テスト設計書は、検査対象が有する機能を検査するためのテストが設計されているデータである。検査対象は、検査の対象を表し、例えば、所定のプロジェクトで開発される、ハードウェア、又はソフトウェア等である。検査対象には、例えば、試作品、中間品、最終製品が含まれる。
【0013】
<1 全体構成>
図1は、本実施形態のシステム1の全体構成を示す図である。
図1に示すように、システム1は、端末装置10と、サーバ20とを備えている。端末装置10と、サーバ20とは、有線又は無線の通信規格を用い、ネットワーク80を介して相互に通信可能に接続されている。ネットワーク80は、例えば、インターネット、及び/又は通信事業者が提供する通信網等により実現される。図示の例では、複数の端末装置10がシステム1に含まれている。
【0014】
なお、
図1では、サーバ20が1台のコンピュータである場合を示しているが、サーバ20は、複数台のコンピュータが組み合わされて実現されてもよい。
【0015】
端末装置10は、サーバ20により提供されるサービスを利用するユーザが使用する端末である。例えば、端末装置10-1は、テストを実施するテスト実施者が利用する端末である。端末装置10-2は、ソフトウェアを開発する開発者が利用する端末である。なお、端末装置10-1と、端末装置10-2とが存在するが、装置自体の構造はほぼ同様であるため、以下では、端末装置10として説明する。
【0016】
端末装置10は、例えば、据え置き型のPC(Personal Computer)、ラップトップPC、ヘッドマウントディスプレイ等により実現される。また、端末装置10は、スマートフォン、又はタブレット端末等の携行性を備えたコンピュータであってもよい。
【0017】
図1に示すように、端末装置10は、通信IF(Interface)12と、入力装置13と、出力装置14と、メモリ15と、ストレージ16と、プロセッサ19とを備える。通信IF12、入力装置13、出力装置14、メモリ15、ストレージ16、及びプロセッサ19は、例えば、バスを介して互いに通信可能に接続されている。
【0018】
通信IF12は、端末装置10が外部の装置と通信するため、信号を送受信するためのインタフェースである。入力装置13は、ユーザ(従業員)からの入力操作を受け付けるための入力装置である。入力装置13は、例えば、タッチパネル、タッチパッド、マウス等のポインティングデバイス、キーボード等を含む。出力装置14は、ユーザに対し情報を提示するための出力装置である。出力装置14は、例えば、ディスプレイ、スピーカ等を含む。
【0019】
メモリ15は、プログラム、及び、プログラム等で処理されるデータ等を一時的に記憶するためのものであり、例えば、DRAM(Dynamic Random Access Memory)等の揮発性のメモリにより実現される。ストレージ16は、データを保存するための記憶装置であり、例えば、フラッシュメモリ、HDD(Hard Disc Drive)等の不揮発性のメモリにより実現される。プロセッサ19は、プログラムに記述された命令セットを実行するためのハードウェアであり、演算装置、レジスタ、周辺回路等により構成される。
【0020】
サーバ20は、テスト設計書に基づいて規定されるテストの実施状況、及び実施結果を管理する装置である。サーバ20は、例えば、ネットワーク80に接続されたコンピュータである。
【0021】
図1に示すように、サーバ20は、通信IF22と、入出力IF23と、メモリ25と、ストレージ26と、プロセッサ29とを備える。通信IF22、入出力IF23、メモリ25、ストレージ26、及びプロセッサ29は、例えば、バスを介して互いに通信可能に接続されている。
【0022】
通信IF22は、サーバ20が外部の装置と通信するため、信号を送受信するためのインタフェースである。入出力IF23は、ユーザからの入力操作を受け付けるための入力装置、及び、ユーザに対し情報を提示するための出力装置とのインタフェースとして機能する。メモリ25は、プログラム、及び、プログラム等で処理されるデータ等を一時的に記憶するためのものであり、例えばDRAM等の揮発性のメモリにより実現される。
【0023】
ストレージ26は、データを保存するための記憶装置であり、例えばフラッシュメモリ、HDD等の不揮発性のメモリにより実現される。ストレージ26は、必ずしも単独の回路により実現されなくてもよい。ストレージ26は、例えば、複数の記憶回路により実現されてもよい。プロセッサ29は、プログラムに記述された命令セットを実行するためのハードウェアであり、演算装置、レジスタ、周辺回路などにより構成される。
【0024】
<1.1 端末装置の構成>
図2は、本実施形態のシステム1に含まれる端末装置10の構成を示すブロック図である。
図2に示すように、端末装置10は、通信部121と、入力装置13と、出力装置14と、記憶部170と、制御部180とを備える。
【0025】
通信部121は、端末装置10が他の装置と通信するための処理を行う。通信部121は、制御部180で生成された信号に送信処理を施し、外部(例えば、サーバ20)へ送信する。通信部121は、外部から受信した信号に受信処理を施し、制御部180へ出力する。
【0026】
入力装置13は、端末装置10を所有するユーザが指示を入力するための装置である。入力装置13は、例えば、マウス131、キーボード132、及び、操作面へ触れることで指示が入力されるタッチ・センシティブ・デバイス133等により実現される。入力装置13は、ユーザから入力される指示を電気信号へ変換し、電気信号を制御部180へ出力する。なお、入力装置13は、マウス131、及びキーボード132等の物理的な操作デバイスに限定されない。入力装置13には、例えば、外部の入力機器から入力される電気信号を受け付ける受信ポートが含まれてもよい。
【0027】
出力装置14は、端末装置10を所有するユーザへ情報を提示するための装置である。出力装置14は、例えば、ディスプレイ141等により実現される。ディスプレイ141は、制御部180の制御に応じて、画像、動画、テキスト等のデータを表示する。ディスプレイ141は、例えば、LCD(Liquid Crystal Display)、又は有機EL(Electro-Luminescence)ディスプレイ等によって実現される。
【0028】
記憶部170は、例えば、メモリ15、及びストレージ16等により実現され、端末装置10が使用するデータ、及びプログラムを記憶する。
【0029】
制御部180は、プロセッサ19が記憶部170に記憶されるプログラムを読み込み、プログラムに含まれる命令を実行することにより実現される。制御部180は、端末装置10の動作を制御する。具体的には、例えば、制御部180は、操作受付部181、送受信部182、表示制御部183としての機能を発揮する。
【0030】
操作受付部181は、入力装置13から入力されるユーザの操作を受け付けるための処理を行う。送受信部182は、端末装置10が、サーバ20等の外部の装置と、通信プロトコルに従ってデータを送受信するための処理を行う。表示制御部183は、ユーザに対して種々の情報を提示するため、出力装置14を制御する。
【0031】
<1.2 サーバの機能的構成>
図3は、本実施形態のシステム1に含まれるサーバ20の機能的な構成を示すブロック図である。
図3に示すように、サーバ20は、通信部201、記憶部202、及び制御部203としての機能を発揮する。
【0032】
通信部201は、サーバ20が外部の装置と通信するための処理を行う。
【0033】
記憶部202は、サーバ20が使用するデータ及びプログラムを記憶する。例えば、記憶部202は、テストケースデータベース(DB)281、タスクデータベース(DB)282を記憶する。
【0034】
テストケースDB281は、テストケースに関する情報を記憶するためのデータベースである。
【0035】
タスクDB282は、発生したタスクを管理するためのデータベースである。タスクDB282において、タスクは、例えば、チケット単位で管理される。
【0036】
制御部203は、プロセッサ29が記憶部202に記憶されるプログラムを読み込み、プログラムに含まれる命令を実行することにより実現される。制御部203は、サーバ20の動作を制御する。具体的には、例えば、制御部203は、操作受付部2031、送受信部2032、記憶制御部2033、提示部2034、分析部2035、設定部2036、予測部2037としての機能を発揮する。
【0037】
操作受付部2031は、ユーザからの操作を受け付ける。操作受付部2031は、例えば、ユーザとしてのテスト実施者によるテストケースの指定、テストの実施結果の入力等を受け付ける。また、操作受付部2031は、例えば、ユーザとしての開発者によるチケットに対する入力等を受け付ける。
【0038】
送受信部2032は、サーバ20が、端末装置10等の外部の装置と、通信プロトコルに従ってデータを送受信する処理を制御する。
【0039】
記憶制御部2033は、記憶部202への情報の記憶を制御する。具体的には、例えば、記憶制御部2033は、テスト実施者から、テスト実施済みのテストケースに関する情報が入力されると、入力された情報をテストケースDB281に記憶する。記憶制御部2033は、開発者から、実施されたテストの結果に対する応答が入力されると、入力された応答に関する情報をテストケースDB281に記憶する。記憶制御部2033は、実施されたテストの結果を分析した情報をテストケースDB281に記憶する。記憶制御部2033は、実施されたテストの分析結果に基づく予測情報をテストケースDB281に記憶する。
【0040】
また、記憶制御部2033は、例えば、テスト実施者、又は開発者からタスクに関する情報が入力されると、入力された情報をタスクDB282に記憶する。
【0041】
提示部2034は、テストケースDB281に記憶されている情報を、ユーザが望む態様で提示する。具体的には、提示部2034は、プロジェクトの選択画面を端末装置10のディスプレイ141に表示させる。また、提示部2034は、テストスイートの選択画面をディスプレイ141に表示させる。本実施形態において、テストスイートは、例えば、所定の機能についての複数のテストケースデータを含む。テストケースデータは、例えば、テスト設計書で定義されるテストケースがテストの実施管理が可能な形式に変換されたデータである。複数のテストケースデータそれぞれは、共通のデータ構造をしている。テストスイートは、例えば、テスト実施者がテストを実施しやすい一式のテストケースデータを含む。テスト実施者がテストを実施しやすい一式のテストケースデータとは、例えば、同一の機能についてのテストケースデータ、又は、同一のモジュールについてのテストケースデータ等である。
【0042】
また、提示部2034は、テストケースについてのテストの実施結果を入力させる画面をディスプレイ141に表示させる。また、提示部2034は、テストの実施結果に基づく分析情報を表示する画面をディスプレイ141に表示させる。また、提示部2034は、テストの実施結果に基づく予測情報を表示する画面をディスプレイ141に表示させる。
【0043】
分析部2035は、テストの実施結果に関する情報を分析する。具体的には、分析部2035は、テストの実施結果を分析し、実施工数、生産性、不具合数、不具合率等を算出する。また、分析部2035は、テストの実施結果を分析し、不具合を発生しやすいテストケースを抽出する。不具合を発生しやすいテストケースは、例えば、優先してテストを実施するべきテストケースと換言可能である。分析部2035は、例えば、不具合が発生する件数に係る数値(不具合数、又は不具合率等)、生産性等に基づいて優先してテストを実施するべきテストケースを抽出する。
【0044】
また、分析部2035は、テストの実施結果に対する開発者からの応答を分析し、不具合を発生しやすいテストケース、すなわち、優先してテストを実施するべきテストケースを抽出する。分析部2035は、例えば、発生した不具合を改修する工数に係る数値、発生した不具合の要因に基づき、優先的に対応するべきテストケースを抽出する。
【0045】
設定部2036は、テストスイート、又はテストケースデータに対し、テストを実施するべき順序を設定する。例えば、設定部2036は、プロジェクトのテスト工程を開始する前に、テストスイート、又はテストケースデータに対し、テストを実施するべき順序を設定する。具体的には、設定部2036は、開発しているソフトウェアにおける重要な機能と対応するテストスイート、及びこのテストスイートに含まれるテストケースデータに優先的な順序を付与する。また、設定部2036は、過去に行った同一又は類似のテストの結果に基づき、テストスイート、又はテストケースデータに対し、優先的な順序を付与する。
【0046】
また、設定部2036は、例えば、テスト工程において実施済みのテストの結果を利用し、テストスイート、又はテストケースデータに対し、実施するべき順序を設定する。具体的には、設定部2036は、分析部2035により抽出されたテストケースについてのデータ、及びこのテストケースデータを含むテストスイートに優先的な順序を付与する。
【0047】
予測部2037は、ユーザにより選択された順序でテストを実施した際のテストの動向を予測する。具体的には、例えば、予測部2037は、実施済みのテストケースに基づき、未実施のテストケースで発生する不具合を含めた不具合の数、又は不具合率を予測する。また、予測部2037は、例えば、実施済みのテストケースで発生した不具合の改修工数、改修後確認工数に基づき、未実施のテストケースで発生する不具合の改修工数を含めた不具合の改修工数、改修後確認工数を予測する。
【0048】
<2 データ構造>
図4は、サーバ20が記憶するテストケースDB281のデータ構造を示す図である。
図4に示すテストケースDB281は、テスト設計書においてテストケースを規定するために用いられる、「観点」、「因子」、及び「水準」を項目として含んでいる。「観点」は、テストの拠り所となる見地(考え方)を表す。「因子」は、コンピュータの状態変化に影響を与え得る要因を表す。「水準」は、「因子」の具体的な要素を表す。
図4では、機能Aにおける観点Aの因子A-水準AA~ACと、観点Bの因子B-水準BA~BCとについてのテストが既に実施されている場合が示されている。また、
図4は一例であり、記載されていないデータを除外するものではない。
【0049】
図4に示すテストケースDB281は、例えば、所定のプロジェクトのテストケースに対して構築されたものである。プロジェクトが複数存在する場合には、テストケースDB281は、例えば、プロジェクト毎に構築されてもよい。
【0050】
図4に示すように、テストケースDB281のレコードの各々は、項目「画面」、項目「機能」、項目「担当者」、項目「モジュール」、項目「観点」、項目「因子」、項目「水準」、項目「総ケース数」、項目「実施済みケース数」、項目「実施工数」、項目「生産性」、項目「不具合要因」、項目「実績」、項目「予測」等を含む。
【0051】
項目「画面」は、機能が発現される画面に関する情報を記憶する。画面に関する情報は、例えば、画面の名称、又は、画面データへアクセスするためのリンクを含む。
【0052】
項目「機能」は、ソフトウェアが有する機能に関する情報を記憶する。機能に関する情報は、例えば、「ログイン機能」のように、機能の名称を含む。機能の名称は、担当者により任意に入力されてもよいし、予め登録されているものから選択されてもよい。
【0053】
項目「担当者」は、機能の開発者の名称を記憶する。なお、名称に限らず、開発者が識別可能であれば、名称に限らない。識別番号であっても、アドレス等であってもよい。
【0054】
項目「モジュール」は、テスト実施者がテストを実施する際に操作するモジュールを記憶する。
【0055】
項目「観点」は、テストの拠り所となる見地(考え方)を記憶する。項目「観点」は、項目「機能」が「ログイン機能」である場合、例えば、「正常認証」、「認証チェック」、「パスワード保持」等を記憶し得る。
【0056】
項目「因子」は、コンピュータの状態変化に影響を与え得る要因を記憶する。項目「因子」は、項目「観点」が「正常認証」である場合、例えば、「ID/PWの不整合有無」等を記憶し得る。
【0057】
項目「水準」は、「因子」において具体的な操作をグループ化したもの記憶する。項目「水準」は、項目「因子」が「ID/PWの不整合有無」である場合、例えば、「IDが不整合」、「PWが不整合」、「ID/PW両方ともに不整合」、「ID/PW共に整合」等を含む。
【0058】
項目「総ケース数」は、各水準で発生するテストケースの総数を記憶する。
【0059】
項目「実施済みケース数」は、テストが実施されたテストケースの数を記憶する。
図4に示すテストケースDB281では、機能Aにおける観点Aの因子A-水準AA~ACと、観点Bの因子B-水準BA~BCとについて、全てのテストケースのテストが実施されている。
【0060】
項目「実施工数」は、属するテストケースを実施するのにかかった工数を記憶する。工数は、テスト実施者からの申告に基づいて取得されてもよいし、テスト実施者の操作ログに基づいて自動で取得されてもよい。
【0061】
項目「生産性」は、1テストケースに対してかかった時間を記憶する。
図4に示す例では、1テストケースに対してかかった「分」を記憶する。
【0062】
項目「不具合要因」は、テストで発生した不具合の要因毎の発生数を記憶する。項目「不具合要因」は、複数のサブ項目を含む。サブ項目には、不具合が発生した要因が割り当てられている。サブ項目に割り当てられている要因には、要因が埋め込まれた工程に応じた優先度が設定されている。
【0063】
ソフトウェア開発は、例えば、要件定義、基本設計、詳細設計、コーディング、テストの順で作業工程が進められる。これらの各開発工程において、欠陥が埋め込まれる可能性がある。上流側の工程で埋め込まれた欠陥がある場合、テスト工程での検出が遅れるほど、欠陥を改修するためのコストは大きくなる。また、テスト工程での検出が遅れるほど、デグレーションが発生するリスクが向上する。そこで、不具合の要因について、要因が埋め込まれた工程に応じた優先度を設定することで発生した不具合を解消する重要度が分かるようになっている。
【0064】
例えば、サブ項目に割り当てられる不具合要因に対し、上流工程に由来する要因、中流工程に由来する要因、下流工程に由来する要因とのように、要因が分類されている。上流工程に由来する要因は、例えば、要件定義で埋め込まれた欠陥に関する要因であり、中流工程に由来する要因、及び下流工程に由来する要因よりも優先度は高い。中流工程に由来する要因は、例えば、基本設計、及び詳細設計で埋め込まれた欠陥に関する要因であり、下流工程に由来する要因よりも優先度は高い。下流工程に由来する要因は、例えば、コーディング、テストで埋め込まれた欠陥に関する要因である。
【0065】
不具合が発生する要因としては、例えば、「要件漏れ」、「影響範囲考慮漏れ」、「サブシステム間認識齟齬」、「仕様検討漏れ」、「機種依存」、「プログラミング誤り」、「環境設定ミス」、「単体テスト漏れ」、「既存バグ」等が存在する。このうち、例えば、「要件漏れ」、「影響範囲考慮漏れ」が上流工程に由来する要因に相当し、「サブシステム間認識齟齬」、「仕様検討漏れ」、「機種依存」が中流工程に由来する要因に相当し、「プログラミング誤り」、「環境設定ミス」、「単体テスト漏れ」、「既存バグ」が下流工程に由来する要因に相当する。なお、上記では、工程を3つに分類しているが、分類数は3つに限定されず、2つであっても、4つ以上であってもよい。
【0066】
図4に示す例では、サブ項目として、「要件漏れ」、「影響考慮」、「シス間認識」、「仕様検討」、「作業ミス」、「環境異存」を含む。「要件漏れ」、「影響考慮」は上流工程に由来する要因に属し、「シス間認識」、「仕様検討」は中流工程に由来する要因に属し、「作業ミス」、「環境異存」は下流工程に由来する要因に属する。なお、サブ項目に割り当てられる要因はこれらに限定されない。その他の要因が加えられていてもよいし、一部の要因がなくてもよい。また、一部の要因がその他の要因と入れ替わっていてもよい。
【0067】
項目「実績」は、実施されたテストの結果を記憶する。項目「実績」は、複数のサブ項目を含む。
図4に示す例では、項目「実績」は、サブ項目「不具合数」、サブ項目「不具合率」、サブ項目「改修工数」、サブ項目「改修後確認工数」を含む。
【0068】
サブ項目「不具合数」は、該当するテストケースのうち、不具合が発生した数を記憶する。サブ項目「不具合率」は、不具合が発生した確率を記憶する。サブ項目「不具合数」、サブ項目「不具合率」で表される情報は、例えば、テスト実施者から入力されるテストの実施結果に基づく。
【0069】
サブ項目「改修工数」は、不具合を改修するのに要した工数を記憶する。サブ項目「改修工数」で表される情報は、例えば、プログラムの改修後に開発者から入力される情報に基づく。サブ項目「改修後確認工数」は、不具合を改修したプログラムをテストするのに要した工数を記憶する。サブ項目「改修後確認工数」で表される情報は、例えば、テスト実施者から入力される改修後のプログラムに対するテストの実施結果に基づく。
【0070】
項目「予測」は、提案された優先順位でテストを実施した際に予測されるテスト結果を表す。項目「予測」は、複数のサブ項目を含む。
図4に示す例では、項目「予測」は、サブ項目「不具合数」、サブ項目「不具合率」、サブ項目「改修工数」、サブ項目「改修後確認工数」を含む。サブ項目「不具合数」、サブ項目「不具合率」、サブ項目「改修工数」、サブ項目「改修後確認工数」で表される情報は、例えば、実施済みのテストの実施結果に基づいて算出される。
【0071】
また、
図4に示すテストケースDB281は、項目「機能重要度」、項目「優先度」を含む。
項目「機能重要度」は、開発されているソフトウェアの機能の重要度を記憶する。
図4に示す例では、重要度は「高」、「中」、「低」で表されているが、これに限定されない。重要度は数字で表されていてもよい。
【0072】
項目「優先度」は、テストケースの優先度を表す。項目「優先度」は、複数のサブ項目を含む。
図4に示す例では、項目「優先度」は、サブ項目「計画」、サブ項目「修正1」、サブ項目「修正2」を含む。サブ項目「計画」は、テスト工程の開始前に設定される優先度を記憶する。サブ項目「修正1」は、テスト工程中の所定のタイミングで、実施済みのテストの実施結果に基づいて設定される優先度を記憶する。
図4に示す例では、サブ項目「修正1」は、サブ項目「計画」において優先度1に設定されているテストケース、例えば、機能Aにおける観点Aの因子A、観点Bの因子Bについてのテストを実施した後に設定される優先度を記憶する。サブ項目「修正2」は、サブ項目「修正1」において優先度1に設定されているテストケース、例えば、機能Cにおける観点Dの因子Aについてのテストを実施した後に設定される優先度を記憶する。
【0073】
<3 動作>
テスト実施者によりテストが実施される際のシステム1の動作について説明する。
【0074】
<3.1 テストの実施>
図5は、テスト実施者によりテストが実施される際のシステム1の動作を説明する図である。
【0075】
まず、端末装置10-1を操作するテスト実施者は、端末装置10-1を操作してサーバ20にアクセスする。テスト実施者は、プロジェクトに関する情報を表示するように、端末装置10-1を操作する。端末装置10-1は、テスト実施者からの操作に応じ、プロジェクトに関する情報をサーバ20に要求する。
【0076】
サーバ20は、端末装置10-1からの要求に応じ、プロジェクトに関する情報を端末装置10-1へ送信する。
【0077】
端末装置10-1は、サーバ20から受信した情報をテスト実施者へ提示する。具体的には、例えば、端末装置10-1は、プロジェクトリストをディスプレイ141に表示させる。
【0078】
図6は、ディスプレイ141に表示されるプロジェクトリストの例を表す模式図である。プロジェクトリストには、現在進められているプロジェクトがリスト状に表示される。
図6に示す例では、2つのプロジェクトが表示されている。各プロジェクトを表すレコードは、例えば、項目「プロジェクトキー」、項目「プロジェクト名」、項目「現状のプロセス」、項目「開始日」、項目「ステータス」を含む。
【0079】
端末装置10-1は、テスト実施者からのプロジェクトの選択を受け付ける(ステップS101)。具体的には、テスト実施者は、例えば、リストに表示されるプロジェクトのうち、テストを要するソフトウェアに関するプロジェクトを選択する。テスト実施者によりプロジェクトが選択されると、端末装置10-1は、選択されたプロジェクトのテストスイートに関する情報をサーバ20に要求する。
【0080】
サーバ20は、端末装置10-1からの要求に応じ、テストスイートに関する情報をテストケースDB281から取得する。サーバ20は、取得した情報を端末装置10-1へ送信する。
【0081】
端末装置10-1は、サーバ20から受信した情報をテスト実施者へ提示する。具体的には、例えば、端末装置10-1は、テストスイートのリストをディスプレイ141に表示させる。
【0082】
図7は、ディスプレイ141に表示されるテストスイートのリストの例を表す模式図である。テストスイートのリストには、選択されたプロジェクトに含まれるテストスイートがリスト状に表示される。
図7に示す例では、5つのテストスイートが表示されている。各テストスイートを表すレコードは、例えば、項目「No」、項目「テストスイート」、項目「担当者」、項目「優先度」、項目「Scope」、項目「Feature」、項目「ケース数」、項目「進捗」、項目「更新日」を含む。項目「優先度」は、サブ項目「計画」、サブ項目「修正1」を有する。テストを実施する前の段階では、サブ項目「計画」には計画段階で設定された優先度が記憶されている。一方、サブ項目「修正1」はまだ空欄となっている。
【0083】
端末装置10-1は、テスト実施者からのテストスイートの選択を受け付ける(ステップS102)。具体的には、テスト実施者は、サブ項目「計画」を参照し、優先度1のテストスイート、つまり、最も優先的にテストを実施するべきテストスイートを選択する。テスト実施者によりテストスイートが選択されると、端末装置10-1は、選択されたテストスイートのテストケースデータに関する情報をサーバ20に要求する。
【0084】
サーバ20は、端末装置10-1からの要求に応じ、テストケースデータに関する情報を端末装置10-1へ送信する。
【0085】
端末装置10-1は、サーバ20から受信した情報をテスト実施者へ提示する。具体的には、例えば、端末装置10-1は、テストケースデータのリストをディスプレイ141に表示させる。
【0086】
図8は、ディスプレイ141に表示されるテストケースデータのリストの例を表す模式図である。テストケースデータのリストには、選択されたテストスイートに含まれるテストケースデータがリスト状に表示される。
図8に示す例では、5つのテストケースデータが表示されている。各テストケースデータを表すレコードは、例えば、項目「ID」、項目「大項目」、項目「中項目」、項目「小項目」、項目「実施結果」、項目「優先度」、項目「備考」を含む。
【0087】
項目「実施結果」には、フィールドオブジェクト1411、1412が設けられている。テストを実施していないテストケースのフィールドオブジェクト1411には、まだ実施されていないことを表す「UnExe」が表示されている。
【0088】
項目「優先度」は、サブ項目「計画」、サブ項目「修正1」を有する。テストを実施する前の段階では、サブ項目「計画」には計画段階で設定された優先度が記憶されている。
図8に示す例では、優先度1のテストスイートにおけるテストケースが表示されているため、全てのテストケースに優先度1が設定されている。一方、サブ項目「修正1」はまだ空欄となっている。
【0089】
テスト実施者は、サブ項目「計画」を参照し、優先度1のテストケース、つまり、最も優先的にテストを実施するべきテストケースのうちいずれかを選択する。テスト実施者によりテストケースが選択されると、端末装置10-1は、選択されたテストケースについてのテストを実施する。
【0090】
端末装置10-1は、テスト実施者からテストの実施結果の入力を受け付ける(ステップS103)。具体的には、例えば、テスト実施者は、ID:1のテストケースのテストを実施して不具合が発生しなかった場合、フィールドオブジェクト1411を押下し、フィールドオブジェクト1411の表示を、不具合が発生しなかったことを表す表示に切り替える。これにより、フィールドオブジェクト1411の表示は例えば、「OK」となる。
【0091】
端末装置10-1は、不具合が発生していない旨の実施結果、テストにかかった工数を、サーバ20へ送信する。サーバ20は、記憶制御部2033により、テストの実施結果、実施工数をテストケースDB281に記憶する。また、サーバ20は、分析部2035により、テストの実施結果を分析し、例えば、実施工数、生産性、不具合数、不具合率を算出する。
【0092】
テスト実施者は、フィールドオブジェクト1411の表示を「OK」とすると、次のテストケース、例えば、ID:2のテストケースのテストに取り掛かる。
【0093】
一方、例えば、ID:1のテストケースのテストを実施して不具合が発生した場合、テスト実施者は、フィールドオブジェクト1411を押下し、フィールドオブジェクト1411の表示を、不具合が発生したことを表す表示に切り替える。これにより、フィールドオブジェクト1411の表示は例えば、「NG」となる。
【0094】
端末装置10-1は、不具合が発生した旨の実施結果、テストにかかった工数を、サーバ20へ送信する。サーバ20は、記憶制御部2033により、テストの実施結果、実施工数をテストケースDB281に記憶する。また、サーバ20は、分析部2035により、テストの実施結果を分析し、例えば、実施工数、生産性、不具合数、不具合率を算出する。
【0095】
テスト実施者は、フィールドオブジェクト1411の表示を「NG」に切り替えると、開発者へ発行するチケットを作成する。チケットは、プロジェクトにおける作業を管理するための単位である。本実施形態では、チケットにより、例えば、テスト実施者と開発者との間で不具合の発生を共有し、プログラムの改修を開発者のタスクとして管理する。具体的には、例えば、テスト実施者は、フィールドオブジェクト1411を押下して表示を「NG」に切り替えると、フィールドオブジェクト1412を押下する。
【0096】
端末装置10-1は、フィールドオブジェクト1412が押下されると、チケットの入力フォームをディスプレイ141に表示させる。
【0097】
図9は、ディスプレイ141に表示されるチケットの入力フォームの例を表す模式図である。
図9に示す例によれば、ディスプレイ141に入力ウィンドウ1413が表示される。入力ウィンドウ1413には、例えば、「Process」、「Type」、「Title」、「Priority」、「Severity」、「Assignee」、「Reporter」、「Due date」を入力するためのボックスが設けられている。
【0098】
「Process」には、進行中の工程が入力される。入力は、例えば、ボックスの右端の下三角マークをクリックすると選択肢が表示されるプルダウン形式で行われる。
図9に示す例では、テスト工程におけるチケットの発行であるため、「Test」が入力されている。
【0099】
「Type」には、チケットの種別が入力される。入力は、例えば、プルダウン形式で行われる。
図9に示す例では、開発者に不具合を改修させるためのチケットの発行であるため、「Bug」が入力されている。
【0100】
「Title」には、チケットの題目が入力される。入力は、例えば、テスト実施者から任意の内容を受け付ける。
図9に示す例では、「AAAにBBBしたがCCCされないという不具合が発生した」との題目が入力されている。
【0101】
「Priority」には、チケットの発行により作成されるタスクの優先度が入力される。「Severity」は、チケットの発行により作成されるタスクの重大さが入力される。「Assignee」にはチケットの発行により作成されるタスクの担当者が入力される。一般的には、ソフトウェアの開発者が該当する。「Reporter」は、チケットの作成者が入力される。これらの入力は、例えば、プルダウン形式で行われる。
【0102】
「Due date」は、チケットの発行により作成されるタスクの期限日が入力される。入力は、テスト実施者から直接の入力を受け付けてもよいし、カレンダーを介した日付けの指定を受け付けてもよい。
【0103】
テスト実施者は、チケットへ含める内容の入力が完了すると、フィールドオブジェクト1414を押下する。フィールドオブジェクト1414が押下されると、端末装置10-1は、テスト実施者により入力された内容をサーバ20へ送信すると共に、送信した内容をチケットとして登録するようにサーバ20に要求する。テスト実施者は、サーバ20にチケットを登録すると、次のテストケース、例えば、ID:2のテストケースのテストに取り掛かる。
【0104】
サーバ20は、端末装置10-1からの要求を受け付けると、記憶制御部2033により、受信した内容をタスクDB282に記憶し、新たなチケットとして登録する。また、サーバ20は、登録したチケットを、「Assignee」に記載される開発者へ発行する(ステップS201)。
【0105】
開発者が操作する端末装置10-2は、サーバ20からチケットが発行されると、チケットが発行されたことを開発者へ通知する。開発者は、通知を受けると、発行されたチケットの内容を端末装置10-2のディスプレイ141に表示させる。
【0106】
図10は、ディスプレイ141に表示されるチケットの内容の例を表す模式図である。端末装置10-2は、チケットの内容を開発者に表示すると、開発者からの入力を受け付ける(ステップS104)。具体的には、例えば、開発者は、表示内容を確認し、所定のテストケースについてのテストで不具合が発生したことを把握すると、不具合が発生した要因を調査する。要因を突き止めると、開発者は、チケットにおいて不具合要因を記入する領域に不具合要因を入力する。
図10に示す例では、「Relative Issue」が不具合要因を記入する領域に相当する。端末装置10-2は、「Relative Issue」に不具合要因が記入されると、チケットの内容が更新されたとして、記入された情報をサーバ20へ送信する。開発者は、チケットに不具合要因を入力すると、不具合が発生したソフトウェアの改修を開始する。
【0107】
サーバ20は、端末装置10-2からの情報を受信すると、記憶制御部2033により、受信した情報に基づいてタスクDB282を更新する。また、サーバ20は、チケットが更新されたことを、「Reporter」に記載されるテスト実施者へ通知する(ステップS202)。
【0108】
テスト実施者は、テストケースが零となるまでステップS102~ステップS202の処理を繰り返す。
【0109】
<3.2 改修確認テストの実施>
開発者は、
図5に示すステップS104で、チケットに不具合要因を入力すると、不具合が発生したソフトウェアの改修を開始する。
【0110】
図11は、開発者によりソフトウェアが改修され、改修されたソフトウェアがテスト実施者によりテストされる際のシステム1の動作を説明する図である。
【0111】
端末装置10-2は、開発者から、ソフトウェアの改修が完了したことの報告の入力を受け付ける(ステップS105)。具体的には、例えば、開発者は、不具合の改修内容、不具合の改修にかかった工数をチケットに入力する。端末装置10-2は、不具合の改修内容、不具合の改修にかかった工数が入力されると、チケットの内容が更新されたとして、記入された情報をサーバ20へ送信する。
【0112】
サーバ20は、端末装置10-2からの情報を受信すると、記憶制御部2033により、受信した情報に基づいてタスクDB282を更新する。また、サーバ20は、チケットが更新されたことを、「Reporter」に記載されるテスト実施者へ通知する(ステップS203)。
【0113】
端末装置10-1は、チケットの更新がサーバ20から通知されると、チケットが更新されたことをテスト実施者へ通知する。テスト実施者は、通知を受けると、更新されたチケットの内容を端末装置10-1のディスプレイ141に表示させる。テスト実施者は、表示の内容を参照し、不具合を発生したテストケースについて再度テストを実施する。
【0114】
端末装置10-1は、テスト実施者からテストの実施結果の入力を受け付ける(ステップS106)。具体的には、例えば、テスト実施者は、フィールドオブジェクト1411が「NG」のテストケースのテストを実施して不具合が発生しなかった場合、フィールドオブジェクト1411を押下し、フィールドオブジェクト1411の表示を「OK」に切り換える。
【0115】
端末装置10-1は、不具合が解消した旨の実施結果、改修後確認にかかった工数を、サーバ20へ送信する。サーバ20は、記憶制御部2033により、テストの実施結果、改修後確認工数をテストケースDB281に記憶する。
【0116】
また、例えば、フィールドオブジェクト1411が「NG」のテストケースのテストを実施して不具合が発生した場合、テスト実施者は、フィールドオブジェクト1412を押下してチケットを作成する。テスト実施者は、チケットへ含める内容の入力が完了すると、フィールドオブジェクト1414を押下する。フィールドオブジェクト1414が押下されると、端末装置10-1は、テスト実施者により入力された内容をサーバ20へ送信すると共に、送信した内容をチケットとして登録するようにサーバ20に要求する。
【0117】
サーバ20は、端末装置10-1からの要求を受け付けると、記憶制御部2033により、受信した内容をタスクDB282に記憶し、新たなチケットとして登録する。また、サーバ20は、登録したチケットを、「Assignee」に記載される開発者へ発行する。
【0118】
<3.3 優先度の設定>
図12は、テストスイートに設定された優先度を設定する際のサーバ20の動作の例を示すフローチャートである。
【0119】
まず、分析部2035は、テスト実施者から、優先度の再設定の指示があるか否かを判断する(ステップS21)。例えば、
図7に示すテストスイートのリスト表示、又は
図8に示すテストケースデータのリスト表示において、優先度の再設定を指示するためのフィールドオブジェクトが表示されている(図示せず)。テスト実施者は、所定の理由がある場合、上記フィールドオブジェクトを押下することで、サーバ20に対し、優先度の再設定を要求する。所定の理由とは、例えば、テストを実施している最中のテストスイート中の残りのテストケースデータにおいて不具合が発生する可能性が低いこと、優先度の再設定をしたいこと等である。
【0120】
優先度の再設定の指示がある場合(ステップS21のYes)、分析部2035は、処理をステップS23へ移行させる。優先度の再設定の指示がない場合(ステップS21のNo)、分析部2035は、テストケースデータのテストについて所定の要件が満たされたか否かを判断する(ステップS22)。所定の要件とは、例えば、実施結果を分析するのに十分なテストが実施済みであることを含み、具体的には、以下である。
・選択されているテストスイートに含まれる全てのテストケースデータについてのテストが実施されたこと、発生した不具合に対して要因が入力されたこと、又は発生した不具合が解消されたこと
・選択されているテストスイートにおいて、所定の観点に係る全てのテストケースデータについてのテストが実施されたこと、発生した不具合に対して要因が入力されたこと、又は発生した不具合が解消されたこと
・選択されているテストスイートにおいて、所定の因子に係る全てのテストケースデータについてのテストが実施されたこと、発生した不具合に対して要因が入力されたこと、又は発生した不具合が解消されたこと
・選択されているテストスイートにおいて、所定の水準に係る全てのテストケースデータについてのテストが実施されたこと、発生した不具合に対して要因が入力されたこと、又は発生した不具合が解消されたこと
・選択されているテストスイートにおいて、予め設定された数のテストケースデータについてのテストが実施されたこと、発生した不具合に対して要因が入力されたこと、又は発生した不具合が解消されたこと
・予め設定された数のテストケースデータについてのテストが実施されたこと、発生した不具合に対して要因が入力されたこと、又は発生した不具合が解消されたこと
・予め設定されたテスト期間のうち、所定の時間が経過したこと
【0121】
テストケースデータのテストについて所定の要件が満たされた場合(ステップS22のYes)、分析部2035は、処理をステップS23へ移行させる。テストケースデータのテストについて所定の要件が満たされていない場合(ステップS22のNo)、分析部2035は、ステップS21~ステップS22の処理を繰り返す。
【0122】
ステップS23において、分析部2035は、実施されたテストの結果を分析し、残っているテストケースのうち、優先してテストを実施するべきテストケースを抽出する。
図4に示す例では、分析部2035は、計画時に優先度1に設定されたテストスイートに含まれるテストケースについてのテストが実施されると、実施されたこれらのテストの結果を分析し、残っているテストケースから、優先してテストを実施するべきテストケースを抽出する。なお、
図4において、計画時に優先度1に設定されたテストスイートに含まれるテストケースについてのテストが実施されることは、予め設定された数のテストケースデータについてのテストが実施されたことと換言されてもよい。
【0123】
図13は、分析部2035の動作の具体例を示すフローチャートである。
まず、分析部2035は、テスト実施済みのテストケースデータについて、担当者、モジュール、観点、因子、水準、不具合要因、実績を、テストケースDB281から読み出す(ステップS231)。
【0124】
分析部2035は、実施結果に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択する(ステップS232)。具体的には、例えば、分析部2035は、不具合が発生する件数に係る数値(不具合数、不具合率等)、発生した不具合を改修する工数に係る数値、発生した不具合の要因が由来するプロジェクトの工程、又はこれらのうち少なくとも2つの組み合わせを考慮して、優先してテストを実施するべきテストケースを選択する。
【0125】
より具体的には、例えば、分析部2035は、不具合が発生する件数に係る数値、又は発生した不具合を改修する工数に係る数値が、特別な対応が要求される限界値よりも高いテストケース群がある場合、その数値が算出されたテストケース群を選択する。本実施形態において、テストケース群とは、同様の性質のテストケースとして扱われるテストケースの群を表し、例えば、因子、又は水準等毎にまとめて表される。不具合が発生する件数に係る数値、及び発生した不具合を改修する工数に係る数値が限界値を超えない場合、分析部2035は、例えば、プロジェクトの上流工程に由来する要因で不具合が発生したテストケース群を選択する。
【0126】
図4に示す例では、分析部2035は、不具合が発生する件数に係る数値、及び発生した不具合を改修する工数に係る数値が限界値を超えるテストケース群がないとして、上流工程に由来する要因である「要件漏れ」、「影響考慮」の要因が確認された因子Aに係るテストケース群を選択する。また、分析部2035は、次に優先してテストを実施するべきテストケース群として、下流工程に由来する要因である「作業ミス」の要因が確認された因子Bに係るテストケース群を選択する。
【0127】
なお、テストケース群の選択は、テストケース群を規定する他の要素単位でなされてもよい。例えば、分析部2035は、観点、又は水準でテストケース群を選択してもよい。
【0128】
分析部2035は、選択したテストケースの特徴を特定する(ステップS233)。例えば、分析部2035は、選択したテストケースそれぞれを規定する要素、例えば、画面、機能、担当者、モジュール、観点、因子、水準等を特定する。
【0129】
図4に示す例では、分析部2035は、上流工程に由来する要因による不具合が発生したテストケース群の特徴として、「画面A、機能A、担当者AAAA、モジュールA、観点A、因子A、水準AA~水準AC」を特定する。また、分析部2035は、下流工程に由来する要因による不具合が発生したテストケース群の特徴として、「画面A、機能A、担当者AAAA、モジュールA、観点B、因子B、水準BA~水準BC」を特定する。
【0130】
分析部2035は、テスト未実施のテストケースから、特定した特徴と一致するテストケース、又は類似するテストケースを抽出する(ステップS234)。一致するテストケースとは、例えば、テストケースを規定する全ての要素、「画面、機能、担当者、モジュール、観点、因子、水準」が、実施済みのテストケースについて特定した特徴と一致するテストケースを表す。類似するテストケースとは、例えば、テストケースを規定する要素、「画面、機能、担当者、モジュール、観点、因子、水準」のうち、少なくともいずれかが、実施済みのテストケースについて特定した特徴と一致するテストケースを表す。
分析部2035は、一致する要素に応じて類似の度合いを異ならせるようにしてもよい。例えば、分析部2035は、「因子、水準」が一致していれば、テストケースの内容は近いとし、類似の度合いが高いと評価する。一方、分析部2035は、観点、モジュール、又は担当者が一致する場合、関連はしているが、類似の度合いは、「因子、水準」が一致する場合よりも低いと評価する。
【0131】
図4に示す例では、分析部2035は、特定した「画面A、機能A、AAAA、モジュールA、観点A、因子A、水準AA~水準AC」の特徴と類似度が高いテストケース群として、「因子及び水準」が一致するテストケース群を、テスト未実施のテストケースから抽出する。すなわち。分析部2035は、テスト未実施のテストケースの中から、「画面B、機能C、AAAA、モジュールA、観点D、因子A、水準AA~水準AC」のテストケース群を類似のテストケース群として抽出する。
【0132】
また、分析部2035は、特定した「画面A、機能A、AAAA、モジュールA、観点A、因子A、水準AA~水準AC」の特徴と類似度が低いテストケース群として、「画面B、機能B、BBBB、モジュールC、観点A、因子B、水準BA~水準BC」のテストケース群と、「画面A、機能A、AAAA、モジュールB、観点C、因子C、水準CA~水準CC」のテストケース群とを抽出する。
【0133】
また、分析部2035は、特定した「画面A、機能A、AAAA、モジュールB、観点B、因子B、水準BA~水準BC」の特徴と類似度が高いテストケースとして、「因子及び水準」が一致するテストケースを、テスト未実施のテストケースから抽出する。すなわち。分析部2035は、テスト未実施のテストケースの中から、「画面B、機能B、BBBB、モジュールC、観点A、因子B、水準BA~水準BC」のテストケースを類似のテストケースとして抽出する。
【0134】
また、分析部2035は、特定した「画面A、機能A、AAAA、モジュールB、観点B、因子B、水準BA~水準BC」の特徴と類似度が低いテストケース群として、「画面A、機能A、AAAA、モジュールA、観点A、因子A、水準AA~水準AC」のテストケース群と、「画面A、機能A、AAAA、モジュールB、観点C、因子C、水準CA~水準CC」のテストケース群とを抽出する。
【0135】
分析部2035は、テストケース、又はテストスイートと関連付けられている機能仕様書に基づいて類似の判断をしてもよい。機能仕様書は、検査対象が有する機能についての仕様が記載されているデータである。テストケースを規定するテスト設計書は、機能仕様書を参照しながら作成される。テストケース、又はテストスイートには、作成の際に参照した機能仕様書についての情報が関連付けられている。分析部2035は、ステップS232で選択されたテストケースに機能仕様書が関連付けられている場合、テスト未実施のテストケースから、同一の機能仕様書が関連付けられているテストケースを類似のテストケースとして抽出してもよい。
【0136】
図12の説明に戻り、設定部2036は、ステップS23で抽出されたテストケースを参照し、テスト未実施のテストケースに対して優先度を設定する(ステップS24)。
【0137】
具体的には、設定部2036は、優先してテストを実施するべきテストケースと一致するテストケース、又は類似する度合の高いテストケースに、高い優先度を設定する。より具体的には、設定部2036は、優先してテストを実施するべき理由、選択したテストケースとの類似の度合い等を総合的に勘案し、優先度を設定する。優先してテストを実施するべき理由には、例えば、プロジェクトに特有な事情、改修工数の程度、不具合率の程度、担当者のスキルの偏り等、様々な要因が含まれる。
【0138】
図4に示す例では、設定部2036は、抽出した「画面A、機能A、AAAA、モジュールA、観点A、因子A、水準AA~水準AC」のテストケース群に対して優先度1を設定する。また、設定部2036は、このテストスイートにおいて、実施済みのテストの不具合要因、不具合率、改修工数等に基づき、水準毎に優先度を設定してもよい。例えば、設定部2036は、水準AAのテストケース群に優先度1、水準ACのテストケース群に優先度2、水準ABのテストケース群に優先度3を設定してもよい。
【0139】
また、設定部2036は、抽出した「画面B、機能B、BBBB、モジュールC、観点A、因子B、水準BA~水準BC」のテストケース群に対して優先度2を設定する。また、設定部2036は、このテストスイートにおいて、実施済みのテストの不具合要因、不具合率、改修工数等に基づき、水準毎に優先度を設定してもよい。例えば、設定部2036は、水準BAのテストケース群に優先度1、水準BCのテストケース群に優先度2、水準BBのテストケース群に優先度3を設定してもよい。
【0140】
また、設定部2036は、「画面A、機能A、AAAA、モジュールB、観点C、因子C、水準CA~水準CC」に対し、類似の度合いが低いとして優先度3を設定する。
【0141】
なお、選択したテストケースの実績、不具合要因、及びテスト未実施のテストケースから抽出されたテストケースの類似の度合によっては、テストケースに同一の優先度が設定されることもあり得る。
【0142】
記憶制御部2033は、設定された優先度を、修正後の優先度としてテストケースDB281に記憶する。
図14~
図17は、実施済みのテスト結果に基づいて優先度が修正された際のディスプレイ141の表示例を表す模式図である。
【0143】
図14は、ディスプレイ141に表示されるテストスイートのリストの例を表す模式図である。
図14に示す例は、機能A-1のテストスイートについてのテストが終了した後に、設定部2036により、優先度が修正される場合のディスプレイ141の表示画面を表している。
図14に示す例によれば、優先度4だった機能Cのテストスイートの優先度が1となり、優先度3だった機能Bのテストスイートの優先度が2となり、優先度2だった機能A-2のテストスイートの優先度が3となり、優先度5だった機能Dのテストスイートの優先度が4となっている。
【0144】
図15は、ディスプレイ141に表示されるテストケースデータのリストの例を表す模式図である。
図15に示す例は、
図14において、優先度1の機能Cのテストスイートが選択された場合のテストケースデータのリスト表示を表している。
図15に示す例によれば、優先度4だったテストケースデータの優先度が優先度1となっている。
【0145】
図16は、ディスプレイ141に表示されるテストスイートのリストの例を表す模式図である。
図16に示す例は、機能Cのテストスイートについてのテストが終了した後に、設定部2036により、優先度が修正される場合のディスプレイ141の表示画面を表している。
図16に示す例によれば、優先度2だった機能Bのテストスイートの優先度が1となり、優先度3だった機能A-2のテストスイートの優先度が2となり、優先度4だった機能Dのテストスイートの優先度が3となっている。
【0146】
図17は、ディスプレイ141に表示されるテストケースデータのリストの例を表す模式図である。
図17に示す例は、
図16において、優先度1の機能Bのテストスイートが選択された場合のテストケースデータのリスト表示を表している。
図17に示す例によれば、優先度2だったテストケースデータの優先度が優先度1となっている。
【0147】
<3.4 テスト動向の予測>
図18は、テスト動向を予測する際のサーバ20の動作の例を示すフローチャートである。
【0148】
テスト実施者は、テストの動向、つまり、残テストケース数の推移、不具合数の推移の予測情報等を確認したい場合、テスト動向の表示を指示するためのフィールドオブジェクトを押下する。フィールドオブジェクトは、例えば、ディスプレイ141に表示されている。
【0149】
予測部2037は、フィールドオブジェクトが押下されると、テストが既にされたテストケース数が所定の要件を満たすか否かを判断する(ステップS25)。所定の要件とは、例えば、テストの動向を予測可能な程度の数のテストが実施されていることを含み、具体的には、以下である。
・いずれかのテストスイートに含まれる全てのテストケースデータについてのテストが実施されたこと、又は発生した不具合が解消されたこと
・いずれかのテストスイートにおいて、所定の観点に係る全てのテストケースデータについてのテストが実施されたこと、又は発生した不具合が解消されたこと
・いずれかのテストスイートにおいて、所定の因子に係る全てのテストケースデータについてのテストが実施されたこと、又は発生した不具合が解消されたこと
・いずれかのテストスイートにおいて、所定の水準に係る全てのテストケースデータについてのテストが実施されたこと、又は発生した不具合が解消されたこと
・いずれかのテストスイートにおいて、予め設定された数のテストケースデータについてのテストが実施されたこと、又は発生した不具合が解消されたこと
・予め設定された数のテストケースデータについてのテストが実施されたこと、又は発生した不具合が解消されたこと
【0150】
テストが既にされたテストケース数が所定の要件を満たす場合(ステップS25のYes)、分析部2035は、テストが実施されたテストケースの特徴を特定する(ステップS26)。例えば、分析部2035は、テストが実施されたテストケースを規定する要素、例えば、画面、機能、担当者、モジュール、観点、因子、水準を特定する。テストが既にされたテストケース数が所定の要件を満たしていない場合(ステップS25のNo)、分析部2035は、テストケース数が要件を満たすまでステップS25の処理を繰り返す。
【0151】
分析部2035は、テスト未実施のテストケースから、特定した特徴と一致するテストケース、又は類似するテストケースを抽出する(ステップS27)。例えば、分析部2035は、テスト未実施のテストケースから、画面、機能、担当者、モジュール、観点、因子、水準が、実施済みのテストケースについて特定した画面、機能、担当者、モジュール、観点、因子、水準と一致するテストケースを抽出する。また、分析部2035は、テスト未実施のテストケースから、画面、機能、担当者、モジュール、観点、因子、水準のうち少なくともいずれかが、実施済みのテストケースについて特定した画面、機能、担当者、モジュール、観点、因子、水準と一致するテストケースを抽出する。
【0152】
予測部2037は、実施済みのテストケースの実績、不具合要因に基づき、抽出したテストケースに対し、テストの動向を表す種々のパラメータを算出する(ステップS28)。具体的には、予測部2037は、抽出したテストケース群における不具合数、不具合率、工数、改修工数、又は改修後確認工数を、実施済みのテストケースの実績に基づいて算出する。
【0153】
例えば、予測部2037は、実施済みのテストケースのうち、所定の因子及び水準のテストケース群と、因子及び水準が一致するテストケース群に対し、対応するテストケース群の不具合率を設定する。なお、予測部2037は、因子及び水準以外の要素に基づき、不具合率を補正してもよい。予測部2037は、因子及び水準が一致するテストケース群のケース数に、設定した不具合率をかけ、このテストケース群についての不具合数を算出する。予測部2037は、例えば、対応するテストケース群の不具合数と、因子及び水準が一致するテストケース群の不具合数との比に基づき、このテストケース群についての工数、改修工数、又は改修後確認工数を算出する。
【0154】
上流工程に由来する要因で不具合が発生したテストケース群と、因子及び水準が一致するテストケース群がテスト未実施のテストケースにある場合、予測部2037は、このテストケース群から発生すると予測される不具合の数を、テストの実施が遅くなるほど、多くなるように計算してもよい。
【0155】
予測部2037は、実施されたテストについての不具合数、工数、改修工数、又は改修後確認工数と、未実施のテストケースに対して予測した不具合数、工数、改修工数、又は改修後確認工数とに基づき、テスト工程を開始してからの期間に対する不具合数の推移、残テストケースの推移、不具合回収数の推移、又は回収数の推移を算出する。このとき、予測部2037は、設定されている優先度に従った順序でテストを実施した際の推移を算出する。
【0156】
記憶制御部2033は、算出されたパラメータを、予測されたパラメータとしてテストケースDB281に記憶する。
【0157】
提示部2034は、算出したパラメータに基づき、テストの動向をユーザに提示する(ステップS29)。具体的には、例えば、提示部2034は、テストの動向を表すグラフをディスプレイ141に表示させる。
【0158】
図19は、ディスプレイ141に表示される、テスト動向を表すグラフの例を表す模式図である。
図19に示す図において、横軸はテスト期間を表し、縦軸は残数又は発生件数を表す。
図19において、実線は不具合数を表し、破線は不具合の改修数を表し、一点鎖線は残ケース数を表し、二点鎖線は改修確認の残数を表す。
【0159】
以上のように、本実施形態では、サーバ20は、記憶制御部2033により、テスト工程におけるテストの実施結果をテストケースDB281に記憶させる。分析部2035は、実施結果に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択する。分析部2035は、テスト工程において、選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出する。そして、設定部2036は、抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定するようにしている。これにより、サーバ20は、テスト工程で実施されるテストの結果に基づき、未実施のテストから優先的に実施するべきテストを設定することが可能となる。また、不具合が発生する確率の高いテストから着手可能となるため、ソフトウェアの修正に基づく新たなバグの連鎖的発生を抑えられる。つまり、デグレーションのリスクが減ることになる。
【0160】
また、本実施形態では、分析部2035は、テスト実施済みのテストケースから、次に優先してテストを実施するべきテストケースを選択する。分析部2035は、選択した次に優先してテストを実施するべきテストケースと類似するテストケースを、テスト未実施のテストケースから抽出する。そして、設定部2036は、抽出したテストケースについてテストを実施する優先度を、先に設定した優先度より低く設定するようにしている。これにより、サーバ20は、テスト工程で実施されるテストの結果に基づき、未実施のテストを実施する順序を設定し直すことが可能となる。
【0161】
また、本実施形態では、分析部2035は、テスト実施済みのテストケースを規定する要素のいずれかが一致するテストケースを類似するテストケースとして、テスト未実施のテストケースから抽出するようにしている。具体的には、例えば、分析部2035は、テスト実施済みのテストケースの因子及び水準と一致する因子及び水準のテストケースを、類似するテストケースとするようにしている。また、例えば、分析部2035は、テスト実施済みのテストケースと、作成の際に参照した機能仕様書が一致するテストケースを、類似するテストケースとするようにしている。これにより、サーバ20は、テスト実施済みのテストケースと類似するテストケースを、テスト未実施のテストケースから高精度に抽出することが可能となる。
【0162】
また、本実施形態では、分析部2035は、ユーザからの指示に応じ、優先してテストを実施するべきテストケースを選択するようにしている。これにより、サーバ20は、ユーザが希望するタイミングで優先度を設定することが可能となる。
【0163】
また、本実施形態では、分析部2035は、テストが所定数実施されると、優先してテストを実施するべきテストケースを選択するようにしている。これにより、サーバ20は、ユーザからの指示がなくても優先度を設定することが可能となる。
【0164】
また、本実施形態では、分析部2035は、実施結果に含まれる、不具合が発生する件数に係る数値に基づき、前記優先してテストを実施するべきテストケースを選択するようにしている。これにより、不都合率の高いケースに対しては、障害の報告が得意な人材を担当に付けることが可能となる。また、不具合の発生がテストの前半に発生すると見込めるため、開発者を効率的にアサインすることが可能となる。
【0165】
また、本実施形態では、分析部2035は、実施結果に含まれる、発生した不具合を改修する工数に係る数値に基づき、優先してテストを実施するべきテストケースを選択するようにしている。これにより、改修工数が多いと見込まれるテストケースのテストをテスト工程の前半に実施することが可能となるため、開発者を効率的にアサインすることが可能となる。また、時間のかかるケースに専任の担当を付けることができる。
【0166】
また、本実施形態では、記憶制御部2033は、テスト工程におけるテストで発生した不具合の要因をテストケースDB281に記憶させる。分析部2035は、実施結果に含まれる、発生した不具合の要因、具体的には、要因が由来するプロジェクトの工程に基づき、優先してテストを実施するべきテストケースを選択するようにしている。これにより、ソフトウェア開発における、要件定義工程、設計工程、コーディング工程、テスト工程のうち、上流側の工程で埋め込まれた欠陥を検出するためのテストを優先的に実施させることが可能となる。このため、欠陥を改修するためのコストが小さく抑えられ、また、デグレーションが発生するリスクが抑えられる。また、サーバ20は、プロジェクト内のテスト工程で実施されるテストの結果を用いて優先度を設定している。このため、テスト実施者は、プロジェクトに適したテストの順序をリアルタイムで把握することが可能となる。
【0167】
また、本実施形態では、提示部2034は、設定した優先度をユーザへ提示するようにしている。これにより、テスト実施者は、優先度の高いテストケースを認識しながら、テストを実施することが可能となる。
【0168】
また、本実施形態では、提示部2034は、一式のテストケース(テストスイート)毎、又は単一のテストケース毎に優先度を付して優先度をユーザへ提示するようにしている。これにより、テスト実施者は、優先的にテストをしないとならないテストケースに効率的にアクセスすることが可能となる。
【0169】
また、本実施形態では、予測部2037は、抽出したテストケースのテストの結果をテストの実施結果から予測する。そして、予測部2037は、テスト未実施のテストケースのテストが、設定した優先度に従った順序で実施された際のテストの動向を予測するようにしている。これにより、テスト実施者は、設定される優先度に従った場合、テスト工程におけるテストがどのように進んでいくかを視覚的に把握することが可能となる。このため、テスト実施者は、設定された優先度が正しいものであるか否かを直感的に判断することが可能となる。
【0170】
したがって、本実施形態に係るサーバ20によれば、テスト工程において、テストを効率的、かつ効果的に実施できる。
【0171】
<変形例>
なお、上記実施形態では、計画時において、テストする機能の優先度が設定されている場合を例に説明した。しかしながら、テストする機能の優先度は、計画時に設定されていなくても構わない。
【0172】
また、上記実施形態では、テストスイートが計画時の優先度の順序で表示される場合を例に説明した。しかしながら、テストスイートが表示される順序は、再設定後の優先度の順序に従ってもよい。
【0173】
また、上記実施形態では、表示制御部183がディスプレイ141に優先度が表示する場合を例に説明した。しかしながら、表示制御部183は、優先度を必ずしも表示する必要はない。表示制御部183は、設定されて優先度順にテストスイート、又はテストケースを配列し、テストスイート、又はテストケースを表示してもよい。これにより、上から順にテストを実施すれば最適な順序となるため、テスト実施者の負担が軽減されることになる。
【0174】
以上、本開示のいくつかの実施形態を説明したが、これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものとする。
【0175】
<付記>
以上の各実施形態で説明した事項を以下に付記する。
【0176】
(付記1)
プロセッサ29と、メモリ25とを備えるコンピュータに実行させるためのプログラムであって、プログラムは、プロセッサに、テスト工程において実施されたテストに関する情報を記憶するステップ(ステップS201、S202)と、テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択するステップ(ステップS232)と、テスト工程において、選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出するステップ(ステップS234)と、抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定するステップ(ステップS24)とを実行させるプログラム。
【0177】
(付記2)
選択するステップにおいて、テスト実施済みのテストケースから、次に優先してテストを実施するべきテストケースを選択し、抽出するステップにおいて、選択した次に優先してテストを実施するべきテストケースと類似するテストケースを、テスト未実施のテストケースから抽出し、設定するステップにおいて、抽出したテストケースについてテストを実施する優先度を、設定した優先度よりも低く設定する(付記1)に記載のプログラム。
【0178】
(付記3)
抽出するステップにおいて、テスト実施済みのテストケースを規定する要素のいずれかが一致するテストケースを類似するテストケースとして、テスト未実施のテストケースから抽出する(付記1)又は(付記2)に記載のプログラム。
【0179】
(付記4)
抽出するステップにおいて、テスト実施済みのテストケースの因子及び水準と一致する因子及び水準のテストケースを、類似するテストケースとする(付記3)に記載のプログラム。
【0180】
(付記5)
抽出するステップにおいて、テスト実施済みのテストケースと、作成の際に参照した機能仕様書が一致するテストケースを、類似するテストケースとする(付記3)に記載のプログラム。
【0181】
(付記6)
選択するステップにおいて、ユーザからの指示に応じ、優先してテストを実施するべきテストケースを選択する(ステップS21)、(付記1)乃至(付記5)のいずれかに記載のプログラム。
【0182】
(付記7)
選択するステップにおいて、テストが所定数実施されると、優先してテストを実施するべきテストケースを選択する(ステップS22)、(付記1)乃至(付記5)のいずれかに記載のプログラム。
【0183】
(付記8)
記憶するステップにおいて、テストの実施結果を記憶し、選択するステップにおいて、実施結果に含まれる、不具合が発生する件数に係る数値に基づき、優先してテストを実施するべきテストケースを選択する(付記1)乃至(付記7)のいずれかに記載のプログラム。
【0184】
(付記9)
記憶するステップにおいて、テスト工程におけるテストで発生した不具合を改修する工数を記憶し、選択するステップにおいて、発生した不具合を改修する工数に係る数値に基づき、優先してテストを実施するべきテストケースを選択する(付記1)乃至(付記7)のいずれかに記載のプログラム。
【0185】
(付記10)
記憶するステップにおいて、テスト工程におけるテストで発生した不具合の要因を記憶し、選択するステップにおいて、発生した不具合の要因に基づき、優先してテストを実施するべきテストケースを選択する(付記1)乃至(付記7)のいずれかに記載のプログラム。
【0186】
(付記11)
選択するステップにおいて、要因が由来するプロジェクトの工程に基づき、優先してテストを実施するべきテストケースを選択する(付記10)に記載のプログラム。
【0187】
(付記12)
設定した優先度をユーザへ提示するステップ(提示部2034)を、プロセッサに実行させる(付記1)乃至(付記11)のいずれかに記載のプログラム。
【0188】
(付記13)
提示するステップにおいて、一式のテストケース毎、又は単一のテストケース毎に優先度を付して優先度をユーザへ提示する(付記12)に記載のプログラム。
【0189】
(付記14)
抽出したテストケースのテストの結果をテストの実施結果から予測するステップ(ステップS28)と、テスト未実施のテストケースのテストが、設定した優先度に従った順序で実施された際のテストの動向を予測するステップ(ステップS28)とをプロセッサに実行させる(付記1)乃至(付記13)のいずれかに記載のプログラム。
【0190】
(付記15)
プロセッサ29と、メモリ25とを備えるコンピュータが実行する方法であって、テスト工程において実施されたテストに関する情報を記憶するステップと、テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択するステップと、テスト工程において、選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出するステップと、抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定するステップとを実行する方法。
【0191】
(付記16)
プロセッサ29と、メモリ25とを備える情報処理装置20であって、プロセッサが、テスト工程において実施されたテストに関する情報を記憶するステップ(記憶制御部2033)と、テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択するステップと、テスト工程において、選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出するステップ(分析部2035)と、抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定するステップ(設定部2036)とを実行する情報処理装置。
【0192】
(付記17)
テスト工程において実施されたテストに関する情報を記憶する手段(記憶制御部2033)と、テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択するステップと、テスト工程において、選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出する手段(分析部2035)と、抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定する手段(設定部2036)とを具備するシステム。
【符号の説明】
【0193】
1…システム
10…端末装置
121…通信部
13…入力装置
131…マウス
132…キーボード
133…タッチ・センシティブ・デバイス
14…出力装置
141…ディスプレイ
15…メモリ
16…ストレージ
170…記憶部
180…制御部
181…操作受付部
182…送受信部
183…表示制御部
19…プロセッサ
20…サーバ
201…通信部
202…記憶部
203…制御部
2031…操作受付部
2032…送受信部
2033…記憶制御部
2034…提示部
2035…分析部
2036…設定部
2037…予測部
25…メモリ
26…ストレージ
29…プロセッサ
80…ネットワーク
【手続補正書】
【提出日】2021-04-20
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
プロセッサと、メモリとを備えるコンピュータに実行させるためのプログラムであって、前記プログラムは、前記プロセッサに、
テスト工程において実施されたテストに関する情報を記憶するステップと、
前記テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択するステップと、
前記テスト工程において、前記選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出するステップと、
前記抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定するステップと
を実行させ、
前記抽出するステップにおいて、前記テスト実施済みのテストケースと、作成の際に参照した機能仕様書が一致するテストケースを、前記類似するテストケースとするプログラム。
【請求項2】
プロセッサと、メモリとを備えるコンピュータに実行させるためのプログラムであって、前記プログラムは、前記プロセッサに、
テスト工程において実施されたテストに関する情報を記憶するステップと、
前記テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択するステップと、
前記テスト工程において、前記選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出するステップと、
前記抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定するステップと
を実行させ、
前記記憶するステップにおいて、前記テスト工程におけるテストで発生した不具合を改修する工数を記憶し、
前記選択するステップにおいて、前記発生した不具合を改修する工数に係る数値に基づき、前記優先してテストを実施するべきテストケースを選択するプログラム。
【請求項3】
プロセッサと、メモリとを備えるコンピュータに実行させるためのプログラムであって、前記プログラムは、前記プロセッサに、
テスト工程において実施されたテストに関する情報を記憶するステップと、
前記テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択するステップと、
前記テスト工程において、前記選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出するステップと、
前記抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定するステップと
を実行させ、
前記記憶するステップにおいて、前記テスト工程におけるテストで発生した不具合の要因を記憶し、
前記選択するステップにおいて、前記発生した不具合の要因に基づき、前記優先してテストを実施するべきテストケースを選択するプログラム。
【請求項4】
プロセッサと、メモリとを備えるコンピュータに実行させるためのプログラムであって、前記プログラムは、前記プロセッサに、
テスト工程において実施されたテストに関する情報を記憶するステップと、
前記テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択するステップと、
前記テスト工程において、前記選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出するステップと、
前記抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定するステップと
を実行させ、
前記抽出するステップにおいて、前記テスト実施済みのテストケースの因子及び水準と一致する因子及び水準のテストケースを、前記類似するテストケースとし、
前記因子はコンピュータの状態変化に影響を与え得る要因を表し、
前記水準は、前記因子の具体的な要素を表すプログラム。
【請求項5】
前記選択するステップにおいて、前記要因が由来するプロジェクトの工程に基づき、前記優先してテストを実施するべきテストケースを選択する請求項3記載のプログラム。
【請求項6】
前記選択するステップにおいて、前記テスト実施済みのテストケースから、次に優先してテストを実施するべきテストケースを選択し、
前記抽出するステップにおいて、前記選択した次に優先してテストを実施するべきテストケースと類似するテストケースを、前記テスト未実施のテストケースから抽出し、
前記設定するステップにおいて、前記抽出したテストケースについてテストを実施する優先度を、前記設定した優先度よりも低く設定する請求項1乃至5のいずれかに記載のプログラム。
【請求項7】
前記選択するステップにおいて、ユーザからの指示に応じ、前記優先してテストを実施するべきテストケースを選択する請求項1乃至6のいずれかに記載のプログラム。
【請求項8】
前記選択するステップにおいて、前記テストが所定数実施されると、前記優先してテストを実施するべきテストケースを選択する請求項1乃至6のいずれかに記載のプログラム。
【請求項9】
前記記憶するステップにおいて、前記テストの実施結果を記憶し、
前記選択するステップにおいて、前記実施結果に含まれる、不具合が発生する件数に係る数値に基づき、前記優先してテストを実施するべきテストケースを選択する請求項1乃至8のいずれかに記載のプログラム。
【請求項10】
前記設定した優先度をユーザへ提示するステップを、前記プロセッサに実行させる請求項1乃至9のいずれかに記載のプログラム。
【請求項11】
前記提示するステップにおいて、一式のテストケース毎、又は単一のテストケース毎に前記優先度を付して前記優先度を前記ユーザへ提示する請求項10記載のプログラム。
【請求項12】
前記抽出したテストケースのテストの結果を前記テストの実施結果から予測するステップと、
前記テスト未実施のテストケースのテストが、前記設定した優先度に従った順序で実施された際のテストの動向を予測するステップと
を前記プロセッサに実行させる請求項1乃至11のいずれかに記載のプログラム。
【請求項13】
プロセッサと、メモリとを備えるコンピュータが実行する方法であって、
テスト工程において実施されたテストに関する情報を記憶するステップと、
前記テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択するステップと、
前記テスト工程において、前記選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出するステップと、
前記抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定するステップと
を実行し、
前記抽出するステップにおいて、前記テスト実施済みのテストケースと、作成の際に参照した機能仕様書が一致するテストケースを、前記類似するテストケースとする方法。
【請求項14】
プロセッサと、メモリとを備えるコンピュータが実行する方法であって、
テスト工程において実施されたテストに関する情報を記憶するステップと、
前記テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択するステップと、
前記テスト工程において、前記選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出するステップと、
前記抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定するステップと
を実行し、
前記記憶するステップにおいて、前記テスト工程におけるテストで発生した不具合を改修する工数を記憶し、
前記選択するステップにおいて、前記発生した不具合を改修する工数に係る数値に基づき、前記優先してテストを実施するべきテストケースを選択する方法。
【請求項15】
プロセッサと、メモリとを備えるコンピュータが実行する方法であって、
テスト工程において実施されたテストに関する情報を記憶するステップと、
前記テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択するステップと、
前記テスト工程において、前記選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出するステップと、
前記抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定するステップと
を実行し、
前記記憶するステップにおいて、前記テスト工程におけるテストで発生した不具合の要因を記憶し、
前記選択するステップにおいて、前記発生した不具合の要因に基づき、前記優先してテストを実施するべきテストケースを選択する方法。
【請求項16】
プロセッサと、メモリとを備えるコンピュータが実行する方法であって、
テスト工程において実施されたテストに関する情報を記憶するステップと、
前記テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択するステップと、
前記テスト工程において、前記選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出するステップと、
前記抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定するステップと
を実行し、
前記抽出するステップにおいて、前記テスト実施済みのテストケースの因子及び水準と一致する因子及び水準のテストケースを、前記類似するテストケースとし、
前記因子はコンピュータの状態変化に影響を与え得る要因を表し、
前記水準は、前記因子の具体的な要素を表す方法。
【請求項17】
プロセッサと、メモリとを備える情報処理装置であって、
前記プロセッサが、
テスト工程において実施されたテストに関する情報を記憶するステップと、
前記テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択するステップと、
前記テスト工程において、前記選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出するステップと、
前記抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定するステップと
を実行し、
前記抽出するステップにおいて、前記テスト実施済みのテストケースと、作成の際に参照した機能仕様書が一致するテストケースを、前記類似するテストケースとする情報処理装置。
【請求項18】
プロセッサと、メモリとを備える情報処理装置であって、
前記プロセッサが、
テスト工程において実施されたテストに関する情報を記憶するステップと、
前記テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択するステップと、
前記テスト工程において、前記選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出するステップと、
前記抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定するステップと
を実行し、
前記記憶するステップにおいて、前記テスト工程におけるテストで発生した不具合を改修する工数を記憶し、
前記選択するステップにおいて、前記発生した不具合を改修する工数に係る数値に基づき、前記優先してテストを実施するべきテストケースを選択する情報処理装置。
【請求項19】
プロセッサと、メモリとを備える情報処理装置であって、
前記プロセッサが、
テスト工程において実施されたテストに関する情報を記憶するステップと、
前記テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択するステップと、
前記テスト工程において、前記選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出するステップと、
前記抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定するステップと
を実行し、
前記記憶するステップにおいて、前記テスト工程におけるテストで発生した不具合の要因を記憶し、
前記選択するステップにおいて、前記発生した不具合の要因に基づき、前記優先してテストを実施するべきテストケースを選択する情報処理装置。
【請求項20】
プロセッサと、メモリとを備える情報処理装置であって、
前記プロセッサが、
テスト工程において実施されたテストに関する情報を記憶するステップと、
前記テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択するステップと、
前記テスト工程において、前記選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出するステップと、
前記抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定するステップと
を実行し、
前記抽出するステップにおいて、前記テスト実施済みのテストケースの因子及び水準と一致する因子及び水準のテストケースを、前記類似するテストケースとし、
前記因子はコンピュータの状態変化に影響を与え得る要因を表し、
前記水準は、前記因子の具体的な要素を表す情報処理装置。
【請求項21】
テスト工程において実施されたテストに関する情報を記憶する手段と、
前記テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択する手段と、
前記テスト工程において、前記選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出する手段と、
前記抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定する手段と
を具備し、
前記抽出する手段は、前記テスト実施済みのテストケースと、作成の際に参照した機能仕様書が一致するテストケースを、前記類似するテストケースとするシステム。
【請求項22】
テスト工程において実施されたテストに関する情報を記憶する手段と、
前記テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択する手段と、
前記テスト工程において、前記選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出する手段と、
前記抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定する手段と
を具備し、
前記記憶する手段は、前記テスト工程におけるテストで発生した不具合を改修する工数を記憶し、
前記選択する手段は、前記発生した不具合を改修する工数に係る数値に基づき、前記優先してテストを実施するべきテストケースを選択するシステム。
【請求項23】
テスト工程において実施されたテストに関する情報を記憶する手段と、
前記テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択する手段と、
前記テスト工程において、前記選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出する手段と、
前記抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定する手段と
を具備し、
前記記憶する手段は、前記テスト工程におけるテストで発生した不具合の要因を記憶し、
前記選択する手段は、前記発生した不具合の要因に基づき、前記優先してテストを実施するべきテストケースを選択するシステム。
【請求項24】
テスト工程において実施されたテストに関する情報を記憶する手段と、
前記テストに関する情報に基づき、テスト実施済みのテストケースから、優先してテストを実施するべきテストケースを選択する手段と、
前記テスト工程において、前記選択したテストケースと類似するテストケースをテスト未実施のテストケースから抽出する手段と、
前記抽出したテストケースについてテストを実施する優先度を、他のテスト未実施のテストケースよりも高く設定する手段と
を具備し、
前記抽出する手段は、前記テスト実施済みのテストケースの因子及び水準と一致する因子及び水準のテストケースを、前記類似するテストケースとし、
前記因子はコンピュータの状態変化に影響を与え得る要因を表し、
前記水準は、前記因子の具体的な要素を表すシステム。