JP4253056B2 - テスト装置、テストケース評価装置、およびテスト結果解析装置 - Google Patents
テスト装置、テストケース評価装置、およびテスト結果解析装置 Download PDFInfo
- Publication number
- JP4253056B2 JP4253056B2 JP21939698A JP21939698A JP4253056B2 JP 4253056 B2 JP4253056 B2 JP 4253056B2 JP 21939698 A JP21939698 A JP 21939698A JP 21939698 A JP21939698 A JP 21939698A JP 4253056 B2 JP4253056 B2 JP 4253056B2
- Authority
- JP
- Japan
- Prior art keywords
- test
- error
- test case
- execution
- result
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Description
【発明の属する技術分野】
本発明は、テスト装置、テストケース評価装置、およびテスト結果解析装置に関する。特に、ソフトウェアなどの被テスト対象物が仕様に従って正常に動作するか否かの検証を行うテストにおいて、想定される誤りの検出能力に応じてテストケースを選択・補完し、又テストの実行結果から被テスト対象物の誤りを示すことによって、被テスト対象物に潜在する誤りを検出するのに必要十分なテストを効率よく行うための技術に関する。
【0002】
【従来の技術】
近年、ソフトウェア開発は大規模化かつ複雑高度化しており、これに伴ってソフトウェアの動作の検証を行うテストも大規模化している。
【0003】
このテストの一般的手順を以下に説明する。まず、テストされる対象物(ソフトウェア)の仕様に基づき、テストツール上でソフトウエアに入力されるテストケースが生成される。ここで、テストケースとは、所望するテストのパターンを記述したものであり、通常、各変数・状態の初期値と被テスト対象に与える命令シーケンスとで構成される。次に、このテストケースに基づき、被テスト対象物であるソフトウエアのテストが実行される。ユーザーは、このテスト実行で得られた実行結果を解析して、被テスト対象の仕様の誤り(仕様との相違、バグ)を検出し、デバッグ・プログラム修正を行う。これらの手順が、入力テストケースに関して所望する動作が得られるまで繰り返して行われる。
【0004】
従来より、テストの大規模化・複雑化を背景として、上述した手順のうちのテストケースの作成・テストの実行についての自動化技術が実用に供されている。
【0005】
第1に、テストケースの生成フェーズにおいては、テストケース生成作業を機械的に行うことが、ソフトウエアの大規模化に応じた大量のテストケースを自動生成することを可能としている。このテストケースの自動生成では、状態遷移図やフローチャート等で記述されるソフトウエアの仕様やソフトウエアのソースコード自体などの入力内容に従って、各テストケースが決定・生成される。
【0006】
第2に、テストの実行フェーズにおいては、各種のテストツールに対して用意されたテストケースが逐次自動で読み込まれて、ソフトウエアが実行される。この各テストケースについて実行されたテスト結果が判定され、出力される。このテスト結果の判定手法には、例えば、あらかじめ実行結果データを用意しておき、実際の実行結果が実行結果データに一致すれば合格とする方法、異常な動作を定義しておき、異常な動作が検出された場合に不合格とする方法、適用したテストケースに対して最後まで実行できれば合格とする方法などがある。
【0007】
このように、何度も繰り返し行われるテスト関連作業を自動的・機械的に行うことによって、テスト関連作業におけるコストの軽減が図られていた。
【0008】
【発明が解決しようとする課題】
しかしながら、従来のソフトウェアのテストには、以下の問題点があった。
【0009】
即ち、第1に、機械的に作成されたテストケースは、仕様に示される組み合わせパターンを網羅すべく生成されるため、ケースの数が膨大である。この生成されたテストケースは、誤りの検出能力(即ち、被テスト対象ソフトウエアに潜在するバグを検出する能力)も一律ではなく、検出能力の高いものと低いものとが混在している。しかし、従来はどのテストケースがどの誤りを検出するのに有効かを判断する有効な手段がなかった。従って、これら全てのテストケースを使って一様にテストを行っていた。こうしたテストは非効率的であり、開発コストを増大させていた。加えて、機械的手段で膨大に生成されたテストケースの集合が、必ずしも充分な誤り検出能力を有しているとは限らない。しかし、従来は生成されたテストケースの集合が誤りを検出するのに有効であるかどうかを判断する有効な手段がなかった。従って当該テストが誤りを検出するために充分になされたことを保証することは困難であった。
【0010】
また、第2に、テストケースの数の多さに伴って、テスト実行により出力されるテスト結果の数も多くなる。加えて、一般にはある一つの誤りに対し複数のテストケースが不合格となるため、テスト結果からある誤りを特定するためには、多くの不合格となったテスト結果を解析しなければならない。このため、テスト結果の解析・デバッグ作業が非効率的であった。
【0011】
これらの要因により、ソフトウエアのテスト実行作業・結果解析作業の各段階作業が長期化し、開発コストを増大させていた。
【0012】
以上のように、本発明は、上記の問題点を解決するためになされたものである。
【0013】
そしてその目的とするところは、テストケースの誤り検出能力を事前に評価することで、被テスト対象物に潜在する誤りを検出するのに必要十分なテストを効率よく行うことを可能とするテスト装置、およびテストケース評価装置を提供することにある。
【0014】
又、他の目的は、テストの実行結果に従い、容易に被テスト対象物中の誤りを示すことで、テスト結果の解析・デバッグの効率化を図ることを可能とするテスト装置、およびテスト結果解析装置を提供することにある。
【0015】
【課題を解決するための手段】
上記の課題を達成するための本発明の特徴は、予め被テスト対象に想定される誤りとテストケースとの対応関係である誤り検出データを求め、この誤り検出データを利用してテスト実行・解析を行う点にある。
【0016】
この誤り検出データはテスト関連作業の各フェーズで利用される。まず、第1には、この誤り検出データによりテストケースの事前評価を行う。第2には、この誤り検出データによりテストの実行結果から被テスト対象物に潜在する誤りを示す。
【0017】
かかる機能を実現するために、請求項1の発明は、仕様に基づいて作成された被テスト対象物が前記仕様に従って動作するか否かの検証を行うテスト装置であって、前記被テスト対象物に対する入力テストケースと前記被テスト対象物の仕様とから、想定される誤りの検出能力を示す誤り検出データを各テストケースごとに予め生成する誤り情報生成部を具備し、前記誤り検出データに基づき、少なくとも前記テストケースの評価および検証結果からの前記誤りの特定のうちの1つを行うことを特徴とするものである。
【0018】
上記構成によれば、各テストケースごとの誤り検出能力を予め取得することが可能となる。つまり、この各テストケースごとの誤り検出能力を用いてテストケースの評価やテスト結果の解析を効率よく行い、テストのコスト削減を図ることが可能となるのである。
【0019】
また、請求項2の発明は、仕様に基づいて作成された被テスト対象物が前記仕様に従って動作するか否かの検証の際に入力されるテストケースの評価を行うテストケース評価装置であって、前記被テスト対象物に対する入力テストケースと前記被テスト対象物の仕様とから、想定される誤りの検出能力を示す誤り検出データを各テストケースごとに予め生成する誤り情報生成部を具備し、前記誤り検出データに基づき各テストケースの評価を行うことを特徴とすることにより、与えられたテストケース集合の中から誤り検出に有効なテストケースを選択的に抽出したり、他方与えられたテストケース集合では検出しにくい誤りを指摘することが可能とする。つまり、無駄なテストを抑制したり、与えられたテストケースの足りない部分を補完する作業が効率化され、テストのコスト削減が実現される。
【0020】
また、請求項3の発明は、仕様に基づいて作成された被テスト対象物が前記仕様に従って動作するか否かの検証の結果を解析するテスト結果解析装置であって、被テスト対象物に対する入力テストケースごとの予め想定される1または複数の誤りの検出能力を示す誤り検出データと、前記被テスト対象物の検証の結果データとの比較を行い、該比較結果に基づいて、前記被テスト対象に存在する誤りを示す実行結果解析データを生成することにより、被テスト対象物に実際に存在する可能性の高い誤りを示すことができる。このため、存在する可能性の高い誤りから優先的に探索することが可能となる。また、不合格となったテスト結果を原因別に分類することができる。このため、テスト結果から誤りを特定する作業にかかるコストを削減することが可能となる。
【0021】
また、請求項4の発明は、前記誤り情報生成部は、さらに、被テスト対象物の原仕様の一部または全部を変更した誤り仕様を生成する誤り仕様生成部と、前記原仕様及び前記誤り仕様を被テスト対象物に対する入力テストケースごとに実行して前記各仕様の実行結果を出力する仕様実行部とを具備し、前記誤り検出データは、前記仕様実行部が行った、前記原仕様の各テストケースごとの仕様実行結果と前記誤り仕様の各テストケースごとの仕様実行結果との比較結果に基づき生成されることを特徴とする。
【0022】
上記構成によれば、原仕様に誤りを意図的に埋め込んだ誤り仕様を仮想的に実行し、原仕様の実行結果と相違する結果を生ずるテストケースを、誤り検出に有効なテストケースであると予め判定することができる。このように容易に各テストケースの誤り検出能力を算出し、与えられたテストケース集合の中から誤り検出に有効なテストケースを選択的に抽出したり、他方与えられたテストケース集合では検出しにくい誤りを指摘することが可能となる。つまり、無駄なテストを抑制したり、与えられたテストケースの足りない部分を補完する作業が効率化され、テストのコスト削減が実現される。
【0023】
また、請求項5の発明は、前記誤り検出データは、各テストケースについての、前記仕様の仕様実行結果および前記各テストケースに定義された命令シーケンス中の仕様実行の終了地点データを含むことにより、原仕様の実行結果と誤り仕様の実行結果とを比較して、容易に誤り検出データを生成することが可能とする。
【0024】
また、請求項6の発明は、前記実行結果解析データは、被テスト対象物についての各誤りの検出に有効な第1のテストケース群と、テストの実行結果が前記誤り検出データと一致した第2のテストケース群と、前記第1のテストケース群と前記第2のテストケース群との比較により得られ、被テスト対象物に各誤りが存在する可能性を示す評価結果とを含むことにより、仕様に応じて想定される各誤りごとにテストケースとの相関関係やテストされるソフトウエアとの相関関係を容易に把握することが可能となる。
【0025】
さらに、請求項7の発明(記録媒体)は、被テスト対象物に対して、被テスト対象物が仕様に従って動作するか否かの検証の際に入力されるテストケースの評価を行うテストケース評価プログラムを格納したコンピュータ読み取り可能な記録媒体であって、前記被テスト対象物に対する入力テストケースと前記被テスト対象物の仕様とから、予め想定される誤りについての誤り検出能力を示す誤り検出データを各テストケースごとに予め生成する誤り情報生成ステップと、前記誤り検出データに基づき各テストケースの評価を行うテストケース抽出ステップとを含むことを特徴とする。
【0026】
上記構成によれば、請求項2の発明と同様、与えられたテストケース集合の中から誤り検出に有効なテストケースを選択的に抽出したり、他方与えられたテストケース集合では検出しにくい誤りを指摘することが可能とする。つまり、無駄なテストを抑制したり、与えられたテストケースの足りない部分を補完する作業が効率化され、テストのコスト削減が実現される。
【0027】
さらに、請求項8の発明は、前記誤り情報生成ステップは、さらに、被テスト対象物の原仕様の一部または全部を変更した誤り仕様を生成する誤り仕様生成ステップと、前記原仕様及び前記誤り仕様を被テスト対象物に対する入力テストケースごとに実行する仕様実行ステップと、前記原仕様の各テストケースごとの仕様実行結果と前記誤り仕様の各テストケースごとの仕様実行結果との比較結果に基づき前記誤り検出データを生成する誤り情報抽出ステップとを含むことを特徴とする。
【0028】
上記構成によれば、請求項4の発明と同様、原仕様に誤りを意図的に埋め込んだ誤り仕様を仮想的に実行し、原仕様の実行結果と相違する結果を生ずるテストケースを、誤り検出に有効なテストケースであると予め判定することができる。このように容易に各テストケースの誤り検出能力を算出し、与えられたテストケース集合の中から誤り検出に有効なテストケースを選択的に抽出したり、他方与えられたテストケース集合では検出しにくい誤りを指摘することが可能となる。つまり、無駄なテストを抑制したり、与えられたテストケースの足りない部分を補完する作業が効率化され、テストのコスト削減が実現される。
【0029】
【発明の実施の形態】
以下、図面を用いて本発明の実施の形態を詳細に説明する。
【0030】
第1の実施形態
第1の実施形態は、仕様の誤りのパターンと各テストケースの対応関係を用いて、テストケースを事前に評価する機能を提供するものである。
【0031】
図1に示すように、本発明の実施形態に係るテスト装置1の構成は、テストの対象となるソフトウエアのテストに用いる入力テストケース6の分析・評価を行って、各テストケースごとに誤り検出を行うための情報を記録した誤り情報テーブル7を出力するテストケース評価部2と、被テスト対象ソフトウエアをテストケース11に従ってテストし、被テスト対象ソフトウエアに実際にどのような誤りが存在するかを評価した誤り評価データ14を出力するテスト結果解析部3とに大別される。第1の実施形態は、このうちのテストケース評価部2により実現される。
【0032】
テストケース評価部2は、テスト対象のソフトウエアの仕様5とテストケース集合6とを入力とし、入力テストケース6の分析・評価を行ってテストの対象となるソフトウエアの誤り検出を行うための情報を記録した誤り情報テーブル7を出力する。
【0033】
このテストケース評価部2は、テスト対象ソフトウエアの仕様(以下、単に仕様と称する)5に誤りを意図的に埋め込んで誤り仕様22を生成する誤り使用生成部21と、誤り仕様22を生成するための情報を記録する仕様変更データベース20と、仕様5と誤り仕様22とをそれぞれ入力テストケース6に従って実行する仕様実行部23と、仕様の実行結果である仕様/誤り仕様実行結果テーブル24上の仕様5と誤り仕様22との仕様の実行の結果を比較・解析して誤り情報テーブル7を生成する誤り情報抽出部25により構成される。
【0034】
尚、仕様変更データベース20の編成は、柔軟なアクセスが可能な関係型データベースであることが望ましいが、必ずしも関係型データベースに限定されず任意の編成方式が可能である。仕様・誤り仕様実行結果テーブル24・誤り情報テーブル7などの各テーブルも、アクセス頻度・データ規模などに応じて適宜配置場所やデータ編成を変更することができる。各テーブルの内容詳細については後述する。
【0035】
次に、第1の実施形態におけるハードウエア構成を説明する。第1の実施形態に係るテストケース評価装置2の実施には、以下で説明する処理を実現するプログラムを作成し、この作成したプログラムをロードすることでこの処理を実行可能とするコンピュータシステムを用いる。このコンピュータシステムには、いわゆる汎用機、ワークステーション、PC、NC(Network Computer)等が含まれる。第1の実施形態で用いるコンピュータシステムのハードウエアは、各種処理を行うためCPUと、プログラムメモリ・データメモリ等のメモリと、FD・CDなどの外部記憶装置と、キーボード・マウス等の入力装置と、ディスプレー・プリンタ等の出力装置とを備える。
【0036】
さらに、第1の実施形態を実施するコンピュータシステムは、単一のコンピュータであってもよく、また例えばローカル又はリモートにネットワーク接続されたサーバーマシンとクライアントマシンとにより構成されてもよい。ソフトウエアの開発規模や開発人員構成に応じて、仕様変更データベース20・テストケース6・仕様5・誤り情報テーブル7などの任意のデータをサーバーマシンに記憶し、テストケース評価装置2やテスト結果解析装置3のエンジン部分(処理部分)のみをクライアントマシンで並行的に実行することで、処理効率を向上させることができる。
【0037】
尚、上述したテストケース評価装置2を実現するためのプログラムは、各種記録媒体に保存することができる。かかる記録媒体を、上記ハードウエアを具備するコンピュータにより読み出し、当該プログラムを実行することにより、本発明が実施されることができる。ここで記録媒体とは、例えばメモリ・磁気ディスク・光ディスク等、プログラムを記録することができる装置全般を含む。
【0038】
第1の実施形態は上記のように構成されており、以下その処理の流れを順に説明する。
【0039】
まず、処理内容の説明に先立って第1の実施形態の以下の説明で用いられる仕様、テストケース等の例を示す。
【0040】
(1)仕様
第1の実施形態では、テスト対象のソフトウエアの仕様は図2で示されるような状態遷移図によって記述されているものとする。図2中の各ノードの意味を説明する。
【0041】
丸型ノードは、ソフトウェアの状態を表すノードである。例えば図2のノードN1はソフトウェアの状態がS1であることを示す。
【0042】
菱型ノードは、条件分岐を表すノードである。例えば図21のノードN3は、変数Pの値が1であるかどうかによって、次の処理がノードN4になるかノードN6になるかが決まることを示す。
【0043】
凹型五角形ノードは、受信処理を表すノードである。例えば図2のノードN2は、ソフトウェアが、メッセージMIN1が外部から送られてくるのを待つことを示す。
【0044】
凸型五角形ノードは、送信処理を表すノードである。例えば図2のノードN4は、ソフトウェアが、メッセージMOUT1を外部に送信することを示す。
【0045】
四角形ノードは、上記以外の通常処理を表すノードである。例えば図2のノードN9は、ソフトウェアが、変数RCの値を1増加させることを示す。
【0046】
尚、状態遷移が菱型ノード以外で分岐している場合は、次に行われる処理によって分岐先が定まることを表す。例えばノードN1の状態の後、MIN1が受信されれば分岐先はノードN2となり、MIN2が受信されれば分岐先はノードN7となる。
【0047】
尚、第1の実施形態では状態遷移図による仕様の表現を例としたが、仕様の表現はこれに限定されず、フローチャートなどの他の表現を用いて本発明を実施することも可能である。
【0048】
(2)テストケース
図3に、第1の実施形態で用いるテストケース集合の一例を示す。このテストケース集合は5つのテストケースb1〜b5からなる。表の各列が1つのテストケースを表している。各テストケースは初期状態と命令シーケンスとからなる。初期状態は、テスト開始時のテスト対象ソフトウエアの状態と変数の値とを表す。例えば、テストケースb1を用いたテストの開始時には、対象の状態がS1かつ変数PとRCの値がそれぞれ1と200であることになる。命令シーケンスは、テスト実行時にどのような命令をどのような順序で行うかを指定する。例えば、テストケースb1を用いたテストの実行には、b1の命令シーケンスの各命令が上の行から1行ずつ順に実行されていくものとする。命令シーケンスの各命令の意味は、以下のように定められているものとする。
【0049】
・SEND(message) テスト対象に対し、メッセージmessageを送信
・WAIT(message) メッセージ受信をしながら、テスト対象からメッセージmessageが送られるまで待つ
・TEST(状態:state) テスト対象の状態がstateとなるのを待つ
【0050】
第1の実施形態では、命令シーケンスを最後まで正常に実行できたとき、そのテストケースについてのテストは合格であると判定される。通常の実行に充分な時間を経過しても命令シーケンスの実行が終わらない場合、不合格であると判定する。この時間は、ユーザが推測に基づいて指定するものとする。
【0051】
例えば、図3のb1の命令シーケンスを用いてテストを行う場合、テスト実行部31は図3に示す以下のような命令を順に実行する。
【0052】
1).テスト対象の状態をS1、変数PとRCの値をそれぞれ1と200に設定する。
2).次に、テスト対象にメッセージMIN1を送信する。
3).テスト対象からメッセージMOUT1が返ってくるまで待つ。
4).テスト対象の状態がS2となるのを待つ。
【0053】
これらの命令を最後まで正常に実行できた場合に、テスト対象はb1のテストケースについて合格であるとする。通常の実行に充分な時間を経過しても3).においてメッセージMOUT1が返ってこない、もしくは4).においてテスト対象の状態がS2とならない場合に、不合格であるとする。
【0054】
尚、上記では、テストケースに定義された命令シーケンスをすべて正常に実行できるか否かをタイムアウトにより判断する例を説明した。但し、テスト実行の合否の判定方法はこれに限定されない。例えば、テスト対象のAPI(Application Programming Interface)を介して、又はテスト対象に変数内容を表示するコードを挿入することによって、テスト実行中における所定の変数の値を確認することで判定するなど、種々の変形が可能である。
【0055】
(3)テストの実行例
図2の仕様に基づいたソフトウェアに対し、図3のテストケースb1を適用してのテストを行った場合の流れの一例を以下に説明する。このテストの実行は、後述するテスト実行部31で行われる。仮にテスト対象ソフトウェアが仕様に忠実に作成できている(即ち誤りがなく作成できている)とすると、例えば次のような流れでテスト対象の実行が行われる。
【0056】
1).テスト対象の状態が1、変数PとRCの値がそれぞれ1と200に設定される。(図2のノードN1)
2).テスト実行部31がテスト対象にメッセージMIN1を送信する。(図3のb1テストケースの命令シーケンス1行目)
3).テスト対象はメッセージMIN1を受信する。(図2のノードN2)
4).テスト対象は変数Pの値が1であるかどうかを調べる。(図2のノードN3)
5).テスト対象はメッセージMOUT1を送信する。(図2のノードN4)
6).テスト対象の状態がS2に変化する。(図2のノードN5)
7).テスト実行部31がテスト対象の状態がS2となっていることを確認し、テストケースb1についてテストは合格と判定する。(図3のb1テストケースの命令シーケンス3行目)
【0057】
次に、上述の例を用いて、第1の実施形態に係るテストケース評価装置2における誤り仕様生成部21、仕様実行部23、誤り情報抽出部25における処理の流れを順に説明する。
【0058】
(1)誤り仕様生成処理
誤り仕様生成部21の行う誤り仕様生成処理の内容を以下に説明する。
【0059】
先に、以下の処理で用いられる仕様変更データベースおよび仕様変更情報について説明する。
【0060】
各仕様について想定している各誤りそれぞれについて、誤り仕様を生成するための仕様変更情報が予め定義されているものとする。これら各仕様変更情報は仕様変更データベース20に用意されているものとする。仕様変更情報は、仕様をどう変更すべきかを表す「仕様変更操作」と、仕様のどの部分(ノード)を変更すべきかを表す「仕様変更場所」の2つの情報から構成される。
【0061】
次に、誤り仕様生成部21の処理手順を、図4のフローチャートを用いて説明する。
【0062】
まず、想定している誤りの一つに着目する(S10)。想定している誤りそれぞれについて、S11からS15の処理を繰り返す(S16)。着目順序は任意で良い。
【0063】
次に、仕様変更データベース20中の、着目している誤りに対応する仕様変更情報を参照する(S11)。
【0064】
参照した仕様変更情報の仕様変更場所に当てはまる個所の一つに着目し、S13、S14を実行する。仕様変更場所に当てはまる個所それぞれについて、これを繰り返す(S15)。順序は任意で良い。
【0065】
入力された仕様のコピーを作成し、着目した個所について仕様変更操作で指定された変更を行う(S13)。
【0066】
変更した仕様のコピーに対し、着目した誤りと変更を施した個所を記録する(S14)。
【0067】
最後に変更を施された仕様のコピーの集合を誤り仕様の集合とする(S17)。
【0068】
上記の図4の処理フローを、理解のためさらに具体例をもって説明する。
【0069】
ここでは2つの誤りを想定し、図2の仕様に対して誤り仕様生成の処理を適用した場合を示す。仕様に埋め込む誤りの一例として、「処理抜け誤り」と「分岐先固定誤り」を想定する。「処理抜け誤り」に対する仕様変更情報の仕様変更操作を「処理を一つ抜く」、仕様変更場所を「通常処理ノード」とする。「受信分岐先固定誤り」に対する仕様変更操作を「何を受信しても、常に同じノードに分岐させる」、仕様変更場所を「受信分岐先ノード」とする。
【0070】
1).「処理抜け誤り」に着目する。(S10)
2).仕様変更データベース20から「処理抜け誤り」に対応する仕様変更情報を参照する。(S11)
3).仕様変更場所の「通常処理ノード」のうち、ノードN9に着目する。(S12)
4).図2の仕様のコピーを作成し、ノードN9の処理を抜く。(S13)
5).変更した仕様に対し、施した変更「処理を抜く」と変更個所「ノードN9」の2つの情報を記録する。(S14)
6).「通常処理ノード」のうち、ノードN10に着目し、2).〜5).と同様の操作を行う。(S12〜S14)
7).「受信分岐先固定誤り」に着目する。(S10)
8).仕様変更データベース20から「受信分岐先固定誤り」に対応する仕様変更情報を参照する。(S11)
9).仕様変更場所の「受信分岐先ノード」のうち、ノードN2に着目する。(S12)
10).図2の仕様のコピーを作成し、ノードN2において何を受信しても常にノードN2に分岐するよう変更を施す。(S13)
11).変更した仕様に対し、施した変更「何を受信しても常にノードN2に分岐するよう変更」と変更個所「ノードN2」の2つの情報を記録する。(S14)
12).「受信分岐先ノード」のうち、ノードN7に着目し、8).〜11).と同様の操作を行う。(S12〜S14)
13).変更を加えた4つの仕様を誤り仕様の集合とする。(S17)
以後上記の例を用いて説明を行っていくため、ノードN9の処理抜け誤りの誤り仕様をm1、ノードN10の処理抜け誤り仕様をm2、ノードN2の受信分岐先固定誤りの誤り仕様をm3、ノードN7の受信分岐先固定誤りの誤り仕様をm4と呼ぶ。m1〜m4の誤り仕様をそれぞれ図5乃至図8に示す。
【0071】
誤り仕様の集合が生成されると、次に仕様実行部23により仕様の実行が行われる。
【0072】
(2)仕様実行処理
仕様実行部23の行う仕様実行処理の内容を以下に説明する。尚、以下において仕様実行とは、仕様を模擬的に動作させて仮想的な実行を行うことをいう。仕様に入力を与えて模擬的に動作させることで、仕様どおりにつくられたソフトウェアがどのように動作するかを確認することができる。この仕様実行は、例えば、仕様の各記述方法に対応した既存のインタープリターなどを利用して行うことができる。
【0073】
仕様実行部23の入力は、仕様5と誤り仕様の集合22とテストケース集合6との3つである。仕様実行部23は、仕様5と各誤り仕様22に対して各テストケース6を適用して仕様実行を行い、実行結果を仕様/誤り仕様実行結果テーブル24(以下、単に仕様実行結果テーブルと称する)に記録する。仕様実行部23は、実行に要する時間を計測するためのタイマを備える。仕様実行部23は、一つのテストケースに関する実行が所定のタイムアウト時間を超えた場合、その時点で実行を中止し、そこでの実行結果を記録する。このタイムアウト時間はユーザによって指定され、その値は正常な実行が終了するのに充分であると考えられる時間を指定するものとする。
【0074】
先に、以下の処理で用いられる仕様・誤り仕様実行結果テーブル24について説明する。仕様実行結果テーブル24の内容の一例を図9に示す。仕様実行結果テーブル24は、列はテストケースの識別子、行は仕様または誤り仕様の識別子で指定されるテーブルである。これらの仕様の識別子は、仕様の名前・ポインタなど、識別対象を参照可能なものなら何でも良い。テーブルの各セルには、行で指定される仕様または誤り仕様に対して、列で指定されるテストケースを適用して仕様実行を行った結果が記録される。セルに記録される情報は、「テストケース合否」と「実行終了地点」の2つである。ここで、「テストケース合否」はテストケースについて実行した結果、そのテストケースについて合格と判定されたか否かを表す。「実行終了地点」はテストケースのどの部分まで正常に実行できたかを表す。
【0075】
次に、仕様実行部23の処理手順を、図10のフローチャートを用いて説明する。
【0076】
まず、与えられたテストケースの一つに着目し、S21、S22の処理を実行する(S20)。与えられたテストケースそれぞれについて、これを繰り返す(S23)。順序は任意で良い。
【0077】
与えられた仕様を、着目したテストケースに従って仕様実行する(S21)。
【0078】
仕様実行の結果(テストケース合否、実行終了地点)を、仕様実行結果テーブル24中に記録する(S22)。記録する場所は、与えられた仕様と着目したテストケースによって指定されるセルを選択する。
【0079】
次に、誤り仕様の一つに着目し、S25からS28の処理を実行する。誤り仕様それぞれについて、これを繰り返す(S29)。繰り返す順序は任意で良い。
【0080】
与えられたテストケースの一つに着目し、S26、S27の処理を実行する(S25)。与えられたテストケースそれぞれについて、これを繰り返す(S28)。順序は任意で良い。
【0081】
着目した誤り仕様を、着目したテストケースに従って仕様実行する(S26)。
【0082】
仕様実行の結果(テストケース合否、実行終了地点)を仕様実行結果テーブル24に記録する(S27)。記録する場所は着目した誤り仕様と着目したテストケースによって指定されるセルを選択する。
【0083】
上記の図10の処理フローを、理解のためさらに具体例をもって以下に説明する。ここでは、図2の元々の仕様とm1〜m4の誤り仕様(図5〜図8)、図3のテストケース集合等を入力とした場合の仕様実行処理を説明する。
【0084】
1).テストケースb1に着目する。(S20)
2).図2の仕様の動作を着目したテストケースb1に従って仕様実行する。仕様実行を行うと、仕様実行部23はノードN1からノードN2、ノードN3、ノードN4、ノードN5の順に処理を行う。命令シーケンスが全て正常に実行できるので、b1については合格と判断される。従って、仕様実行結果テーブル24の図2の仕様とテストケースb1によって指定されるセルに結果(テストケース合否は合格、実行終了地点は命令シーケンス中の3行目)を記録する。(S21、S22)
3).その他(b2〜b5)のテストケースについても、S21、S22の処理を繰り返す。(S23)
4).誤り仕様m1に着目する。(S24)
5).テストケースb4に着目する(S25)。m1の動作を、着目したテストケースに従って仕様実行する(S26)。仕様実行を行うと、ノードN1からノードN7、ノードN8、ノードN10、ノードN11、ノードN12と処理が進み、次にノードN1に戻って、ノードN1、ノードN7、ノードN8、ノードN10…という処理が行われる。但し、RCが200でないので、メッセージMOUT3はいつまで経っても送信されず、b4の命令シーケンスは5行目で止まったままとなる。そのため、いずれ仕様実行装置がタイムアウトを起こし、b4については不合格と判断されることになる。従って、仕様実行結果テーブルの誤り仕様m1とテストケースb4によって指定されるセルに、結果(テストケース合否は不合格、実行終了地点は命令シーケンス中の4行目)を記録する。(S27)
6).その他のテストケース(b1,b2,b3,b5)についても、S26、S27の処理を繰り返す。(S28)
7).その他の誤り仕様(m2〜m4)についても、S25からS28の処理を繰り返す。(S29)
以上の処理によって、図9に示す仕様実行結果テーブル24が得られる。図9中で、各セルの情報のうち、上の行がテストケース合否、下の行が実行終了地点を示す。
【0085】
(3)誤り情報抽出処理
次に、誤り情報抽出部25の行う誤り情報抽出処理の内容を以下に説明する。
【0086】
誤り情報抽出部25は、仕様実行結果テーブル24を入力として、
誤り仕様と誤り動作を起こすテストケースとの対応を抽出して、誤り情報テーブル7を生成する処理を行う。
【0087】
先に、以下の処理で生成される誤り情報テーブル7について説明する。誤り情報テーブル7の内容の一例を図11に示す。
【0088】
誤り情報テーブル7は、列はテストケースの識別子、行は誤り仕様の識別子で指定されるテーブルである。これらの識別子は仕様実行結果テーブル24で用いたものと同じものを用いる。セルに記録される情報も、仕様実行結果テーブル24と同じものを記録するが、あるテストケースに着目した際に、元々の仕様と実行結果が同じである誤り仕様に対応するセルについては空欄とする。
【0089】
以下に、誤り情報抽出部25の処理手順を、図12のフローチャートを用いて説明する。
【0090】
まず、仕様結果テーブル24の一つの列に着目し、S41からS45までの処理を行う。仕様実行結果テーブル24の各列それぞれについてこれを繰り返す(S46)。順序は任意で良い。
【0091】
仕様実行結果テーブル24の行のうち、誤り仕様に対応する行の一つに着目し、S42からS44の処理を行う。各誤り仕様に対応する行それぞれについて、これを繰り返す(S45)。順序は任意で良い。
【0092】
着目した行と列で指定されるセルの内容と、同じ列の与えられた仕様に対応する行で指定されたセルの内容とを比較する(S42)。この比較結果から不合格のものを抽出する。すなわち、比較結果の内容が同じなら、S45に進む。内容が異なれば、着目した行と列に対応するセルの内容を、誤り情報テーブルの対応するセルに記録する(S44)。
【0093】
上記の図12の処理フローを、理解のためさらに具体例をもって以下に説明する。ここでは、図9の仕様実行結果テーブル24と図3のテストケース集合6を入力とした場合の処理を説明する。
【0094】
1).仕様実行結果テーブルの列b2に着目する。(S40)
2).仕様実行結果テーブルの行m1に着目する。(S41)
3).行m1と列b2で指定されるセルの内容と、列b2と与えられた仕様に対応する行で指定されたセルの内容を比較する。内容は同じ(合格かつ2行目まで正常に実行)であるので、このまま次の処理に移る(S42、S43)
4).仕様実行結果テーブルの行m4に着目する。(S41)
5).行m4と列b2で指定されるセルの内容と、列b2と与えられた仕様に対応する行で指定されたセルの内容を比較する(S42)。内容が異なるので、行m4と列b2で指定されるセルの内容(不合格かつ1行目まで正常に実行)を、誤り情報テーブルのセル行m4と列b2で指定されるセルに記録する。(S43、S44)
6).他の行m2,m3についてもS42〜S44の処理を繰り返す。(S45)
7).他の列b1,b3,b4,b5についてもS41〜S45の処理を繰り返す。(S46)
上記の処理によって生成される誤り情報テーブル7の内容を図11に示す。
【0095】
第1の実施形態によれば、以下のような効果が得られる。
【0096】
すなわち、誤り情報テーブル7は、各テストケースの誤り検出能力に関する情報を持っており、テストケース集合全体や各テストケースの評価を行うことが可能である。
【0097】
たとえば、テストケースb5の列には2つの空でないセルがあり、それらの誤り仕様識別子はそれぞれm3とm4である。これは、テストケースb5の誤り仕様m3とm4について適用すると、与えられた仕様と違う結果が得られることを示している。このことから、テストケースb5は誤り仕様m3とm4で埋め込んだ誤りを検出するのに有効であるといえる。また、空欄の少ないテストケースほど多くの誤りに対して有効であり、逆に空欄の多いテストケースは誤り検出能力が低いと言える。これによってテストケースを分類したり、誤り検出能力の高いものを抽出することで、効率的なテストの実行ができる。
【0098】
また、誤り仕様に着目すると、m2の行に属するセルは全て空である。このことから、b1〜b5のテストケース集合はm2で埋め込んだ誤りを検出するのに有効でないことが判る。このようなテストケース集合の弱点を明らかにすることで、テストケースの弱点を補う作業を軽減したり、どんな誤りが検出されずに残りうるかを推測することが可能となる。
【0099】
第2の実施の形態
以下、本発明の第2の実施形態において、第1の実施形態と異なる点についてのみ、図面を用いて詳細に説明する。
【0100】
第2の実施形態は、仕様の誤りのパターンと各テストケースの対応関係を用いて、テスト対象ソフトウエアにどのような誤りが潜在するかを解析する機能を提供するものである。
【0101】
第2の実施形態は、図1に示す本発明の実施形態に係るテスト装置1のうちの、テスト結果解析装置3により実現される。
【0102】
尚、第2の実施形態は、第1の実施形態と組み合わせて、即ちまずテストケース評価装置2によるテストケース評価フェーズが行われた後、さらにテスト結果解析装置3によるテスト結果解析フェーズを行うべく構成されてもよい。あるいは、予めテストの対象となるソフトウエアについての誤り情報テーブル7が得られていれば、テスト結果解析装置3によるテスト結果解析フェーズを単独で実施することが可能である。
【0103】
図1に示すように、テスト結果解析装置3は、テスト対象のソフトウェア12とテストケース集合11と誤り情報テーブル7を入力とし、テスト対象に実際にどのような誤りが存在するかについての評価を行い、その結果を誤り評価データ14として出力する。
【0104】
テスト結果解析装置3は、各テストケース11についてテスト対象ソフトウエア12のテストを行なうテスト実行部31と、テスト実行部31におけるテストの結果と誤り情報テーブル7を比較・解析して実際にどんな誤りが存在するかについての評価を行なうテスト結果評価部33とにより構成される。
【0105】
第2の実施形態のハードウエア構成は第1の実施形態と同様であるため説明を省略する。
【0106】
第2の実施形態に係るテスト結果解析装置3は上記のように構成されており、以下その処理の流れにつき説明する。ここでは第2の実施形態に係るテスト実行部31、テスト結果評価部33における処理の流れを順に説明する。
【0107】
(1)テスト実行処理
まず、テスト実行部31の行うテスト実行処理の内容を以下に説明する。
【0108】
テスト結果解析処理では、まず、テスト実行部31にテストケース集合11とテスト対象ソフトウエア12が入力され、実際にテストを行って実行結果を記録する処理が行われる。
【0109】
テスト実行部31は、与えられたテストケースの集合11を用いて実際にテストを行い、結果をテスト実行結果テーブル32として記録する。尚、与えられるテストケース集合11は、第1の実施形態の入力であるテストケース集合とすることも可能であるが、誤り情報テーブル7に従って選択的に抽出・補完されたテストケース集合とすることが、テスト実行の効率化の面から望ましい。このテスト実行部31は実行に要する時間を計測するためのタイマを備えており、一つのテストケースに関する実行が所定のタイムアウト時間を超えた場合、その時点で実行を中止し、そこでの実行結果をテスト実行結果テーブル32に記録する。このタイムアウト時間はユーザによって指定され、その値は正常な実行が終了するのに充分であると考えられる時間を指定するものとする。
【0110】
先に、以下の処理で生成されるテスト実行結果テーブル32について説明する。
【0111】
図13に、テスト実行結果テーブル32の内容の一例を示す。テスト実行結果テーブル32は、テストケースの識別子によって列を指定する1行のテーブルである。このテスト実行結果テーブル32は各テスト対象ソフトウエアごとに生成される。各セルには、列に対応するテストケースを適用した際の実行結果が記録される。各実行結果は「テストケース合否」と「実行終了地点」の二つの情報から構成される。ここで、「テストケース合否」はテストケースについて実行した結果、そのテストケースについて合格と判断されたか否かを示す。「実行終了地点」はテストケースのどの部分まで正常に実行できたかを示す。
【0112】
次に、テスト実行部31の処理手順を、図14のフローチャートを用いて説明する。
【0113】
まず、テストケースの一つに着目し、S51、S52の処理を実行する(S50)。各テストケースについてこれを繰り返す(S53)。順序は任意で良い。
【0114】
着目したテストケースに従い、テスト対象ソフトウェアを動作させる(S51)。
【0115】
テスト対象ソフトウェアの動作結果(テストケース合否、実行終了地点)をテスト実行結果テーブル32に記録する(S52)。
【0116】
上記の図14の処理フローを、理解のためさらに具体例をもって以下に説明する。ここでは、図3のテストケース、図2の仕様に対応するソフトウェア、図11の誤り情報データテーブルを入力とした場合のテスト実行部31の処理を説明する。
【0117】
1).テストケースb1に着目する。(S50)
2).テスト対象ソフトウェアをテストケースb1に従って動作させる(S51)。その結果、命令シーケンスが1行目から3行目まで全て正常に実行できたとすると、テスト対象ソフトウェアはb1について合格と判断する。このとき、テスト実行結果テーブルのb1によって指定される列に結果(テストケース合否は合格、実行終了地点は命令シーケンス中の3行目)を記録する。(S52)
3).テストケースb3に着目する。(S50)
4).テスト対象ソフトウェアをテストケースb5に従って動作させる(S51)。その結果、命令シーケンスの2行目でメッセージを待っているうちにタイムアウト終了してしまったとすると、テスト対象ソフトウェアはb5について不合格と判断する。このとき、テスト実行結果テーブルのb5によって指定される列に結果(テストケース合否は不合格、実行終了地点は命令シーケンス中の1行目)を記録する。(S52)
5).その他(b2,b4,b5)のテストケースについても、S51、S53の処理を繰り返す(S53)。
【0118】
上記の処理によって、図13のテスト実行結果テーブルが得られたものとする。図13中の各セルの情報は、上の行がテストケース合否、下の行が実行終了地点を示している。
【0119】
(2)テスト結果評価処理
テスト実行結果テーブル32が生成されると、テスト結果評価部33による処理に移る。テスト結果評価部33はテスト実行結果テーブル32と誤り情報テーブル7を入力とし、誤り評価データ14を生成する。
【0120】
先に、以下の処理で生成される誤り評価データ14について説明する。
【0121】
図15に、図11の誤り情報テーブルと図13のテスト実行結果テーブルから得られる誤り評価データ14の内容の一例を示す。誤り評価データ14は、テスト実行結果テーブル32を集計した結果に基づく、各誤りの存在する可能性についての評価結果である。誤り評価データには、「有効なテストケース」、「実行結果の一致したテストケース」、「評価結果」の3つのデータ項目があり、これらのデータが各誤り仕様ごとに記録される。「有効なテストケース」には、その誤りを検出するのに有効なテストケースの集合が記録される。「実行結果の一致したテストケース」には、有効なテストケースのうち、テスト対象の実行結果が誤り情報の結果に一致したテストケースの集合が記録される。「評価結果」は誤りの存在する可能性についての評価結果であり、A,B,C,−の4段階で表現される。各段階の意味を以下に示す。
【0122】
1).Aは、有効なテストケースの集合が空でなく、かつ有効なテストケースの集合と実行結果の一致したテストケースの集合が完全に一致した場合の評価を表す。当該テスト対象に仕様の誤りが存在する(仕様どおりでない)可能性が高いことを示す。
【0123】
2).Bは、有効なテストケースの集合と実行結果の一致したテストケースの集合がともに空でなく、かつそれらが一致しない場合の評価を表す。その誤りが存在する可能性はAほとではないが、Cよりも高いことを示す。
【0124】
3).Cは、有効なテストケースの集合が空でなく、かつ実行結果の一致したテストケースの集合が空である場合の評価を表す。その誤りが存在しない可能性が高いことを示す。
【0125】
4).−は、有効なテストケースの集合が空である場合の評価を表す。判定不能であることを表す。
【0126】
以下に、テスト結果評価部33の処理手順を、図16のフローチャートを用いて説明する。
【0127】
まず、誤り情報テーブル7の一つの誤りの仕様に着目し、S62からS63の処理を行う。誤り情報テーブルの各誤り仕様それぞれについて、これを繰り返す(S64)。順序は任意で良い。
【0128】
着目した誤り仕様の行に属するセルのうち、空でないものに着目し、S62の処理を行う(S62)。同じ行の空でないセルそれぞれについて、これを繰り返す(S63)。順序は任意で良い。
【0129】
誤り評価データ14をS61で着目した誤り仕様に関して参照する。参照した部分の「有効なテストケース」項目に、S62で着目したセルに対応するテストケースを追加する(S62)。
【0130】
テスト実行結果テーブル32の一つのセルに着目し、S66〜S68の処理を行う(S65)。テスト実行結果テーブルの各セルについてこれを繰り返す(S69)。順序は任意で良い。
【0131】
S65で着目したセルに対応するテストケースに関して、誤り情報テーブル7を参照する。参照した列に属するセルのうち、S65で着目したセルと内容が一致するものに着目し、S67の処理を行う。参照した列で内容が一致する各セルについて、これを繰り返す(S68)。
【0132】
誤り評価データ14をS66で着目したセルに対応する誤り仕様に関して参照する。参照した部分の「実行結果が一致したテストケース」項目に、S65で着目したセルに対応するテストケースを追加する(S67)。
【0133】
誤り評価データ14の誤り仕様の一つに着目し、S71の処理を行う(S70)。誤り評価データ14の各誤り仕様について、これを繰り返す(S72)。順序は任意で良い。
【0134】
着目した誤り仕様について、以下の基準に従って評価結果を記録する(S71)。
【0135】
まず、有効なテストケースの集合が空でなく、かつ有効なテストケースの集合と実行結果の一致したテストケースの集合が完全に一致した場合には、評価結果はAとする。
【0136】
有効なテストケースの集合と実行結果の一致したテストケースの集合がともに空でなく、かつそれらが一致しない場合には、評価結果はBとする。
【0137】
有効なテストケースの集合が空でなく、かつ実行結果の一致したテストケースの集合が空である場合には、評価結果はCとする。
【0138】
有効なテストケースの集合が空である場合には、評価結果は−とする。
【0139】
上記の図16の処理フローを、理解のためさらに具体例をもって以下に説明する。ここでは、図11の誤り情報テーブルと図13のテスト実行結果テーブルを入力とした場合のテスト結果評価部33の処理を説明する。
【0140】
1).誤り情報テーブルの誤り仕様m1に着目する。(S60)
2).誤り情報テーブルのセルのうち、行m1と列b4で指定されるセルに着目する。(S61)
3).誤り評価データをm1に関して参照する。参照した部分の「有効なテストケース」項目に、テストケースb4を追加する。(S62)
4).誤り情報テーブルの他の誤り仕様(m2〜m4)についても、S61、S62の処理を繰り返す。(S64)
5).テスト実行結果テーブルのb4に対応するセルに着目する。(S65)
6).テストケースb4に関して、誤り情報テーブルを参照する。誤り情報テーブルの列b4に属するセルのうち、行m1と列b4で指定されるセルに着目する。(S66)
7).誤り評価データを誤り仕様m1に関して参照する。参照した部分の「実行結果が一致したテストケース」項目に、テストケースb4を追加する。(S67)
8).テスト実行結果テーブルの他のセル(b2〜b5に対応するセル)についても、S66〜S68の処理を繰り返す。(S69)
9).誤り評価データの誤り仕様m1に着目する。(S70)
10).誤り仕様m1について、有効なテストケースの集合が空でなく、かつ有効なテストケースの集合と実行結果の一致したテストケースの集合が完全に一致するので、誤り仕様m1の評価結果はAとなる。(S71)
11).誤り評価データの他の誤り仕様(m2〜m4)についても、S71の処理を実行する(S72)。
【0141】
上記の処理により、図15に示す内容の誤り評価データが得られる。
【0142】
図15に示す評価結果を参照することで、m1において埋め込んだ誤り(ノードN9処理抜け)が存在する可能性が高いこと、m3の誤り(ノードN2受信遷移先固定)が存在する可能性は低いこと、m2の誤り(ノードN10処理抜け)については有効なテストケースがなく判定不能であること等を容易に把握することができる。
【0143】
第2の実施形態によれば、以下のような効果が得られる。
【0144】
すなわち、誤り評価データを参照することにより、ユーザーが不合格のテスト結果からソフトウエア処理上のどこで仕様と一致しないのかを示す誤り位置を探るデバッグの際に、当該テスト対象ソフトウエアに存在する可能性の高い誤りから優先的に探すことができる。例えば図15の誤り評価データの場合では、存在する可能性の高いm1の誤りから探し、逆に可能性の低いm3は後回しにする、といったデバッグ手順をとることができ、デバッグ効率が大幅に向上する。
【0145】
また、テスト結果の誤りを原因別に分類することができる。例えば図13では、b4とb5の2つのテストケースが不合格となっているが、図13のテスト実行結果テーブルだけを参照したのではこれらが同一の原因によるものか、それぞれ違う原因によるものかの判定ができない。ここで図15の誤り評価データを参照すると、b4とm1の誤りを原因としている可能性が高く、一方b5はm3またはm4の誤りを原因としている可能性が高いことが容易に把握できる。従って、それぞれのテストケースの実行による誤りが、個別に原因を持っている可能性が高いと判断することができる。
【0146】
【発明の効果】
以上説明したように、本発明によれば、以下に記載されるような効果を奏する。
【0147】
即ち、本発明においては、被テスト対象物に想定される誤りに応じた各テストケースごとの誤り検出能力を示すデータを出力する機能を提供する。この誤り検出データをテスト実行に先だって各テストケースに適用することによって、与えられたテストケース集合の中から誤り検出能力の高いテストケースを選択的に抽出したり、他方では与えられたテストケース集合では検出しにくい誤りを事前に認識・テストケースを補完することができる。従って、被テスト対象に潜在する誤りを検出するのに必要十分なテストケースにより、テストを効率よく、迅速に行うことが可能となる。
【0148】
また、誤り検出データをテスト実行後のテスト実行結果に適用することによって、被テスト対象物に実際に存在する可能性の高い誤り(誤りの原因、パターン)の箇所や種別を容易に知ることができ、これらの誤りを優先的に探してデバッグすることができる。また、不合格となったテスト結果を原因別に分類することなどもできる。従って、テスト実行結果から誤りを特定する解析・デバッグ作業を効率よく、迅速に行うことが可能となる。
【0149】
このように、本発明を用いれば、テストの精度を維持しつつテストにおけるコスト削減が実現され、ひいてはソフトウエア開発期間の短縮および精度の向上がもたらされる。
【図面の簡単な説明】
【図1】本発明の実施形態に係るテスト装置、テストケース評価装置、およびテスト結果解析装置の機能構成を示すブロック図である。
【図2】本発明の実施形態におけるテストの対象となるソフトウエアの仕様の一例を示す図である。
【図3】本発明の実施形態におけるテストケースの集合の一例を示す図である。
【図4】本発明の第1の実施形態に係る誤り仕様生成部の処理アルゴリズムを示すフローチャートである。
【図5】本発明の実施形態における誤り仕様の一例を示す図である。
【図6】本発明の実施の形態における誤り仕様の例を示す図である。
【図7】本発明の実施形態における誤り仕様の一例を示す図である。
【図8】本発明の実施の形態における誤り仕様の一例を示す図である。
【図9】本発明の第1の実施形態における仕様/誤り仕様実行結果テーブルの一例を示す図である。
【図10】本発明の第1の実施形態に係る仕様実行部の処理アルゴリズムを示すフローチャートである。
【図11】本発明の実施形態における誤り情報テーブルの一例を示す図である。
【図12】本発明の第1の実施形態に係る誤り情報抽出部の処理アルゴリズムを示すフローチャートである。
【図13】本発明の第2の実施形態におけるテスト結果実行テーブルの一例を示す図である。
【図14】本発明の第2の実施形態に係るテスト実行部の処理アルゴリズムを示すフローチャートである。
【図15】本発明の第2の実施形態における誤り評価データの一例を示す図である。
【図16】本発明の第2の実施形態に係るテスト結果評価部の処理アルゴリズムを示すフローチャートである。
【符号の説明】
1 テスト装置
2 テストケース評価部
3 テスト結果解析部
5 仕様
6 テストケース集合
7 誤り情報テーブル
11 評価後テストケース集合
12 テスト対象ソフトウエア
14 誤り評価データ
20 仕様変更データベース
21 誤り仕様生成部
22 誤り仕様の集合
23 仕様実行部
24 仕様/誤り仕様実行結果テーブル
25 誤り情報抽出部
31 テスト実行部
32 テスト実行結果テーブル
33 テスト結果評価部
Claims (5)
- 仕様に基づいて作成された被テスト対象物が前記仕様に従って動作するか否かの検証の際に入力されるテストケースの評価を行なうテストケース評価装置であって、
被テスト対象物の原仕様の一部または全部を変更した誤り仕様を生成する誤り仕様生成部と、
前記原仕様及び前記誤り仕様を被テスト対象物に対するテストケースごとに実行して前記各仕様の実行結果を出力する仕様実行部と、
前記テストケースごとに前記原仕様の仕様実行結果と前記誤り仕様の仕様実行結果とを比較し、前記原仕様の仕様実行結果と異なる実行結果が得られた前記誤り仕様の仕様実行結果を、前記被テスト対象物に潜在する誤りの検出能力を示す誤り検出データとして抽出し、該誤り検出データに基づいて実行されるべきテストケースを抽出する誤り情報抽出部とを具備する
ことを特徴とするテストケース評価装置。 - 前記誤り検出データは、各テストケースについての、前記仕様の仕様実行結果および前記各テストケースに定義された命令シーケンス中の仕様実行の終了時点データを含む
ことを特徴とする請求項1に記載のテストケース評価装置。 - 仕様に基づいて作成された被テスト対象物が前記仕様に従って動作するか否かの検証の結果を解析するテスト結果解析装置であって、
請求項1に記載のテストケース評価装置により抽出された誤り検出データと、前記被テスト対象物の検証の結果データとの比較を行ない、
該比較結果に基づいて、前記被テスト対象物に存在する誤りを示す実行結果解析データを生成する
ことを特徴とするテスト結果解析装置。 - 前記実行結果解析データは、被テスト対象物についての各誤りの検出に有効な第1のテストケース群と、
テストの実行結果が前記誤り検出データと一致した第2のテストケース群と、前記第1のテストケース群と前記第2のテストケース群との比較により得られた、被テスト対象物に各誤りが存在する可能性を示す評価結果とを含む
ことを特徴とする請求項3に記載のテスト結果解析装置。 - 仕様に基づいて作成された被テスト対象物が前記仕様に従って動作するか否かの検証の際に入力されるテストケースの評価を行なうテストケース評価プログラムを格納するコンピュータ読み取り可能な記録媒体であって、
前記プログラムは、前記コンピュータに、
被テスト対象物の原仕様の一部または全部を変更した誤り仕様を生成する誤り仕様生成処理と、
前記原仕様及び前記誤り仕様を被テスト対象物に対するテストケースごとに実行して前記各仕様の実行結果を出力する仕様実行処理と、
前記テストケースごとに前記原仕様の仕様実行結果と前記誤り仕様の仕様実行結果とを比較し、前記原仕様の仕様実行結果と異なる実行結果が得られた前記誤り仕様の仕様実行結果を、前記被テスト対象物に潜在する誤りの検出能力を示す誤り検出データとして抽出し、該誤り検出データに基づいて実行されるべきテストケースを抽出する誤り情報抽出処理とを実行させるためのものである
ことを特徴とするコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21939698A JP4253056B2 (ja) | 1998-08-03 | 1998-08-03 | テスト装置、テストケース評価装置、およびテスト結果解析装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21939698A JP4253056B2 (ja) | 1998-08-03 | 1998-08-03 | テスト装置、テストケース評価装置、およびテスト結果解析装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000057014A JP2000057014A (ja) | 2000-02-25 |
JP4253056B2 true JP4253056B2 (ja) | 2009-04-08 |
Family
ID=16734768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP21939698A Expired - Fee Related JP4253056B2 (ja) | 1998-08-03 | 1998-08-03 | テスト装置、テストケース評価装置、およびテスト結果解析装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4253056B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7370317B2 (en) * | 2004-01-23 | 2008-05-06 | Microsoft Corporation | Automated generation of message exchange pattern simulation code |
JP2008299502A (ja) * | 2007-05-30 | 2008-12-11 | Denso Corp | テストケース妥当性自動検証プログラムおよびテストケース妥当性自動検証結果表示方法 |
JP5199393B2 (ja) * | 2008-01-15 | 2013-05-15 | ポステック アカデミー‐インダストリー ファウンデーション | マルチチャネルおよびマルチプラットフォームを支援する使用者インタフェースモデル生成システム |
CN113448844B (zh) * | 2021-06-21 | 2022-10-25 | 青岛海尔科技有限公司 | 用于回归测试的方法及装置、电子设备 |
-
1998
- 1998-08-03 JP JP21939698A patent/JP4253056B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000057014A (ja) | 2000-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10552301B2 (en) | Completing functional testing | |
Alshammari et al. | Flakeflagger: Predicting flakiness without rerunning tests | |
US6173440B1 (en) | Method and apparatus for debugging, verifying and validating computer software | |
US7376549B2 (en) | System performance prediction mechanism and method based on software component performance measurements | |
US4984239A (en) | Automatic verification system for maintenance/diagnosis facility in computer system | |
CN101169465B (zh) | 基于模型化和非模型化错误的重复测试生成和诊断方法 | |
US20090089636A1 (en) | Method and Apparatus for Logic Built In Self Test (LBIST) Fault Detection in Multi-Core Processors | |
US7506211B2 (en) | Automated atomic system testing | |
EP1117044A1 (en) | System model determination for failure detection and isolation in particular in computer systems | |
US7315973B1 (en) | Method and apparatus for choosing tests for simulation and associated algorithms and hierarchical bipartite graph data structure | |
US8938383B2 (en) | Enabling test script play back in different locales | |
JP2000222244A (ja) | コンピュ―タプログラムの微細でない変異のフィルタリングによる強化された機能テスト | |
US11249888B1 (en) | System and method for generating counterexample tests of incidental invariants | |
CN111797006B (zh) | 一种线程测试的方法、装置、设备以及存储介质 | |
JP4253056B2 (ja) | テスト装置、テストケース評価装置、およびテスト結果解析装置 | |
CN109101355B (zh) | 一种提取错误现场特征测试激励的处理器调试方法 | |
US7689399B1 (en) | Automatic extraction of design properties | |
Aljedaani et al. | Empirical study of software test suite evolution | |
CN112612882B (zh) | 检阅报告生成方法、装置、设备和存储介质 | |
Paradkar | A quest for appropriate software fault models: Case studies on fault detection effectiveness of model-based test generation techniques | |
WO2023058609A1 (ja) | 不具合解析装置及び不具合解析方法 | |
JP2000155156A (ja) | 半導体集積回路の故障診断装置 | |
JP2001051864A (ja) | データ処理装置の試験実行方式 | |
Kamlesh et al. | Metrics to Improve Software Reliability Based on an Object-Oriented Perspective | |
JP2004046310A (ja) | 障害修復プログラム適用方法及びその実施装置並びにその処理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050517 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071127 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081014 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081210 |
|
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: 20090113 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090123 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120130 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |