JP6869082B2 - テストケースを選択する計算機及びテストケースの選択方法 - Google Patents

テストケースを選択する計算機及びテストケースの選択方法 Download PDF

Info

Publication number
JP6869082B2
JP6869082B2 JP2017075782A JP2017075782A JP6869082B2 JP 6869082 B2 JP6869082 B2 JP 6869082B2 JP 2017075782 A JP2017075782 A JP 2017075782A JP 2017075782 A JP2017075782 A JP 2017075782A JP 6869082 B2 JP6869082 B2 JP 6869082B2
Authority
JP
Japan
Prior art keywords
test case
information
function
relevance
processor
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.)
Active
Application number
JP2017075782A
Other languages
English (en)
Other versions
JP2018180711A (ja
Inventor
智之 明神
智之 明神
秀人 小川
秀人 小川
正恭 加藤
正恭 加藤
雄一郎 中川
雄一郎 中川
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2017075782A priority Critical patent/JP6869082B2/ja
Publication of JP2018180711A publication Critical patent/JP2018180711A/ja
Application granted granted Critical
Publication of JP6869082B2 publication Critical patent/JP6869082B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、ソフトウェアを評価するテストケースを選択する計算機及び方法に関する。
近年のソフトウェアシステムでは、IoT等の隆盛に伴ってシステムの構成が複雑化し、また、規模が増大している。システムが正常に動作することを保証するためには、システムをテストすることが有効である。一般的にソフトウェアシステムをテストする場合、対象ソフトウェアシステムに対して、任意の入力を与えたときに所望の結果が得られるか否かが確認される。この確認項目をテストケースと呼ぶ。
システムの複雑化及び巨大化に伴うテストの項目及び種類が増加によって、それらの組み合わせが爆発的に増加する。しかし、開発期間及び開発人員等の開発リソースが有限であるため、全ての組み合わせを網羅的にテストすることは困難である。
そこで、全ての組み合わせを網羅的にテストするのではなく、可能な限りソフトウェアの品質を保証できるようなテストケースを選択し、実行することによって、開発リソースの使用量を削減する方法がある。
特許文献1には、「ソフトウェアシステムのプログラムモジュールごとの品質情報を設定する工程24と、前記品質情報から前記プログラムモジュールの不具合検出工数を予測する工程26と、前記モジュールと前記ソフトウェアシステムの仕様書から抽出される仕様項目との対応関係を表すモジュール・仕様項目対応関係情報を作成する工程22と、前記不具合検出工数と前記モジュール・仕様項目対応関係情報とから仕様項目不具合検出工数を予測する工程28と、前記仕様項目不具合検出工数に基づいて、前記ソフトウェアシステムのテストに利用可能なテストリソースを配分するテスト計画を作成する工程30とを備え」るテスト計画作成支援方法が記載されている。特許文献1に記載の方法を用いることによって、限られた開発リソース内で実行するテストケースを絞り込むことができる。
特開2003−256206号公報
従来技術におけるテストケースの選択手法では、プログラムの品質メトリクスがモジュール単位であるため、それ以上の細かい粒度での分析、例えば、関数及び変数といった単位での絞り込みができない。そのため、優先的に実行すべきテストケースと、優先的に実行しなくてもよいテストケースとの区別が困難となる。そのため、限られた開発リソース内を用いて、ソフトウェアの品質の保証することが困難になる。
本発明は、最適なテストケースを絞り込む装置及び方法を提供する。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、少なくとも一つ以上の変数を含む複数のプログラム関数から構成され、所定の機能を実現するソフトウェアを評価するためのテストケースを選択する計算機であって、前記計算機は、プロセッサ及び前記プロセッサに接続される記憶装置を備え、前記プロセッサは、前記ソフトウェアを分析して、前記機能及び前記機能に関連する変数の対応関係を管理する第1の対応情報、並びに前記プログラム関数及び前記変数の関連性の強さを示す関連度を管理する相関情報を生成し、着目機能の情報を前記テストケースを選択するための条件として受け付け、前記テストケース及び前記テストケースに関連する機能の対応関係を管理する第2の対応情報を受け付け、前記第1の対応情報に基づいて、前記着目機能に関連する第1の変数を特定し、前記相関情報に基づいて、前記ソフトウェアを構成する第1のプログラム関数に関連する第2の変数及び前記第1の変数の関連性の強さを示す第1の関連度を算出し、前記第1の対応情報及び前記第1の関連度に基づいて、前記テストケースの選択指標を前記第1の対応情報に登録される各機能について算出し、関連度順位情報として出力し、前記第2の対応情報及び前記関連度順位情報に基づいて、実行テストケースを選択し、優先テストケース情報として出力することを特徴とする。
本発明によれば、ソフトウェアの分析結果に基づいて生成された情報を用いることによって、着目機能に関連する実行テストケースを適切に選択できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
実施例1のテストケース抽出装置のハードウェア構成及びソフトウェア構成を説明する図である。 実施例1のテストケース抽出装置のデータの入出力を説明する図である。 実施例1の変数−機能対応情報のデータ構造の一例を示す図である。 実施例1のプログラム関数−変数対応情報のデータ構造の一例を示す図である。 実施例1のメトリクス情報のデータ構造の一例を示す図である。 実施例1のプログラム関数−変数相関情報のデータ構造の一例を示す図である。 実施例1の関連度順位情報のデータ構造の一例を示す図である。 実施例1のテストケース−機能対応情報のデータ構造の一例を示す図である。 実施例1の優先テストケース情報のデータ構造の一例を示す図である。 実施例1のテストケース抽出装置が実行する処理の一例を説明するフローチャートである。 実施例1のテストケース抽出装置が実行する処理の一例を説明するフローチャートである。 実施例1の関連度分析部が実行する関連度順位情報の生成処理の一例を説明するフローチャートである。 実施例1の関連度分析部が実行する関連度順位情報の生成処理の一例を説明するフローチャートである。 実施例1の関連度分析部が一時的に生成するワークテーブルのデータ構造の一例を示す図である。 実施例1の関連度分析部が一時的に生成する着目機能−変数相関情報のデータ構造の一例を示す図である。 実施例1のテストケース抽出部が実行する優先テストケース情報の生成処理を説明するフローチャートである。 実施例2のテストケース抽出装置のデータの入出力を説明する図である。 実施例3のテストケース抽出装置のデータの入出力を説明する図である。 実施例3のテストケース−機能対応情報のデータ構造の一例を示す図である。 実施例3のテストケース抽出部が実行する優先テストケース情報の生成処理を説明するフローチャートである。 実施例4のテストケース抽出装置のデータの入出力を説明する図である。 実施例4の優先テストケース情報に基づいて表示される画面に一例を示す図である。 実施例5のテストケース抽出装置のデータの入出力を説明する図である。 実施例5のテストケース選択部が実行する処理の一例を説明するフローチャートである。 実施例5の優先テストケース情報に基づいて表示される画面に一例を示す図である。
以下、図面を参照しつつ実施例について説明する。なお、以下に説明する実施例は特許請求の範囲にかかる発明を限定するものではない。また実施例において説明されている各要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
なお、本明細書では、テスト対象のプログラム(ソフトウェア)によって実現される機能を「機能」と記載し、テスト対象のプログラム(ソフトウェア)に含まれる関数を「プログラム関数」と記載する。
図1は、実施例1のテストケース抽出装置10のハードウェア構成及びソフトウェア構成を説明する図である。図2は、実施例1のテストケース抽出装置10のデータの入出力を説明する図である。
テストケース抽出装置10は、プロセッサ11、主記憶装置12、補助記憶装置13、通信装置14、入力装置15、及び出力装置16を備える。各ハードウェアは、図示しないバス等の通信手段を介して互いに通信可能に接続される。
プロセッサ11は、プログラムにしたがって処理を実行する演算装置であり、例えば、CPU(Central Processing Unit)又はMPU(Micro Processing Unit)等である。プロセッサ11が、主記憶装置12に格納されるプログラムを実行することによって、テストケース抽出装置10の各種機能部(モジュール)が実現される。以下の説明では、機能部を主語に処理を説明する場合、プロセッサ11が当該機能部を実現するプログラムを実行していることを表す。
主記憶装置12は、プログラム及びデータを記憶する装置であり、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、不揮発性半導体メモリ(NVRAM:Non Volatile RAM)等である。主記憶装置12に格納されるプログラムについては後述する。
補助記憶装置13は、データを永続的に格納する装置であり、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、光学式記憶装置(CD:Compact Disc、DVD:Digital Versatile Disc等)、ストレージシステム、ICカード等が考えられる。補助記憶装置13に格納されるデータについては後述する。
なお、テストケース抽出装置10は、補助記憶装置13を有していなくてもよい。この場合、SDメモリカード又は光学式記録媒体等の記録媒体の読取/書込装置、又はクラウドサーバが提供するストレージサービスを利用して、データを格納すればよい。
なお、主記憶装置12に格納されるプログラム及びデータは、補助記憶装置13に格納される。この場合、プロセッサ11が補助記憶装置13からプログラム及びデータを読み出し、主記憶装置12にロードする。
通信装置14は、ネットワークを介して他の装置と通信を行うインタフェースであり、例えば、NIC(Network Interface Card)、無線通信モジュール、USB(Universal Serial Interface)モジュール、及びシリアル通信モジュール等である。ネットワークは、WAN(Wide Area Network)、LAN(Local Area Network)、及びインターネット等である。なお、ネットワークの接続方式は、無線及び有線のいずれでもよい。
入力装置15は、データの入力を行うインタフェースであり、例えば、キーボード、マウス、タッチパネル、カードリーダ、及び音声入力装置等である。
出力装置16は、ユーザに処理経過及び処理結果等の情報を出力するインタフェースであり、例えば、画面表示装置(液晶モニタ、LCD:Liquid Crystal Display、グラフィックカード等)、音声出力装置(スピーカ等)、印字装置等である。
なお、テストケース抽出装置10が通信装置14を介して他の装置との間でデータの入出力を行う構成でもよい。この場合、テストケース抽出装置10は、入力装置15及び出力装置16を有していなくてもよい。
ここで、主記憶装置12に格納されるプログラム及び補助記憶装置13に格納されるデータについて説明する。主記憶装置12は、対応関係抽出部101、プログラム分析部102、重み付け処理部103、関連度分析部104、テストケース抽出部105、テストケース選択部106、及び情報記憶部107を実現するプログラムを格納する。また、補助記憶装置13は、情報記憶部107によって管理されるデータとして、変数−機能対応情報111、プログラム関数−変数対応情報112、メトリクス情報113、プログラム関数−変数相関情報114、及び関連度順位情報115を格納する。
なお、変数−機能対応情報111、プログラム関数−変数対応情報112、メトリクス情報113、プログラム関数−変数相関情報114、及び関連度順位情報115は、主記憶装置12に格納されてもよい。
対応関係抽出部101は、機能一覧201及びソースコード202を受け付けて、変数−機能対応情報111を生成する。機能一覧201は、キーワードとして使用する機能を格納する情報であり、例えば、リスト形式の情報である。ソースコード202は、テスト対象となるプログラム(ソフトウェア)のソースコードである。
プログラム分析部102は、ソースコード202を受け付けて、ソースコード202を分析し、分析結果に基づいてプログラム関数−変数対応情報112及びメトリクス情報113を生成する。
重み付け処理部103は、プログラム関数−変数対応情報112を受け付けて、プログラム関数−変数相関情報114を生成する。
関連度分析部104は、着目機能情報203、変数−機能対応情報111、プログラム関数−変数相関情報114、及びメトリクス情報113を受け付けて、関連度順位情報115を生成する。着目機能情報203は、ユーザが着目する機能を格納する情報であり、例えば、リスト形式の情報である。
テストケース抽出部105は、テストケース−機能対応情報204及び関連度順位情報115を受け付けて、優先テストケース情報205を生成する。テストケース−機能対応情報204は、テストケース及び機能の対応関係を定義した情報である。テストケース−機能対応情報204のデータ構造の一例は図8を用いて説明する。優先テストケース情報205は、実行するテストケースを管理する情報である。優先テストケース情報205のデータ構造の一例は図9を用いて説明する。
テストケース選択部106は、ユーザからの入力に基づいて、優先テストケース情報205に追加するテストケース、及び、優先テストケース情報205から除外するテストケースを選択する。なお、テストケース選択部106の処理については、実施例4で説明する。
情報記憶部107は、各機能部が生成する各種情報を管理し、また、各機能部が一時的に使用する情報を管理する。なお、情報記憶部107は、補助記憶装置13に記憶する情報を、ファイルシステム及びDBMS(DataBase Management System)を用いて管理する。
変数−機能対応情報111は、変数及び機能の対応関係を管理する情報である。変数−機能対応情報111のデータ構造の一例は図3を用いて説明する。
プログラム関数−変数対応情報112は、プログラム関数とプログラム関数に含まれる変数との対応関係を管理する情報である。プログラム関数−変数対応情報112のデータ構造の一例は図4を用いて説明する。
メトリクス情報113は、プログラムの特徴を示し、また、プログラムを定量的に評価する指標を管理する情報である。本実施例では、プログラムの複雑度を示す指標がメトリクス情報113に格納される。メトリクス情報113のデータ構造の一例は図5を用いて説明する。
プログラム関数−変数相関情報114は、プログラム関数及び変数の相関関係を管理する情報である。プログラム関数−変数相関情報114のデータ構造の一例は図6を用いて説明する。
関連度順位情報115は、テストケースの選択指標である重みを管理する情報である。本実施例では、着目機能に関連する機能の関連度を選択指標として扱う。なお、一つの着目機能に対して一つの関連度順位情報115が生成される。関連度順位情報115のデータ構造の一例は図7を用いて説明する。
なお、本実施例では、物理的な計算機を用いてテストケース抽出装置10を実現しているが、仮想技術又はクラウドサービス等によって提供される仮想計算機を用いて実現してもよい。
図3は、実施例1の変数−機能対応情報111のデータ構造の一例を示す図である。
変数−機能対応情報111は、機能301及び変数302から構成されるエントリを格納する。一つのエントリが一つの機能に対応する。
機能301は、機能の識別情報を格納するフィールドである。機能の識別情報は、例えば、機能の名称である。変数302は、機能301に対応する機能に関連する変数の識別情報を格納するフィールドである。変数の識別情報は例えば変数名である。変数302には、機能301に対応する機能に関連する全ての変数の識別情報が格納される。
図4は、実施例1のプログラム関数−変数対応情報112のデータ構造の一例を示す図である。
プログラム関数−変数対応情報112は、プログラム関数401及び変数402から構成されるエントリを格納する。一つのエントリが一つのプログラム関数に対応する。
プログラム関数401は、プログラム関数の識別情報を格納するフィールドである。プログラム関数の識別情報は、例えば、プログラム関数の名称である。変数402は、プログラム関数401に対応するプログラム関数に関連する変数の識別情報を格納するフィールドである。変数402には、プログラム関数401に対応するプログラム関数に関連する全ての変数の識別情報が格納される。
図5は、実施例1のメトリクス情報113のデータ構造の一例を示す図である。
メトリクス情報113は、プログラム関数501、入力数502、出力数503、及び行数504から構成されるエントリを格納する。一つのエントリが一つのプログラム関数に対応する。
プログラム関数501は、プログラム関数の識別情報を格納するフィールドである。入力数502は、関数の入力数を格納するフィールドである。出力数503は、関数の出力数を格納するフィールドである。行数504は、プログラム関数が含まれる行の数を格納するフィールドである。
なお、図5に示すメトリクス情報113は一例であって、使用するメトリクス情報をユーザが指定できるようにしてもよい。
図6は、実施例1のプログラム関数−変数相関情報114のデータ構造の一例を示す図である。
プログラム関数−変数相関情報114は、行列形式のデータである。図6では、行601はプログラム関数に対応し、列602は変数に対応する。セルには、プログラム関数内における変数の関連度(重要度)を示す値が格納される。値が大きい変数は、プログラム関数内において関連性が強い変数(重要な変数)であることを示す。
なお、プログラム関数−変数相関情報114をTfv、行をx、列をyとした場合、Tfv(x,y)はプログラム関数−変数相関情報114の(x、y)成分のセルの値を表すものとする。
図7は、実施例1の関連度順位情報115のデータ構造の一例を示す図である。
関連度順位情報115は、機能701及び重み702から構成されるエントリを格納する。一つのエントリが一つの機能に対応する。
機能701は、機能の識別情報を格納するフィールドである。重み702は、重みを格納するフィールドである。本実施例では、着目機能と機能との間の関連度が重み702に格納される。したがって、重み702の値が大きいほど、テストケースにおいて優先的に確認すべき機能であることを示す。なお、重み702には、重要度等が格納されてもよい。
図8は、実施例1のテストケース−機能対応情報204のデータ構造の一例を示す図である。
テストケース−機能対応情報204は、テストカテゴリ801、テスト項目802、及び機能803から構成されるエントリを格納する。一つのエントリが一つのテストケースに対応する。
テストカテゴリ801は、テストケースのカテゴリを格納するフィールドである。テストケースのカテゴリは、テストケースの管理を簡単にするために、所定の指針にしたがって分けられたグループである。図8では、機能Aの動作確認というテストケースと、機能Bの動作確認というテストケースとが同一のカテゴリXに分類されていることが分かる。
テスト項目802は、テストすべき項目を格納するフィールドである。例えば、機能Aを有するソフトウェアの場合、機能Aの正常動作確認という情報がテスト項目802に格納される。
機能803は、テストケースに関連する機能の識別情報を格納するフィールドである。例えば、機能Aの動作確認を行うテストケースにおいて、機能Aが機能Dと関連する場合、機能803には機能A及び機能Dが格納される。
なお、テスト項目及び機能の対応付けは、設計書、仕様書等の開発資料、又はヒアリング等基づいて、人又は計算機が行う。
ソフトウェアの開発では、開発者等が開発工程においてテストケースを作成して、作成したテストケースを実行する。
図9は、実施例1の優先テストケース情報205のデータ構造の一例を示す図である。
優先テストケース情報205は、テストカテゴリ901、テスト項目902、機能903、及び選択904から構成されるエントリを含む。一つのエントリが一つのテストケースに対応する。
テストカテゴリ901、テスト項目902、及び機能903は、テストカテゴリ801、テスト項目802、及び機能803と同一のフィールドである。選択904は、実行されるテストケースであるか否かを示す情報を格納するフィールドである。本実施例では、選択904には「Yes」及び「No」のいずれかが格納される。「Yes」は実行するテストケースとして選択されたことを示し、「No」は実行するテストケースとして選択されたなかったことを示す。
なお、実行するテストケースとして選択されたテストケースのみが登録された優先テストケース情報205でもよい。この場合、エントリには選択904が含まれていなくてもよい。
図10は、実施例1のテストケース抽出装置10が実行する処理の一例を説明するフローチャートである。
図10に示す処理は、変数−機能対応情報111及びプログラム関数−変数相関情報114を生成するための処理である。図10に示す処理は、例えば、装置の起動した場合、機能一覧201及びソースコード202が入力された場合、又はユーザから指示を受け付けた場合に実行される。なお、周期的に実行されてもよい。
テストケース抽出装置10は、機能一覧201及びソースコード202を取得する(ステップS101)。機能一覧201及びソースコード202は、補助記憶装置13に格納されてもよいし、外部の記憶装置に格納されてもよい。また、ユーザが機能一覧201及びソースコード202を入力してもよい。
次に、テストケース抽出装置10の対応関係抽出部101は、機能一覧201及びソースコード202を用いて、変数−機能対応情報111を生成する(ステップS102)。
具体的には、対応関係抽出部101は、機能一覧201から機能を選択し、ソースコードに含まれる変数名又は変数の近傍のコメントに機能に一致する用語が含まれるか否かを判定する。前述の条件を満たす場合、対応関係抽出部101は、変数−機能対応情報111にエントリを追加し、追加されたエントリの機能301及び変数302に機能及び変数の識別情報を設定する。なお、選択された機能のエントリが既に登録されている場合、対応関係抽出部101は、当該エントリの変数302に変数の識別情報を追加する。
なお、前述した生成方法は、一例であってこれに限定されない。一つの機能に対して、一つ以上の変数を対応付けたエントリが登録された変数−機能対応情報111を生成できる方法ならばどのような生成方法でもよい。
次に、テストケース抽出装置10のプログラム分析部102は、ソースコード202を分析し(ステップS103)、分析結果に基づいてプログラム関数−変数対応情報112及びメトリクス情報113を生成する(ステップS104)。ソースコード202の分析方法は、公知のものであるため詳細な説明は省略する。プログラム関数−変数対応情報112及びメトリクス情報113は、例えば、以下のようにして生成される。
プログラム分析部102は、分析結果に基づいて、全てのプログラム関数を抽出する。プログラム分析部102は、プログラム関数を一つ選択し、ソースコード202内で選択されたプログラム関数に出現する変数を特定する。プログラム分析部102は、選択されたプログラム関数及び特定された変数を対応付けたエントリをプログラム関数−変数対応情報112に登録する。全てのプログラム関数に同様の処理を実行することによって図4に示すようなプログラム関数−変数対応情報112が生成される。
また、プログラム分析部102は、分析結果に基づいて、メトリクス情報113を生成する。例えば、プログラム分析部102は、ソースコード202に含まれるプログラム関数の引数の数を入力数502に設定する。
次に、テストケース抽出装置10の重み付け処理部103は、プログラム関数−変数対応情報112を用いてプログラム関数−変数相関情報114を生成する(ステップS105)。その後、テストケース抽出装置10は、処理を終了する。
プログラム関数における変数の重要度(重み)を算出する方法は様々な方法が考えられる。本実施例では、重み付け処理部103は、文書中の単語に関する重み付け手法であるtf−idfを用いてプログラム関数−変数相関情報114を生成する。なお、他の方法を用いてプログラム関数−変数相関情報114が生成されてもよい。
tf−idfは、文書集合Xと単語集合Yが与えられたときに、文書集合の要素である文書xと単語集合の要素である単語yによって決まる値である。具体的には、文書x中における単語yの出現頻度を表すtf、及び単語yがどれだけ多くの文書xに出現したかを表すidfに対し、tfとidfとの積が単語yの重みとして算出される。
重み付け処理部103は、ソースコード202に含まれるプログラム関数が記述されている部分(文字列)を文書として扱い、また、変数を単語として扱って、tf−idfを用いて、変数の重みづけを算出する。これによって、図6に示すようなプログラム関数−変数相関情報114が生成される。
なお、対応関係抽出部101が実行する処理及びプログラム分析部102が実行する処理は、並列で実行されてもよい。
なお、変数−機能対応情報111、プログラム関数−変数対応情報112、メトリクス情報113、及びプログラム関数−変数相関情報114は、情報記憶部107によって補助記憶装置13に格納される。
図11は、実施例1のテストケース抽出装置10が実行する処理の一例を説明するフローチャートである。
図11に示す処理は、優先テストケース情報205を生成するための処理である。図11に示す処理は、例えば、着目機能情報203及びテストケース−機能対応情報204が入力された場合に実行される。なお、着目機能情報203には、ユーザが着目する着目機能が一つ以上含まれる。
テストケース抽出装置10の関連度分析部104は、変数−機能対応情報111、メトリクス情報113、プログラム関数−変数相関情報114、及び着目機能情報203を用いて、関連度順位情報115を生成する(ステップS201)。関連度順位情報115の生成方法の詳細は、図12A及び図12Bを用いて説明する。
次に、テストケース抽出装置10のテストケース抽出部105は、関連度順位情報115及びテストケース−機能対応情報204を用いて、優先テストケース情報205を生成する(ステップS202)。その後、テストケース抽出装置10は、処理を終了する。優先テストケース情報205の生成方法の詳細は、図15を用いて説明する。
図12A及び図12Bは、実施例1の関連度分析部104が実行する関連度順位情報115の生成処理の一例を説明するフローチャートである。図13は、実施例1の関連度分析部104が一時的に生成するワークテーブル1300のデータ構造の一例を示す図である。図14は、実施例1の関連度分析部104が一時的に生成する着目機能−変数相関情報1400のデータ構造の一例を示す図である。
関連度分析部104は、着目機能情報203に格納される各着目機能に対して以下の処理を実行する。
関連度分析部104は、着目機能kに関連する変数の集合Vkを生成する(ステップS301)。
具体的には、関連度分析部104は、着目機能情報203から着目機能kを選択する。関連度分析部104は、変数−機能対応情報111を参照し、機能301が着目機能kに一致するエントリを検索する。関連度分析部104は、検索されたエントリの変数302に設定された変数を特定し、特定された変数を要素とする集合Vkを生成する。
次に、関連度分析部104は、ワークテーブル1300を生成する(ステップS302)。
ここで、ワークテーブル1300は、行列形式のデータである。図13では、行1301は集合Vkに含まれる変数に対応し、列1302はプログラム関数−変数相関情報114の列602に対応する。この時点では、ワークテーブル1300の全てのセルの値は0に設定される。
なお、ワークテーブル1300をTr、行をx、列をyとした場合、Tr(x,y)はワークテーブル1300の(x、y)成分のセルの値を表すものとする。
次に、関連度分析部104は、集合Vkから一つの変数Vaを選択する(ステップS303)。
次に、関連度分析部104は、プログラム関数−変数相関情報114の行601に設定されたプログラム関数を要素とする集合Fを生成する(ステップS304)。
次に、関連度分析部104は、集合Fから一つのプログラム関数Fwを選択する(ステップS305)。
次に、関連度分析部104は、プログラム関数−変数相関情報114から行を選択し、プログラム関数−変数相関情報114の列に対応する変数を要素とする変数の集合Vを生成する(ステップS306)。このとき、選択された行のプログラム関数をFaとする。
次に、関連度分析部104は、集合Vから一つの変数Vwを選択する(ステップS307)。
次に、関連度分析部104は、プログラム関数−変数相関情報114のセルの値であるTfv(Fw,Va)及びTfv(Fw,Vw)の積を算出し、ワークテーブル1300のTr(Va,Vw)に算出された値を加算する(ステップS308)。
このとき、関連度分析部104は、メトリクス情報113を参照し、プログラム関数501がプログラム関数Faに一致するエントリの入力数502、出力数503、及び行数504の少なくともいずれかを用いて、Tfv(Fw,Va)及びTfv(Fw,Vw)の積を修正してもよい。例えば、当該積に入力数502を掛け合わせる方法が考えられる。
Tfv(Fw,Va)は、変数Vaとプログラム関数Faとの間の関連性を示す値である。また、Tfv(Fw,Vw)は、プログラム関数Faと、プログラム関数Faと関連性のある変数Vwとの間の関連性を表す値である。したがって、Tfv(Fw,Va)及びTfv(Fw,Vw)の積は、プログラム関数Faを介して、変数Vaと変数Vwとの間の関連性を示す値に対応する。
次に、関連度分析部104は、集合Vに含まれる全ての変数について処理が完了したか否かを判定する(ステップS309)。
集合Vに含まれる全ての変数について処理が完了していないと判定された場合、関連度分析部104は、ステップS307に戻り、同様の処理を実行する。
集合Vに含まれる全ての変数について処理が完了したと判定された場合、関連度分析部104は、集合Fに含まれる全てのプログラム関数について処理が完了したか否かを判定する(ステップS310)。
集合Fに含まれる全てのプログラム関数について処理が完了していないと判定された場合、関連度分析部104は、ステップS305に戻り、同様の処理を実行する。
集合Fに含まれる全てのプログラム関数について処理が完了したと判定された場合、関連度分析部104は、集合Vkに含まれる全てのプログラム関数について処理が完了したか否かを判定する(ステップS311)。
集合Vkに含まれる全てのプログラム関数について処理が完了していないと判定された場合、関連度分析部104は、ステップS303に戻り、同様の処理を実行する。
集合Vkに含まれる全てのプログラム関数について処理が完了したと判定された場合、関連度分析部104は、着目機能kと関連する変数との間の相関関係を管理する着目機能−変数相関情報1400を生成する(ステップS312)。
ここで、着目機能−変数相関情報1400は、1行n列の行列形式のデータである。図14では、行1401は着目機能に対応し、列1402は集合Vkに含まれる変数に対応する。関連度分析部104は、ワークテーブル1300の各列の成分の合計値を算出し、着目機能−変数相関情報1400の各セルに算出された合計値を設定する。例えば、ワークテーブルの列val2の値の合計値が、着目機能−変数相関情報1400の(val1,val2)成分のセルに設定される。
なお、着目機能−変数相関情報1400をTk、列数をyとした場合、Tk(y)は着目機能−変数相関情報1400の(1,y)成分のセルの値を表すものとする。
ステップS313以降の処理では、着目機能に基づいて特定された変数と関連性がある変数を用いて、着目機能と他の機能との間の関連度が算出される。
まず、関連度分析部104は、変数−機能対応情報111の機能301に設定された機能を要素とする集合Kwを生成する(ステップS313)。
次に、関連度分析部104は、関連度順位情報115にエントリを追加する(ステップS314)。
具体的には、関連度分析部104は、関連度順位情報115に、集合Kwに含まれる要素の数だけエントリを追加し、追加されたエントリの機能701に機能の識別情報を設定する。また、関連度分析部104は、全てのエントリの重み702を0に設定する。
なお、関連度順位情報115をTwとし、エントリの順番をxとして場合、Tw(x)は、x番目のエントリの重み702を表すものとする。
次に、関連度分析部104は、集合Kwから一つの機能Kaを選択する(ステップS315)。
次に、関連度分析部104は、変数−機能対応情報111を参照して、機能Kaに関連する変数を特定し、特定された変数を要素とする集合Vkaを生成する(ステップS316)。
具体的には、関連度分析部104は、機能301が機能Kaに一致するエントリを検索し、検索されたエントリの変数302に設定された変数を取得し、当該変数を要素とする集合Vkaを生成する。
次に、関連度分析部104は、集合Vkaから一つの変数Vbを選択する(ステップS317)。
次に、関連度分析部104は、着目機能−変数相関情報1400から変数Vbに対応する成分の値Tk(Vb)を取得し、関連度順位情報115の機能701が機能Kaに一致するエントリの重み702に加算する(ステップS318)。すなわち、Tw(Ka)にTk(Vb)が加算される。
次に、関連度分析部104は、集合Vkaに含まれる全ての変数について処理が完了したか否かを判定する(ステップS319)。
集合Vkaに含まれる全ての変数について処理が完了していないと判定された場合、関連度分析部104は、ステップS317に戻り、同様の処理を実行する。
集合Vkaに含まれる全ての変数について処理が完了したと判定された場合、関連度分析部104は、集合Kwに含まれる全ての機能について処理が完了したか否かを判定する(ステップS320)。
集合Kwに含まれる全ての機能について処理が完了していないと判定された場合、関連度分析部104は、ステップS315に戻り、同様の処理を実行する。
集合Kwに含まれる全ての機能について処理が完了したと判定された場合、関連度分析部104は、関連度順位情報115のエントリを重み702が大きい順に並び替え(ステップS321)、最終的な関連度順位情報115として出力する。
なお、ステップS308においてメトリクス情報113を用いていたが、ステップS321において重み702の値を修正するためにメトリクス情報113が用いられてもよい。
図15は、実施例1のテストケース抽出部105が実行する優先テストケース情報205の生成処理を説明するフローチャートである。
テストケース抽出部105は、優先テストケース情報205に、テストケース−機能対応情報204のエントリ数だけエントリを追加する(ステップS401)。このとき、テストケース抽出部105は、各エントリのテストカテゴリ901、テスト項目902、及び機能903にテストケース−機能対応情報204と同じ値を設定する。
次に、テストケース抽出部105は、関連度順位情報115を参照し、重み702が閾値より大きい機能を特定する(ステップS402)。
なお、テストケース抽出部105は、メトリクス情報113を用いて重み702の値を修正した後に、重み702と閾値との比較処理を実行してもよい。
次に、テストケース抽出部105は、特定された機能の中から機能を一つ選択する(ステップS403)。
次に、テストケース抽出部105は、優先テストケース情報205からエントリ、すなわち、テストケースを選択する(ステップS404)。
次に、テストケース抽出部105は、選択されたエントリの機能903に選択された機能が含まれるか否かを判定する(ステップS405)。
選択されたエントリの機能903に選択された機能が含まれると判定された場合、テストケース抽出部105は、選択されたエントリの選択904に「Yes」を設定する(ステップS406)。その後、テストケース抽出部105は、ステップS408に進む。
選択されたエントリの機能903に選択された機能が含まれないと判定された場合、テストケース抽出部105は、選択されたエントリの選択904に「No」を設定する(ステップS407)。その後、テストケース抽出部105は、ステップS408に進む。
次に、テストケース抽出部105は、優先テストケース情報205に登録された全てのテストケースについて処理が完了したか否かを判定する(ステップS408)。
優先テストケース情報205に登録された全てのテストケースについて処理が完了していないと判定された場合、テストケース抽出部105は、ステップS404に戻り、同様の処理を実行する。
優先テストケース情報205に登録された全てのテストケースについて処理が完了したと判定された場合、テストケース抽出部105は、特定された全ての機能について処理が完了したか否かを判定する(ステップS409)。
特定された全ての機能について処理が完了していないと判定された場合、テストケース抽出部105は、ステップS403に戻り、同様の処理を実行する。
特定された全ての機能について処理が完了したと判定された場合、テストケース抽出部105は、優先テストケース情報205を出力し(ステップS410)、処理を終了する。
以上示したように、実施例1によれば、テストケース抽出装置10は、ソースコード202の分析結果に基づいて、テストケースの重み付けを行うことによって、ユーザが着目する機能に関連するテストケースを選択できる。これによって、実行するテストケースが削減されるため、テストケースの実行に必要なリソース量を削減できる。
具体的には、テストケース抽出装置10は、プログラム関数−変数相関情報114を用いて、着目機能に関連する変数と、任意の変数との関連度を算出して、関連性のある変数を特定する。また、テストケース抽出装置10は、特定された変数と関連性がある機能の関連度を、当該変数の関連度を用いて算出する。このように、テストケース抽出装置10は、プログラムの内容の解析結果に基づいて、着目機能と他の機能との間の関連度を算出するため、高い精度で最適なテストケースを選択できる。
実施例2では、テストケース抽出部105が実行する処理が一部異なる。以下、実施例1との差異を中心に実施例1について説明する。
実施例2のテストケース抽出装置10のハードウェア構成及びソフトウェア構成は、実施例1のテストケース抽出装置10のものと同一である。また、実施例2のテストケース抽出装置10が管理する情報のデータ構造は、実施例1のデータ構造と同一である。また、実施例2のテストケース抽出装置10に入力される情報のデータ構造は、実施例1のデータ構造と同一である。
図16は、実施例2のテストケース抽出装置10のデータの入出力を説明する図である。
図16に示すように、テストケース抽出部105には、関連度順位情報115及びテストケース−機能対応情報204に加えて、着目機能情報203が入力される。
テストケース抽出部105は、図15の処理が完了した後、着目機能情報203を参照し、機能903に着目機能が含まれているテストケースの選択904に「Yes」を設定し、機能903に着目機能が含まれていないテストケースの選択904に「No」を設定する。
実施例2によれば、着目機能を含むテストケースだけを選択できるため、着目機能と関係のないテストケースを優先テストケース情報205から削除できる。
実施例3では、テストケース抽出部105が実行する処理が異なる。以下、実施例1との差異を中心に実施例3について説明する。
実施例3のテストケース抽出装置10のハードウェア構成及びソフトウェア構成は、実施例1のテストケース抽出装置10のものと同一である。また、実施例3のテストケース抽出装置10が管理する情報のデータ構造は、実施例1のデータ構造と同一である。
実施例3では、テストケース抽出装置10に入力される情報のデータ構造が一部異なる。具体的には、実施例3では、テストケース−機能対応情報204が異なる。他の情報については、実施例1と同一である。
図17は、実施例3のテストケース抽出装置10のデータの入出力を説明する図である。
図17に示すように、テストケース抽出部105には、関連度順位情報115及びテストケース−機能対応情報204に加えて、着目機能情報203及び制約条件1700が入力される。
制約条件1700は、開発リソース又は開発コスト等のテストケースの実行時の制約に関する情報である。例えば、開発コストの最大値が設定された制約条件1700等が考えられる。なお、制約条件1700には、規模等のコスト以外の評価値を設定してもよい。
図18は、実施例3のテストケース−機能対応情報204のデータ構造の一例を示す図である。
実施例3のテストケース−機能対応情報204に格納されるエントリは、コスト1801を含む。コスト1801は、テストケースの実行に必要なコストを格納するフィールドである。コストの値は、予め、開発資料、プログラム、過去の経験などの情報に基づいて、人又は計算機が設定する。
図19は、実施例3のテストケース抽出部105が実行する優先テストケース情報205の生成処理を説明するフローチャートである。
テストケース抽出部105は、関連度順位情報115に登録された全ての機能について処理が完了したか否かを判定する(ステップS501)。
関連度順位情報115に登録された全ての機能について処理が完了したと判定された場合、テストケース抽出部105は、ステップS506に進む。
関連度順位情報115に登録された全ての機能について処理が完了していないと判定された場合、テストケース抽出部105は、関連度順位情報115を参照し、選択されていない機能の中から重み702が最も大きい機能を選択する(ステップS502)。
次に、テストケース抽出部105は、テストケース−機能対応情報204を参照し、機能803に選択された機能を含むテストケースを、候補テストケースとして特定する(ステップS503)。
次に、テストケース抽出部105は、制約条件を満たすか否かを判定する(ステップS504)。具体的には、以下のような処理が実行される。
テストケース抽出部105は、優先テストケース情報205に登録されたテストケースのコスト1801の合計値に、候補テストケースのコスト1801の合計値を加算し、コスト合計値を算出する。
テストケース抽出部105は、コスト合計値が制約条件1700に設定された値以下であるか否かを判定する。コスト合計値が制約条件1700に設定された値以下である場合、テストケース抽出部105は、制約条件を満たすと判定する。以上がステップS504の処理の説明である。
制約条件を満たさないと判定された場合、テストケース抽出部105は、ステップS506に進む。
制約条件を満たすと判定された場合、テストケース抽出部105は、優先テストケース情報205に候補テストケースを登録する(ステップS505)。
具体的には、テストケース抽出部105は、優先テストケース情報205に候補テストケースの数だけエントリを追加する。テストケース抽出部105は、各エントリのテストカテゴリ901、テスト項目902、及び機能903にテストケース−機能対応情報204と同じ値を設定する。また、テストケース抽出部105は、追加されたエントリの選択904に「Yes」を設定する。
ステップS506では、テストケース抽出部105は、優先テストケース情報205を出力し(ステップS506)、処理を終了する。
実施例3によれば、制約条件に基づいて、開発リソースを考慮したテストケースの選択が可能となる。
実施例4では、ユーザが出力された優先テストケース情報205を修正する点が異なる。以下、実施例1との差異を中心に実施例4について説明する。
実施例4のテストケース抽出装置10のハードウェア構成及びソフトウェア構成は、実施例1のテストケース抽出装置10のものと同一である。また、実施例4のテストケース抽出装置10が管理する情報のデータ構造は、実施例1のデータ構造と同一である。また、実施例4のテストケース抽出装置10に入力される情報のデータ構造は、実施例1のデータ構造と同一である。
図20は、実施例4のテストケース抽出装置10のデータの入出力を説明する図である。図21は、実施例4の優先テストケース情報205に基づいて表示される画面に一例を示す図である。
図20に示すように、テストケース選択部106は、ユーザからの入力を受け付けて、優先テストケース情報205を修正する。ユーザは、出力された優先テストケース情報205に基づいて表示される画面を参照し、画面に対する操作を介して優先テストケース情報205を修正する。
ここで、図21を用いて画面について説明する。画面には円グラフが表示される。円グラフは三つの階層に分けられており、中心側の階層はカテゴリを表示する階層であり、中間の階層はサブカテゴリを表示する階層であり、外側の階層はテストケースを表示する階層である。円グラフの面積は、テストケースのコスト、規模、及びその他の評価値等を示す。すなわち、コスト等の大きさに応じてテストケースの表示の大きさ等の表示が異なる。
図21に示すように、優先テストケース情報205の選択904が「Yes」であるテストケースが強調表示される。例えば、テストケースA及びテストケースCが斜線で表示している。なお、強調表示の方法には限定されない。
ユーザは、図21に示すような画面を参照し、実行するテストケース及び実行しないテストケースを選択する。
テストケース選択部106は、実行するテストケースを追加する操作を受け付けた場合、優先テストケース情報205の該当するエントリの選択904に「Yes」を設定する。なお、実施例3の優先テストケース情報205の場合、テストケース選択部106は、実行するテストケースに対応するエントリを優先テストケース情報205に追加する。
また、テストケース選択部106は、実行予定のテストケースを除外する操作を受け付けた場合、優先テストケース情報205の該当するエントリの選択904に「No」を設定する。なお、実施例3の優先テストケース情報205の場合、テストケース選択部106は、実行しないテストケースに対応するエントリを優先テストケース情報205から削除する。
実施例4によれば、ユーザが意図に沿って実行するテストケース及び実行しないテストケースを選択できる。
実施例5は、実施例3及び実施例4を組み合わせた実施例である。実施例5のテストケース抽出装置10は、実行予定のテストケースを除外する操作を受け付けた場合、制約条件1700を満たすテストケースを、選択可能なテストケースの候補としてユーザに提示する。
図22は、実施例5のテストケース抽出装置10のデータの入出力を説明する図である。
図22に示すように、制約条件1700がテストケース抽出部105及びテストケース選択部106に入力される。
図23は、実施例5のテストケース選択部106が実行する処理の一例を説明するフローチャートである。
テストケース選択部106は、ユーザ操作を受け付けて、優先テストケース情報205を修正する(ステップS601)。修正方法は、実施例4で説明したため説明を省略する。ここでは、実行予定のテストケースを除外する操作を受け付けたものとする。この場合、テストケース選択部106は、ユーザが意図的に除外したテストケースの識別情報を一時的に保持する。
次に、テストケース選択部106は、実行しないテストケースのコストの合計値Cnを算出する(ステップS602)。
具体的には、テストケース選択部106は、優先テストケース情報205に登録されていないテストケースを特定する。テストケース選択部106は、テストケース−機能対応情報204を参照し、特定されたテストケースのコスト1801を取得する。テストケース選択部106は、特定されたテストケースのコスト1801の合計値を算出する。
次に、テストケース選択部106は、実行するテストケースのコストの合計値Cpを算出する(ステップS603)。
具体的には、テストケース選択部106は、テストケース−機能対応情報204を参照し、優先テストケース情報205に登録されたテストケースのコスト1801を取得する。テストケース選択部106は、優先テストケース情報205に登録されたテストケースのコスト1801の合計値を算出する。
次に、テストケース選択部106は、式(1)を満たすテストケースを、選択可能なテストケースとして特定する(ステップS604)。ここで、Csは制約条件1700に設定された開発コストの最大値を表す。
Figure 0006869082
なお、テストケース選択部106は、ユーザが意図的に除外したテストケースを判定対象から除外する。すなわち、実行予定のテストケースから除外されたテストケースのコストの合計値だけ制約条件1700に対するコストの余裕が生じるため、テストケース選択部106は、当該余裕の範囲内で選択可能なテストケースを選択する。
図24は、実施例5の優先テストケース情報205に基づいて表示される画面に一例を示す図である。
図21に示す画面において、ユーザが実行しないテストケースとしてテストケースCを選択したものとする。このとき、テストケースCの表示が変化する。図24では、斜線から黒に表示が変化する。このとき、テストケースCのコスト分の余裕が生じる。
テストケース選択部106は、図23で説明した処理を実行した結果、選択可能なテストケースとして、テストケースD及びテストケースEを特定する。図24では、テストケースD及びテストケースEが縦縞で表示される。なお、強調表示の方法には限定されない。
実施例5によれば、ユーザが実行しないテストケースを選択した場合に、選択可能な他のテストケースをユーザに提示することができる。これによって、ユーザは、効率的かつ容易に、制約条件1700を満たすテストケースを選択できる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD−RW、CD−R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
また、テストケース抽出装置10の各種機能部及び各種情報の配置形態は一例に過ぎない。各種機能部及び各種情報の配置形態は、テストケース抽出装置10が備えるハードウェア及びソフトウェアの性能、処理効率、及び通信効率等の観点から最適な配置形態に変更できる。
10 テストケース抽出装置
11 プロセッサ
12 主記憶装置
13 補助記憶装置
14 通信装置
15 入力装置
16 出力装置
101 対応関係抽出部
102 プログラム分析部
103 重み付け処理部
104 関連度分析部
105 テストケース抽出部
106 テストケース選択部
107 情報記憶部
111 変数−機能対応情報
112 プログラム関数−変数対応情報
113 メトリクス情報
114 プログラム関数−変数相関情報
115 関連度順位情報
201 機能一覧
202 ソースコード
203 着目機能情報
204 テストケース−機能対応情報
205 優先テストケース情報
1300 ワークテーブル
1400 着目機能−変数相関情報
1700 制約条件

Claims (15)

  1. 少なくとも一つ以上の変数を含む複数のプログラム関数から構成され、所定の機能を実現するソフトウェアを評価するためのテストケースを選択する計算機であって、
    前記計算機は、プロセッサ及び前記プロセッサに接続される記憶装置を備え、
    前記プロセッサは、
    前記ソフトウェアを分析して、前記機能及び前記機能に関連する変数の対応関係を管理する第1の対応情報、並びに前記プログラム関数及び前記変数の関連性の強さを示す関連度を管理する相関情報を生成し、
    着目機能の情報を前記テストケースを選択するための条件として受け付け、
    前記テストケース及び前記テストケースに関連する機能の対応関係を管理する第2の対応情報を受け付け、
    前記第1の対応情報に基づいて、前記着目機能に関連する第1の変数を特定し、
    前記相関情報に基づいて、前記ソフトウェアを構成する第1のプログラム関数に関連する第2の変数及び前記第1の変数の関連性の強さを示す第1の関連度を算出し、
    前記第1の対応情報及び前記第1の関連度に基づいて、前記テストケースの選択指標を前記第1の対応情報に登録される各機能について算出し、関連度順位情報として出力し、
    前記第2の対応情報及び前記関連度順位情報に基づいて、実行テストケースを選択し、優先テストケース情報として出力することを特徴とする計算機。
  2. 請求項1に記載の計算機であって、
    前記プロセッサは、
    前記相関情報から、前記第1の変数及び前記第1のプログラム関数の関連性の強さを示す第2の関連度を取得し、
    前記相関情報から、前記第2の変数及び前記第1のプログラム関数の関連性の強さを示す第3の関連度を取得し、
    前記第2の関連度及び第3の関連度を用いて、前記第1の関連度を算出することを特徴とする計算機。
  3. 請求項2に記載の計算機であって、
    前記プロセッサは、
    前記ソフトウェアの分析の結果に基づいて、前記ソフトウェアの特徴を管理するメトリクス情報を生成し、
    前記メトリクス情報を用いて前記第1の関連度を修正することを特徴とする計算機。
  4. 請求項2に記載の計算機であって、
    前記プロセッサは、
    前記関連度順位情報を参照して、前記選択指標と閾値とを比較し、
    前記比較の結果に基づいて、候補機能を選択し、
    前記第2の対応情報を参照して、前記候補機能に関連するテストケースを、前記実行テストケースとして選択することを特徴とする計算機。
  5. 請求項2に記載の計算機であって、
    前記プロセッサは、
    前記テストケースの実行時に使用されるリソースに関する制約を示す制約条件を受け付け、
    前記第2の対応情報、前記関連度順位情報、及び前記制約条件に基づいて、前記制約を満たし、かつ、前記着目機能と関連性があるテストケースを、前記実行テストケースとして選択することを特徴とする計算機。
  6. 請求項5に記載の計算機であって、
    前記制約は、前記テストケースの実行に要するコストの最大値であることを特徴とする計算機。
  7. 請求項6に記載の計算機であって、
    前記プロセッサは、前記コストの大きさに応じて前記テストケースを異なる態様で表示画面に表示し、
    前記表示画面では、前記実行テストケースとして選択されたテストケースが強調表示されることを特徴とする計算機。
  8. 請求項7に記載の計算機であって、
    前記プロセッサは、
    前記優先テストケース情報に登録された第1の実行テストケースの削除操作を受け付け、
    前記優先テストケース情報に登録されていないテストケースであって、前記制約を満たし、かつ、前記着目機能と関連性があるテストケースを、追加候補テストケースとして特定し、
    前記表示画面では、前記追加候補テストケースとして選択されたテストケースが強調表示されることを特徴とする計算機。
  9. 計算機が実行する、所定の機能を実現するソフトウェアを評価するためのテストケースの選択方法であって、
    前記ソフトウェアは、少なくとも一つ以上の変数を含む複数のプログラム関数から構成され、
    前記計算機は、プロセッサ及び前記プロセッサに接続される記憶装置を備え、
    前記プロセッサが、前記ソフトウェアを分析して、前記機能及び前記機能に関連する変数の対応関係を管理する第1の対応情報、並びに前記プログラム関数及び前記変数の関連性の強さを示す関連度を管理する相関情報を生成する第1のステップと、
    前記プロセッサが、着目機能の情報を前記テストケースを選択するための条件として受け付ける第2のステップと、
    前記プロセッサが、前記テストケース及び前記テストケースに関連する機能の対応関係を管理する第2の対応情報を受け付ける第3のステップと、
    前記プロセッサが、前記第1の対応情報に基づいて、前記着目機能に関連する第1の変数を特定する第4のステップと、
    前記プロセッサが、前記相関情報に基づいて、前記ソフトウェアを構成する第1のプログラム関数に関連する第2の変数及び前記第1の変数の関連性の強さを示す第1の関連度を算出する第5のステップと、
    前記プロセッサが、前記第1の対応情報及び前記第1の関連度に基づいて、前記テストケースの選択指標を前記第1の対応情報に登録される各機能について算出し、関連度順位情報として出力する第6のステップと、
    前記プロセッサが、前記第2の対応情報及び前記関連度順位情報に基づいて実行テストケースを選択し、優先テストケース情報として出力する第7のステップと、を含むことを特徴とするテストケースの選択方法。
  10. 請求項9に記載のテストケースの選択方法であって、
    前記第5のステップは、
    前記プロセッサが、前記相関情報から、前記第1の変数及び前記第1のプログラム関数の関連性の強さを示す第2の関連度を取得するステップと、
    前記プロセッサが、前記相関情報から、前記第2の変数及び前記第1のプログラム関数の関連性の強さを示す第3の関連度を取得するステップと、
    前記プロセッサが、前記第2の関連度及び第3の関連度を用いて、前記第1の関連度を算出するステップと、を含むことを特徴とするテストケースの選択方法。
  11. 請求項10に記載のテストケースの選択方法であって、
    前記第1のステップは、前記プロセッサが、前記ソフトウェアの分析の結果に基づいて、前記ソフトウェアの特徴を管理するメトリクス情報を生成するステップを含み、
    前記テストケースの選択方法は、前記プロセッサが、前記メトリクス情報を用いて前記第1の関連度を修正するステップを含むことを特徴とするテストケースの選択方法。
  12. 請求項10に記載のテストケースの選択方法であって、
    前記第7のステップは、
    前記プロセッサが、前記関連度順位情報を参照して、前記選択指標と閾値とを比較するステップと、
    前記プロセッサが、前記比較の結果に基づいて、候補機能を選択するステップと、
    前記プロセッサが、前記第2の対応情報を参照して、前記候補機能に関連するテストケースを、前記実行テストケースとして選択するステップと、を含むことを特徴とするテストケースの選択方法。
  13. 請求項10に記載のテストケースの選択方法であって、
    前記第2のステップは、前記プロセッサが、前記テストケースの実行時に使用されるリソースに関する制約として前記テストケースの実行に要するコストの最大値を含む制約条件を受け付けるステップを含み、
    前記第7のステップは、前記プロセッサが、前記第2の対応情報、前記関連度順位情報、及び前記制約条件に基づいて、前記制約を満たし、かつ、前記着目機能と関連性があるテストケースを、前記実行テストケースとして選択するステップを含むことを特徴とするテストケースの選択方法。
  14. 請求項13に記載のテストケースの選択方法であって、
    前記プロセッサが、前記コストの大きさに応じて前記テストケースを異なる態様で表示画面に表示するステップを含み、
    前記表示画面では、前記実行テストケースとして選択されたテストケースが強調表示されることを特徴とするテストケースの選択方法。
  15. 請求項14に記載のテストケースの選択方法であって、
    前記プロセッサが、前記優先テストケース情報に登録された第1の実行テストケースの削除操作を受け付けるステップと、
    前記プロセッサが、前記優先テストケース情報に登録されていないテストケースであって、前記制約を満たし、かつ、前記着目機能と関連性があるテストケースを、追加候補テストケースとして特定するステップと、を含み、
    前記表示画面では、前記追加候補テストケースとして選択されたテストケースが強調表示されることを特徴とするテストケースの選択方法。
JP2017075782A 2017-04-06 2017-04-06 テストケースを選択する計算機及びテストケースの選択方法 Active JP6869082B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017075782A JP6869082B2 (ja) 2017-04-06 2017-04-06 テストケースを選択する計算機及びテストケースの選択方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017075782A JP6869082B2 (ja) 2017-04-06 2017-04-06 テストケースを選択する計算機及びテストケースの選択方法

Publications (2)

Publication Number Publication Date
JP2018180711A JP2018180711A (ja) 2018-11-15
JP6869082B2 true JP6869082B2 (ja) 2021-05-12

Family

ID=64276854

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017075782A Active JP6869082B2 (ja) 2017-04-06 2017-04-06 テストケースを選択する計算機及びテストケースの選択方法

Country Status (1)

Country Link
JP (1) JP6869082B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102619048B1 (ko) * 2023-05-12 2023-12-27 쿠팡 주식회사 오류 처리 방법 및 그 시스템

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2147036A1 (en) * 1994-05-16 1995-11-17 Yih-Farn Robin Chen System and method for selective regression testing
JP4939973B2 (ja) * 2007-02-22 2012-05-30 富士通株式会社 試験制御装置、試験制御方法及び試験制御プログラム
JP5256829B2 (ja) * 2008-04-10 2013-08-07 富士通株式会社 検証支援プログラム、検証支援装置、および検証支援方法
JP5230587B2 (ja) * 2009-11-26 2013-07-10 三菱電機株式会社 ラダープログラムのプログラム試験装置、ラダープログラムのプログラム試験方法およびラダープログラムのプログラム試験用プログラム

Also Published As

Publication number Publication date
JP2018180711A (ja) 2018-11-15

Similar Documents

Publication Publication Date Title
US11625406B2 (en) Website scoring system
JP4368336B2 (ja) カテゴリ設定支援方法及び装置
US20100332439A1 (en) Apparatus and method for supporting cause analysis
Jiang et al. Recommending new features from mobile app descriptions
US20120317544A1 (en) Information processing apparatus and information processing method
CN104350475A (zh) 可视化的代码审阅
US20170300819A1 (en) Time-Series Prediction Apparatus and Time-Series Prediction Method
JP2020017197A (ja) 計算機システム及び予測器が出力した予測値の根拠に関連する情報の提示方法
CN114116441A (zh) 一种ui界面测试方法、装置、电子设备及存储介质
JPWO2017203672A1 (ja) アイテム推奨方法、アイテム推奨プログラムおよびアイテム推奨装置
JP5950357B2 (ja) 情報管理装置、情報管理方法およびプログラム
US10241899B2 (en) Test input information search device and method
JP6869082B2 (ja) テストケースを選択する計算機及びテストケースの選択方法
JP6285284B2 (ja) 意見活用支援装置、及び意見活用支援方法
JP6692281B2 (ja) テストケース生成装置、及びテストケース生成方法
JP6120607B2 (ja) 要件検出装置及び要件検出プログラム
KR102299525B1 (ko) 제품 평가 마이닝 방법 및 이를 수행하는 장치
US11341197B2 (en) Recommendation system based on adjustable virtual indicium
JP2011253449A (ja) 文書分析装置およびプログラム
CN114072787A (zh) 用于促进文档审核的快速数据输入的系统和方法
JP6861176B2 (ja) プロジェクト見積り支援方法およびプロジェクト見積り支援装置
JP6457926B2 (ja) 事業性分析装置
JP6931517B2 (ja) 校正支援装置、校正支援方法および校正支援プログラム
JP2020166443A (ja) データ加工方法レコメンドシステム、データ加工方法レコメンド方法、及びデータ加工方法レコメンドプログラム
US10678862B2 (en) Information processing apparatus, method, and non-transitory computer readable medium for searching business processes and related documents

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201201

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210115

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: 20210406

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210413

R150 Certificate of patent or registration of utility model

Ref document number: 6869082

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150