(57)【要約】      （修正有）【課題】テストの実施途中であっても、潜在的に不具合検出の可能性が高いテスト項目が選択されるテスト項目選択装置を提供する。【解決手段】価値計算部は、テスト項目テーブルおよびテスト結果テーブルに基づいて、テスト項目の価値を計算する。テスト項目選択部は、価値の降順でテスト項目をソートし、ユーザが設定したテスト項目数のテスト項目リストを生成する。実施結果登録部は、テスト項目リストについてユーザに実施されたテスト項目に対して実施結果を登録し、また、テスト結果テーブルに新しいテスト結果として登録する。仮合格結果登録部は、実施結果が合格である場合、実施されたテスト項目と類似する類似テスト項目を抽出し、類似テスト項目に対応するテスト結果テーブルに新しいテスト結果として、仮合格を登録する。仮合格を登録した類似テスト項目の価値は再計算され、テスト項目選択部は、再計算後の価値に応じてテスト項目リストを更新する。【選択図】図１
2015072576.tif 000002
【特許請求の範囲】
【請求項１】
データベースからテスト項目テーブルおよびテスト結果テーブルのデータを取得し、前記データに基づいて、テスト項目の価値を計算する価値計算部と、
前記価値の大きさによる降順で全ての前記テスト項目をソートし、ソート後のテスト項目一覧から、予めユーザが設定したテスト項目数だけのテスト項目リストを生成するテスト項目選択部と、
前記テスト項目リスト順に実施されたテスト項目についてユーザによる実施結果を取得し、前記テスト項目リスト中の実施されたテスト項目に対して、前記実施結果を登録するとともに、前記データベースの実施されたテスト項目に対応するテスト結果テーブルに新しいテスト結果として、前記実施結果を登録する実施結果登録部と、
前記実施結果が合格である場合、前記実施されたテスト項目と類似するテスト項目を類似テスト項目として抽出し、前記データベースの前記類似テスト項目に対応するテスト結果テーブルに新しいテスト結果として、仮合格を登録する仮合格結果登録部とを、備え、
前記価値計算部は、前記仮合格となったテスト項目について、テスト項目の価値を再計算し、前記テスト項目選択部は、再計算後の前記価値に応じて前記テスト項目リストを更新するテスト項目選択装置。
【請求項２】
前記テスト項目の価値は、前記テスト項目毎に実施回数および不合格回数を集計し、不合格回数／実施回数と定義する請求項１に記載のテスト項目選択装置。
【請求項３】
前記テスト項目リストの上位にリストアップされているテスト項目から、順次、実施される請求項１又は請求項２に記載のテスト項目選択装置。
【請求項４】
前記テスト項目の実施結果は、ユーザインタフェースを介して取得する請求項１に記載のテスト項目選択装置。
【請求項５】
前記再計算後の価値は、前記テスト項目テーブルの価値欄に更新登録される請求項２に記載のテスト項目選択装置。
【請求項６】
前記類似テスト項目は、前記テスト項目テーブルのグループＩＤ欄に同一グループＩＤが登録されている請求項１に記載のテスト項目選択装置。
【請求項７】
前記類似テスト項目は、機能あるいはモジュールによって、予め分類されている請求項１に記載のテスト項目選択装置。
【請求項８】
前記類似テスト項目の価値の再計算は、仮合格結果をもつ前記テスト項目の価値は０として行う請求項５に記載のテスト項目選択装置。
【請求項９】
前記類似テスト項目の価値の再計算は、仮合格結果を実施回数としてカウントして計算する請求項５にテスト項目選択装置。
【請求項１０】
データベースのテスト項目テーブルおよびテスト結果テーブルのデータを入力するとともに、前記データベースのテスト項目テーブルおよびテスト結果テーブルにアクセスして、前記実施結果、前記仮合格を登録する入出力部を備える請求項１乃至請求項９のいずれか１項に記載のテスト項目選択装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、テスト項目選択装置に関する。
【背景技術】
【０００２】
近年、製品の高性能・高機能化に伴い、ソフトウェアは急激に大規模・複雑化している。そのため、ソフトウェアの品質を確認するために実施するテスト項目の件数も増加している。
【０００３】
ソフトウェア開発におけるテスト工程では、テストの実施と不具合の修正が繰り返し実施されるが、毎回全てのテスト項目を実施できるほど、時間に余裕はない。
【０００４】
時間的な制約のもとで、不具合やデグレードを見つけるには、効率的なテストの実施、すなわち、最小限のテスト項目で最大限の不具合を検出することが必要である。
【０００５】
リグレッションテストのたびに、全てのテスト項目を実施することはできない。そのため、不具合が見つかりそうなテスト項目を予め選択し、そのテスト項目のみを実施することが多い。
【０００６】
しかしながら、選択したテスト項目のみを、途中で見直すことなく最後まで実施すると、結果的に、不具合の検出が期待できないテスト項目の実施ばかりに時間を費やしてしまうという問題がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−１０２４７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明が解決しようとする課題は、テストの実施途中であっても、潜在的に不具合検出の可能性が高いテスト項目が選択されるテスト項目選択装置を提供することである。
【課題を解決するための手段】
【０００９】
実施形態のテスト項目選択装置は、データベースからテスト項目テーブルおよびテスト結果テーブルのデータを取得し、前記データに基づいて、テスト項目の価値を計算する価値計算部と、前記価値の大きさによる降順で全ての前記テスト項目をソートし、ソート後のテスト項目一覧から、予めユーザが設定したテスト項目数だけのテスト項目リストを生成するテスト項目選択部と、前記テスト項目リスト順に実施されたテスト項目についてユーザによる実施結果を取得し、前記テスト項目リスト中の実施されたテスト項目に対して、前記実施結果を登録するとともに、前記データベースの実施されたテスト項目に対応するテスト結果テーブルに新しいテスト結果として、前記実施結果を登録する実施結果登録部と、前記実施結果が合格である場合、前記実施されたテスト項目と類似するテスト項目を類似テスト項目として抽出し、前記データベースの前記類似テスト項目に対応するテスト結果テーブルに新しいテスト結果として、仮合格を登録する仮合格結果登録部とを、備え、前記価値計算部は、前記仮合格となったテスト項目について、テスト項目の価値を再計算し、前記テスト項目選択部は、再計算後の前記価値に応じて前記テスト項目リストを更新する。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係るテスト項目選択装置の概略構成を示すブロック図である。
【図２】テスト項目テーブルおよびテスト結果テーブルの一例を示す図である。
【図３】実施形態に係るテスト項目選択装置におけるテスト項目の選択処理の流れを示すフローチャートである。
【図４】テスト項目テーブルおよびテスト結果テーブルの一例を示す図である。
【図５】ソート前後のテスト項目の一覧を示す図である。
【図６】実施テスト項目のリストを示す図である。
【図７】リストの最上位のテスト項目の実施結果の登録例を示す図である。
【図８】類似テスト項目の抽出を説明する図である。
【図９】仮合格の登録を説明する図である。
【図１０】パターン１による再計算を説明する図である。
【図１１】パターン２による再計算を説明する図である。
【図１２】新しい実施テスト項目のリストの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の一実施の形態について、図面を参照して説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
【００１２】
まず、本実施形態で用いる主要な用語について説明する。
【００１３】
「テスト」とは、ソフトウェアの開発において、実装したソースコードの誤りを発見する行為をいう。
【００１４】
「不合格」とは、テストを実施した結果、動作結果がテストで期待する結果にならないことをいう。
【００１５】
「欠陥」とは、ソースコードの誤りをいう。バグと表現されることもある。
【００１６】
「不具合」とは、ソフトウェアが期待通りに動作しない現象のことをいう。
【００１７】
「デグレード」とは、ソフトウェアの変更を行った後、一度テストに合格しているテスト項目を再度テストした際に、不合格になることをいう。
【００１８】
「テスト項目」とは、テストの実施の単位をいう。1つのテスト項目には、チェックポイントや実施手順、期待する値などを記録する。テストケースと表現されることもある。
【００１９】
「テスト結果」とは、テスト項目に対するテストを実施した際の記録をいう。結果は合格または不合格のいずれかであり、他に日付やバージョンなどの情報も同時に記録する。
【００２０】
「バージョン」とは、テスト対象のソフトウェアとテスト結果を対応付ける属性をいう。バージョンを元に、どの構成でテストを実施しているか把握できる。ソフトウェアのビルドNoや、構成管理システムのリビジョンNo、マイルストーン毎につけるタグ（β版やRC版）などをバージョンとする。
【００２１】
「リグレッションテスト（回帰テスト）」とは、プログラムを変更した際に、その変更によって予想外の影響が現れていないかどうか確認するために行うテストをいう。ソースコードの欠陥を取り除いたことによって、代わりに新しい欠陥が埋め込まれていないか確認する。
【００２２】
本実施形態においては、或るテスト項目のテスト結果が“合格”であった場合、それと類似するテスト項目は同様に合格である可能性が高いとみなして“仮合格”とし、潜在的に不具合検出の可能性が高いテスト項目を意味するテスト項目の“価値”について、テスト実施途中で（動的に）仮合格となったテスト項目は、その“価値”を再計算し、テスト項目のリストを生成するものである。
【００２３】
図１は、本発明の実施形態に係るテスト項目選択装置の概略構成を示すブロック図である。この装置は汎用のコンピュータ（例えばパーソナルコンピュータ（ＰＣ）等）と、同コンピュータ上で動作するソフトウェアとを用いて実現される。コンピュータとしては、ＣＡＤ（Computer Aided Design）やＣＡＥ（Computer Aided Engineering）に好適なエンジニアリングワークステーション（ＥＷＳ）等も含む。本実施形態はこのようなコンピュータに、テスト項目の価値計算、テスト項目の仮合格登録、選択したテスト項目リストの提示に係る一連の手続きを実行させるプログラムとして実施することもできる。
【００２４】
図１に示すように、本実施形態に係るテスト項目選択装置は、主として、入出力部１１、テスト項目の価値計算部１２、テスト項目選択部１３、テスト項目の実施結果登録部１４、仮合格結果登録部１５から構成されている。
【００２５】
入出力部１１は、外部に置かれるデータベースに格納されている、テスト項目テーブル、テスト結果テーブルを入力する。テスト項目テーブルには、複数のテスト項目が登録されている。テスト結果テーブルには、各テスト項目に対して複数回のテスト結果が登録されている。図２（ａ）は、テスト項目テーブルの一例を示している。図２（ａ）に示すように、テスト項目テーブルには、“テストＩＤ”、“グループＩＤ”、“価値”が必須の情報として含まれている。本実施形態に係るテスト項目選択装置の起動の際は、テスト項目テーブルでは、各テスト項目のもっている情報として、”価値”は空欄である。類似するテスト項目には、同一のグループＩＤが登録されている。類似するテスト項目か否かの分類手法については、ユーザが、機能による分類、モジュールによる分類など、様々な分類手法を採用することができる。図２（ｂ）は、テスト結果テーブルの一例を示している。図２（ｂ）に示すように、テスト結果テーブルには、“テストＩＤ”、“合否”が必須の情報として含まれている。したがって、テストＩＤによって、テスト結果はテスト項目と関連付けられている。入出力部１１は、テスト結果テーブルに登録されている全てのテスト結果を取得する。
【００２６】
取得したテスト項目テーブルおよびテスト結果テーブルのデータは、価値計算部１２で参照される。
【００２７】
テスト項目の価値計算部１２は、入出力部１１を介して取得したテスト項目テーブルおよびテスト結果テーブルのデータに基づいて、テスト項目の“価値”を計算する。テスト項目の“価値”の付与方法として、ユーザが任意の値を設定することもできるが、本実施形態においては、過去のテスト結果を利用して“不合格の割合”を算出し、テスト項目の“価値”として利用する。テスト項目の価値計算については、後述する。テスト項目の価値は、後述するように、所定の場合に再計算される。テスト項目の価値は、テスト項目選択部１３によって参照される。
【００２８】
テスト項目選択部１３は、テスト項目を選択する。具体的には、テスト項目の価値の大きさ順に基づいてテスト項目リストを生成し、予めユーザが設定したテスト項目数だけのテスト項目を選択する。ユーザが設定するテスト項目数の大きさであるが、大きすぎても小さすぎても適切ではない。例えば、少なくとも２以上に設定するのが好適である。テスト項目リストは、価値の再計算に応じて更新される。基本的に、ユーザは、テスト項目リストの上位にリストアップされているテスト項目から、順次、実施する。ユーザは、ユーザインタフェースを介してテスト項目の実施結果をテスト項目選択装置に入力する。
【００２９】
実施結果登録部１４は、入出力部１１を介して、テスト項目の実施結果を取得する。実施結果登録部１４は、テスト項目選択部１３から取得したテスト項目リストのうち、実施されたテスト項目に対して、実施結果を登録する。さらに、実施結果登録部１４は、入出力部１１を介してデータベースにアクセスし、テスト結果テーブルに実施されたテスト項目に対する新しいテスト結果として、結果ＩＤ、テストＩＤ、合否等のすべてを実施結果として登録する。仮合格結果登録部１５は、入出力部１１を介して、テスト項目の実施結果を取得し、実施結果が“合格”である場合、実施されたテスト項目と同じグループＩＤをもつテスト項目を類似テスト項目として抽出する。さらに、仮合格結果登録部１５は、入出力部１１を介してデータベースにアクセスし、テスト結果テーブルに抽出した類似テスト項目に対する新しいテスト結果として“仮合格”を登録する。
【００３０】
“仮合格”を登録した類似テスト項目の価値は、価値計算部１２で再計算され、再計算後の価値は、テスト項目テーブルの“価値”欄に更新登録される。再計算の手法については、いくつか考えられるが、詳細は後述する。
【００３１】
次に、以上のように構成されたテスト項目選択装置１００におけるテスト項目の選択処理の流れについて説明する。
【００３２】
図３は、実施形態に係るテスト項目選択装置１００におけるテスト項目の選択処理の流れを示すフローチャートである。
【００３３】
まず、ユーザが設定する実施予定のテスト項目数ｎを取得する（ステップＳ３１）。
【００３４】
次いで、テスト項目の価値を、テスト結果に基づいて計算する（ステップＳ３２）。係る価値計算は、全てのテスト項目に対して行い、データベースに登録する。
【００３５】
次いで、予め設定された選択数の実施テスト項目を選択する（ステップＳ３３）。
【００３６】
次に、テスト項目を1件実施し、テスト結果をデータベースに登録する（ステップＳ３４）。
【００３７】
実施予定のテスト項目数を１つ減算する（ステップＳ３５）。
【００３８】
次いで、実施すべき最後のテスト項目であるか否かを判定する（ステップＳ３６）。ユーザが３件のテスト項目を実施するとして設定した場合は、「３件目のテスト項目である？」という意味である。
【００３９】
最後のテスト項目でなければ（ステップＳ３６でＮｏ）、当該テスト項目の実施結果が合格であるか否かを判定する（ステップＳ３７）。
【００４０】
合格であれば（ステップＳ３７でＹｅｓ）、類似テスト項目に、仮合格結果を登録（ステップＳ３８）した後、ステップＳ３２に戻ってテスト項目の価値を再計算する。合格でなければ（ステップＳ３７でＮｏ）、ステップＳ３４に戻る。
【００４１】
一方、最後のテスト項目であれば（ステップＳ３６でＹｅｓ）、テスト項目の選択処理を終了する。
【００４２】
＜テスト項目の価値計算＞
次に、テスト項目の価値計算について詳述する。上述したように、テスト項目選択装置の起動の際は、テスト項目テーブルでは、各テスト項目の持っている情報として、”価値”は空欄である。そこで、テスト結果テーブルに登録されている全てのテスト結果を取得し、それらテスト結果を使って、テストID毎に実施回数、不合格回数を集計して、価値の初期値を求める。
【００４３】
図４（ａ）は、データベースから取得したテスト項目テーブルの一例を、図４（ｂ）は、データベースから取得したテスト結果テーブルの一例を示している。
【００４４】
まず、グループＩＤに着目すると、テストＩＤ“１”、テストＩＤ“２”、テストＩＤ“４”は類似テスト項目であることがわかる。また、テスト結果テーブルからは、テストＩＤ“１”は３回実施され、そのうち、結果ＩＤ“５”だけが合格していることがわかる。
【００４５】
本実施形態では、テスト項目の価値を、「不合格回数／実施回数」と定義する。
【００４６】
図４に示す例では、ID:1のテスト項目の価値は、２回／３回＝0.667となる。
【００４７】
全てのテスト項目について価値を算出した後、価値の大きさによる降順でテスト項目をソートする。図５は、ソートする前のテスト項目の一覧およびソート後のテスト項目の一覧を示している。各テスト項目の一覧は、一旦、メモリ（図示しない）に保持させるのが好適である。
【００４８】
ユーザによって予め設定されている実施するテスト項目数に基づいて、価値が大きいテスト項目から順に選択し、実施するテスト項目のリストを作成する。図６は、テスト項目数が３件と設定された場合に、ソート後のテスト項目の一覧から３件のテスト項目が選択され、作成された実施テスト項目のリストを示している。実施テスト項目のリストは、例えば、テストＩＤおよび実施結果を格納する欄から成っている。実施テスト項目のリストは、一旦、メモリ（図示しない）に保持させるのが好適である。
【００４９】
＜テスト項目の実施結果の登録＞
ユーザは、作成された実施テスト項目のリストにしたがって、リストの上位からテスト項目を実施する。尚、テスト項目の実施自体は、専らユーザに委ねられるものである。ここでは、リストの上位順にしたがって実施することを前提条件とする。
【００５０】
実施テスト項目のリストのテスト項目を1件実施し、実施結果を実施テスト項目のリストとデータベース内のテスト結果テーブルに登録する。図７は、リストの最上位のテスト項目の実施結果の登録例を示す図である。図７に示す例では、テストＩＤ：１の実施結果は、結果ＩＤ：１６として“合格（○）”となっている。
【００５１】
＜仮合格の登録＞
テスト項目の実施結果が合格だった場合、当該テスト項目に類似するテスト項目に対して、仮合格をデータベースに登録する。
【００５２】
まず、テスト項目テーブルをデータベースから取得し、ユーザが実施したテスト項目と同じグループIDをもつテスト項目を類似テスト項目として抽出する。図８は、類似テスト項目の抽出を説明する図である。図８に示す例では、実施したテストＩＤ：１と同一グループIDのテスト項目として、テストＩＤ：２，４が抽出されている。
【００５３】
抽出した類似テスト項目に対して、“仮合格”の結果をデータベース内のテスト結果テーブルに登録する。図９は、仮合格の登録を説明する図である。図９に示す例では、テスト結果テーブルの結果ＩＤ：１７，１８として、テストＩＤ：２，４の新しいテスト結果として“仮合格”が登録されている。
【００５４】
＜類似テスト項目の価値の再計算＞
次に、類似テスト項目の価値の再計算について詳述する。
【００５５】
テスト項目テーブル、テスト結果テーブルをデータベースから取得し、類似テスト項目の価値を再計算する。価値の再計算方法については、いくつか考えられる。本実施形態では、仮合格結果をもつテスト項目の価値は0にする仕方（パターン１と呼ぶ）、仮合格結果を実施回数としてカウントして計算する仕方（パターン２と呼ぶ）で、再計算を試みている。図１０は、パターン１による再計算を説明する図である。図１０に示すように、パターン１による再計算では、テストＩＤ：２，４の価値をそれぞれ“０”にしている。
【００５６】
一方、図１１は、パターン２による再計算を説明する図である。テスト結果テーブルからテストＩＤ：２，４のテスト結果をすべて取得する。そのテスト結果の中には、登録した仮合格の結果も含まれる。このテスト結果を使って、不合格回数と実施回数を集計する。上述したように、実施回数には、仮合格の分も加えられている。図１１に示すように、テストＩＤ：２の価値は、１回／３回＝０．３３３に、テストＩＤ：４の価値は、２回／４回＝０．５になっている。
【００５７】
＜実施テスト項目数の設定＞
上述してきたように、実施テスト項目数の設定は、ユーザに委ねられている。極端な場合として、例えば、２件が設定されたとする。このようなケースであっても、本実施形態では、最初に選択された２件のテスト項目が同一グループに属しており、かつ、１件目のテスト項目を実施した結果が合格であれば、価値を再計算して選択される新しい実施テスト項目のリストは、変化する可能性がある。
【００５８】
さらに、価値の再計算方法を上記のパターン１とした場合は、１件目のテスト項目と同一グループのテスト項目の価値は０になるので、確実に新しい実施テスト項目のリストは変化する。パターン２の場合は、価値の値は下がるが、実施テスト項目のリストが変化するか否かは価値の初期値次第となる。
【００５９】
したがって、実施テスト項目数の設定は、大きすぎても小さすぎても適切ではないといえる。
【００６０】
＜実施テスト項目の選択＞
テスト項目テーブルをデータベースから取得し、価値の大きさにより降順にソートする。実施済みのテスト項目も含めて、価値が大きいものから順にテスト項目を選択し、新しい実施テスト項目のリストを作成する。
【００６１】
図１２は、新しい実施テスト項目のリストの一例を示す図である。図１２（ａ）は、パターン１による再計算後の新しい実施テスト項目のリストである。図１２（ａ）では、順にテストＩＤ：１，３，５が選択されている。
【００６２】
図１２（ｂ）は、パターン２による再計算後の新しい実施テスト項目のリストである。図１２（ｂ）では、順にテストＩＤ：１，４，３が選択されている。
【００６３】
以上説明したように、本実施形態によれば、最新のテスト結果を使って実施すべきテスト項目を見直し、合格の可能性が高いテスト項目の価値を下げるため、結果的に合格であるテスト項目に多くの工数を割く状況を回避できる。さらに、時間制約の中で、効率的にリグレッションテストを実施することができる。
【００６４】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６５】
１００・・・テスト項目選択装置
１１・・・入出力部
１２・・・価値計算部
１３・・・テスト項目選択部
１４・・・実施結果登録部
１５・・・仮合格結果登録部
【図１】
2015072576.tif 000003
【図２】
2015072576.tif 000004
【図３】
2015072576.tif 000005
【図４】
2015072576.tif 000006
【図５】
2015072576.tif 000007
【図６】
2015072576.tif 000008
【図７】
2015072576.tif 000009
【図８】
2015072576.tif 000010
【図９】
2015072576.tif 000011
【図１０】
2015072576.tif 000012
【図１１】
2015072576.tif 000013
【図１２】
2015072576.tif 000014