JP2013125420A - コンピュータプログラムのテスト仕様を生成するための装置およびプログラム - Google Patents

コンピュータプログラムのテスト仕様を生成するための装置およびプログラム Download PDF

Info

Publication number
JP2013125420A
JP2013125420A JP2011273931A JP2011273931A JP2013125420A JP 2013125420 A JP2013125420 A JP 2013125420A JP 2011273931 A JP2011273931 A JP 2011273931A JP 2011273931 A JP2011273931 A JP 2011273931A JP 2013125420 A JP2013125420 A JP 2013125420A
Authority
JP
Japan
Prior art keywords
data
factor
test specification
bug
level
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011273931A
Other languages
English (en)
Other versions
JP5787404B2 (ja
Inventor
Motoya Kobayashi
元也 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHIFT Inc
Original Assignee
SHIFT Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHIFT Inc filed Critical SHIFT Inc
Priority to JP2011273931A priority Critical patent/JP5787404B2/ja
Publication of JP2013125420A publication Critical patent/JP2013125420A/ja
Application granted granted Critical
Publication of JP5787404B2 publication Critical patent/JP5787404B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】プログラムのバグ検出のためのテスト仕様書の作成において、テストの精度を十分に担保しつつテストに要するコストの削減を可能とする手段を提供する。
【解決手段】プログラムを実行するコンピュータの状態変化に影響を与えうる要因を因子、各々の因子が取り得るパラメータを水準とするとき、バグ検出のためのテスト仕様の設計者は、複数の確認項目の各々に関し、複数の因子を選択し、それら複数の因子の各々に関し複数の水準を選択することで、テスト仕様を構成するパターンを生成する。本発明にかかる装置によれば、因子・水準の選択時に過去のテスト仕様設計において選択された因子・水準に基づき、ある因子とともに選択された因子の選択確率や、ある因子内である水準が選択された確率が表示される。テスト仕様設計者はそれらの情報を参考に因子・水準を選択することで、低コストで高い精度でバグ検出を可能とするテスト仕様を設計できる。
【選択図】図8

Description

本発明は、コンピュータプログラムに含まれる可能性のあるバグを検出するための技術に関する。
コンピュータに対するデータ処理の指示群であるコンピュータプログラム(以下、単に「プログラム」とも呼ぶ)には、プログラミング時に生じたエラーであるバグが含まれている可能性がある。プログラマーは通常、リリース前のプログラムに従ったデータ処理を実際にコンピュータに行わせ、ある状態のコンピュータに対しサンプルとしての操作を行い、その操作に応じてコンピュータが意図した状態に変化するか否かを確認する。以下、本願においてこの状態変化の確認作業を「テスト」と呼ぶ。
上記のテストにおいてコンピュータが意図せぬ状態に変化した場合、その前後の状態および操作に関連するプログラム内のコード群の中にバグが存在していることが分かり、バグの検出がなされたことになる。
プログラマーは、上記のようにバグの検出を行うと、関連するコード群を読み解きながら、バグの特定および修正を行う。
上記のバグ特定の作業を軽減するための技術として、例えば特許文献1には、コンピュータが意図せぬ状態変化をしたケース(反例)を多数集積し、それらの反例に関与する処理のうち登場頻度が高い処理を特定することで、バグの存在箇所の推測を可能とする技術が提案されている。
特開2010−205066号公報
上記のバグ検出のためのテストを網羅的かつ効率的に行うためには、テスト作業を行う前にテスト仕様を決定しておく必要がある。テスト仕様とは、「Aという状態のコンピュータに対し、Xという操作を行い、Bという状態に正しく変化したか否かを確認せよ」というバグ検出のための作業を、コンピュータが取り得る多数の状態の各々に関し、ユーザが行う可能性のある様々な操作について列挙したものである。
いったん上記のようなテスト仕様が準備されると、バグ検出の作業は比較的単純な作業となるため、低コストで高い精度のバグ検出が可能となる。
テスト仕様の作成にあたり、コンピュータが取り得る状態はプログラムの仕様書などから特定され、通常その数は有限である。一方、コンピュータの状態を変化させ得る操作は無数に有り得る。
例えば、プログラムに従いコンピュータがユーザに対しデータ入力を促すテキストボックスを表示している状態において、ユーザはそのテキストボックスに入力する可能性のある文字列は無限にある。従って、コンピュータの状態が正しく変化するか否かを確認するために、それら全ての文字列を入力してみることはできない。
ただし、例えばテキストボックスに「あ」を入力した場合に正しい状態に変化する場合、「い」を入力した場合にも正しい状態に変化する確率は極めて高い。それらのデータはいずれも全角ひらがな1文字であり、その属性がほぼ同一であるためである。従って、「全角ひらがな1文字の入力」という操作のパターンに関し、例えば「あ」の入力といったそのパターンに従った操作を1つ行ってテストを行えば、同じパターンに従った他の操作を繰り返す必要はない。すなわち、ある状態のコンピュータに対し、無数の操作が行われる可能性があっても、それらをパターン化することで、有限数のテストによりバグ検出の目的を達することができる。
操作をパターン化する手順は例えば以下のとおりである。まず、コンピュータの状態変化に影響を与え得る要因を特定する。上記のテキストボックスの例においては、例えば入力する文字列の属性である「半角/全角」「文字種別」「文字数」が状態変化に影響する要因として考えられる。本願において、コンピュータの状態変化に影響を与え得ると思われるこれらの要因を「因子」と呼ぶ。
次に、各因子に関し、可能性のある具体的な操作内容を1以上(通常は複数)のグループに分類する。例えば、テキストボックスに入力される文字列は、因子「半角/全角」に関しては、例えば「半角」「全角」「半角全角混合」のように分類することができる。また、因子「文字種別」に関しては、例えば「ひらがな」「カタカナ」「漢字」「数字」「記号」「英大文字」「英小文字」「複数文字種別混合」のように分類することができる。また、因子「文字数」に関しては、例えば「0文字」「1文字」「2文字以上、最大文字数未満」「最大文字数」のように分類することができる。これらの分類、すなわち、各因子に着目して具体的な操作をグループ化したものを、本願において「水準」と呼ぶ。
上記のように因子と水準を決定すると、続いて、各因子から1つずつ水準を選択し、それらの水準の組み合わせを1つのパターンとして生成する。そのように生成されるパターンが、1つのテストの内容を示す。
例えば、因子「全角/半角」に関して水準「全角」を選択し、因子「文字種別」に関して水準「ひらがな」を選択し、因子「文字数」に関して水準「1文字」を選択して生成されるパターン(「全角/半角」=「全角」、「文字種別」=「ひらがな」、「文字数」=「1文字」)は、「テキストボックスに全角ひらがな1文字を入力した際にコンピュータが正しく状態変化するかチェックする」というテストの内容を示すパターンとなる。従って、このパターンに従い、バグ検出者はテキストボックスにいずれかの全角ひらがな1文字(例えば、「あ」でもよいし、「い」でもよい)の入力を行い、コンピュータが正しく状態変化をするか否かをチェックすることになる。
以上がテストのために操作をパターン化する手順の説明である。
例えば上記のテキストボックスのようなテスト対象のオブジェクトまたはオブジェクト群に関し、1つのパターンに従ってテストでは不十分である。例えば、全角ひらがな1文字の入力ではエラーが出なくても、他のパターンに従った文字列、例えば半角カタカナ最大文字数を入力した場合にはエラーが出るかも知れないためである。従って、精度の高いテストを行うためには、テスト対象のオブジェクトまたはオブジェクト群に関し、多数の異なるパターンを生成する必要がある。
例えば、上記の例のように、3つの因子「全角/半角」「文字種別」「文字数」の各々に関する水準が3個、8個、4個である場合、生成され得るパターンの数は3×8×4=96となる。
上述したように、1つのパターンは1つのテストの内容を示す。従って、テスト対象のプログラムに従ってコンピュータにより表示される複数のユーザインタフェースの各々に含まれるテスト対象の複数のオブジェクト(またはオブジェクト群)の各々に関し、上記のように多数のパターンを生成すると、それらのパターンの集合体がすなわちテスト仕様書となる。バグ検出者は、テスト仕様書に含まれるパターンの各々に従った操作を行い、コンピュータの状態が正しく変化するか否かをチェックし、その結果を記録していくことで、網羅的なテストを効率的に行うことができる。
このように、テスト仕様書は概ね以下の手順で作成される。
(1)テスト対象のプログラムの仕様書などに基づき、いずれのオブジェクト(オブジェクト群)に対する操作をテスト対象とするかを特定する。
(2)(1)でテスト対象として特定したオブジェクト(オブジェクト群)の各々に関し、確認すべき内容(状態変化のどこを確認するか)を特定する。
(3)(2)で特定した確認すべき内容の各々に関し、因子を特定する。
(4)(3)で特定した因子の各々に関し、水準を特定する。
(5)(3)および(4)で特定した因子および水準に基づき、パターンを生成する。
(6)(5)で生成したパターン群をテスト仕様書とする。
ところで、テストに要するコストは、(5)で生成されるパターンの数により大きく影響を受ける。例えば、テスト対象の1つのプログラムにユーザインタフェースが10個あり、各ユーザインタフェースにテスト対象となるオブジェクト(オブジェクト群)が平均100個あり、各テスト対象のオブジェクト(オブジェクト群)に関し平均100個のパターンを生成したとすると、そのプログラムに関し生成されるパターンの数は10×100×100=100,000個となる。
従って、仮に1つのパターンに従ったテスト作業に関し100円のコストがかかるとすれば、テスト作業全体に要するコストは100円×100,000個=10,000,000円となる。
プログラムの開発業者としては、上記のテストに要するコストを可能な限り削減したい、というニーズがある。コスト削減のためには上記のテスト仕様書の作成手順における(5)で生成されるパターンの数を減らす必要があるが、その方法の一つとして、(4)において特定した水準のうち重要でないと思われるものを間引き、(5)においては間引いた水準を用いたパターンを生成しない、ということが考えられる。
コスト削減のためにパターン数を減らす目的で水準を間引く場合、いずれの水準を間引くかによってテストの精度が大きく左右され得る。しかしながら、従来、どの水準を間引くかはテスト仕様設計者の経験や勘により決定されていた。従って、パターン生成時に水準を間引くと、テストの精度を必ずしも十分に担保できない、という問題があった。
本発明は、上述した事情に鑑み、プログラムのバグ検出のためのテスト仕様書の作成において、テストの精度を十分に担保しつつテストに要するコストの削減を可能とする手段を提供することを目的とする。
上記の目的を達するために、本発明は、
コンピュータプログラムに従いデータ処理を行うコンピュータが第1の状態から第2の状態に変化する際に前記第2の状態の決定に用いられ得るパラメータを水準とし、複数の水準のうち互いに排他的に選択され得る同種の水準のグループを因子とするとき、1以上の因子の各々から選択された1の水準の組み合わせであるパターンを示すパターンデータの1以上の集まりにより当該コンピュータプログラムに含まれるバグの検出のためのテスト仕様を示すテスト仕様データを生成するテスト仕様生成装置であって、
1以上の因子の各々を示す1以上の因子データと、前記1以上の因子データの各々に関し当該因子データにより示される因子に含まれる1以上の水準の各々を各々示す1以上の水準データと、前記1以上の水準データの各々に関し当該水準データにより示される水準が関与するバグ存在確率推定値の指標を示すバグ存在確率指標データと、を記憶する記憶手段と、
前記記憶手段に記憶されている前記因子データ、前記水準データおよび前記バグ存在確率指標データに従い、前記1以上の因子と、前記1以上の因子の各々に含まれる前記1以上の水準と、前記1以上の水準の各々に関する前記バグ存在確率推定値の指標とを表示し、テスト仕様を設計するユーザに対し前記1以上の因子の中から1以上の因子を選択し、当該選択した1以上の因子の各々に関し当該因子に含まれる1以上の水準の中から1以上の水準を選択することを促す画面である因子水準選択画面を示す因子水準選択画面データを生成する因子水準選択画面データ生成手段と、
前記因子水準選択画面データに従い前記因子水準選択画面の表示を行う装置に対し前記テスト仕様を設計するユーザが前記因子水準選択画面を見ながら行った操作に応じて当該装置により生成されたデータであって、前記因子水準選択画面に表示されている前記1以上の因子の中から前記テスト仕様を設計するユーザにより選択された1以上の因子と、当該選択された1以上の因子の各々に関し当該因子に含まれる1以上の水準の中から前記テスト仕様を設計するユーザにより選択された1以上の水準とを示すデータである選択因子水準データを取得する選択因子水準データ取得手段と、
所定の規則に従い、前記選択因子水準データ取得手段により取得された前記選択因子水準データにより示される1以上の因子の各々に関し、当該因子に含まれる前記選択因子水準データにより示される1以上の水準の中から1の水準を選択し、当該選択した1以上の水準の組み合わせであるパターンを示すパターンデータを1以上生成し、当該1以上のパターンデータを含むテスト仕様データを生成するテスト仕様データ生成手段と
を備える装置
を第1の実施態様として提案する。
また本発明は、上記の第1の実施態様にかかる装置において、
前記テスト仕様データ生成手段により生成された前記テスト仕様データに含まれる前記1以上のパターンデータの各々に関し、当該パターンデータにより示されるパターンを表示し、バグ検出を行うユーザに対し当該パターンデータにより示されるパターンに関するバグの有無の入力を促す画面であるテスト仕様表示画面を示すテスト仕様表示画面データを生成するテスト仕様表示画面データ生成手段と、
前記テスト仕様表示画面データに従い前記テスト仕様表示画面の表示を行う装置に対し前記バグ検出を行うユーザが前記テスト仕様表示画面を見ながら行った操作に応じて当該装置により生成されたデータであって、前記テスト仕様表示画面に表示される1以上のパターンの各々に関し各々バグの有無を示すデータであるバグ検出データを取得するバグ検出データ取得手段と、
前記バグ検出データ取得手段により過去に取得された1以上のバグ検出データに基づき前記バグ存在確率指標データを生成するバグ存在確率指標データ生成手段と
を備える
という構成を第2の実施態様として提案する。
また本発明は、上記の第1または第2の実施態様にかかる装置において、
パターンの数の閾値を示すパターン数閾値データを取得するパターン数閾値データ取得手段と、
前記テスト仕様データ生成手段により生成されるテスト仕様データに含まれる1以上のパターンデータに関し、当該1以上のパターンデータの各々により各々示される1以上のパターンに含まれる1以上の水準の各々に関する前記バグ存在確率推定値の指標に基づき当該1以上のパターンをテスト仕様から除外した場合に増加する未検出バグ存在確率推定値の指標を示す未検出バグ存在確率指標データを生成する未検出バグ存在確率指標データ生成手段と
を備え、
前記テスト仕様データ生成手段は、前記パターン数閾値データ取得手段により取得されたパターン数閾値データにより示される閾値以下の数であり、かつ、前記所定の規則に従う条件下において、前記未検出バグ存在確率指標データ生成手段により生成される前記未検出バグ存在確率指標データにより示される前記未検出バグ存在確率推定値の指標が最小となる1以上のパターンデータを含む前記テスト仕様データを生成する
という構成を第3の実施態様として提案する。
また本発明は、上記の第1または第2の実施態様にかかる装置において、
前記テスト仕様データ生成手段により生成される1以上のパターンデータの各々に関し、当該パターンデータにより示されるパターンに従ったバグ検出に伴うコストを示すコストデータを取得するコストデータ取得手段と、
テストに伴う総コストの閾値を示す総コスト閾値データを取得する総コスト閾値データ取得手段と、
前記テスト仕様データ生成手段により生成されるテスト仕様データに含まれる1以上のパターンデータに関し、当該1以上のパターンデータの各々により各々示される1以上のパターンに含まれる1以上の水準の各々に関する前記バグ存在確率推定値の指標に基づき当該1以上のパターンをテスト仕様から除外した場合に増加する未検出バグ存在確率推定値の指標を示す未検出バグ存在確率指標データを生成する未検出バグ存在確率指標データ生成手段と、
前記テスト仕様データ生成手段により生成されるテスト仕様データに含まれる1以上のパターンデータに関し、当該1以上のパターンデータの各々により各々示される1以上のパターンに関し前記コストデータ取得手段により取得された前記コストデータにより示されるコストに基づき、当該1以上のパターンデータを含むテスト仕様データに従ったテストに伴う総コストを算出する総コスト算出手段と
を備え、
前記テスト仕様データ生成手段は、前記総コスト算出手段により算出される総コストが前記総コスト閾値データ取得手段により取得された総コスト閾値データにより示される総コスト以下であり、かつ、前記所定の規則に従う条件下において、前記未検出バグ存在確率指標データ生成手段により生成される前記未検出バグ存在確率指標データにより示される前記未検出バグ存在確率推定値の指標が最小となる1以上のパターンデータを含む前記テスト仕様データを生成する
という構成を第4の実施態様として提案する。
また本発明は、上記の第1乃至第4のいずれかの実施態様にかかる装置において、
前記記憶手段は、前記選択因子水準データ取得手段により過去に取得された1以上の選択因子水準データを記憶し、
前記記憶手段により記憶されている前記過去に取得された1以上の選択因子水準データに基づき、テスト仕様を生成する任意のユーザにより過去に選択された任意の一の水準に関し、当該一の水準が当該一の水準が属する因子においてテスト仕様を生成する任意のユーザにより選択された確率である水準選択確率を示す水準選択確率データを生成する水準選択確率データ生成手段を備え、
前記因子水準選択画面データ生成手段は、前記1以上の因子と、前記1以上の因子の各々に含まれる前記1以上の水準と、前記1以上の水準の各々に関する前記バグ存在確率推定値の指標とに加え、前記水準選択確率データ生成手段により生成される前記水準選択確率データに従い、前記1以上の水準の各々に関する前記水準選択確率を表示する画面である前記因子水準選択画面を示す前記因子水準選択画面データを生成する
という構成を第5の実施態様として提案する。
また本発明は、上記の第1乃至第5のいずれかの実施態様にかかる装置において、
前記記憶手段は、前記選択因子水準データ取得手段により過去に取得された1以上の選択因子水準データを記憶し、
前記選択因子水準データ取得手段により取得された前記選択因子水準データにより、新たな一の因子が選択されたことが示された場合、前記記憶手段に記憶されている前記過去に取得された1以上の選択因子水準データに基づき、テスト仕様を生成する任意のユーザにより当該一の因子とともに過去に選択された因子の各々に関し、当該因子が選択された確率である因子選択確率を示す因子選択確率データを生成する因子選択確率データ生成手段と、
前記因子選択確率データ生成手段により生成された前記因子選択確率データに基づき所定の規則に従い1以上の因子を選択し、前記テスト仕様を設計するユーザに対し当該1以上の因子の選択を促す画面である推奨因子表示画面を示す推奨因子表示画面データを生成する推奨因子表示画面データ生成手段と
を備える
という構成を第6の実施態様として提案する。
また本発明は、上記の第2の実施態様にかかる装置において、
テスト対象のコンピュータプログラムに従ったデータ処理を行うプログラム実行手段と、
前記テスト仕様表示画面の表示を行う装置に対し、前記テスト対象のコンピュータプログラムに従って生成される画面を示す画面データを送信する送信手段と、
前記送信手段により送信された画面データに従い前記テスト仕様表示画面の表示を行う装置において表示された画面に対し前記バグ検出を行うユーザが入力したデータを前記テスト仕様表示画面の表示を行う装置から受信する受信手段と、
前記受信手段により受信されたデータを前記テスト対象のコンピュータプログラムに従ったデータ処理におけるパラメータを示すデータとして前記プログラム実行手段に引き渡すデータ引渡手段と
を備える
という構成を第7の実施態様として提案する。
また本発明は、コンピュータを、上記の第1乃至第7の実施態様にかかる装置が備える各手段として機能させるプログラムを、各々、第8乃至第14の実施態様として提案する。
上記の第1の実施態様にかかる装置によれば、テスト仕様設計者は、テスト仕様書の作成に伴うパターン生成の際、各因子の水準毎に表示されるバグ存在確率推定値の指標に基づき、バグ存在確率推定値が高い水準を優先的に選択し、バグ存在確率推定値が低い水準を優先的に間引くことで、テストの精度をあまり下げることなく、テスト仕様に含まれるパターンの数を削減することができる。
上記の第2の実施態様にかかる装置によれば、テスト仕様設計者により設計されたテスト仕様書に従いバグ検出者が行ったバグ検出の結果がフィードバックされ、各因子の各水準に関するバグ存在確率推定値の指標の生成に利用される。その結果、バグ存在確率推定値の指標を生成するためのデータを別途取得する必要がなく、テスト仕様設計に伴うコストが削減される。
上記の第3の実施態様にかかる装置によれば、テスト仕様設計者が、例えばテスト依頼者の予算等に基づき決定されたテスト数、すなわちテスト仕様書に含まれるパターンの数の上限を装置に入力することで、装置により自動的にパターンの間引きが行われ、上限数以下の数のパターンの生成が行われる。その際、未検出バグが存在する確率が低くなるようにパターンの間引きが行われるため、テストの精度があまり下がることがない。
上記の第4の実施態様にかかる装置によれば、テスト仕様設計者が、例えばテスト依頼者から提示されたテストに関する予算額を装置に入力することで、装置により自動的にパターンの間引きが行われ、予算額以下の費用で可能なテスト仕様を構成するパターンの生成が行われる。その際、未検出バグが存在する確率が低くなるようにパターンの間引きが行われるため、テストの精度があまり下がることがない。
上記の第5の実施態様にかかる装置によれば、過去に他のプログラムに関し設計されたテスト仕様書において各水準が選択された確率が表示されるため、テスト仕様設計者はいずれの水準を優先的に選択すべきかを判断する際の指標を得ることができる。
上記の第6の実施態様にかかる装置によれば、テスト仕様設計者がテスト仕様書の作成に際し、ある因子を選択した場合、過去に他のプログラムに関し設計されたテスト仕様書において当該因子とともに高い頻度で選択された因子が提示される。そのため、テスト仕様設計者はいずれの因子を選択すべきかを判断する際の指標を得ることができる。
上記の第7の実施態様にかかる装置によれば、テスト仕様設計者が用いる装置がASP(Application Service Provider)としての役割を果たし、バグ検出者がテスト作業に仕様する装置に対しテスト対象のプログラムがオンラインで提供される。そのため、バグ検出者はテスト対象のプログラムを自分の装置にインストールする必要がない。
上記の第8乃至第14の実施態様にかかるプログラムによれば、汎用のコンピュータを用いて、各々、上記の第1乃至第7の実施態様にかかる装置を実現することができる。
図1は、本発明の一実施例にかかるテスト仕様生成システムの全体構成を示した図である。 図2は、本発明の一実施例にかかるサーバ装置の記憶部に記憶されているプロジェクトテーブルのデータ構成を模式的に示した図である。 図3は、本発明の一実施例にかかるテスト対象のプログラムのユーザインタフェース群を模式的に示した図である。 図4は、本発明の一実施例にかかるサーバ装置の記憶部に記憶されている確認エリアテーブルのデータ構成を模式的に示した図である。 図5は、本発明の一実施例にかかるサーバ装置の記憶部に記憶されている確認項目テンプレートテーブルのデータ構成を模式的に示した図である。 図6は、本発明の一実施例にかかるサーバ装置の記憶部に記憶されている確認項目テーブルのデータ構成を模式的に示した図である。 図7は、本発明の一実施例にかかるサーバ装置の記憶部に記憶されている因子水準テンプレートテーブルのデータ構成を模式的に示した図である。 図8は、本発明の一実施例にかかるテスト仕様設計者の端末装置に表示される因子水準選択画面を模式的に示した図である。 図9は、本発明の一実施例にかかるテスト仕様設計者の端末装置に表示される推奨因子表示画面を模式的に示した図である。 図10は、本発明の一実施例にかかるサーバ装置の記憶部に記憶されている因子水準テーブルのデータ構成を模式的に示した図である。 図11は、本発明の一実施例にかかるサーバ装置において行われるパターン生成方法の一例を説明するための図である。 図12は、本発明の一実施例にかかるサーバ装置の記憶部に記憶されているパターンテーブルのデータ構成を模式的に示した図である。 図13は、本発明の一実施例にかかるテスト仕様設計者の端末装置に表示されるテスト仕様データ生成画面を模式的に示した図である。 図14は、本発明の一実施例にかかるサーバ装置の記憶部に記憶されているテスト仕様データのデータ構成を模式的に示した図である。 図15は、本発明の一実施例にかかるバグ検出者の端末装置に表示されるテスト仕様表示画面を模式的に示した図である。
[1.実施例]
以下に本発明の一実施例にかかるテスト仕様生成システム1の構成および動作を説明する。図1は、テスト仕様生成システム1の全体構成を示した図である。テスト仕様生成システム1は、テスト仕様設計者によるテスト仕様の設計を支援するとともに、バグ検出者によるバグ検出作業のプラットフォームを提供するサーバ装置11、テスト仕様設計者により操作される端末装置12、バグ検出者により操作される端末装置13を備えている。サーバ装置11と端末装置12、サーバ装置11と端末装置13は、互いにインターネット19を介して各種データの送受信が可能である。
サーバ装置11、端末装置12および端末装置13は、各々、汎用のコンピュータに、本発明にかかるアプリケーションプログラムに従った処理を実行させることにより実現される。従って、それらのハードウェア構成についての説明は省略する。
サーバ装置11は、本発明にかかるサーバ装置用のアプリケーションプログラム(以下、「サーバ用アプリ」と呼ぶ)に従った処理を行うことにより、以下の機能構成部を備える装置として機能する。
記憶部:サーバ用アプリや後述の各種データテーブルなど、各種データを記憶する。
因子水準選択画面データ生成部:テスト仕様設計者がパターン生成に用いる因子および水準を選択するための因子水準選択画面を示すデータを生成する。
選択因子水準データ取得部:テスト仕様設計者により端末装置12において選択された因子および水準を示す選択因子水準データを取得する。
テスト仕様データ生成部:選択因子水準データに基づき、テスト仕様設計者の操作に応じた所定の規則に従い、パターンの生成を行い、生成したパターン群を示すテスト仕様データを生成する。
テスト仕様表示画面データ生成部:バグ検出者が端末装置13を用いてバグ検出を行う際にバグ検出者に対しテスト仕様を表示するためのテスト仕様表示画面を示すテスト仕様表示画面データを生成する。
バグ検出データ取得部:バグ検出者により端末装置13に入力された、各パターンに従ったバグ検出の結果を示すバグ検出データを取得する。
バグ存在確率指標データ生成部:過去に他のプログラムに関し行われたバグ検出の結果に基づき、各水準に伴うバグ存在確率の推定値を示すバグ存在確率指標データを生成する。
コストデータ取得部:テスト仕様に含まれる各パターンに関し、そのパターンに従ったバグ検出を行う場合に要するコストを示すコストデータを取得する。
総コスト閾値データ取得部:テスト仕様設計者により端末装置12において入力される、テスト全体にかけられるコストの上限額を示す総コスト閾値データを取得する。
未検出バグ存在確率指標データ生成部:テスト仕様に従いバグ検出が行われた場合のテスト全体における未検出バグ存在確率の推定値を示す未検出バグ存在確率指標データを生成する。
総コスト算出部:テスト仕様に従ってバグ検出を行った場合のバグ検出に要する総コストを算出する。
水準選択確率データ生成部:過去に他のプログラムに関し設計されたテスト仕様に基づき、各水準に関し、その水準が属する因子においてその水準がパターン生成のために選択された確率を示す水準選択確率データを生成する。
因子選択確率データ生成部:過去に他のプログラムに関し設計されたテスト仕様に基づき、テスト仕様設計者により端末装置12において選択された因子とともに過去に選択されている因子の各々に関し、その因子が選択されている確率を示す因子選択確率データを生成する。
推奨因子表示画面データ生成部:テスト仕様設計者により端末装置12において新たな因子が選択された際、その因子に関し生成された因子選択確率データが高い因子を所定数(例えば、上位3つ)表示することで、テスト仕様設計者に対しそれらの因子の選択を推奨する推奨因子表示画面を示す推奨因子表示画面データを生成する。
プログラム実行部:テスト対象のプログラムに従った処理を行う。
送信部:端末装置12および端末装置13に対し、各種データを送信する。
受信部:端末装置12および端末装置13から、各種データを受信する。
データ引渡部:プログラム実行部によるテスト対象のプログラムに従った処理において、バグ検出者により端末装置13において行われた操作に応じて端末装置13から送信されてくるデータをプログラム実行部に対し引き渡す。
端末装置12および端末装置13は、ともにWebブラウザプログラムに従った処理を実行可能なコンピュータであり、以下の機能構成部を備える。
受信部:サーバ装置11から各種データを受信する。
表示部:サーバ装置11から受信した画面データなどに従い、テスト仕様設計者もしくはバグ検出者が各種操作を行うためのユーザインタフェースを表示する。
操作部:テスト仕様設計者もしくはバグ検出者の操作に応じて所定のデータを生成することで、テスト仕様設計者もしくはバグ検出者によるデータ入力を受け付ける。
送信部:サーバ装置11に対し各種データを送信する。
記憶部:サーバ装置11から受信したデータやテスト仕様設計者もしくはバグ検出者により入力されたデータなどの各種データを記憶する。
サーバ装置11の記憶部には、テスト仕様設計者によるテスト仕様の設計を支援するための各種データおよびバグ検出者によるバグ検出の作業を支援するための各種データが記憶されている。
図2は、サーバ装置11の記憶部に記憶されているプロジェクトテーブルのデータ構成を模式的に示した図である。プロジェクトテーブルは、プログラムのテストを行うテスト業者が顧客から受注した(または受注予定の)テスト対象のプログラムに関するデータを格納するデータテーブルである。プロジェクトテーブルはテスト対象のプログラムの各々に対応するデータレコードの集まりであり、各データレコードは以下のデータフィールドを有している。
プログラムID:テスト対象のプログラムを識別するデータを格納する。
プログラム名:テスト対象のプログラムの名称を示すデータを格納する。
顧客名:テストの依頼主である顧客の名称を示すデータを格納する。
納期:テスト結果の納品期限を示すデータを格納する。
総コスト上限:バグ検出作業全体にかけられる総コストの上限額を示すデータを格納する。
全組み合わせ仕様のコスト:テスト仕様設計者により選択された因子および水準を用いて、パターンを全組み合わせに関し生成した場合のテスト仕様(全組み合わせ仕様)に関し、そのテスト仕様に従ったバグ検出を行った場合のコストを示すデータを格納する。
推奨仕様のコスト:テスト仕様設計者により選択された因子および水準を用いて、テスト仕様設計者により選択された方法により生成されたパターンを含むテスト仕様(推奨仕様)に関し、そのテスト仕様に従ってバグ検出を行った場合のコストを示すデータを格納する。
推奨仕様の未検出バグ存在確率推定値:上記の推奨仕様に関し、そのテスト仕様に従ってバグ検出を行った場合の未検出バグ存在確率の推定値を示すデータを格納する。
間引き仕様のコスト:上記の推奨仕様からパターンの間引きを行うことにより総コスト上限以下のコストで可能なバグ検出作業を示すテスト仕様としてサーバ装置11により自動的に生成されたテスト仕様(間引き仕様)に関し、そのテスト仕様に従ってバグ検出を行った場合のコストを示すデータを格納する。
間引き仕様の未検出バグ存在確率推定値:上記の間引き仕様に関し、そのテスト仕様に従ってバグ検出を行った場合の未検出バグ存在確率の推定値を示すデータを格納する。
テスト対象のプログラムに従い、コンピュータは通常、ユーザがコンピュータと対話を行うための複数のユーザインタフェース(画面)を表示する。それぞれのユーザインタフェースには通常、ユーザに対し情報を提示したり、ユーザがコンピュータに対し行う操作を受け付けたりするためのオブジェクトが含まれている。それらのオブジェクトもしくはオブジェクト群がコンピュータの状態変化に関与する。従って、プログラムのテストにおいては、まず、それらのオブジェクト群を互いに関連する一群のオブジェクト群(またはオブジェクト)に区分することが行われる。通常、互いに関連する一群のオブジェクト群はユーザインタフェース内で互いに近接した位置に配置されるため、それらのオブジェクト群を含む領域を以下、「確認エリア」と呼ぶ。
図3は、上述したテスト対象のプログラム、ユーザインタフェース(画面)、確認エリアの関係を説明するために、あるプログラムのユーザインタフェース群を模式的に示した図である。図3に示すユーザインタフェース群は、業務の進捗管理を行うための小さなプログラムのユーザインタフェース群であり、それらは、起動時に表示されるトップ画面(図3の左図)と、トップ画面で「グラフ表示」ボタンがクリック等された際に表示されるグラフ表示画面(図3の右図)の2つのユーザインタフェースで構成されている。
トップ画面は、例えば以下の3つの確認エリアに区分される。
プロジェクト選択エリアa1
キーワード検索エリアa2
グラフ表示指示エリアa3
また、グラフ表示画面は、例えば以下の4つの確認エリアに区分される。
プロジェクト名表示エリアb1
グラフ表示エリアb2
グラフ表示期間指示エリアb3
グラフ表示形式(日週月)指示エリアb4
サーバ装置11の記憶部には上記の確認エリアに関するデータを格納する確認エリアテーブルが記憶されている。図4は確認エリアテーブルのデータ構成を模式的に示した図である。確認エリアテーブルはテスト対象のプログラム毎に設けられ、いずれのプログラムに対応する確認エリアテーブルであるかを示すプログラムIDを伴っている。
確認エリアテーブルは確認エリアの各々に対応するデータレコードの集まりであり、各データレコードは以下のデータフィールドを有している。
確認エリアID:確認エリアを識別するデータを格納する。
画面名:テスト対象のプログラムに従いコンピュータのディスプレイに表示される画面、すなわちユーザインタフェースの名称を示すデータを格納する。
URI:ASPとして機能するサーバ装置11から提供されるテスト対象のプログラムのユーザインタフェース(画面)を識別するURI(Uniform Resource Identifier)を格納する。
確認エリア:確認エリアをバグ検出者に伝える説明を示すデータを格納する。例えば、図3の左図の例では、「画面上のプロジェクト選択エリア」、「画面下のキーワード検索エリア」などのテキストデータを格納する。
続いて、確認エリアの各々に関し、テスト仕様設計者により1以上の確認項目が特定される。例えば、図3の左図のキーワード検索エリアa2に関しては、例えば以下の確認項目が考えられる。
「テキストボックスに文字が入力できる」
「ボタンのクリックに応じてリストボックスに表示される項目が正しく絞り込まれる」
これらの確認項目の多くは、他のプロジェクトの確認エリアに関しても同様に用いられることが多い。従って、頻繁に使われる確認項目はテンプレート化されてサーバ装置11の記憶部に予め記憶されている。図5は、テンプレート化された確認項目に関するデータを格納する確認項目テンプレートテーブルのデータ構成を模式的に示した図である。
確認項目テンプレートテーブルはテンプレート化された確認項目の各々に対応するデータレコードの集まりであり、各データレコードは以下のデータフィールドを有している。
重要度レベル:確認項目の一般的な重要度を示すデータを格納する。
正常・異常:確認項目が、ユーザにより正常な操作が行われた際のコンピュータの状態変化を確認するものか、ユーザにより異常な操作が行われた際のコンピュータの状態変化を確認するものか、と示すデータを格納する。
区分:確認項目を分類した区分を示すデータを格納する。例えば、グラフの表示形式に関する確認項目であることを示す「グラフ(表示形式)」などがこのデータフィールドに格納されるデータ例である。
確認項目:確認項目の内容を示すデータを格納する。例えば、先に例示した「テキストボックスに文字が入力できる」「ボタンのクリックに応じてリストボックスに表示される項目が正しく絞り込まれる」などがこのデータフィールドに格納されるデータ例である。
なお、確認項目テンプレートテーブルの上記データフィールドのうち、「重要度レベル」〜「区分」はテスト仕様設計者がテスト仕様の設計を行う際の参考情報として利用される。また、「正常・異常」はバグ検出者によるバグ検出の作業においてバグ検出者に対し表示され、バグ検出時の参考情報としても利用される。
テスト仕様設計者は端末装置12を用いて、上記の確認項目テンプレートテーブルに適当な確認項目が登録されている場合はその確認項目を選択し、適当な確認項目が確認項目テンプレートテーブルに登録されていない場合は新たにその確認項目を個別に入力することで、テスト対象の確認エリアの各々に関し、確認項目の設定を行う。そのように設定された確認項目に関するデータは、端末装置12からサーバ装置11に送信され、確認項目テーブルに格納されるとともに、確認項目テンプレートテーブルにも登録される。
図6は、サーバ装置11の記憶部に記憶される確認項目テーブルのデータ構成を模式的に示した図である。確認項目テーブルは確認エリア毎に設けられ、いずれの確認エリアに関する確認項目テーブルであるかを識別するためにプログラムIDおよび確認エリアIDが伴っている。確認項目テーブルに含まれる各データレコードは、確認項目テンプレートテーブル(図5)が有するデータフィールドに加え、以下のデータフィールドを有している。
確認項目ID:確認項目を識別するデータを格納する。
全組み合わせ仕様のコスト:この確認項目に関し、全組み合わせ仕様に従ってバグ検出を行った場合のコストを示すデータを格納する。
推奨仕様のコスト:この確認項目に関し、推奨仕様に従ってバグ検出を行った場合のコストを示すデータを格納する。
推奨仕様の未検出バグ存在確率推定値:この確認項目に関し、推奨仕様に従ってバグ検出を行った場合の未検出バグ存在確率の推定値を示すデータを格納する。
間引き仕様のコスト:この確認項目に関し、間引き仕様に従ってバグ検出を行った場合のコストを示すデータを格納する。
間引き仕様の未検出バグ存在確率推定値:この確認項目に関し、間引き仕様に従ってバグ検出を行った場合の未検出バグ存在確率の推定値を示すデータを格納する。
続いて、確認項目の各々に関し、テスト仕様設計者によりパターン生成に用いられる因子と水準の設定が行われる。例えば、図3の左図のキーワード検索エリアa2に関してテスト仕様設計者により「テキストボックスに文字が入力できる」という確認項目が設定された場合、その確認項目に関して、例えば以下のような因子が選択されることが考えられる。
因子「半角/全角」
因子「文字種別」
因子「文字数」
さらに、選択された上記の因子の各々に関し、例えば以下のような水準が選択されることが考えられる。
因子「半角/全角」に関し、水準「半角」、水準「全角」、水準「半角全角混合」
因子「文字種別」に関し、水準「ひらがな」、水準「カタカナ」、水準「漢字」、水準「数字」、水準「記号」、水準「英大文字」、水準「英小文字」、水準「複数文字種別混合」
因子「文字数」に関し、水準「0文字」、水準「1文字」、水準「2文字以上、最大文字数未満」、水準「最大文字数」
これらの因子および因子に含まれる水準の多くは、他のプロジェクトの確認項目に関しても同様に用いられることが多い。従って、頻繁に使われる因子および水準はテンプレート化されてサーバ装置11の記憶部に予め記憶されている。図7は、テンプレート化された因子・水準に関するデータを格納する因子水準テンプレートテーブルのデータ構成を模式的に示した図である。因子水準テンプレートテーブルの各データレコードは以下のデータフィールドを有している。
因子:因子の内容を示すデータを格納する。
コスト増減率:因子に応じたコスト増減率を示すデータを格納する。因子によってバグ検出の作業が容易なものや手間のかかるものがあるため、容易な因子が用いられるパターンに関しては、例えばパターン当たりの標準コストに0.8(80%)を乗じ、手間のかかる因子が用いられるパターンに関しては、例えばパターン当たりの標準コストに1.2(120%)を乗じることで、コスト調整を行う場合がある。このフィールドにはその際の80%、120%などの数値が格納される。
水準:水準の内容を示すデータを格納する。なお、1つの因子に対応して複数の水準が格納され得る。
バグ存在確率推定値:過去に他のテスト対象のプログラムに関し行われたバグ検出の結果に基づき算出された、対応する水準が関与するバグが存在する確率の推定値を格納する。具体的には、対象の水準を含むパターンに従いバグ検出作業が行われた回数を分母とし、バグが検出されたパターンに関してそのパターンに含まれる水準で1を除した数を合計した数を分子とした場合の比率(%)を示す。例えば、ある水準を含むパターンに従い過去にバグ検出作業が行われた回数が1200回であり、そのうち、3つの水準を含むパターンにおいて1回、4つの水準を含むパターンにおいて2回、バグが検出された場合、この水準に関するバグ存在確率推定値は、{(1÷3)+(2÷4)}÷1200×100≒0.0694(%)となる。
水準選択確率:水準選択確率を示すデータを格納する。水準選択確率とは、過去に他のテスト対象のプログラムに関し設計されたテスト仕様において、この水準を含む因子が選択された数を分母とし、この水準が選択された数を分子とした場合の比率(%)を示す。例えば、過去のテスト仕様設計時のパターン生成において、ある水準を含む因子が選択された回数が250回であり、それらのうち、その水準が選択された回数が200回である場合、この水準に関する水準選択確率は200÷250×100=80(%)となる。
因子水準テンプレートテーブルのデータフィールドのうち、フィールド「コスト増減率」はサーバ装置11においてコスト算出に用いられ、フィールド「水準選択確率」はテスト仕様設計者によるテスト仕様の設計において水準選択時に端末装置12において表示され、テスト仕様設計者が水準を選択する際の参考情報として利用される。
テスト仕様設計者は端末装置12を用いて、上記の因子水準テンプレートテーブルに適当な因子および水準が登録されている場合はその因子および水準を順次選択し、適当な因子および水準が因子水準テンプレートテーブルに登録されていない場合は新たにその因子および水準を個別に入力することで、確認項目の各々に関し、因子・水準の設定を行う。そのように新たに設定された因子・水準は因子水準テンプレートテーブルにも登録される。
図8は、テスト仕様設計者が個々の確認項目に関し因子および水準を選択するための画面である因子水準選択画面を模式的に示した図である。因子水準選択画面を示すデータである因子水準選択画面データは、因子水準テンプレートテーブルに格納されているデータに基づきサーバ装置11により生成され、サーバ装置11から端末装置12に送信されて、端末装置12における因子水準選択画面に用いられる。
因子水準選択画面には、以下のエリアが含まれている。
確認項目表示エリアc1
因子水準選択エリアc2
キーワード検索エリアc3
因子水準追加エリアc4
パターン生成指示エリアc5
生成パターン情報表示エリアc6
確認項目表示エリアc1には、パターン生成の対象となる確認項目を特定する情報、すなわち、プログラム名、画面名、確認エリアおよび確認項目が表示される。
因子水準選択エリアc2には、因子水準テンプレートテーブルに格納されている因子および水準がリスト表示され、テスト仕様設計者はそれらの因子および水準に対応するチェックボックスにチェックを入れることで、パターン生成に用いる因子および水準を選択することができる。
一般的に、テスト仕様設計者はまず、因子の選択を行う。テスト仕様設計者により、因子水準選択エリアc2において新たな因子が選択されると、端末装置12の表示部には図9に模式的に示すような推奨因子表示画面がポップアップ表示される。推奨因子表示画面には、過去に設計されたテスト仕様の各確認項目に関するパターン生成において、テスト仕様設計者により新たに選択された因子とともに選択され、まだ現在設計中の確認項目のパターン生成のために選択されていない因子が、その選択された確率の高い順に例えば3個、その選択された確率である因子選択確率とともに表示される。
推奨因子表示画面に表示される因子は、先にテスト仕様設計者が選択した因子とともに高い確率で選択されている因子であるため、今パターンの生成を行おうとしている確認項目においても選択されるべき因子である可能性が高い。
テスト仕様設計者は推奨因子表示画面に表示される因子を選択すべきか否かを判断し、選択すべきと判断した因子があればその因子のチェックボックスをチェックする。そのようにチェックされた因子は、因子水準選択画面(図8)の因子水準選択エリアc2において自動的に選択される。また、そのように選択された因子に基づき、新たな推奨因子表示画面の表示が行われる。
因子水準選択エリアc2に表示される因子の中に適当な因子が見つからない場合、テスト仕様設計者は因子水準追加エリアc4に表示される「因子追加」ボタンをクリック等することで、新たな因子を追加することもできる。その際、その因子のコスト増減率の設定も行われる。また、新たに追加された因子には水準が未登録であるため、テスト仕様設計者は続いて「水準追加」ボタンをクリック等して、水準の登録を行う。なお、新たに登録された水準に関するバグ存在確率推定値および水準選択確率は「不明」となる。そのように新たに登録された因子および水準は、因子水準テンプレートテーブルにも登録される。
テスト仕様設計者は因子の選択を終えると、続いて、選択した因子の各々に関し、その因子に属する水準の中からパターン生成に用いる水準を順次選択する。
因子水準選択エリアc2に表示される水準の各々には、その水準に関するバグ存在確率推定値と水準選択確率が表示される。一般的に、バグ存在確率推定値が高いものはバグに関与する可能性の高い水準であるため、優先的に選択されるべき水準である可能性が高い。また、水準選択確率が高いものは、その因子の中で過去に多くのテスト仕様設計者が高い頻度で選択した水準であるため、やはり優先的に選択されるべき水準である可能性が高い。テスト仕様設計者はそれらの情報を参考としながら、テスト対象のプログラムの特性などを考慮しつつ、水準の選択を行う。
因子水準選択エリアc2に表示される水準の中に適当な水準が見つからない場合、テスト仕様設計者は因子水準追加エリアc4に表示される「水準追加」ボタンをクリック等することで、新たな水準を追加することもできる。その場合、新たに登録された水準に関するバグ存在確率推定値および水準選択確率は「不明」となる点や因子水準テンプレートテーブルに新たに追加された水準が登録される点は既に述べたとおりである。
なお、テスト仕様設計者はキーワード検索エリアc3に含まれるテキストボックスにキーワードを入力し「検索」ボタンをクリック等することで、因子水準選択エリアc2に表示される因子および水準を、名称にそのキーワードを含むものに絞り込むことができる。例えば、グラフに関する因子・水準を選択したい場合、テキストボックスにキーワード「グラフ」を入力し、「検索」ボタンをクリック等することで、例えば、キーワード「グラフ」を名称に含む因子とその因子に属する全ての水準と、キーワード「グラフ」を名称に含む水準を含む因子に属する全ての水準とが因子水準選択エリアc2に表示される。テスト仕様設計者はこのようなキーワードによる絞り込みにより、選択したい因子・水準を容易に発見することができる。
端末装置12は、上記のようにテスト仕様設計者により因子もしくは水準が選択されると、選択された因子もしくは水準を示す選択因子水準データを生成し、サーバ装置11に送信する。サーバ装置11は選択因子水準データに従い、テスト仕様設計者により選択された因子および水準に関するデータを格納する因子水準テーブルを生成し、記憶部に記憶する。
図10は、因子水準テーブルのデータ構成を模式的に示した図である。因子水準テーブルの各データレコードは、因子水準テンプレートテーブル(図7)のデータレコードが有するデータフィールのうち、フィールド「水準選択確率」以外の全てのデータフィールドを有する。
先に述べた推奨因子表示画面は、過去に他のプログラムに関し生成された因子水準テーブル(図10)に基づきサーバ装置11において生成される推奨因子表示画面データに従い、端末装置12において表示される。以下にサーバ装置11が推奨因子表示画面データを生成する際の動作につき説明する。
例えば、現在設計中のテスト仕様において、ある確認項目に関するパターン生成のためにテスト仕様設計者により因子「文字種別」が新たに選択されたとする。端末装置12は選択された因子「文字種別」を示すデータをサーバ装置11に送信する。サーバ装置11は、記憶部に記憶している過去に生成した因子水準テーブルのうち因子「文字種別」を含むものを抽出し、その数をカウントする。
続いて、サーバ装置11はそれらの抽出した因子水準テーブルに含まれる因子「文字種別」以外の因子(例えば、因子「文字数」など)の各々に関し、その因子を含む因子水準テーブルの数をカウントする。後者の数を前者の数で除して得られる比率が、各因子が因子「文字種」とともに選択された確率、すなわち因子選択確率となる。サーバ装置11は、そのように算出した因子選択確率の高いものから順にそれらの因子を並べる。
サーバ装置11は、現在、パターン生成のための因子・水準の選択を行っている確認項目に関し、既にテスト仕様設計者により選択されている因子を示すデータを、テスト仕様設計者によりそれらが選択された際に端末装置12から受信している。サーバ装置11はそれらのデータに従い、上述の因子選択確率の高い順にソートした因子の中から既に選択されている因子を除き、上位3個の因子を選択する。サーバ装置11はそのように選択した3個の因子をそれらの因子選択確率とともに表示するとともに、テスト仕様設計者に対しそれらのいずれかの選択を促す画面を示す推奨因子表示画面データを生成する。
以上が、サーバ装置11が推奨因子表示画面データを生成する際の動作である。サーバ装置11は生成した推奨因子表示画面データを端末装置12に送信する。端末装置12は推奨因子表示画面データに従い、図9に示されるような推奨因子表示画面を表示する。
テスト仕様設計者は因子および水準の選択を完了すると、続いて、パターン生成指示エリアc5に含まれる「全組み合わせ」ボタン〜「1因子1水準」ボタンのいずれかをクリック等することで、パターン生成の指示を行う。
パターンは、テスト仕様設計者により選択された1以上の因子の各々に関し、それらの因子に属するテスト仕様設計者に選択された1以上の水準の中から1つの水準を順次選択することにより生成される。
例えば、ある確認項目のパターン生成のために、テスト仕様設計者により以下の因子が選択されたものとする。
因子「半角/全角」
因子「文字種別」
因子「文字数」
さらに、テスト仕様設計者により、各因子につき、以下の水準が選択されたものとする。
因子「全角/半角」:水準「半角」、水準「全角」、水準「半角全角混合」(3水準)
因子「文字種別」:水準「ひらがな」、水準「カタカナ」、水準「漢字」、水準「英大文字」、水準「英小文字」、水準「複数文字種別混合」(6水準)
因子「文字数」:水準「0文字」、水準「1文字」、水準「2文字以上、最大文字数未満」、水準「最大文字数」(4水準)
上記の場合、例えば以下のようなパターンが生成され得る。
(「半角/全角」=「半角」、「文字種別」=「ひらがな」、「文字数」=「1文字」)
(「半角/全角」=「全角」、「文字種別」=「カタカナ」、「文字数」=「最大文字数」)
「全組み合わせ」「オールペア」「プライオリティメソッド」「全水準網羅」「1因子1水準」は各々、パターン生成の方法の名称である。
「全組み合わせ」は、選択された因子・水準の範囲内において、全ての組み合わせをパターンとして生成する方法である。全組み合わせによって生成されるパターンの数は、通常、各因子に関し選択された水準の数の積となる。例えば上記の例の場合、生成されるパターンの数は3×6×4=72となる。
なお、上記の例の場合、「文字数」=「0文字」の場合、因子「全角/半角」および因子「文字種別」は不定となるため、(「半角/全角」=「半角」、「文字種別」=「ひらがな」、「文字数」=「0文字」)(「半角/全角」=「半角」、「文字種別」=「カタカナ」、「文字数」=「0文字」)などのパターンの区別は無意味となる。そのような場合、例えばテスト仕様設計者により、それらのパターンは統合され、(「半角/全角」=「−」、「文字種別」=「−」、「文字数」=「0文字」)のように書き換えられる。もしくは、それらのイレギュラーな処理の手順を因子水準テンプレートテーブルに予め登録しておくことで、サーバ装置11により自動的に上記の書き換え作業が行われるようにしてもよい。
「オールペア」は、選択された複数の因子の中から任意に選択した2個の因子に注目した場合、それらの2個の因子に含まれる水準に関し全ての組み合わせが1以上のパターンに必ず含まれるように、最小限数のパターンを生成する方法である。
図11は、「オールペア」に従ったパターン生成を説明するための図である。図11において、列「1」〜「16」の各々は1つのパターンを示している。例えば、列「1」はパターン(「A」=「A1」、「C」=「C1」、「B」=B2」、「D」=D2」)を示している。
例えば、因子「A」と因子「C」に注目すると、それらの因子に含まれる水準の組み合わせは全部で3×4=12通りあるが、その12通りの全てが、列「1」〜「16」のいずれかのパターンに必ず1以上、含まれている。他のいずれの2個の因子に注目した場合も同様である。
上記のように「オールペア」により生成されるパターン群に従ったバグ検出作業を行うと、1つの因子に含まれる水準単体ではエラーを生じないが、2つの因子の各々に含まれる2個の水準が組み合わされるとエラーを生じる、という性質のバグを漏れなく検出することができる。バグの多くは水準単体でエラーを生じ、2つの水準の組み合わせにより初めてエラーを生じるバグは少ない。さらに、3つの水準の組み合わせにより初めてエラーを生じるバグは極めて少ない。「オールペア」は3つ以上の水準の組み合わせにより初めてエラーを生じるような極めて稀なバグの検出漏れは許容するが、2つの水準の組み合わせにより初めてエラーを生じるようなバグの検出は確実に行うことにより、一般的に精度とコストのバランスが取れたパターン生成を行う。
「プライオリティメソッド」は、テスト仕様設計者により各因子において重要な水準(プライオリティ水準)として指定された水準を高い頻度で含むようにパターン生成を行う保方である。具体的には、まず、テスト仕様設計者により各因子に関し、重要な水準がプライオリティ水準として指定される。その後、サーバ装置11により複数の因子のうち1つの因子が注目因子として選択される。続いて、注目因子については全ての水準を網羅するように水準の選択が順次行われ、注目因子以外の因子についてはプライオリティ水準が選択されてパターン生成が行われる。全ての因子が網羅されるように注目因子を順次変更しながら、同様のパターン生成が繰り返えされる。その結果、プライオリティ水準を基軸としたパターン生成が行われる。
「全水準網羅」は、全ての水準がいずれかのパターンにおいて必ず1度は含まれるように、最小限数のパターン生成を行う方法である。また、「1因子1水準」は、1因子から任意に選択された1水準により構成される1つのパターンのみを生成する方法である。
テスト仕様設計者により、因子水準選択画面(図8)のパターン生成指示エリアc5に含まれるいずれかのボタンがクリック等されると、クリック等されたボタンに応じたパターン生成方法を示すデータが端末装置12からサーバ装置11に送信される。サーバ装置11はそのデータにより指定されたパターン生成方法に従い、因子水準テーブル(図10)に格納されているデータを用いてパターンの生成を行う。
サーバ装置11は生成したパターンを示すパターンデータを、図12に示すデータ構成のパターンテーブルに格納する。パターンテーブルには、それらのパターンがいずれの確認項目に関しいずれのパターン生成方法に従い生成されたかを示すデータとして、プログラムID、確認エリアID、確認項目ID、「オールペア」などのパターン生成方法名を示すデータが伴っている。パターンテーブルは生成されたパターンの各々に関するデータレコードの集まりであり、各データレコードは以下のデータフィールドを有している。
パターン:生成されたパターンの内容を示すパターンデータを格納する。
コスト:生成されたパターンに含まれる各水準に対応するコスト増減率を標準コストに乗じて算出されるコストを示すデータを格納する。
上記のように、テスト仕様設計者により選択された因子・水準を用いて、テスト仕様設計者により指定されたパターン生成方法に従い生成されたパターンテーブルが、推奨仕様のテスト仕様データの生成に用いられる。以下、このパターンテーブルを「推奨パターンテーブル」と呼ぶ。
また、サーバ装置11は、「全組み合わせ」以外のパターン生成方法がテスト仕様設計者により選択された場合、「全組み合わせ」と比較してどの程度のコストが削減されたかを示すため、「全組み合わせ」に従ったパターンも生成し、生成したパターンに関するパターンテーブル(図12)を生成する。このように生成されるパターンテーブルが、全組み合わせ仕様のテスト仕様データの生成に用いられ、コスト比較や未検出バグ存在確率の算出の基準となる。以下、このパターンテーブルを「全組み合わせパターンテーブル」と呼ぶ。
続いて、サーバ装置11は因子水準選択画面(図8)の生成パターン情報表示エリアc6に表示するデータを生成する。具体的には、まずサーバ装置11は、推奨パターンテーブルに含まれるパターンデータの数を示すデータを「パターン数」を示すデータとして生成する。またサーバ装置11は、推奨パターンテーブルのフィールド「コスト」に示される金額の合計額を示すデータを「コスト」を示すデータとして生成する。また、サーバ装置11は、全組み合わせパターンテーブルのフィールド「コスト」に示される金額の合計額を算出し、その合計額から推奨パターンテーブルに基づき算出した合計額を差し引いた金額を示すデータを「削除されたコスト」を示すデータとして生成する。
さらに、サーバ装置11は「未検出バグ存在確率推定値」を示すデータを算出する。未検出バグ存在確率推定値とは、「全組み合わせ」に従い生成されるパターンのうち、テスト仕様に含まれるパターンに従ったバグ検出作業においては検出されず、テスト仕様に含まれないパターンに従ったバグ検出作業において初めて検出されるバグの存在確率の推定値である。
例えば、テスト仕様設計者により「オールペア」が指定され、「オールペア」に従って生成されたパターンが最終的にテスト仕様に採用されたとする。例えば、図11に例示した因子・水準に関して言えば、「全組み合わせ」に従い生成されるパターン数は3×4×4×2=96であり、「オールペア」に従い生成されたパターン数は16である。従って、80パターンが省略されたことになる。
ここで、省略されない16パターンによって、1水準単体もしくは2水準の組み合わせにより生じるエラーを引き起こすバグは全て検出される。従って、未検出のバグとは、3水準以上の組み合わせによって初めて生じるエラーを引き起こすバグであり、かつ、省略されない16パターンに含まれる3水準以上の組み合わせにより検出されるバグを除いたものの存在確率となる。
図11の例の場合、因子A、C、Dの3因子に注目すると、それらの因子から各々選択される3水準の組み合わせの数は全部で3×4×2=24となる。図11に示される「オールペア」に従い生成されたパターンにおいては、列「9」と「10」が(「A」=「A2」、「C」=「C4」、「D」=「D2」)で同一であり、列「12」と「13」が(「A」=「A3」、「C」=「C2」、「D」=「D2」)で同一であり、列「14」と「15」が(「A」=「A3」、「C」=「C3」、「D」=「D1」)で同一である。従って、図11に示される「オールペア」に従い生成されたパターンにおいては、24パターンのうち16−3=13パターンがカバーされており、24−13=11パターンに関してはカバーされていないことになる。
例えば、パターン(「A」=「A3」、「C」=「C3」、「D」=「D2」)は図11に示されるパターンには含まれない。従って、これら3水準の組み合わせにより初めて生じるエラーは、図11に示されるパターンに従ったバグ検出作業においては検出されない。
ここで、パターン(「A」=「A3」、「C」=「C3」、「D」=「D2」)の組み合わせにより初めて生じるエラーは、水準「A3」のバグ存在確率推定値をP1、水準「C3」のバグ存在確率推定値をP2、水準「D2」のバグ存在確率推定値をP3とすると、このパターンにより生じる未検出バグ存在確率推定値Qは例えば以下の式で推定される。
Q=(P1+P2+P3)×q
ここで、qは、1水準単体もしくは2水準の組み合わせによりエラーを引き起こすバグの数を分母とし、2水準の組み合わせにより初めてエラーを引き起こすバグの数を分子とした比率であり、過去のテスト結果等から統計的に算出された定数である。
例えば、水準「A3」のバグ存在確率推定値P1は、水準「A3」単体でエラーを引き起こすバグの存在確率推定値を近似している。2水準の組み合わせで初めてエラーを引き起こすバグは単体でエラーを引き起こすバグと比べ、かなりその数が少ないためである。従って、P1×qは水準「A3」が他の1つの水準と組み合わされた場合に初めてエラーを引き起こすバグの存在確率推定値を示す。そして、P1×qは、水準「A3」が他の2つの水準と組み合わされた場合に初めてエラーを引き起こすバグの存在確率推定値を示す。
同様に、P2×qは水準「C3」が他の2つの水準と組み合わされた場合に初めてエラーを引き起こすバグの存在確率推定値を示し、P3×qは水準「D2」が他の2つの水準と組み合わされた場合に初めてエラーを引き起こすバグの存在確率推定値を示す。従って、それらを合計した(P1+P2+P3)×qが、パターン(「A」=「A3」、「C」=「C3」、「D」=「D2」)の組み合わせにより初めて生じるエラーを引き起こすバグの存在確率推定値を示す。ここで、パターン(「A」=「A3」、「C」=「C3」、「D」=「D2」)の組み合わせはテスト仕様に含まれないため、このバグ存在確率推定値(P1+P2+P3)×qが、未検出バグ存在確率推定値Qとなる。
サーバ装置11は、推奨パターンにおいてカバーされない他の3水準の組み合わせのパターンや、4水準の組み合わせのパターンの各々に関し、上記のような未検出バグ存在確率推定値の算出を行い、それらを合計することで、その確認項目に関する「未検出バグ存在確率推定値」を示すデータを生成する。
サーバ装置11は、上記のように生成した「パターン数」「コスト」「削除されたコスト」「未検出バグ存在確率推定値」を示すデータを端末装置12に送信する。端末装置12はそれらのデータを因子水準選択画面(図8)の生成パターン情報表示エリアc6に表示する。テスト仕様設計者はそれらのデータを参考としながら、必要に応じて因子・水準の選択やパターン生成方法の選択を繰り返し、その確認項目に関するパターン生成の調整を行う。
テスト仕様設計者は、確認項目の各々に関し、上述した因子水準選択画面(図8)における因子・水準の選択とパターン生成の指示の操作を繰り返す。
テスト仕様設計者の操作により、全ての確認項目に関しパターン生成が行われると、サーバ装置11はまず、各確認項目に関する全組み合わせ推奨パターンテーブル(図12)のフィールド「コスト」の合計値を全組み合わせ仕様全体のコストとして算出する。
また、サーバ装置11は各確認項目に関する推奨パターンテーブル(図12)のフィールド「コスト」の合計値を推奨仕様全体のコストとして算出する。また、サーバ装置11は各確認項目に関し算出した未検出バグ存在確率推定値の合計値を推奨仕様全体の未検出バグ存在確率推定値として算出する。
続いて、サーバ装置11は、上記のように算出した推奨仕様全体のコストがプロジェクトテーブル(図3)のフィールド「総コスト上限」を超過している場合、間引き仕様のパターンテーブル(以下、「間引きパターンテーブル」と呼ぶ)を以下のように生成する。
サーバ装置11は、各確認項目に関する因子水準テーブル(図10)に示される水準のうち、バグ存在確率推定値が小さいものを優先的に選択し、選択した水準を削除した因子水準テーブルに従いパターンテーブル(図12)を順次生成し、生成したパターンテーブルに基づきテスト仕様全体のコストおよび未検出バグ存在確率推定値を算出する処理を繰り返す。サーバ装置11は、そのように算出したコストが総コスト上限以下となるパターンテーブルのうち、未検出バグ存在確率推定値が最小となるものを間引きパターンテーブルとして選択する。なお、このように選択された間引きパターンテーブルに基づき算出されたコストおよび未検出バグ存在確率推定値が、間引き仕様全体のコストおよび未検出バグ存在確率推定値となる。
サーバ装置11は、上記のように全組み合わせ仕様のコストと、推奨仕様および間引き仕様の各々に関するコストおよび未検出バグ存在確率推定値を算出すると、テスト仕様設計者が最終的なテスト仕様を示すテスト仕様データを生成するためのテスト仕様データ生成画面を示すテスト仕様データ生成画面データを生成し、端末装置12に送信する。
図13は、テスト仕様データ生成画面データに従い端末装置12に表示されるテスト仕様データ生成画面を模式的に示した図である。テスト仕様データ生成画面には、プロジェクトの基本情報(プログラム名、顧客名、納期、総コスト上限)と、サーバ装置11において算出された各テスト仕様のコストおよび未検出バグ存在確率推定値が表示される。
テスト仕様設計者は、テスト仕様データ生成画面に表示される各テスト仕様のコストおよび未検出バグ存在確率推定値を参考とし、それらのいずれかを選択する。テスト仕様設計者が選択したテスト仕様のチェックボックスにチェックをした後、「テスト仕様生成」ボタンをクリック等すると、その操作に応じて、サーバ装置11は選択されたテスト仕様のパターンテーブル(図12)に従い、テスト仕様データを生成する。
図14は、テスト仕様データのデータ構成を模式的に示した図である。テスト仕様データは、バグ検出作業の内容を示すパターンの各々に関するデータレコードの集まりであり、テスト対象のプログラムの名称および納期を示すデータが伴っている。テスト仕様データの各データレコードには以下のデータフィールドが含まれている。
画面名:テスト対象のプログラムに従いコンピュータのディスプレイに表示される画面、すなわちユーザインタフェースの名称を示すデータを格納する。
URI:ASPとして機能するサーバ装置11から提供されるテスト対象のプログラムのユーザインタフェース(画面)を識別するURIを格納する。
確認エリア:確認エリアをバグ検出者に伝える説明を示すデータを格納する。
正常・異常:確認項目が、ユーザにより正常な操作が行われた際のコンピュータの状態変化を確認するものか、ユーザにより異常な操作が行われた際のコンピュータの状態変化を確認するものか、と示すデータを格納する。
確認項目:確認項目の内容を示すデータを格納する。
パターン:パターンの内容を示すデータを格納する。
バグ検出の有無:バグ検出者により入力される、バグ検出作業の結果を示すデータを格納する。なお、サーバ装置11によりテスト仕様データが生成された際、このフィールドにはデータが格納されていない。
以上により、サーバ装置11によるテスト仕様データの生成が完了する。その後、テスト業者が顧客からテストを受注すると、テスト仕様設計者からバグ検出者に対し、バグ検出作業の指示とともに、このプロジェクトのバグ検出のためのURIが通知される。バグ検出者が端末装置13を用いてそのURIをブラウザに入力し、サーバ装置11にアクセスすると、サーバ装置11から端末装置13に対し、バグ検出者がバグ検出作業を行うための画面を示すテスト仕様表示画面データが送信され、端末装置13の表示部には図15に示すようなテスト仕様表示画面が表示される。
テスト仕様表示画面の上部エリアには、テスト仕様データの内容が表示される。バグ検出者によりテスト仕様データのいずれかの行が選択されると、選択された行に表示されるURIにより特定されるユーザインタフェースを示す画面データがサーバ装置11から端末装置13に送信され、テスト仕様表示画面の上部エリアにそのユーザインタフェースが表示される。
バグ検出者は表示されたユーザインタフェースに含まれる、テスト仕様データに示される確認エリアにおいて、テスト仕様データに示されるパターンに従いデータ入力などの操作を行う。それらの操作に応じたデータが端末装置13からサーバ装置11に送信され、サーバ装置11のプログラム実行部において、端末装置13から送信されてくるデータに応じたテスト対象のプログラムに従った処理が行われる。そして、その処理の結果を示す画面データがサーバ装置11から端末装置13に送信される。その結果、端末装置13において、バグ検出者は自分が行った操作に応じて、テスト対象のプログラムがどのように状態変化をするかを確認することができる。
バグ検出者は、テスト仕様データに示される確認項目の内容に従い、正しい状態変化が行われるか否かを確認し、正しい状態変化が行われる場合はテスト仕様データのフィールド「バグ検出の有無」に「無」を、正しい状態変化が行われなかった場合は「有」を入力する。バグ検出者により入力されたそれらのデータは端末装置13からサーバ装置11に送信され、サーバ装置11においてテスト仕様データ(図14)に格納される。
バグ検出者により、テスト仕様表示画面に表示されるテスト仕様データの全ての行のフィールド「バグ検出の有無」に「無」または「有」が入力されると、このプロジェクトに関するバグ検出作業が完了することになる。
バグ検出作業の完了に伴い、サーバ装置11の記憶部にはフィールド「バグ検出の有無」に「無」または「有」が全て格納されたテスト仕様データ(図14)が出来上がる。このテスト仕様データは、テストの結果を示すデータとしてテスト業者からテスト依頼主の顧客への報告書作成に用いられる。
また、フィールド「バグ検出の有無」へのデータ入力が完了したテスト仕様データ(図14)に加え、テスト仕様データの生成に用いられた因子水準テーブル(図10)、パターンテーブル(図12)などはサーバ装置11の記憶部に保存され、その後の新たなプロジェクトに関するテスト仕様の設計において、水準選択確率やバグ存在確率推定値の算出、推奨因子の選択等に用いられる。
以上のように、テスト仕様生成システム1によれば、テスト仕様設計者がプログラムのバグ検出のためのテスト仕様を設計する際、因子の選択や水準の選択における判断材料となる各種情報がテスト仕様設計者に対し提示されるため、テストの精度を十分に担保しつつテストに要するコストの削減を可能とするような優れたテスト仕様の設計が可能となる。
[2.変形例]
上述した実施例は本発明の技術的思想の範囲内において様々に変形可能である。以下にそのような変形の例を示す。
上述した実施例においては、総コスト額としてテスト全体の費用上限が指定され、その費用上限を超えないようにサーバ装置11において間引き仕様が自動的に生成される構成が採用されている。費用上限は間引き仕様を生成する際の閾値の一例であって、例えば、生成されるパターン数の上限値を間引き仕様生成時の閾値とする構成が採用されてもよい。パターン毎のコストが一定の場合、総コスト額は総パターン数に比例するため、閾値として総パターン数を用いることと、総コスト額を用いることは同義である。
上述した実施例においては、サーバ装置11と端末装置12およびサーバ装置11と端末装置13が互いにインターネット19を介してデータ通信を行うことによりテスト仕様生成システム1が実現される構成が採用されている。これらの装置の2つもしくは3つの機能を1つの装置が行う構成が採用されてもよい。例えば、サーバ装置11が端末装置12の機能を兼ねる場合、テスト仕様設計者は端末装置12を用いてサーバ装置11にアクセスする代わりに、サーバ装置11を直接操作することにより、テスト仕様の設計を行うことができる。
また、サーバ装置11が端末装置13の機能を兼ねる場合、バグ検出者は端末装置13を用いてサーバ装置11にアクセスする代わりに、サーバ装置11を直接操作することにより、バグ検出作業を行うことができる。また、テスト仕様設計者がバグ検出者でもある場合、端末装置12と端末装置13は同じ端末装置でもよい。
また、サーバ装置11が互いに連携動作する複数の装置群で構成されてもよい。
上述した実施例においては、サーバ装置11がテスト対象のプログラムのASPとして機能し、バグ検出者は端末装置13のブラウザ機能を用いてサーバ装置11にアクセスすることで、テスト対象のプログラムに対する操作を行ったり、その操作に応じたコンピュータの状態変化の確認を行ったりすることができる。これに代えて、端末装置13にテスト対象のプログラムをインストールし、バグ検出者はサーバ装置11にアクセスすることなく、端末装置13において実行されるテスト対象のプログラムの挙動を確認する構成が採用されてもよい。
その場合、バグ検出者はテスト仕様データに関しては端末装置13を用いてサーバ装置11にアクセスしてそれを閲覧し、バグ検出作業の結果を入力するようにしてもよいし、例えばサーバ装置11からテスト仕様データを端末装置13にダウンロードし、ダウンロードしたテスト仕様データを用いてその閲覧やデータ入力を行うようにしてもよい。後者の場合、バグ検出者はバグ検出作業が完了した際、端末装置13を用いてバグ検出結果を示すデータの入力されたテスト仕様データをサーバ装置11にアップロードすることで、サーバ装置11はそのデータをその後のテスト仕様の設計等に用いることができる。
上述した実施例においては、サーバ装置11、端末装置12および端末装置13は一般的なコンピュータに本発明にかかるプログラムに従ったデータ処理を行わせることにより実現されるものとしたが、例えばそれらの装置が備える機能構成部の各々の機能を実行可能なハードウェアを組み合わせて、いわゆる専用機としてそれらの装置が実現されてもよい。
上述した実施例においては、テスト対象の画面(ユーザインタフェース)を特定するデータとしてURIが用いられるものとしたが、例えば「起動→メニュー→グラフ表示」などのようにプログラムを実行中のコンピュータに対する操作手順を示すデータなど、他の種類のデータによりテスト対象の画面を特定する構成が採用されてもよい。
上述した実施例において採用されている推奨因子の選択の方法は一例であって、他の方法により推奨因子の選択が行われてもよい。例えば、最後に選択された因子とともに高い確率で選択されている因子を推奨するのに代えて、それまでにその確認項目に関し選択されている複数の因子の組み合わせ(もしくはそれに近い組み合わせ)とともに高い確率で選択されている因子を推奨因子として選択する構成が採用されてもよい。
上述した実施例において採用されている水準選択確率、因子選択確率、バグ存在確率推定値、未検出バグ存在確率推定値の算出方法は一例であって、本発明を限定するものではない。水準選択確率は過去に各水準が選択された確率を示すものであれば如何なる確率でもよく、因子選択確率は過去にある因子とともに他の因子が選択された確率を示すものであれば如何なる確率であってもよい。また、バグ存在確率推定値はある水準に関連するバグの存在確率の推定値を示す指標であれば如何なる仕様であってもよく、未検出バグ存在確率推定値はある確認項目に関しパターンの省略に伴い生じる未検出バグの存在確率の推定値を示す指標であれば如何なる指標であってもよい。
上述した実施例において採用されているコストの算出方法は一例であって、他のコストの算出方法が採用されてもよい。例えば、因子毎にコスト増減率を設定する代わりに水準毎にコスト増減率を設定したり、コスト増減率ではなくコスト増減額を設定したりしてもよいし、全てのパターンを同額とし、特にそれらのコスト増減率やコスト増減額といった設定を行わない、という構成が採用されてもよい。
上述した実施例においては、間引き仕様の生成の際、水準を間引くことによりパターン数を減らし、コスト削減を行う構成が採用されているが、それに代えて、もしくはそれに加えて、他の方法によりパターン数を減らす構成が採用されてもよい。例えば、テスト仕様設計者の選択に従い「全組み合わせ」によるパターン生成が行われている確認項目に関し、「オールペア」によるパターン生成に変更することで生成されるパターン数を減らす方法、因子単位で間引きを行うことにより生成されるパターン数を減らす方法などが採用されてもよい。
上述した実施例において、バグ検出者のバグ検出能力を評価するために、テスト対象のプログラムに意図的なバグを混入させ、混入させたバグによりエラーが発生するパターンに関して、サーバ装置11において予めテスト仕様データのデータレコードにその旨を示すフラグデータなどを格納しておく構成が採用されてもよい。テスト仕様設計者などのテスト管理者は、バグ検出者によりフィールド「バグ検出の有無」にバグ検出結果の入力されたテスト仕様データのうち、意図的なバグによりエラーが発生するパターンに関するデータレコードのフィールド「バグ検出の有無」に正しく「有」が入力されているかを確認することで、バグ検出者によりバグ検出作業が正しく行われているか否かを確認することができる。
本発明は、広くプログラム開発において利用され、いわゆるサービス業に貢献する。
1…テスト仕様生成システム、11…サーバ装置、12…図、12…端末装置、13…図、13…端末装置、14…図、15…図、19…インターネット

Claims (14)

  1. コンピュータプログラムに従いデータ処理を行うコンピュータが第1の状態から第2の状態に変化する際に前記第2の状態の決定に用いられ得るパラメータを水準とし、複数の水準のうち互いに排他的に選択され得る同種の水準のグループを因子とするとき、1以上の因子の各々から選択された1の水準の組み合わせであるパターンを示すパターンデータの1以上の集まりにより当該コンピュータプログラムに含まれるバグの検出のためのテスト仕様を示すテスト仕様データを生成するテスト仕様生成装置であって、
    1以上の因子の各々を示す1以上の因子データと、前記1以上の因子データの各々に関し当該因子データにより示される因子に含まれる1以上の水準の各々を各々示す1以上の水準データと、前記1以上の水準データの各々に関し当該水準データにより示される水準が関与するバグ存在確率推定値の指標を示すバグ存在確率指標データと、を記憶する記憶手段と、
    前記記憶手段に記憶されている前記因子データ、前記水準データおよび前記バグ存在確率指標データに従い、前記1以上の因子と、前記1以上の因子の各々に含まれる前記1以上の水準と、前記1以上の水準の各々に関する前記バグ存在確率推定値の指標とを表示し、テスト仕様を設計するユーザに対し前記1以上の因子の中から1以上の因子を選択し、当該選択した1以上の因子の各々に関し当該因子に含まれる1以上の水準の中から1以上の水準を選択することを促す画面である因子水準選択画面を示す因子水準選択画面データを生成する因子水準選択画面データ生成手段と、
    前記因子水準選択画面データに従い前記因子水準選択画面の表示を行う装置に対し前記テスト仕様を設計するユーザが前記因子水準選択画面を見ながら行った操作に応じて当該装置により生成されたデータであって、前記因子水準選択画面に表示されている前記1以上の因子の中から前記テスト仕様を設計するユーザにより選択された1以上の因子と、当該選択された1以上の因子の各々に関し当該因子に含まれる1以上の水準の中から前記テスト仕様を設計するユーザにより選択された1以上の水準とを示すデータである選択因子水準データを取得する選択因子水準データ取得手段と、
    所定の規則に従い、前記選択因子水準データ取得手段により取得された前記選択因子水準データにより示される1以上の因子の各々に関し、当該因子に含まれる前記選択因子水準データにより示される1以上の水準の中から1の水準を選択し、当該選択した1以上の水準の組み合わせであるパターンを示すパターンデータを1以上生成し、当該1以上のパターンデータを含むテスト仕様データを生成するテスト仕様データ生成手段と
    を備える装置。
  2. 前記テスト仕様データ生成手段により生成された前記テスト仕様データに含まれる前記1以上のパターンデータの各々に関し、当該パターンデータにより示されるパターンを表示し、バグ検出を行うユーザに対し当該パターンデータにより示されるパターンに関するバグの有無の入力を促す画面であるテスト仕様表示画面を示すテスト仕様表示画面データを生成するテスト仕様表示画面データ生成手段と、
    前記テスト仕様表示画面データに従い前記テスト仕様表示画面の表示を行う装置に対し前記バグ検出を行うユーザが前記テスト仕様表示画面を見ながら行った操作に応じて当該装置により生成されたデータであって、前記テスト仕様表示画面に表示される1以上のパターンの各々に関し各々バグの有無を示すデータであるバグ検出データを取得するバグ検出データ取得手段と、
    前記バグ検出データ取得手段により過去に取得された1以上のバグ検出データに基づき前記バグ存在確率指標データを生成するバグ存在確率指標データ生成手段と
    を備える
    請求項1に記載の装置。
  3. パターンの数の閾値を示すパターン数閾値データを取得するパターン数閾値データ取得手段と、
    前記テスト仕様データ生成手段により生成されるテスト仕様データに含まれる1以上のパターンデータに関し、当該1以上のパターンデータの各々により各々示される1以上のパターンに含まれる1以上の水準の各々に関する前記バグ存在確率推定値の指標に基づき当該1以上のパターンをテスト仕様から除外した場合に増加する未検出バグ存在確率推定値の指標を示す未検出バグ存在確率指標データを生成する未検出バグ存在確率指標データ生成手段と
    を備え、
    前記テスト仕様データ生成手段は、前記パターン数閾値データ取得手段により取得されたパターン数閾値データにより示される閾値以下の数であり、かつ、前記所定の規則に従う条件下において、前記未検出バグ存在確率指標データ生成手段により生成される前記未検出バグ存在確率指標データにより示される前記未検出バグ存在確率推定値の指標が最小となる1以上のパターンデータを含む前記テスト仕様データを生成する
    請求項1または2に記載の装置。
  4. 前記テスト仕様データ生成手段により生成される1以上のパターンデータの各々に関し、当該パターンデータにより示されるパターンに従ったバグ検出に伴うコストを示すコストデータを取得するコストデータ取得手段と、
    テストに伴う総コストの閾値を示す総コスト閾値データを取得する総コスト閾値データ取得手段と、
    前記テスト仕様データ生成手段により生成されるテスト仕様データに含まれる1以上のパターンデータに関し、当該1以上のパターンデータの各々により各々示される1以上のパターンに含まれる1以上の水準の各々に関する前記バグ存在確率推定値の指標に基づき当該1以上のパターンをテスト仕様から除外した場合に増加する未検出バグ存在確率推定値の指標を示す未検出バグ存在確率指標データを生成する未検出バグ存在確率指標データ生成手段と、
    前記テスト仕様データ生成手段により生成されるテスト仕様データに含まれる1以上のパターンデータに関し、当該1以上のパターンデータの各々により各々示される1以上のパターンに関し前記コストデータ取得手段により取得された前記コストデータにより示されるコストに基づき、当該1以上のパターンデータを含むテスト仕様データに従ったテストに伴う総コストを算出する総コスト算出手段と
    を備え、
    前記テスト仕様データ生成手段は、前記総コスト算出手段により算出される総コストが前記総コスト閾値データ取得手段により取得された総コスト閾値データにより示される総コスト以下であり、かつ、前記所定の規則に従う条件下において、前記未検出バグ存在確率指標データ生成手段により生成される前記未検出バグ存在確率指標データにより示される前記未検出バグ存在確率推定値の指標が最小となる1以上のパターンデータを含む前記テスト仕様データを生成する
    請求項1または2に記載の装置。
  5. 前記記憶手段は、前記選択因子水準データ取得手段により過去に取得された1以上の選択因子水準データを記憶し、
    前記記憶手段により記憶されている前記過去に取得された1以上の選択因子水準データに基づき、テスト仕様を生成する任意のユーザにより過去に選択された任意の一の水準に関し、当該一の水準が当該一の水準が属する因子においてテスト仕様を生成する任意のユーザにより選択された確率である水準選択確率を示す水準選択確率データを生成する水準選択確率データ生成手段を備え、
    前記因子水準選択画面データ生成手段は、前記1以上の因子と、前記1以上の因子の各々に含まれる前記1以上の水準と、前記1以上の水準の各々に関する前記バグ存在確率推定値の指標とに加え、前記水準選択確率データ生成手段により生成される前記水準選択確率データに従い、前記1以上の水準の各々に関する前記水準選択確率を表示する画面である前記因子水準選択画面を示す前記因子水準選択画面データを生成する
    請求項1乃至4のいずれかに記載の装置。
  6. 前記記憶手段は、前記選択因子水準データ取得手段により過去に取得された1以上の選択因子水準データを記憶し、
    前記選択因子水準データ取得手段により取得された前記選択因子水準データにより、新たな一の因子が選択されたことが示された場合、前記記憶手段に記憶されている前記過去に取得された1以上の選択因子水準データに基づき、テスト仕様を生成する任意のユーザにより当該一の因子とともに過去に選択された因子の各々に関し、当該因子が選択された確率である因子選択確率を示す因子選択確率データを生成する因子選択確率データ生成手段と、
    前記因子選択確率データ生成手段により生成された前記因子選択確率データに基づき所定の規則に従い1以上の因子を選択し、前記テスト仕様を設計するユーザに対し当該1以上の因子の選択を促す画面である推奨因子表示画面を示す推奨因子表示画面データを生成する推奨因子表示画面データ生成手段と
    を備える
    請求項1乃至5のいずれかに記載の装置。
  7. テスト対象のコンピュータプログラムに従ったデータ処理を行うプログラム実行手段と、
    前記テスト仕様表示画面の表示を行う装置に対し、前記テスト対象のコンピュータプログラムに従って生成される画面を示す画面データを送信する送信手段と、
    前記送信手段により送信された画面データに従い前記テスト仕様表示画面の表示を行う装置において表示された画面に対し前記バグ検出を行うユーザが入力したデータを前記テスト仕様表示画面の表示を行う装置から受信する受信手段と、
    前記受信手段により受信されたデータを前記テスト対象のコンピュータプログラムに従ったデータ処理におけるパラメータを示すデータとして前記プログラム実行手段に引き渡すデータ引渡手段と
    を備える請求項2に記載の装置。
  8. コンピュータを、請求項1に記載の装置が備える前記記憶手段、前記因子水準選択画面データ生成手段、前記選択因子水準データ取得手段および前記テスト仕様データ生成手段として機能させるプログラム。
  9. 前記コンピュータを、請求項2に記載の装置が備える前記テスト仕様表示画面データ生成手段、前記バグ検出データ取得手段および前記バグ存在確率指標データ生成手段として機能させる請求項8に記載のプログラム。
  10. 前記コンピュータを、請求項3に記載の装置が備える前記パターン数閾値データ取得手段、前記未検出バグ存在確率指標データ生成手段および前記テスト仕様データ生成手段として機能させる請求項8または9に記載のプログラム。
  11. 前記コンピュータを、請求項4に記載の装置が備える前記コストデータ取得手段、前記総コスト閾値データ取得手段、前記未検出バグ存在確率指標データ生成手段、前記総コスト算出手段および前記テスト仕様データ生成手段として機能させる請求項8または9に記載のプログラム。
  12. 前記コンピュータを、請求項5に記載の装置が備える前記記憶手段、前記水準選択確率データ生成手段および前記因子水準選択画面データ生成手段として機能させる請求項8乃至11のいずれかに記載のプログラム。
  13. 前記コンピュータを、請求項6に記載の装置が備える前記記憶手段、前記因子選択確率データ生成手段および前記推奨因子表示画面データ生成手段として機能させる請求項8乃至12のいずれかに記載のプログラム。
  14. 前記コンピュータを、請求項7に記載の装置が備える前記プログラム実行手段、前記送信手段、前記受信手段および前記データ引渡手段として機能させる請求項9に記載のプログラム。
JP2011273931A 2011-12-14 2011-12-14 コンピュータプログラムのテスト仕様を生成するための装置およびプログラム Active JP5787404B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011273931A JP5787404B2 (ja) 2011-12-14 2011-12-14 コンピュータプログラムのテスト仕様を生成するための装置およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011273931A JP5787404B2 (ja) 2011-12-14 2011-12-14 コンピュータプログラムのテスト仕様を生成するための装置およびプログラム

Publications (2)

Publication Number Publication Date
JP2013125420A true JP2013125420A (ja) 2013-06-24
JP5787404B2 JP5787404B2 (ja) 2015-09-30

Family

ID=48776615

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011273931A Active JP5787404B2 (ja) 2011-12-14 2011-12-14 コンピュータプログラムのテスト仕様を生成するための装置およびプログラム

Country Status (1)

Country Link
JP (1) JP5787404B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016218997A (ja) * 2015-05-15 2016-12-22 富士通株式会社 未知のバイナリプログラムに対する有効な入力の決定
WO2020137096A1 (ja) * 2018-12-27 2020-07-02 三菱電機株式会社 試験装置及び開発支援装置
JP2020123220A (ja) * 2019-01-31 2020-08-13 Jr東日本メカトロニクス株式会社 情報処理装置、情報処理方法及びプログラム
WO2022230189A1 (ja) * 2021-04-30 2022-11-03 日本電信電話株式会社 テスト支援装置、テスト支援方法、及びプログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016218997A (ja) * 2015-05-15 2016-12-22 富士通株式会社 未知のバイナリプログラムに対する有効な入力の決定
WO2020137096A1 (ja) * 2018-12-27 2020-07-02 三菱電機株式会社 試験装置及び開発支援装置
JPWO2020137096A1 (ja) * 2018-12-27 2021-09-09 三菱電機株式会社 試験装置及び開発支援装置
JP7034334B2 (ja) 2018-12-27 2022-03-11 三菱電機株式会社 試験装置及び開発支援装置
JP2020123220A (ja) * 2019-01-31 2020-08-13 Jr東日本メカトロニクス株式会社 情報処理装置、情報処理方法及びプログラム
JP7194604B2 (ja) 2019-01-31 2022-12-22 Jr東日本メカトロニクス株式会社 情報処理装置、情報処理方法及びプログラム
WO2022230189A1 (ja) * 2021-04-30 2022-11-03 日本電信電話株式会社 テスト支援装置、テスト支援方法、及びプログラム

Also Published As

Publication number Publication date
JP5787404B2 (ja) 2015-09-30

Similar Documents

Publication Publication Date Title
Grigera et al. Automatic detection of usability smells in web applications
US9740506B2 (en) Automating interactions with software user interfaces
US9189377B1 (en) Automation testing using descriptive maps
US20130014084A1 (en) International Testing Platform
JP4395761B2 (ja) プログラムテスト支援装置およびその方法
US20100332439A1 (en) Apparatus and method for supporting cause analysis
US20100125828A1 (en) Data transformation based on a technical design document
US11720379B2 (en) Acquisition process of GUI elements using user input
AU2015207849A1 (en) Information technology testing and testing data management
US7904406B2 (en) Enabling validation of data stored on a server system
CN110618941B (zh) 一种界面元素处理方法及装置
US20220350857A1 (en) Methods and systems for browser extension used to generate relative xpath, absolute xpath and/or css selectors
JP5787404B2 (ja) コンピュータプログラムのテスト仕様を生成するための装置およびプログラム
Xu et al. A pilot study of an inspection framework for automated usability guideline reviews of mobile health applications
US20160162539A1 (en) Computer executable method of generating analysis data and apparatus performing the same and storage medium for the same
JP2010250864A (ja) 情報処理装置およびプログラム
US7975259B2 (en) Verification of customization results
CN113342692A (zh) 测试用例自动生成方法、装置、电子设备及存储介质
Vidoni Understanding roxygen package documentation in R
US20210034617A1 (en) Assisted query building and data retrieval
Baker et al. Automated usability testing using HUI analyzer
US10007493B1 (en) Event based validation
US20110320587A1 (en) Real-time determination of software installation status
EP3042314B1 (en) Module specific tracing in a shared module environment
JP2013008168A (ja) 製品取扱い基準作成システム及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150619

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150716

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150724

R150 Certificate of patent or registration of utility model

Ref document number: 5787404

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350