JP5758311B2 - テストコード生成装置、テストコード生成方法、テストコード生成プログラム - Google Patents

テストコード生成装置、テストコード生成方法、テストコード生成プログラム Download PDF

Info

Publication number
JP5758311B2
JP5758311B2 JP2012005137A JP2012005137A JP5758311B2 JP 5758311 B2 JP5758311 B2 JP 5758311B2 JP 2012005137 A JP2012005137 A JP 2012005137A JP 2012005137 A JP2012005137 A JP 2012005137A JP 5758311 B2 JP5758311 B2 JP 5758311B2
Authority
JP
Japan
Prior art keywords
test code
user
storage unit
user test
condition
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
JP2012005137A
Other languages
English (en)
Other versions
JP2013145443A (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.)
NTT Data Corp
Original Assignee
NTT Data Corp
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 NTT Data Corp filed Critical NTT Data Corp
Priority to JP2012005137A priority Critical patent/JP5758311B2/ja
Publication of JP2013145443A publication Critical patent/JP2013145443A/ja
Application granted granted Critical
Publication of JP5758311B2 publication Critical patent/JP5758311B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、テスト対象であるソフトウェアプログラムに対するテストコードを生成する技術に関する。
ソフトウェアシステム開発におけるテスト工程において、そのソフトウェアシステムを構成するソフトウェアプログラム毎に、条件分岐や入出力の妥当性を検査する単体テストが行われる。特許文献1、2には、このようなテストを自動化する技術が記載されている。
図9は、テスト対象であるソフトウェアプログラムに対する条件と動作とが対応付けられている決定表(デシジョンテーブル)のデータ例を示す図である。この決定表には、条件を示す事前条件および入力値と、条件に応じた動作を示す期待結果とが対応付けられており、テストケースの列毎に入出力の妥当性を検査するテストが行われることを示している。例えば、テストケース「1」では、引数である整数型「int」の変数「cnt」の値が「1」である場合に、テスト対象の関数(メソッド)を実行した戻り値であるブール型「boolean」の変数「actual」の値が偽(false)であることが期待結果である。ここで、入力値に示される引数の値を代入してテスト対象のメソッドを実行させ、戻り値が期待結果に示される値であるか否かを判定する既定テストコードを記述して予め記憶しておき、既定テストコードに含まれる変数や値を決定表に示される値に置換すれば、自動的にテストコードを生成することができる。図10は、このような決定表と既定テストコードとに基づいて生成するテストコードの例を示す図である。符号aの箇所には変数に値を代入するテストコードが示されており、符号bの箇所には値を代入した変数を引数としてテスト対象の関数を実行するテストコードが示されており、符号cの箇所には符号bで実行したメソッドの戻り値の値を検査するテストコードが示されている。
特開平5−342054号公報 特開平10−207727号公報
しかしながら、テスト対象の条件や動作は複雑なものである場合があり、全ての条件や動作に応じた既定テストコードを予め記憶しておくことは困難である。例えば、入力値として、テスト用に使用する値が記憶されたテストファイルを読み出し、読み出したテストファイルに含まれる値を引数として代入してテストを行いたい場合がある。このような状況に応じたテストコードを予め定めて記憶しておくことは困難である。また、テスト対象であるソフトウェアプログラムのプログラミング言語の仕様により、テストコードに独自の記述をしなければならない場合がある。そこで、ユーザの意図する様々なテストケースに応じたテストコードを、決定表に基づいて生成することが望ましい。
本発明は、このような状況に鑑みてなされたもので、ユーザの意図するテストケースに応じたテストコードを、決定表に基づいて生成するテストコード生成装置、テストコード生成方法、テストコード生成プログラムを提供する。
上述した課題を解決するために、本発明は、テスト対象であるソフトウェアプログラムの処理における条件と、条件に対応する動作とが対応付けられた複数のテストケースが含まれる決定表が記憶されている決定表記憶部と、条件または動作に対応する既定テストコードが予め記憶されている既定テストコード記憶部と、ユーザから入力された、条件または動作に対応するユーザテストコードが記憶されるユーザテストコード記憶部と、ユーザテストコードの入力を受け付け、入力されたユーザテストコードをユーザテストコード記憶部に記憶させる入力部と、条件または動作毎に、条件または動作に対応するユーザテストコードがユーザテストコード記憶部に記憶されているか否かを判定する判定部と、判定部が、条件または動作に対応するユーザテストコードがユーザテストコード記憶部に記憶されていると判定した場合、条件または動作に応じたユーザテストコードをユーザテストコード記憶部から読み出し、条件または動作に対応するユーザテストコードがユーザテストコード記憶部に記憶されていないと判定した場合、条件または動作に応じた既定テストコードを既定テストコード記憶部から読み出し、読み出したユーザテストコードまたは既定テストコードに基づいてテストコードを生成するテストコード生成部と、を備えることを特徴とするテストコード生成装置である。
また、本発明は、判定部が、決定表における条件または動作に、予め定められた識別情報が対応付けられている場合、条件または動作に対応するユーザテストコードがユーザテストコード記憶部に記憶されていると判定することを特徴とする。
また、本発明は、決定表記憶部には、テスト対象毎に異なる複数の決定表が記憶され、ユーザテストコード記憶部には、複数の決定表のそれぞれに対応するユーザテストコードである内部コード定義情報と、複数の決定表に共通して使用するユーザテストコードである外部コード定義情報とが記憶され、テストコード生成部は、条件または動作に対応するユーザテストコードが内部コード定義情報に含まれていれば、内部コード定義情報に含まれるユーザテストコードを読み出し、条件または動作に対応するユーザテストコードが内部コード定義情報に含まれていなければ、外部コード定義情報に含まれるユーザテストコードを読み出すことを特徴とする。
また、本発明は、上述のユーザテストコードには、予め定められた第1の文字列が含まれており、決定表には、第1の文字列を置換する第2の文字列が含まれており、テストコード生成部は、ユーザテストコードに含まれる第1の文字列を、第2の文字列に置換したテストコードを生成することを特徴とする。
また、本発明は、テスト対象であるソフトウェアプログラムの処理における条件と、条件に対応する動作とが対応付けられた複数のテストケースが含まれる決定表が記憶されている決定表記憶部と、条件または動作に対応する既定テストコードが予め記憶されている既定テストコード記憶部と、ユーザから入力された、条件または動作に対応するユーザテストコードが記憶されるユーザテストコード記憶部と、を備えたテストコード生成装置のテストコード生成方法であって、ユーザテストコードの入力を受け付け、入力されたユーザテストコードをユーザテストコード記憶部に記憶させるステップと、条件または動作毎に、条件または動作に対応するユーザテストコードがユーザテストコード記憶部に記憶されているか否かを判定するステップと、条件または動作に対応するユーザテストコードがユーザテストコード記憶部に記憶されていると判定した場合、条件または動作に応じたユーザテストコードをユーザテストコード記憶部から読み出し、条件または動作に対応するユーザテストコードがユーザテストコード記憶部に記憶されていないと判定した場合、条件または動作に応じた既定テストコードを既定テストコード記憶部から読み出し、読み出したユーザテストコードまたは既定テストコードに基づいてテストコードを生成するステップと、を備えることを特徴とするテストコード生成方法である。
また、本発明は、テスト対象であるソフトウェアプログラムの処理における条件と、条件に対応する動作とが対応付けられた複数のテストケースが含まれる決定表が記憶されている決定表記憶部と、条件または動作に対応する既定テストコードが予め記憶されている既定テストコード記憶部と、ユーザから入力された、条件または動作に対応するユーザテストコードが記憶されるユーザテストコード記憶部と、を備えたテストコード生成装置のコンピュータに、ユーザテストコードの入力を受け付け、入力されたユーザテストコードをユーザテストコード記憶部に記憶させるステップと、条件または動作毎に、条件または動作に対応するユーザテストコードがユーザテストコード記憶部に記憶されているか否かを判定するステップと、条件または動作に対応するユーザテストコードがユーザテストコード記憶部に記憶されていると判定した場合、条件または動作に応じたユーザテストコードをユーザテストコード記憶部から読み出し、条件または動作に対応するユーザテストコードがユーザテストコード記憶部に記憶されていないと判定した場合、条件または動作に応じた既定テストコードを既定テストコード記憶部から読み出し、読み出したユーザテストコードまたは既定テストコードに基づいてテストコードを生成するステップと、を実行させるテストコード生成プログラムである。
以上説明したように、本発明によれば、テスト対象であるソフトウェアプログラムの条件と対応する動作とが対応付けられた決定表と、条件または動作に対応する既定テストコードと、条件または動作に対応するユーザテストコードとを記憶し、入力されたユーザテストコードをユーザテストコード記憶部に記憶させ、条件または動作毎に、対応するユーザテストコードが記憶されているか否かを判定し、対応するユーザテストコードが記憶されていると判定した場合、その条件または動作に応じたユーザテストコードを読み出し、条件または動作に対応するユーザテストコードが記憶されていないと判定した場合、その条件または動作に応じた既定テストコードを読み出し、読み出したユーザテストコードまたは既定テストコードに基づいてテストコードを生成するようにしたので、様々なテストケースに応じたテストコードを、決定表に基づいて生成することができる。
本発明の一実施形態によるテストコード生成装置の構成例を示すブロック図である。 本発明の一実施形態による決定表の雛形の例を示す図である。 本発明の一実施形態による決定表のデータ例を示す図である。 本発明の一実施形態によるユーザテストコードのデータ例を示す図である。 本発明の一実施形態によるクラス指定表のデータ例を示す図である。 本発明の一実施形態によるテストコードのデータ例を示す図である。 本発明の一実施形態によるテストコード生成装置の動作例を示すフローチャートである。 本発明の一実施形態によるコード定義に関する情報を定める設定ファイルのデータ例を示す図である。 従来技術による決定表のデータ例を示す図である。 従来技術により生成するテストコードの例を示す図である。
以下、本発明の一実施形態について、図面を参照して説明する。
図1は、本実施形態によるテストコード生成装置100の構成を示すブロック図である。テストコード生成装置100は、テスト対象であるソフトウェアプログラムをテストするテストコードを生成するコンピュータ装置であり、決定表生成部110と、入力部120と、記憶部130と、判定部140と、テストコード生成部150とを備えている。本実施形態によるテストコード生成装置100が提供するテストコード生成機能は、例えばソフトウェアの統合開発環境に対するアドオンとして実装することができる。
決定表生成部110は、テスト対象であるソフトウェアプログラムをテストするための決定表を生成する。例えば、決定表生成部110は、決定表の雛形を予め自身の記憶領域に記憶している。図2は、決定表生成部110が記憶している決定表の雛形の例を示す図である。決定表には、テスト対象であるクラスとメソッドとを識別する情報が含まれる。この例では、決定表には、テスト対象であるソフトウェアプログラム名を示す「テスト対象クラス」の欄と、テスト対象であるソフトウェアプログラムの関数を示す「テスト対象メソッド」の欄とが含まれる。ここでは、テスト対象であるソフトウェアプログラムが、オブジェクト指向のプログラミング言語であるJAVA(登録商標)によって記述されている例を説明するため、テスト対象の単位をクラスやメソッドとして示すが、手続き型や関数型のプログラミング言語をテスト対象とすることもできる。この場合、例えばテスト対象をファイル名としたり、関数名としたりすることができる。決定表には、条件を示す事前条件および入力値と、条件に応じた動作を示す期待値とが対応付けられており、テストケースの列毎に入出力の妥当性を検査するテストが行われることを示している。このような決定表は、例えば表計算ソフトによって生成されたファイルにおけるシートとして記憶されている。
また、決定表生成部110は、ユーザからの要求に応じて、このような決定表の雛形をコピーして、テスト対象のクラス、メソッド毎の決定表を生成し、記憶部130の決定表記憶部131に記憶させる。ここで、決定表生成部110は、例えば単体テストの対象であるソフトウェアプログラムを外部の記憶部から読み出して解析し、テスト対象のクラス名、メソッド名、引数、戻り値等の情報を読み込んで、決定表における対象や要素、値に情報を追記して決定表生成部110に記憶させることもできる。
入力部120は、キーボードやマウス等の入力デバイスを備えており、ユーザからの情報の入力を受け付ける。例えば、入力部120は、決定表に対する追記情報の入力を受け付けて決定表記憶部131に記憶させたり、後述するユーザテストコードの入力を受け付け、入力されたユーザテストコードを記憶部130のユーザテストコード記憶部133に記憶させたりする。
記憶部130は、決定表記憶部131と、既定テストコード記憶部132と、ユーザテストコード記憶部133と、クラス指定表記憶部134とを備えており、テストコード生成のための各種情報が記憶される。
決定表記憶部131には、テスト対象であるソフトウェアプログラムの処理における条件と、その条件に対応する動作とが対応付けられた複数のテストケースが含まれる決定表が記憶されている。決定表は、決定表生成部110によって生成され、ユーザから入力部120に入力された情報が追記され、決定表記憶部131に記憶される。決定表記憶部131には、クラス、メソッド等のテスト対象毎に異なる複数の決定表が記憶される。図3は、決定表記憶部131に記憶されている決定表のデータ例を示す図である。決定表には、事前条件、入力値、期待結果のブロック毎に、テストのための動作や条件が対応付けられている。このような決定表に基づいて、後述するテストコード生成部150によりテストコードが生成される。
ここで、テストコードは、従来、決定表に含まれる情報と既定テストコード記憶部132に記憶されている既定テストコードとに基づいて生成されるが、様々なテストケースの全てに対応する既定テストコードを予め既定テストコード記憶部132に記憶しておくことは困難である。そこで、本実施形態では、決定表に予め定められたコード種別識別情報が対応付けられている項目については、既定テストコード記憶部132に記憶された既定テストコードではなく、ユーザテストコード記憶部133に記憶されているユーザテストコードに基づいてテストコードが生成される。例えば、この例では、コード種別識別情報として2列目のセルに「#」を対応付ける例を示している。また、決定表記憶部131に記憶される決定表において、コード種別識別情報が対応付けられたブロックには、ユーザテストコードにおいて定められた記法により示された場合に置換されることを示す第1の文字列と、その記法により示された第1の文字列を置換する第2の文字列とが含まれる。ここでは、「要素」の項目に第1の文字列である「class」と「data」とが対応付けられており、「値」の項目に第2の文字列である「MyBean」と「AMD0021」とが対応付けられている。
既定テストコード記憶部132には、決定表に含まれる条件または動作に対応する既定テストコードが予め記憶されている。既定テストコードは、従来と同様の構成であり、例えば、決定表に含まれる引数を変数に代入するテストコードや、テスト対象であるメソッドを実行した戻り値が、決定表に含まれる期待結果に示される戻り値と一致するか否かを判定するテストコード等である。
ユーザテストコード記憶部133には、ユーザから入力された、決定表における条件または動作に対応するユーザテストコードが記憶される。図4は、ユーザテストコード記憶部133に記憶されるユーザテストコードのデータ例を示す図である。ユーザテストコード記憶部133には、キー名と、ユーザテストコードと、インポート文と、コメントとが対応付けられて記憶される。キー名は、決定表における「対象」に対応する項目であり、対応するユーザテストコードを識別する情報である。ユーザテストコードは、生成されるテストコードのうち定められた箇所に挿入される。インポート文は、対応するユーザテストコードを実行するために必要なクラスを示す。コメントは、対応するユーザテストコードを説明するコメントである。
この例では、例えば、一行目には、決定表における入力値における「対象」の項目に「ListObjectGeneration」の文字列が対応付けられており、この文字列をキー名とした情報が記憶されている。ここで、ユーザテストコードには「${data}」や「${class}」等の文字列が含まれている。これは、決定表において指定することによって可変な項目であり、定められた記法により示された第1の文字列である。ここでは、ユーザテストコードにおける「${」から「}」までの箇所を、決定表において「${」から「}」に囲まれた文字列に対応する値に置換することを示している。例えば、決定表において「class」(第1の文字列)に「MyBean」(第2の文字列)が対応付けられているため、ユーザテストコードにおいて「List<${class}>」と記載された箇所は、「List<MyBean>」と置換される。このような置換処理は、テストコード生成部150によってテストコード生成時に行われる。ここでは、ユーザテストコードは、図に示すような表形式にて示される。このユーザテストコードは、決定表が表計算ソフトのファイルにおけるシートであれば、同一ファイルの別シートとして記憶されるようにしても良い。
クラス指定表記憶部134には、テストコードにおける、事前条件と入力値と期待結果以外の箇所に挿入するテストコードに関する情報であるクラス指定表が記憶される。図5は、クラス指定表記憶部134に記憶されるクラス指定表のデータ例を示す図である。ここでは、例えば「クラス外」、「クラスメンバ」、「setUp」等のブロック毎に、挿入するユーザテストコードを識別するキー名が対応付けられている。キー名に対応するユーザテストコードは、ユーザテストコード記憶部133に記憶されている。クラス指定表についても、決定表が表計算ソフトのファイルにおけるシートであれば、同一ファイルの別シートとして記憶されるようにしても良い。
判定部140は、決定表における条件または動作毎に、その条件または動作に対応するユーザテストコードがユーザテストコード記憶部133に記憶されているか否かを判定する。例えば、判定部140は、決定表における条件または動作のブロックに、予め定められたコード種別識別情報が対応付けられている場合、その条件または動作に対応するユーザテストコードが決定表記憶部131に記憶されていると判定する。
テストコード生成部150は、記憶部130に記憶されている情報に基づいて、テストコードを生成する。ここで、テストコード生成部150は、判定部140が、決定表における条件または動作に対応するユーザテストコードがユーザテストコード記憶部133に記憶されていると判定した場合、その条件または動作に応じたユーザテストコードをユーザテストコード記憶部133から読み出し、一方、判定部140が、その条件または動作に対応するユーザテストコードがユーザテストコード記憶部133に記憶されていないと判定した場合、その条件または動作に応じた既定テストコードを既定テストコード記憶部132から読み出す。テストコード生成部150は、読み出したユーザテストコードまたは既定テストコードに基づいて、テストコードを生成し、生成したテストコードを自身の記憶領域に記憶する。この際、テストコード生成部150は、ユーザテストコードに第1の文字列が含まれていれば、第1の文字列を第2の文字列に置換したテストコードを生成する。テストコード生成部150は、例えばテスト実行ツール等に、生成したテストコードを出力する。
図6は、テストコード生成部150が生成するテストコードのデータ例を示す図である。符号aに示す箇所には、インポート文が記載される。符号bに示す箇所には、クラス指定表において「クラス外」の項目に指定されたユーザテストコードが挿入されている。符号cに示す箇所には、テストを実行するテストクラスが記載されている。符号dに示す箇所には、クラス指定表において「クラスメンバ」の項目に指定されたユーザテストコードが挿入されている。符号eに示す箇所には、クラス指定表において「setUp」の項目に指定されたユーザテストコードが挿入されている。
符号fに示す箇所には、決定表における「入力値」の項目に指定されたユーザテストコードが挿入されている。符号gに示す箇所には、既定テストコードが挿入されており、テスト対象のメソッドの実行文が記載されている。符号hに示す箇所には、既定テストコードが挿入されており、期待結果の判定文が記載されている。符号iに示す箇所には、決定表における「期待結果」の項目に指定されたユーザテストコードが挿入されている。このようなテストコードが実行されることにより、ユーザの意図に応じたテストを行うことができる。
次に、図面を参照して、本実施形態によるテストコード生成装置100の動作例を説明する。図7は、本実施形態によるテストコード生成装置100の動作例を示すフローチャートである。
決定表生成部110は、自身の記憶領域に記憶されている決定表雛形をコピーして決定表を生成し、決定表記憶部131に記憶させる。ユーザからの操作要求に応じて、テストコード生成装置100は、決定表記憶部131に記憶されている決定表を読み出し、ディスプレイに表示させる(ステップS1)。入力部120は、ユーザから、決定表のうち、ユーザテストコードによるテストを実行したい箇所に対するコード種別識別情報(#)の入力を受け付ける(ステップS2)。
また、入力部120は、ステップS2においてコード種別識別情報が入力されたブロックに対するユーザテストコードの入力を受け付け、ユーザテストコード記憶部133に記憶させる(ステップS3)。また、入力部120は、クラス指定表に対する入力を受け付け、クラス指定表記憶部134に記憶させる(ステップS4)。同様に、入力部120は、ステップS4においてクラス指定表にコード種別識別情報が入力された箇所に対するユーザテストコードの入力を受け付け、ユーザテストコード記憶部133に記憶させる(ステップS5)。
ユーザから、入力部120にテストコード生成要求が入力されると、テストコード生成部150は、テストコードの生成を開始する(ステップS6)。まず、テストコード生成部150は、クラス指定表記憶部134に記憶されているクラス指定表と、クラス指定表に示されるキー名に対応付けられてユーザテストコード記憶部133に記憶されているユーザテストコードを読み出す。テストコード生成部150は、クラス指定表に示されるブロックの対応箇所に、ユーザテストコードを挿入する(ステップS7)。
テストコード生成部150は、決定表に含まれるテストケース毎にテストコードを生成する(ステップS8)。テストコード生成部150は、決定表のブロック毎に、コード種別識別情報が対応付けられているか否かを判定する(ステップS9)。テストコード生成部150は、コード種別識別情報が対応付けられていると判定すると(ステップS9:YES)、対応するキー名に対応付けられてユーザテストコード記憶部133に記憶されているユーザテストコードとインポート文とコメントとを読み出し、テストコードに挿入する。また、ユーザテストコードに定められた第1の文字列が含まれていれば、決定表から第2の文字列を読み出して置換する(ステップS10)。
一方、ステップS9において、コード種別識別情報が対応付けられていないと判定すると(ステップS9:NO)、既定テストコード記憶部132から対応する既定テストコードを読み出し、テストコードに挿入する(ステップS11)。テストコード生成部150は、全てのテストケースに対応するテストコードを生成していなければ(ステップS12:NO)、ステップS8に戻る。全てのテストケースに対応するテストコードを生成すれば(ステップS12:YES)、処理を終了する。
なお、本実施形態では、特定の決定表に対するユーザテストコードがユーザテストコード記憶部133に記憶される例を示したが、例えば複数の決定表に共通して使用するユーザテストコードを定義することもできる。この場合、ユーザテストコード記憶部133には、複数の決定表のそれぞれに対応するユーザテストコードである内部コード定義表と、複数の決定表に共通して使用するユーザテストコードである外部コード定義表が記憶される。すなわち、単一の決定表について使用するユーザテストコードを定義する内部コード定義表とは別に、複数のクラスが含まれるパッケージにおいて共通して使用するテストコードを定義する外部コード定義表を予めユーザテストコード記憶部133に記憶させておく。
そして、テストコード生成部150は、決定表に含まれる条件または動作に対応するユーザテストコードが内部コード定義表に含まれていれば、その内部コード定義表に含まれるユーザテストコードを読み出し、決定表に含まれる条件または動作に対応するユーザテストコードが内部コード定義表に含まれていなければ、外部コード定義表に含まれるユーザテストコードを読み出す。すなわち、テストコード生成部150は、決定表記憶部131に記憶されているユーザ定義表にコード種別識別情報が記載されている場合、まず内部コード定義表を読み出し、対応するユーザテストコードが内部コード定義表に含まれるか否かを判定する。ユーザテストコードが内部コード定義表に含まれていれば、そのユーザテストコードを読み出してテストコードに挿入する。ユーザテストコードが内部コード定義表に含まれていなければ、外部コード定義表を読み出し、対応するユーザテストコードを読み出してテストコードに挿入する。
これにより、内部コード定義表と外部コード定義表とに同一のキー名が存在する場合には、内部コード定義表に記憶されているユーザテストコードが優先的に適用される。すなわち、同一のパッケージに含まれる複数のクラスに同一のキー名のユーザテストコードを利用させたい場合でも、特定のクラスにのみ異なるユーザテストコードを利用させたい場合があるからである。ここでは、外部コード定義表のみを利用させ、内部コード定義表を利用させないようにすることもできる。この場合、内部コード定義表にキー名に対応するユーザテストコードが記憶されていても、内部コード定義表からユーザテストコードを読み出さず、外部コード定義表からユーザテストコードを読み出してテストコードに挿入する。図8は、使用するコード定義に関する情報を定める設定ファイルのデータ例を示す図である。符号aと符号bとの箇所には、外部コード定義表のパスが示されており、符号cの箇所には、内部コード定義表の使用可否を定める情報が示されている。
以上説明したように、本実施形態によれば、予め定められた既定テストコードが存在する場合には既定テストコードに基づいて従来通りにテストコードを生成し、ユーザからコード種別識別情報が記入されたブロックについては、ユーザテストコード記憶部133に記憶されたユーザテストコードに基づいてテストコードを生成するようにした。これにより、既定テストコードとは異なる動作によりソフトウェアプログラムのテストを行いたい場合にも、決定表とユーザテストコードとを記憶部130に記憶させることにより、ユーザの意図した動作によるテストを行うことが可能となる。また、テストコード生成装置100は、複数のテストケースについて同様のユーザテストコードを挿入したい場合にも、テストコード生成装置100がユーザテストコード記憶部133からユーザテストコードを読み出して、異なるテストケースに同一のテストコードを自動的に挿入する。このため、ユーザはテストコードにおけるテストケース毎に同一のテストコードを繰り返し記載しなくとも、決定表とユーザテストコードとに必要な情報を記載することによって、簡単にテストコードを生成させることができる。このように、本実施形態のテストコード生成装置100によれば、従来プログラマが作成していた複雑なテストコードを自動で生成することができるため、テスト工程における工数削減をすることができる。
なお、本発明における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりテストコードの生成を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
100 テストコード生成装置
110 決定表生成部
120 入力部
130 記憶部
131 決定表記憶部
132 既定テストコード記憶部
133 ユーザテストコード記憶部
134 クラス定義表記憶部
140 判定部
150 テストコード生成部

Claims (6)

  1. テスト対象であるソフトウェアプログラムの処理における条件と、当該条件に対応する動作とが対応付けられた複数のテストケースが含まれる決定表が記憶されている決定表記憶部と、
    前記条件または前記動作に対応する既定テストコードが予め記憶されている既定テストコード記憶部と、
    ユーザから入力された、前記条件または前記動作に対応するユーザテストコードが記憶されるユーザテストコード記憶部と、
    前記ユーザテストコードの入力を受け付け、入力されたユーザテストコードを前記ユーザテストコード記憶部に記憶させる入力部と、
    前記条件または前記動作毎に、当該条件または動作に対応する前記ユーザテストコードが前記ユーザテストコード記憶部に記憶されているか否かを判定する判定部と、
    前記判定部が、前記条件または動作に対応する前記ユーザテストコードが前記ユーザテストコード記憶部に記憶されていると判定した場合、当該条件または動作に応じた前記ユーザテストコードを前記ユーザテストコード記憶部から読み出し、前記条件または動作に対応する前記ユーザテストコードが前記ユーザテストコード記憶部に記憶されていないと判定した場合、当該条件または動作に応じた前記既定テストコードを前記既定テストコード記憶部から読み出し、読み出した前記ユーザテストコードまたは前記既定テストコードに基づいてテストコードを生成するテストコード生成部と、
    を備えることを特徴とするテストコード生成装置。
  2. 前記判定部は、前記決定表における前記条件または前記動作に、予め定められた識別情報が対応付けられている場合、当該条件または動作に対応する前記ユーザテストコードが前記ユーザテストコード記憶部に記憶されていると判定する
    ことを特徴とする請求項1に記載のテストコード生成装置。
  3. 前記決定表記憶部には、テスト対象毎に異なる複数の前記決定表が記憶され、
    前記ユーザテストコード記憶部には、前記複数の決定表のそれぞれに対応するユーザテストコードである内部コード定義情報と、前記複数の決定表に共通して使用するユーザテストコードである外部コード定義情報とが記憶され、
    前記テストコード生成部は、前記条件または動作に対応する前記ユーザテストコードが前記内部コード定義情報に含まれていれば、当該内部コード定義情報に含まれるユーザテストコードを読み出し、前記条件または動作に対応する前記ユーザテストコードが前記内部コード定義情報に含まれていなければ、前記外部コード定義情報に含まれるユーザテストコードを読み出す
    ことを特徴とする請求項1または請求項2に記載のテストコード生成装置。
  4. 前記ユーザテストコードには、予め定められた第1の文字列が含まれており、
    前記決定表には、前記第1の文字列を置換する第2の文字列が含まれており、
    前記テストコード生成部は、前記ユーザテストコードに含まれる前記第1の文字列を、前記第2の文字列に置換した前記テストコードを生成する
    ことを特徴とする請求項1から請求項3までのいずれか1項に記載のテストコード生成装置。
  5. テスト対象であるソフトウェアプログラムの処理における条件と、当該条件に対応する動作とが対応付けられた複数のテストケースが含まれる決定表が記憶されている決定表記憶部と、前記条件または前記動作に対応する既定テストコードが予め記憶されている既定テストコード記憶部と、ユーザから入力された、前記条件または前記動作に対応するユーザテストコードが記憶されるユーザテストコード記憶部と、を備えたテストコード生成装置のテストコード生成方法であって、
    前記ユーザテストコードの入力を受け付け、入力されたユーザテストコードを前記ユーザテストコード記憶部に記憶させるステップと、
    前記条件または前記動作毎に、当該条件または動作に対応する前記ユーザテストコードが前記ユーザテストコード記憶部に記憶されているか否かを判定するステップと、
    前記条件または動作に対応する前記ユーザテストコードが前記ユーザテストコード記憶部に記憶されていると判定した場合、当該条件または動作に応じた前記ユーザテストコードを前記ユーザテストコード記憶部から読み出し、前記条件または動作に対応する前記ユーザテストコードが前記ユーザテストコード記憶部に記憶されていないと判定した場合、当該条件または動作に応じた前記既定テストコードを前記既定テストコード記憶部から読み出し、読み出した前記ユーザテストコードまたは前記既定テストコードに基づいてテストコードを生成するステップと、
    を備えることを特徴とするテストコード生成方法。
  6. テスト対象であるソフトウェアプログラムの処理における条件と、当該条件に対応する動作とが対応付けられた複数のテストケースが含まれる決定表が記憶されている決定表記憶部と、前記条件または前記動作に対応する既定テストコードが予め記憶されている既定テストコード記憶部と、ユーザから入力された、前記条件または前記動作に対応するユーザテストコードが記憶されるユーザテストコード記憶部と、を備えたテストコード生成装置のコンピュータに、
    前記ユーザテストコードの入力を受け付け、入力されたユーザテストコードを前記ユーザテストコード記憶部に記憶させるステップと、
    前記条件または前記動作毎に、当該条件または動作に対応する前記ユーザテストコードが前記ユーザテストコード記憶部に記憶されているか否かを判定するステップと、
    前記条件または動作に対応する前記ユーザテストコードが前記ユーザテストコード記憶部に記憶されていると判定した場合、当該条件または動作に応じた前記ユーザテストコードを前記ユーザテストコード記憶部から読み出し、前記条件または動作に対応する前記ユーザテストコードが前記ユーザテストコード記憶部に記憶されていないと判定した場合、当該条件または動作に応じた前記既定テストコードを前記既定テストコード記憶部から読み出し、読み出した前記ユーザテストコードまたは前記既定テストコードに基づいてテストコードを生成するステップと、
    を実行させるテストコード生成プログラム。
JP2012005137A 2012-01-13 2012-01-13 テストコード生成装置、テストコード生成方法、テストコード生成プログラム Active JP5758311B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012005137A JP5758311B2 (ja) 2012-01-13 2012-01-13 テストコード生成装置、テストコード生成方法、テストコード生成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012005137A JP5758311B2 (ja) 2012-01-13 2012-01-13 テストコード生成装置、テストコード生成方法、テストコード生成プログラム

Publications (2)

Publication Number Publication Date
JP2013145443A JP2013145443A (ja) 2013-07-25
JP5758311B2 true JP5758311B2 (ja) 2015-08-05

Family

ID=49041218

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012005137A Active JP5758311B2 (ja) 2012-01-13 2012-01-13 テストコード生成装置、テストコード生成方法、テストコード生成プログラム

Country Status (1)

Country Link
JP (1) JP5758311B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6363027B2 (ja) * 2015-01-29 2018-07-25 東芝デジタルソリューションズ株式会社 検証装置、検証システム、検証方法およびプログラム
JP7279497B2 (ja) * 2019-04-26 2023-05-23 日本電気株式会社 テストコード生成装置、テストコード生成方法およびプログラム
CN116779020B (zh) * 2023-08-28 2023-11-07 合肥康芯威存储技术有限公司 一种存储器、测试方法、设备及介质

Also Published As

Publication number Publication date
JP2013145443A (ja) 2013-07-25

Similar Documents

Publication Publication Date Title
EP3631618B1 (en) Automated dependency analyzer for heterogeneously programmed data processing system
US8245186B2 (en) Techniques for offering and applying code modifications
US9372683B2 (en) Automatic generation of class identifiers from source code annotations
CN108027721B (zh) 用于使用控件来配置通用程序的技术
JP5845888B2 (ja) ソフトウェア修正装置、ソフトウェア修正システム、ソフトウェア修正方法、及び、ソフトウェア修正プログラム
US9715372B2 (en) Executable guidance experiences based on implicitly generated guidance models
JP5758311B2 (ja) テストコード生成装置、テストコード生成方法、テストコード生成プログラム
WO2017141893A1 (ja) ソフトウェア分析装置及びソフトウェア分析方法
JP2006350750A (ja) グリーン調達装置及びグリーン調達処理プログラム
JP6231260B2 (ja) 画面制御システム、画面制御プログラム、画面作成支援プログラム及び画面制御方法
Garg Cucumber Cookbook
JP7247593B2 (ja) 生成装置、ソフトウェアロボットシステム、生成方法及び生成プログラム
JP6797038B2 (ja) ソフトウェア素材選定支援装置及びソフトウェア素材選定支援プログラム
JP6748357B2 (ja) 解析装置、解析プログラムおよび解析方法
JP4983027B2 (ja) チェックプログラム及びチェック方法
JP6062735B2 (ja) ソフトウェア開発支援装置、ソフトウェア開発支援方法、ソフトウェア開発支援プログラム
JP5900212B2 (ja) テストデータ生成装置、該プログラム、及び該方法
JP5962116B2 (ja) 画面制御システム、画面制御プログラム、画面作成支援プログラム及び画面制御方法
WO2023026409A1 (ja) 情報処理装置、プログラム及び情報処理方法
JP5932262B2 (ja) 情報処理装置及び情報処理方法及びプログラム
Hunt Scala Testing
JP5013506B2 (ja) アプリケーションプログラムの実行方法、その装置及びプログラム
JP6937589B2 (ja) ライセンス管理装置、ライセンス管理方法、及びプログラム
JP6437899B2 (ja) 文書校正支援装置、文書校正支援方法、および文書校正支援プログラム
JP2009110277A (ja) 情報作成支援装置及びプログラム

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20130516

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130816

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140827

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150428

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150603

R150 Certificate of patent or registration of utility model

Ref document number: 5758311

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350