JP2004005399A - ソフトウェアのテスト方法および装置 - Google Patents

ソフトウェアのテスト方法および装置 Download PDF

Info

Publication number
JP2004005399A
JP2004005399A JP2003011147A JP2003011147A JP2004005399A JP 2004005399 A JP2004005399 A JP 2004005399A JP 2003011147 A JP2003011147 A JP 2003011147A JP 2003011147 A JP2003011147 A JP 2003011147A JP 2004005399 A JP2004005399 A JP 2004005399A
Authority
JP
Japan
Prior art keywords
scenario
information
software
test
extracted
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.)
Pending
Application number
JP2003011147A
Other languages
English (en)
Inventor
Tomohito Kudo
工藤 智史
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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP2003011147A priority Critical patent/JP2004005399A/ja
Publication of JP2004005399A publication Critical patent/JP2004005399A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】ソフトウェアのテストを行うためのシナリオを容易に作成し、信頼性の高いテストを実現する。
【解決手段】GUI機能を備えるソフトウェアの設計に一般的に使われているプロトタイピングツールで得られる状態遷移情報10から、複数のステートとステート間の遷移を生じさせるトリガとが列挙されるシナリオを作成部41によって作成する。重み付け手段50は、テスト対象となるソフトウェアの開発履歴情報30やシナリオ実行の有無に基づき、シナリオ60に重み付けを行う。時間算出部42は、各シナリオの実行時間を算出する。抽出部44は、シナリオ60の抽出を、実行時間の合計が実行時間情報30で定める時間内となる条件で、重み付けを実行時間で割って得られる重み付け点数の大きい順に抽出し、シナリオ実行手段70がテストを実行する。
【選択図】   図1

Description

【0001】
【発明の属する技術分野】
本発明は、GUI(Graphical User Interface)機能などを備えるソフトウェアのテスト方法および装置に関する。
【0002】
【従来の技術】
従来から、各種の汎用的な情報処理装置や、専用の電子機器などで、画像表示機能を備えるものは、GUI機能を備えて利用者の便宜を図るようにしている。GUI機能では、画面に表示する情報で利用者の操作を促し、また利用者の操作に応じて新たな画面表示の状態であるステートに遷移する。一つの画面表示のステートからは、一般に複数のステートに遷移可能である。GUI機能は、高度な画像処理を伴う。しかし、画像処理の内容はかなり定型化される面もあるので、ソフトウェア開発を支援するために、プロトタイピングツールと呼ばれるソフトウェアが用いられる。プロトタイピングツールでは、複数のステートの各ステートを表すステート識別子と、トリガとなる入力情報があるときに遷移する状態とについての状態遷移情報を得ることができる。
【0003】
GUI機能を備えるソフトウェアを開発するには、設計者が意図した通りにGUIが実装できているかテストする必要がある。テストでは、あるステートにおいてどのようなトリガにより次のステートに遷移するのか確認する。また、確認するための操作手順を複数のシナリオとして作成しておく。シナリオはテスト担当者が機能仕様書などを元に状態遷移を理解し手作業で作成するか、もしくは既存ソフトウェアの機能改善においては、以前に利用したシナリオを流用するなどして用意しなければならない。また、用意した複数のシナリオに基づくテストの実施も、手作業で行われるのが一般的である。しかしながら、手作業によるシナリオ作成では、テスト内容に漏れが生じることがあり、また、ソフトウェアが複雑化するにつれ、シナリオ作成に要する労力、時間ともに多大になるという問題がある。
【0004】
このような問題に対処する従来技術に、利用者が、ソフトウェアの構造仕様情報と状態遷移仕様情報とを定義することによって、ソフトウェアの仕様検証を行なうテストシナリオが自動的に生成され、そのテストシナリオに従ってシステムテストが自動的に実行されるというものがある(特許文献1参照)。
【0005】
しかしながら、前述の従来技術では、生成されるテストシナリオは、ソフトウェアのGUI部が持つ全ての状態と全ての状態が網羅されたものとなるので、ソフトウェアの信頼性の軽重を問うことなく、すべてのソフトウェアに対して同様にテストを実行する。各種の機器に備わる画像処理機能が、日進月歩で向上される状況下では、ソフトウェアの開発に許される時間が益々短くなる傾向にあり、限られた時間の中でソフトウェアの信頼性を確保するためには、信頼性の低い部分を重点的にテストし、信頼性の高いと推定される部分のテストを省くことで、テストの実施に要する総時間を節約する必要があるけれども、従来技術では、どのシナリオを重点的にテストするべきかを判断することができないという問題がある。
【0006】
また、ソフトウェアの修正を行なうと、修正後、修正に関わる部分のテストを実施しなければならないので、ソフトウェアを修正するか否かを決定する前に、テストに要する時間を見積り、その見積り時間に基づいて、実際にソフトウェアを修正するか否か、また修正する時期を決定している。したがって、テストに要する時間を誤って短く見積ることによって、テスト時間を含めたソフトウェアの総開発時間を実際より短く見積ってしまうことがある。総開発時間を実際より短く見積ると、計画に対する開発達成の遅延や、開発時間の不足に起因してテスト不充分によるソフトウェアの信頼性低下を惹起することがある。逆に、テストに要する時間を誤って長く見積ることによって、必要以上に製品の市場投入時期が遅れて市場機会を失ったり、正確にテスト時間を見積れば開発計画の中に織り込むことが出来たはずの製品の機能追加ができなくなってしまうこともある。
【0007】
また、テスト実施の段階で、ソフトウェアの不具合が発覚すると、不具合と関係がありテストを実施しなければならない範囲を明確にし、不具合のあるソフトウェアを修正するまで、不具合と関係のない部分を優先的にテストする必要があるけれども、従来、どのシナリオが不具合と関係しているのかを人手で判断しているので、作業に要する労力および時間が多大になるという問題がある。
【0008】
【特許文献1】
特開平9−223040号公報
【0009】
【発明が解決しようとする課題】
本発明の目的は、シナリオの作成を容易に行い、信頼性の高いテストを行うことができるソフトウェアのテスト方法および装置を提供することである。
【0010】
本発明の他の目的は、ソフトウェアを修正するに際し、ソフトウェアの修正に伴って新たにテストを実施しなければならないシナリオを抽出し、抽出されるシナリオを実行するために必要とされる時間を正確に予測することのできるソフトウェアのテスト方法および装置を提供することである。
【0011】
【課題を解決するための手段】
本発明は、複数の状態間を遷移しながら動作するソフトウェアのテスト方法であって、
該ソフトウェアの各状態に関する修正の回数を開発履歴情報として記憶しておき、
状態間の遷移を遷移のトリガとなる入力情報とともに定める状態遷移情報に基づいて、状態間をトリガで連結してテストを行うシナリオを、複数作成する作成工程と、
作成工程で作成される各シナリオの実行時間を算出する時間算出工程と、
開発履歴情報を用いて、シナリオ作成工程で作成される各シナリオに重みを付け、時間算出工程で算出される各シナリオの実行時間の長さの相対的な比で重みを除算し、各シナリオの重み付け点数を求める重み付け工程と、
重み付け工程で求められる重み付け点数が大きい順に、作成工程で作成されているシナリオを抽出し、抽出されるシナリオの実行時間の合計が予め定める条件を満たすように抽出するシナリオを選択する抽出工程と、
抽出工程で抽出するシナリオを実行してテストを行う実行工程とを、
含むことを特徴とするソフトウェアのテスト方法である。
【0012】
本発明に従えば、GUI機能を備えるなど、複数の状態間を遷移しながら動作するソフトウェアを、作成工程と、時間算出工程と、重み付け工程と、抽出工程と、実行工程とを含む方法でテストする。ソフトウェアの各状態に関する修正の回数は、開発履歴情報として記憶しておく。作成工程では、状態間の遷移を遷移のトリガとなる入力情報とともに定める状態遷移情報に基づいて、状態間をトリガで連結してテストを行うシナリオを、複数作成するので、状態とトリガとを組合わせてシナリオを容易に作成することができる。時間算出工程では、作成工程で作成される各シナリオの実行時間を算出する。重み付け工程では、開発履歴情報を用いて、シナリオ作成工程で作成される各シナリオに重みを付け、時間算出工程で算出される各シナリオの実行時間の長さの相対的な比で重みを除算し、各シナリオの重み付け点数を求める。修正回数が多い状態は重み付け点数を大きくすることができ、抽出工程では、重み付け点数の大きい順にシナリオを抽出し、抽出されるシナリオの実行時間の合計が予め定める条件を満たすようにするので、テストに要する時間が条件を満たす範囲で、修正回数の多い状態が多く含まれるようなシナリオを抽出することができる。実行工程では、抽出工程で抽出するシナリオを実行してテストを行う。
【0013】
作成工程で用いる状態遷移情報は、ソフトウェアの設計において一般的に使われているプロトタイピングツールなどから得られる。状態遷移情報から複数のシナリオを作成し、テスト対象となるソフトウェアの開発履歴情報やシナリオの実行時間に基づいてシナリオに重み付けを行い、実行時間が予め定める条件を満たす範囲で有効なテストを行うことができる。
【0014】
また本発明は、複数の状態間を遷移しながら動作するソフトウェアのテスト方法であって、
ソフトウェア部品が、実機における使用実績のあるもの、実機における使用実績のあるものを一部修正したもの、新規に作成されて実機における使用実績のないもののうち、いずれに属するかを属性情報として記憶しておき、
状態間の遷移を遷移のトリガとなる入力情報とともに定める状態遷移情報に基づいて、状態間をトリガで連結してテストを行うシナリオを、複数作成する作成工程と、
作成工程で作成される各シナリオの実行時間を算出する時間算出工程と、
属性情報を用いて、シナリオ作成工程で作成される各シナリオに重みを付け、時間算出工程で算出される各シナリオの実行時間の長さの相対的な比で重みを除算し、各シナリオの重み付け点数を求める重み付け工程と、
重み付け工程で求められる重み付け点数が大きい順に、作成工程で作成されているシナリオを抽出し、抽出されるシナリオの実行時間の合計が予め定める条件を満たすように抽出するシナリオを選択する抽出工程と、
抽出工程で抽出するシナリオを実行してテストを行う実行工程とを、
含むことを特徴とするソフトウェアのテスト方法である。
【0015】
本発明に従えば、ソフトウェア部品が、実機における使用実績のあるもの、実機における使用実績のあるものを一部修正したもの、新規に作成されて実機における使用実績のないもののうち、いずれに属するかを属性情報として記憶しておき、重み付け工程では、属性情報を用いて、シナリオ作成工程で作成される各シナリオに重みを付け、時間算出工程で算出される各シナリオの実行時間の長さの相対的な比で重みを除算し、各シナリオの重み付け点数を求める。本発明のその他の工程は、前述の発明と同じである。
【0016】
このように、属性情報に基づいて、実機における使用実績のあるもの、実機における使用実績のあるものを一部修正したもの、新規に作成されて実機における使用実績のないものであるかを、重み付けに反映させるので、新規に作成されて実機における使用実績がなく信頼性の低い状態は重み付け点数を大きくすることができ、重み付け点数の大きいシナリオを優先的に実行させることによって、信頼性の低い部分を重点的にテストし、実機における使用実績のある信頼性の高いと推定される部分のテストを省くことができる。したがって、テストの実施に要する総時間を節約でき、効率的で信頼性の高いテストを行うことができる。
【0017】
また本発明は、修正を予定している状態を含むソフトウェアを、該状態を識別するためのステート識別子とともに修正情報として記憶しておき、
修正情報に基づいて、該ステート識別子を含むシナリオを抽出し、
抽出されるシナリオの実行時間の合計をテストに要する時間とみなすことによって、テストに要する時間を予測するテスト範囲予測工程を、さらに含むことを特徴とする。
【0018】
本発明に従えば、修正を予定している状態を含むソフトウェアを、該状態を識別するためのステート識別子とともに修正情報として記憶しておく。テスト範囲予測工程では、修正情報に基づいて、該ステート識別子を含むシナリオを抽出し、抽出されるシナリオの実行時間の合計をテストに要する時間であると予測する。このことによって、修正を予定している状態を含むソフトウェアに関わるシナリオを抽出し、抽出した全てのシナリオのテスト実施に要する総時間を明確にすることができる。すなわち、テスト所要時間を正確に予測できるので、ソフトウェア開発に関する全体計画の精度を向上することが可能になり、充分な信頼性を有するソフトウェアを備え、かつ機能の充実した製品を開発するとともに、製品のタイムリーな市場投入を実現できる。
【0019】
また本発明は、前記実行工程は、
シナリオを実行した結果の合否を判定し、不合格と判定された遷移を含むシナリオに、抽出の可否を判別する抽出情報として、抽出しないことを示すオン情報を付加する合否判定ステップをさらに含み、
前記抽出工程は、
抽出情報がオンであるシナリオを抽出しないことを特徴とする。
【0020】
本発明に従えば、実行工程は、抽出工程で抽出するシナリオを実行してテストを行う実行ステップに加え、シナリオを実行した結果の合否を判定し、不合格と判定された遷移を含むシナリオに、抽出の可否を判別する抽出情報として、抽出しないことを示すオン情報を付加する合否判定ステップをさらに含む。このように、不具合の遷移を含み不合格と判定されるシナリオが発覚すると、該不具合の遷移を含むシナリオの有無を検索し、検索結果として検出されるシナリオの全てに抽出情報としてオン情報を付加するので、不具合に関わりのあるシナリオを明確にすることができる。抽出工程では、オン情報の付加されるシナリオを抽出しないので、ソフトウェアを修正するまで、不具合と関わりのないシナリオを抽出して重点的にテストできる。したがって、テストの実施に要する総時間を節約でき、効率的で信頼性の高いテストを行うことができる。
【0021】
また本発明の前記抽出工程では、1または複数のシナリオを抽出し、
前記予め定める条件は、予め実行時間情報として入力される時間より、抽出するシナリオの実行時間の合計が短いことであることを特徴とする。
【0022】
本発明に従えば、実行時間情報として入力される時間より短い時間で実行可能で信頼性が高いテストを、修正回数の多い状態に重みを付けて抽出される1または複数のシナリオを用いて行うことができる。
【0023】
また本発明の前記実行工程では、実行したシナリオの重み付け点数を減少させることを特徴とする。
【0024】
本発明に従えば、シナリオを実行すると重み付け点数が減少する。減少させる点数を大きくしておけば、1回実行したシナリオを繰返して抽出することを防ぎ、実行するシナリオの偏りを軽減することができる。重み付け点数が大きいシナリオは、点数を減少させても繰返して抽出され、実行される可能性があり、重点的にテストを行う対象とすることができる。
【0025】
また本発明は、前述のいずれかに記載のソフトウェアのテスト方法を、コンピュータに実行させるためのプログラムである。
【0026】
本発明に従えば、シナリオの作成を、ソフトウェアの設計に用いるプロトタイピングツールなどから得られる状態遷移情報に基づいて容易に行い、開発履歴情報を反映させた重み付けでシナリオを選択して、信頼性の高いテストをコンピュータに行わせることができる。
【0027】
また本発明は、前述のいずれかに記載のソフトウェアのテスト方法を、コンピュータに実行させるためのプログラムが記録されるコンピュータ読取り可能な記録媒体である。
【0028】
本発明に従えば、プログラムをコンピュータに読取らせて、シナリオの作成を、ソフトウェアの設計に用いるプロトタイピングツールなどから得られる状態遷移情報に基づいて容易に行い、開発履歴情報を反映させた重み付けでシナリオを選択して、信頼性の高いテストを行わせることができる。
【0029】
また本発明は、複数の状態間を遷移しながら動作するソフトウェアのテスト装置であって、
ソフトウェアの各状態に関する修正の回数を開発履歴情報として記憶する履歴記憶手段と、
状態間の遷移を遷移のトリガとなる入力情報とともに定める状態遷移情報に基づいて、状態間をトリガで連結してテストを行うシナリオを、複数作成する作成手段と、
作成手段で作成される各シナリオの実行時間を算出する時間算出手段と、
履歴記憶手段に記憶されている開発履歴情報を用いて、作成手段で作成される各シナリオに重みを付け、時間算出手段で算出される各シナリオの実行時間の長さの相対的な比で重みを除算し、各シナリオの重み付け点数を求める重み付け手段と、
重み付け手段で求められる重み付け点数が大きい順に、作成手段で作成されているシナリオを抽出し、抽出されるシナリオの実行時間の合計が予め定める条件を満たすように抽出するシナリオを選択する抽出手段と、
抽出手段が抽出するシナリオを実行してテストを行う実行手段とを、
含むことを特徴とするソフトウェアのテスト装置である。
【0030】
本発明に従えば、複数の状態間を遷移しながら動作するソフトウェアのテスト装置は、履歴記憶手段と、作成手段と、時間算出手段と、重み付け手段と、抽出手段と、実行手段とを含む。履歴記憶手段は、ソフトウェアの各状態に関する修正の回数を開発履歴情報として記憶する。作成手段は、状態間の遷移を遷移のトリガとなる入力情報とともに定める状態遷移情報に基づいて、状態間をトリガで連結してテストを行うシナリオを、複数作成する。状態遷移情報は、ソフトウェアの設計を行う際に利用するプロトタイピングツールなどから得ることができるので、シナリオの作成を容易に行うことができる。時間算出手段は、作成手段で作成される各シナリオの実行時間を算出する。重み付け手段は、履歴記憶手段に記憶されている開発履歴情報を用いて、作成手段で作成される各シナリオに重みを付け、時間算出手段で算出される各シナリオの実行時間の長さの相対的な比で重みを除算し、各シナリオの重み付け点数を求めるので、実行時間が短く、かつ修正回数の多い状態を含むシナリオに大きな重み付け点数が付けられる。
【0031】
状態に関する修正は、不具合を直すために行われることが多く、修正回数が多い状態は信頼性が低いと考えられる。抽出手段は、重み付け手段で求められる重み付け点数が大きい順に、作成手段で作成されているシナリオを抽出し、抽出されるシナリオの実行時間の合計が予め定める条件を満たすように、抽出するシナリオを選択するので、予め定める条件を満たす実行時間で、信頼性が低い状態を含むシナリオを優先的に抽出することができる。実行手段は、抽出手段が抽出するシナリオを実行してテストを行うので、信頼性が低い状態を含むシナリオを優先的に実行して、ソフトウェアの信頼性を高めることができる。
【0032】
また本発明は、複数の状態間を遷移しながら動作するソフトウェアのテスト装置であって、
ソフトウェア部品が、実機における使用実績のあるもの、実機における使用実績のあるものを一部修正したもの、新規に作成されて実機における使用実績のないもののうち、いずれに属するかを属性情報として記憶する属性情報記憶手段と、
状態間の遷移を遷移のトリガとなる入力情報とともに定める状態遷移情報に基づいて、状態間をトリガで連結してテストを行うシナリオを、複数作成する作成手段と、
作成手段で作成される各シナリオの実行時間を算出する時間算出手段と、
属性情報記憶手段に記憶されている属性情報を用いて、作成手段で作成される各シナリオに重みを付け、時間算出手段で算出される各シナリオの実行時間の長さの相対的な比で重みを除算し、各シナリオの重み付け点数を求める重み付け手段と、
重み付け手段で求められる重み付け点数が大きい順に、作成手段で作成されているシナリオを抽出し、抽出されるシナリオの実行時間の合計が予め定める条件を満たすように抽出するシナリオを選択する抽出手段と、
抽出手段が抽出するシナリオを実行してテストを行う実行手段とを、
含むことを特徴とするソフトウェアのテスト装置である。
【0033】
本発明に従えば、ソフトウェアのテスト装置は、ソフトウェア部品が、実機における使用実績のあるもの、実機における使用実績のあるものを一部修正したもの、新規に作成されて実機における使用実績のないもののうち、いずれに属するかを属性情報として記憶しておく属性情報記憶手段を備え、重み付け手段が、属性情報を用いて、シナリオ作成手段で作成される各シナリオに重みを付け、時間算出手段で算出される各シナリオの実行時間の長さの相対的な比で重みを除算し、各シナリオの重み付け点数を求める。
【0034】
このように、属性情報に基づいて、実機における使用実績のあるもの、実機における使用実績のあるものを一部修正したもの、新規に作成されて実機における使用実績のないものであるかを、重み付けに反映させるので、新規に作成されて実機における使用実績がなく信頼性の低い状態は重み付け点数を大きくすることができる。重み付け点数の大きいシナリオを優先的に実行させることによって、信頼性の低い部分を重点的にテストし、実機における使用実績のある信頼性の高いと推定される部分のテストを省くことができるので、テストの実施に要する総時間を節約でき、効率的で信頼性の高いテストを行うことの可能なソフトウェアのテスト装置が実現される。
【0035】
また本発明は、修正を予定している状態を含むソフトウェアを、該状態を識別するためのステート識別子とともに修正情報として記憶する修正情報記憶手段と、
修正情報に基づいて、該ステート識別子を含むシナリオを抽出し、抽出されるシナリオの実行時間の合計をテストに要する時間とみなすことによって、テストに要する時間を予測するテスト範囲予測手段とを、さらに含むことを特徴とする。
【0036】
本発明に従えば、ソフトウェアのテスト装置は、修正を予定している状態を含むソフトウェアを、該状態を識別するためのステート識別子とともに修正情報として記憶しておく修正情報記憶手段を備え、テスト範囲予測手段が、修正情報に基づいて、該ステート識別子を含むシナリオを抽出し、抽出されるシナリオの実行時間の合計をテストに要する時間であると予測する。このことによって、修正を予定している状態を含むソフトウェアに関わるシナリオを抽出し、抽出した全てのシナリオのテスト実施に要する総時間を明確にすることの可能なソフトウェアのテスト装置が実現される。
【0037】
また本発明は、前記実行手段は、
抽出手段が抽出するシナリオを実行してテストを行う実行部と、
シナリオを実行した結果の合否を判定し、不合格と判定された遷移を含むシナリオに、抽出の可否を判別する抽出情報として、抽出しないことを示すオン情報を付加する合否判定部とを含み、
前記抽出手段は、
抽出情報がオンであるシナリオを抽出しないことを特徴とする。
【0038】
本発明に従えば、ソフトウェアのテスト装置は、実行手段として、抽出手段が抽出するシナリオを実行してテストを行う実行部と、シナリオを実行した結果の合否を判定し、不合格と判定された遷移を含むシナリオに、抽出の可否を判別する抽出情報として、抽出しないことを示すオン情報を付加する合否判定部とを含む。合否判定部は、不具合の遷移を含み不合格と判定されるシナリオが発覚すると、該不具合の遷移を含むシナリオの有無を検索し、検索結果として検出されるシナリオの全てに抽出情報としてオン情報を付加し、不具合に関わりのあるシナリオを明確にする。抽出手段は、オン情報の付加されるシナリオを抽出しない。このことによって、ソフトウェアを修正するまで、不具合と関わりのないシナリオを抽出して重点的にテストすることのできるソフトウェアのテスト装置が実現される。
【0039】
【発明の実施の形態】
図1は、本発明の実施の一形態であるソフトウェアのテスト装置1の概略的なシステム構成を示すブロック図である。状態遷移情報10は、ソフトウェアのGUI設計において一般的に利用されているプロトタイピングツールから得られる。実行時間情報20は、所望のテスト実行時間として入力される。開発履歴情報30には、ソフトウェアの開発過程等におけるステートの新規作成・修正に関する情報が格納されている。シナリオ作成手段40は、状態遷移情報10と実行時間情報20とに基づき、テストに用いるシナリオを作成する。重み付け手段50は、開発履歴情報30に基づき、シナリオに対する重み付けを行う。シナリオ作成手段40によって作成したシナリオ60は、シナリオ実行手段70によって、テストとして実行される。さらに、シナリオ作成手段40には、作成部41、時間算出手段である時間算出部42、記憶部43および抽出手段である抽出部44が含まれる。
【0040】
本実施形態でシナリオとは、上記ソフトウェアの一連の操作内容を表現するものであり、具体的には、ステートとトリガ、トリガにより遷移する先のステートを列挙することにより表したものとする。ステートは、ソフトウェアの利用者に、操作を促す画面を表示し、何らかの操作を待つ状態である。利用者の操作を待ちながら、処理を行っている結果を表示することもある。
【0041】
シナリオ作成手段40、重み付け手段50およびシナリオ実行手段70は、マイクロコンピュータのCPUなどが、予め設定されるプログラムに従った動作することによって実現される。このプログラムは、予めROMなどに格納して実行させることができ、またハードディスクなどの書換え可能な記録媒体に記録しておいて、RAMに読出して実行させることもできる。ハードディスクやRAMなどには、CD−ROMやDVD−ROMなどの着脱可能な記録媒体からプログラムを読込んだり、インターネットなどの通信ネットワークを介してプログラムをダウンロードすることもできる。
【0042】
図2は、状態遷移情報10の一例を示している。縦軸はステート識別子S1,S2,S3、横軸はトリガ識別子T1,T2,T3をそれぞれ示す。たとえばステート識別子S1で示されるステートの行とトリガ識別子T1で示されるトリガの列とが交わる欄を参照すると、ステート識別子S2で表されるステートが定義されている。これは、ステート識別子S1のステートでトリガT1を実行するとステートS2の状態に遷移することを示す。なお、以下の説明では、ステート識別子S1,S2,S3で表されるステートをそれぞれステートS1,S2,S3として示す。また、トリガ識別子T1,T2,T3で表されるトリガを、トリガT1,T2,T3としてそれぞれ示す。
【0043】
図3は、状態遷移情報10が示すステートS1,S2,S3間の遷移フローを示す。以下、遷移のループについて説明する。図3で、S1〜S3はステート識別子、矢印は遷移方向、矢印上の記号はトリガ識別子を示す。ステートS1からは、トリガT1によってステートS2に遷移する。ステートS2からは、トリガT2によってステートS3に遷移する。ステートS3からは、トリガT3によってステートS1に戻る。上記のように遷移していくうちに同じステートに戻ることを遷移のループと呼称する。限られた時間の中で多様なテストを実施するためには、同じステート遷移を繰返し確認することは効率的でない。したがって、ループの回数を制限するか、もしくはループを許可しないという条件を定める。以下、本実施形態ではループを許可しない条件で説明する。
【0044】
図4は、図1のソフトウェアのテスト装置1で行なわれる動作手順を示すフローチャートである。ステップS200で、図1の作成部41は、状態遷移情報10を読み込む。次にステップS201に進み、図2で例示した縦軸のステート識別子S1,S2,S3のうちから最上段のステート識別子S1をシナリオの始点として取得する。次にステップS202で、ステートS1からの遷移先を求める。ステートS1は、トリガT1によってステートS2に遷移するため、ステートS1の遷移先はステートS2となる。ステートS2にはトリガT1とトリガT2が定義されており、トリガT1の遷移先はステートS1である。ステップS203では、ステップS202で取得した遷移先が終点であるか否かを判断する。本動作では前述のようにループを許可しないため、ステートS2が1つ目のシナリオの終点となる。
【0045】
ステップS203で終点と判断されると、ステップS204では、他にトリガがないか否かを判断する。ステートS2のもう一方のトリガT2による遷移先はステートS3である。ステートS3にはトリガT1とトリガT3が定義されており、トリガT1の遷移先はステートS2でありループしているため、ステートS3が2つ目のシナリオの終点となる。さらに、ステートS3のもう一方のトリガT3による遷移先はステートS1でありループしているため、ステートS3がシナリオの終点となるが、前記2つ目のシナリオと同一であるため新たなシナリオとはしない。ステートS3に定義されているトリガはトリガT1とトリガT2のみであるので、ステートS1を始点としたシナリオは以上で全てである。次にステップS205では、他に始点はないか否かを判断する。ステートS1の他に、シナリオの始点となるステートはステートS2であるので、ステートS1の場合と同様にシナリオを作成し、シナリオの始点となる最後のステートS3まで繰返す。
【0046】
図5は、以上の動作によって作成されるシナリオ60の例を示す。また、作成されたシナリオ60は記憶部43に格納しておく。図4のステップS206で、時間算出部42は、記憶部43に格納されている各シナリオ60を実行するために要する時間を算出する。各シナリオ60の実行時間は、ステート遷移回数にて求める。たとえば、ステート遷移に要する時間を1秒とし、あるシナリオ60においてステート遷移回数が5回であれば、シナリオ実行に要する時間は5秒であるとする。このように全てのシナリオ60について、それぞれの実行時間を算出しておく。
【0047】
次にステップS207では、開発履歴情報30に基づきシナリオ60の重み付けを行う。重み付け手段50は、まず開発履歴情報30を読み込む。開発履歴情報30は、ステート識別子と当該ステートに関わるソフトウェア部品の修正回数を列挙することにより表したものである。記憶部43に格納されている各シナリオ60の作成直後の重み付け点数は0とする。ステップS208では、この重み付け点数に開発履歴情報30のステートの修正回数を加算し、時間算出部42にて算出したシナリオ実行時間で割り、単位時間当たりの重み付け点数を求める。たとえば、開発履歴情報30でステートS1の修正回数が5回、ステートS2の修正回数が2回の場合を想定する。上記1つ目に作成したシナリオ60にはステートS1,S2が含まれるのみであるため、ステート遷移回数は1回であり、シナリオ実行に要する時間は1秒となる。重み付け点数は、初期値0に5と2とを加算した値7を1(秒)で割る結果、7となる。同様に記憶部43に格納済みのシナリオ60について、ステップS209で全て重み付け点数が求められたと判断されるまで、手順を繰返す。なお、重み付け点数は、シナリオに含まれるステートの修正回数の合計値をシナリオの実行時間で除算して、単位時間当りで求めているけれども、実行時間の長さに対応する比で除算すればよく、必ずしも単位時間単位で求めなくてもよい。
【0048】
次にステップS210以下で、抽出部44は実行時間情報20に基づき、シナリオ実行手段70にて実行するシナリオ60を抽出する。実行時間情報20は、シナリオ実行手段70で実行するシナリオ60全ての実行に要する時間を表す。まずステップS210で、抽出部44は実行時間情報20を読み込む。次にステップS211では、記憶部43に格納されている重み付け点数の大きいシナリオ60から順に抽出する。ステップS212では、抽出した各シナリオ60の実行時間の和が実行時間情報20の値に達するまで、ステップS211のシナリオ抽出を繰返す。抽出されたシナリオ60の実行時間の和が実行時間情報20の値に達すると、ステップS213に移る。
【0049】
ステップS213で、シナリオ実行手段70は、シナリオ作成手段40で作成されたシナリオ60を読み込み、シナリオ60のトリガをイベントメッセージとしてテスト対象のソフトウェアに送信することによって、テスト対象のソフトウェアのGUI部をシナリオ60に従って操作する。シナリオ実行手段70で実行したシナリオ60は、ステップS214で重み付け点数を減算する。たとえば、作成部41で1つ目に作成したシナリオ60の場合、シナリオ実行前の重み付け点数は7であり、シナリオ実行した後はあらかじめ定めておいた定数として、たとえば10を減算してマイナス3とする。重み付け点数を減算することで、テストを繰返した場合に実行するシナリオの偏りを軽減することが可能となる。重み付け点数が大きいシナリオは、点数を減算しても大きな点数が残り、繰返して抽出される可能性を高くすることもできる。ステップS215では、抽出部44で抽出されたシナリオ60が全て実行されたか否かを判断し、全部が実行されるまで繰返す。
【0050】
以上説明したような構成によれば、ソフトウェアのGUI設計において一般的に使われているプロトタイピングツールから得られる状態遷移情報10から複数のシナリオ60を容易に作成することが可能となる。また、テスト対象となるソフトウェアの開発履歴情報30や過去のシナリオ実行の有無に基づき、シナリオ60に重み付けを行い、実行時間情報20で定める所望の実行時間内で、信頼性の低い部分を重点的にテストし、信頼性の高いと推定される部分のテストを省くことができ、テスト実施に要する総時間を節約することが可能となる。
【0051】
なお、以上の説明では、抽出するシナリオ60を、実行時間情報20を入力して制限するようにしているけれども、すべてのステートを少なくとも1回はテストするような条件とすることもできる。
【0052】
図6は、本発明の実施の第2の形態であるソフトウェアのテスト装置2の概略的なシステム構成を示すブロック図である。本実施の形態のソフトウェアのテスト装置2は、実施の第1形態のソフトウェアのテスト装置1に類似し、対応する部分については同一の参照符号を付して説明を省略する。ソフトウェアのテスト装置2は、実施の第1形態のソフトウェアのテスト装置1の開発履歴情報30に代えて、属性情報80を有することを特徴とする。属性情報80は、ソフトウェアのテスト装置2に備わり、同一の参照符号で表される属性情報記憶手段80に格納される。
【0053】
属性情報80には、ステート識別子と、当該ステートに関るソフトウェア部品の属性に関する情報とが格納されている。ここで属性とは、ソフトウェア部品が、「既存」、「修正」、または「新規」のいずれの区分に属するかをいう。「既存」は、既に開発済みのたとえば情報処理装置(実機)に実装されて使用された実績のあるソフトウェア部品であって、開発中の装置にそのまま引継いで使用されるものである。「修正」は、実機に実装されて使用された実績があるけれども、開発中の装置に引継いで使用するに際し、一部修正を加えたものである。「新規」は、開発中の装置に使用するべく新規に作成したソフトウェア部品であって、実機における使用実績のないものである。
【0054】
ソフトウェアのテスト装置2では、重み付け手段50が、属性情報80を用いて、シナリオ作成手段40で作成される各シナリオに重みを付け、時間算出手段42で算出される各シナリオの実行時間の長さの相対的な比で重みを除算し、各シナリオの重み付け点数を求める。
【0055】
図7は、図6のソフトウェアのテスト装置2で行なわれる動作手順を示すフローチャートである。ステップS200〜ステップS206の動作は、前述の図4に示す実施の第1形態におけるソフトウェアのテスト装置1の動作と同一であるので、説明を省略する。
【0056】
ステップS206の動作後に進むステップS300では、重み付け手段50が、属性情報80を読み込む。属性情報80は、ステート識別子と当該ステートに関わるソフトウェア部品の属性を列挙することにより表したものである。ステップS301では、属性情報80のソフトウェア部品の属性に基づいて重み付け点数を加算し、時間算出部42にて算出したシナリオ実行時間で割り、単位時間当たりの重み付け点数を求める。たとえば、属性別の重み付けの加算点数を、信頼性が高いと推定される「既存」は0、比較的信頼性の高い「修正」は5、最も信頼性が低い「新規」は10とし、ステートS1が「新規」、ステートS2が「修正」の場合を想定する。前述の実施の第1形態において初めに作成したシナリオについて例示すると、シナリオにはステートS1、S2が含まれるのみであるため、ステート遷移回数は1回であり、シナリオ実行に要する時間は1秒となる。したがって、重み付け点数は、初期値0に、ステートS1の点数10(「新規」)と、ステートS2の点数5(「修正」)とを加算した値15を1(秒)で割った結果、15となる。同様に記憶部43に格納済みのシナリオ60について、ステップS302で全て重み付け点数が求められたと判断されるまで、ステップS301の動作を繰り返す。
【0057】
ステップS302で全て重み付け点数が求められたと判断された後に進むステップS210〜ステップS215の動作手順は、前述の図4に示す実施の第1の形態と同一に実行される。
【0058】
以上説明したような重み付け手段50を備える構成のソフトウェアのテスト装置2によれば、信頼性の低い「新規」「修正」部分を重点的にテストし、信頼性の高いと推定されるソフトウェア部品である「既存」部分のテストを省くことができ、テスト実施に要する総時間を節約することが可能となる。
【0059】
図8は、本発明の実施の第3の形態であるソフトウェアのテスト装置3の概略的なシステム構成を示すブロック図である。本実施の形態のソフトウェアのテスト装置3は、実施の第1形態のソフトウェアのテスト装置1に類似し、対応する部分については同一の参照符号を付して説明を省略する。ソフトウェアのテスト装置3は、修正を予定している状態を含むソフトウェアを、該状態を識別するためのステート識別子とともに修正情報90として記憶する修正情報記憶手段90と、修正情報90に基づいて、該ステート識別子を含むシナリオ60を抽出し、抽出されるシナリオ60の実行時間の合計をテストに要する時間とみなすことによって、テストに要する時間を予測するテスト範囲予測手段100とをさらに含むことを特徴とする。
【0060】
修正情報90は、修正を予定しているソフトウェア部品に関わるステート識別子を列挙することにより表したものであり、この修正情報90を記憶する修正情報記憶手段90とを、便宜上同一の参照符号で表記する。テスト範囲予測手段100は、修正情報90に基づき、記憶部43から関係するシナリオを抽出する。記憶部43に格納されているシナリオから、修正情報90に基づいて指定されるステート識別子を含むシナリオを全て抽出し、総実行時間を求める。この総実行時間を、テストに要する時間であると予測する。
【0061】
図9は、図8のソフトウェアのテスト装置3で行なわれる動作手順を示すフローチャートである。ステップS200〜ステップS206の動作は、前述の図4に示す実施の第1形態におけるソフトウェアのテスト装置1の動作と同一であるので、説明を省略する。
【0062】
ステップS206の動作後に進むステップS400では、テスト範囲予測手段100が、修正情報90から修正を予定している状態を識別するための1つ目のステート識別子を読み込む。たとえば、ステート識別子S1を読み込んだと想定する。ステップS401では、シナリオを記憶部43から読み込む。ステップS402では、シナリオにステート識別子S1が含まれるか否かを判断する。ステート識別子S1が含まれると判断すると、ステップS403では、記憶部43から当該シナリオの実行時間を読み込む。ステップS404では、記憶部43に他のシナリオが格納されていないか判断する。
【0063】
ステート識別子S1を含む他のシナリオが格納されている場合は、ステップS401に戻り、前記他のシナリオを読み込む。ステート識別子S1を含む他のシナリオが格納されていない場合は、ステップS405に進み、ステップS405では、修正情報90に修正を予定している状態を識別する他のステート識別子が格納されていないかを判断する。他のステート識別子が格納されている場合は、ステップS400に戻り、修正情報90から次のステート識別子を読み込む。修正を予定している状態を識別する他のステート識別子が格納されていない場合は、ステップS406に進み、ステップS406では、前述のステップS403で読み込んでおいた各シナリオの実行時間の総和を算出する。
【0064】
以上説明したようなテスト範囲予測手段100を備える構成のソフトウェアのテスト装置3によれば、修正を予定しているソフトウェア部品に関係するシナリオの抽出と、抽出した全てのシナリオの実行に要する時間を取得することが可能となる。
【0065】
図10は、本発明の実施の第4の形態であるソフトウェアのテスト装置4の概略的なシステム構成を示すブロック図である。本実施の形態のソフトウェアのテスト装置4は、実施の第1形態のソフトウェアのテスト装置1に類似し、対応する部分については同一の参照符号を付して説明を省略する。ソフトウェアのテスト装置4は、シナリオ実行手段70が、実行部71と合否判定部72とを含んで構成されることを特徴とする。
【0066】
実行部71は、抽出部44が抽出するシナリオを実行してテストを行う。合否判定部72は、シナリオを実行した結果の合否を判定し、合格と判定した場合、重み付け手段50を制御して予め定める定数を重み付け点数から減算し、不合格と判定した場合、重み付け点数の減算を行わずに、不合格と判定された遷移を含むシナリオを抽出し、抽出されたシナリオに、抽出の可否を判別する抽出情報として、抽出しないことを示すオン情報を付加する。
【0067】
ここでシナリオ抽出の可否を判別する抽出情報とは、たとえば「1」と「0」とによって与えられる2値化された情報であり、シナリオを抽出しないことを示す抽出情報「1」をオン情報と呼び、シナリオを抽出することを示す抽出情報「0」をオフ情報と呼ぶ。この抽出情報は、シナリオごとにオン情報またはオフ情報のいずれかが指定されるものであり、記憶部43に記憶される。シナリオが作成された直後では、シナリオに付加される抽出情報は全てオフ情報である。
【0068】
図11は、図10のソフトウェアのテスト装置4で行なわれる動作手順を示すフローチャートである。ステップS200〜ステップS209の動作は、前述の図4に示す実施の第1形態におけるソフトウェアのテスト装置1の動作と同一であるので、説明を省略する。
【0069】
ステップS209の動作後に進むステップS210では、抽出部44が実行時間情報20を読み込む。ステップS211では、記憶部43に格納されている重み付け点数の大きいシナリオから順に読み出す。ステップS500では、読み出されたシナリオに付加されている抽出情報がオンであるか否かが判断される。抽出情報がオンであれば抽出することなくステップS211に戻り、次の順位のシナリオを読み出す。抽出情報がオフであれば抽出部44がシナリオを抽出してステップS212に進み、ステップS212では、抽出したシナリオの実行時間を加算する演算を行ない、各シナリオ60の実行時間の和が実行時間情報20の値に達するまでステップS211のシナリオ読み出しを繰り返す。ステップS500において抽出されたシナリオ60の時間の和が実行時間情報20の値に達するとステップS213に移る。
【0070】
ステップS213では、実行部71が、シナリオ作成手段40で作成されたシナリオ60を読み込み、シナリオ60のトリガをイベントメッセージとしてテスト対象のソフトウェアに送信することによって、テスト対象のソフトウェアのGUI部をシナリオ60に従って操作する。ステップS501では、合否判定部72が、実行部71で実行したシナリオ60の合否判定を行なう。合否判定を具体例によって説明すると、たとえば前述の図5に示した1番目のシナリオは、ステートS1を始点とし、トリガT1をイベントメッセージとしてテスト対象のソフトウェアに送信することによって、ステートS2に遷移すると合格であり、ステートS2以外に遷移すると不合格となる。テスト対象のソフトウェアが現在どのステートに遷移しているかについては、問合せイベントメッセージを受信すると現在の状態をステート識別子として送信するように、ソフトウェアを予めプログラミングしておき、該ソフトウェアに問合せイベントメッセージを送信するなどの方法によって知ることができる。
【0071】
合否判定の結果、合格と判定されると、ステップS214に進み、ステップS214では、重み付け手段50によって重み付け点数を減算する。不合格と判定されると、不合格と判定した日時、シナリオ識別子、ステート識別子、トリガ識別子を不合格リストに登録し、ステップS502に移る。図12は、不合格リストの例を示す図である。
【0072】
図11に戻って、ステップS502では、合否判定手段72が、不合格と判定した遷移を含むシナリオ(以後、関係シナリオと呼ぶことがある)を検索する。図13は、シナリオを例示する図である。図13を参照して不合格と判定した遷移を含むシナリオの検索について説明する。たとえば、シナリオSN1のステートS1からトリガT1による遷移を不合格と判定したと想定する。その場合、検索によって、ステートS1からトリガT1により遷移する操作を含むシナリオを全て検出する。シナリオSN2は、ステートS1からトリガT1によりステートS2に遷移し、ステートS2からトリガT2によりステートS3に遷移する。1回目の遷移が不合格と判定した遷移と同一であるため、シナリオSN2を不合格と判定した遷移を含むシナリオであると判定する。同様にシナリオSN7は、3回目の遷移が不合格と判定した遷移と同一であるため、不合格と判定した遷移を含むシナリオである。また、シナリオSN3は、ステートS2からトリガT1によりS1に遷移し、不合格と判定した遷移と同じ遷移を含まないため、不合格と判定した遷移を含まないシナリオと判定する。同様にシナリオSN4、シナリオSN5、シナリオSN6、シナリオSN8についても不合格と判定した遷移と同じ遷移を含まないため、不合格と判定した遷移を含まないシナリオと判定する。
【0073】
再び図11に戻って、ステップS503では、合否判定手段72が、検索の結果、不合格と判定した遷移を含むと判定されたシナリオの抽出情報をオンにし、次回のステップS500における動作実行の際には、抽出部44によって抽出されないようにする。ステップS215では、抽出部44によって抽出されたシナリオ60が全て実行されたか否かを判断し、全部が実行されるまでステップS213以降の動作を繰返す。
【0074】
なお一旦オン情報が付加されたシナリオであっても、不具合部分が修正され、その修正履歴が開発履歴情報30に格納されると、該開発履歴情報30に基づき、不具合の修正されたシナリオには、それらシナリオを抽出できるように先のオン情報に代えてオフ情報が付加される。図14は、修正された関係シナリオの抽出情報をオフにする動作手順を説明するフローチャートである。図14を参照し、合否判定手段72が、不合格と判定した遷移を含むシナリオ(関係シナリオ)であるとして一旦オン情報の付加されたシナリオの抽出情報を、オフにする動作手順を説明する。
【0075】
ステップS600では、重み付け手段50が、開発履歴情報30を読み込む。ステップS601では、重み付け手段50が、開発履歴情報30に新たな修正個所情報が格納されているかを確認する。ここで、修正個所情報とは、修正したステート識別子と、トリガ識別子と、修正を反映した日時とを列挙したものである。新たな修正個所情報が格納されていない場合、ステップS607へスキップし、抽出情報をオフにする本動作を終了する。新たな修正個所情報が格納されている場合、ステップS602へ進み、ステップS602では、前述の図12に例示する不合格リストを読み込む。
【0076】
ステップS603では、新たな修正個所情報に含まれるステート識別子およびトリガ識別子と同一のステート識別子およびトリガ識別子を有し、かつ修正個所情報の修正を反映した日時に比べて不合格と判定された日時が古いという検索条件に従って不合格リストを検索する。さらに不合格リストの中に前述の検索条件に合致するシナリオがなければ、ステップS606にスキップし、合致するシナリオがあれば、ステップS604に進む。ステップS604では、検索の結果得られたシナリオの抽出情報をオフにする。抽出情報がオフにされたシナリオは、次回のステップS500における動作実行の際には、抽出部44による抽出が可能となり、修正の実効性についてテストを行なうことができる。前述の検索条件に合致するシナリオの検索は、合否判定の不合格時における関係するシナリオの検索と同様にして実現できる。
【0077】
ステップS605では、検索の結果得られたすべてのシナリオの抽出情報が、オフにされたと判断されるまで、ステップS604の動作を繰返す。検索の結果得られたすべてのシナリオの抽出情報をオフにすると、ステップS606に進む。ステップS606では、前述の新たな修正個所情報に含まれるすべてのステート識別子およびトリガ識別子について、不合格リストを検索し、検索結果として得られるシナリオの抽出情報をオフにする処理が完了するまで、ステップS602〜ステップS605の動作を繰返し実行する。新たな修正個所情報に含まれるすべてのステート識別子およびトリガ識別子について、不合格リストの検索結果として得られるシナリオの抽出情報をオフにする処理が完了したとき、ステップS607へ進み、抽出情報をオフにする本動作を終了する。
【0078】
以上説明したような実行部71と合否判定部72とを備えるソフトウェアのテスト装置4の構成によれば、テスト工程でソフトウェアの不具合が発覚しても、その不具合を有するソフトウェアに関係のあるテストシナリオを、ソフトウェアの修正が完了するまで実施しないので、不具合と関係のない部分を優先的にテストすることが可能となる。またシナリオの実行結果が合格の場合、合否判定部72は、重み付け手段50を制御して該シナリオの重み付け点数を減算するので、繰り返しテスト時における実行シナリオの偏りを軽減することが可能になる。
【0079】
【発明の効果】
以上のように本発明によれば、GUI機能を記述したソフトウェア等の設計において一般的に使われているプロトタイピングツールなどから得られる状態遷移情報から複数のシナリオを作成し、テスト対象となるソフトウェアの開発履歴情報に基づいてシナリオに重み付けを行い、実行時間が予め定める条件を満たす範囲で信頼性の高いテストを行うことができる。
【0080】
また本発明によれば、属性情報に基づいて、実機における使用実績のあるもの、実機における使用実績のあるものを一部修正したもの、新規に作成されて実機における使用実績のないものであるかを、重み付けに反映させるので、新規に作成されて実機における使用実績がなく信頼性の低い状態は重み付け点数を大きくすることができ、重み付け点数の大きいシナリオを優先的に実行させることによって、信頼性の低い部分を重点的にテストし、実機における使用実績のある信頼性の高いと推定される部分のテストを省くことができる。したがって、テストの実施に要する総時間を節約でき、効率的で信頼性の高いテストを行うことができる。
【0081】
また本発明によれば、修正を予定している状態を含むソフトウェアを、該状態を識別するためのステート識別子とともに修正情報として記憶しておく。テスト範囲予測工程では、修正情報に基づいて、該ステート識別子を含むシナリオを抽出し、抽出されるシナリオの実行時間の合計をテストに要する時間であると予測する。このことによって、修正を予定している状態を含むソフトウェアに関わるシナリオを抽出し、抽出した全てのシナリオのテスト実施に要する総時間を明確にすることができる。すなわち、テスト所要時間を正確に予測できるので、ソフトウェア開発に関する全体計画の精度を向上することが可能になり、充分な信頼性を有するソフトウェアを備え、かつ機能の充実した製品を開発するとともに、製品のタイムリーな市場投入を実現できる。
【0082】
また本発明によれば、実行工程は、抽出工程で抽出するシナリオを実行してテストを行う実行ステップに加え、シナリオを実行した結果の合否を判定し、不合格と判定された遷移を含むシナリオに、抽出の可否を判別する抽出情報として、抽出しないことを示すオン情報を付加する合否判定ステップをさらに含む。このように、不具合の遷移を含み不合格と判定されるシナリオが発覚すると、該不具合の遷移を含むシナリオの有無を検索し、検索結果として検出されるシナリオの全てに抽出情報としてオン情報を付加するので、不具合に関わりのあるシナリオを明確にすることができる。抽出工程では、オン情報の付加されるシナリオを抽出しないので、ソフトウェアを修正するまで、不具合と関わりのないシナリオを抽出して重点的にテストできる。したがって、テストの実施に要する総時間を節約でき、効率的で信頼性の高いテストを行うことができる。
【0083】
また本発明によれば、実行時間を入力すれば、入力される時間内で実行可能な信頼性が高いテストを行うシナリオを抽出して実行することができる。
【0084】
また本発明によれば、各状態に関する修正の回数を重み付けに反映させ、重み付け点数の多いシナリオを優先的に実行させることによって、信頼性の低い部分を重点的にテストし、信頼性の高いと推定される部分のテストを省くことができ、テストの実施に要する総時間を節約し、かつ信頼性の高いテストを行なうことができる。
【0085】
また本発明によれば、ソフトウェアの設計に用いるプロトタイピングツールなどから得られる状態遷移情報に基づいて容易にテスト用のシナリオを作成し、開発履歴情報を反映させて、信頼性を高めたテストをコンピュータで行うことができる。
【0086】
また本発明によれば、プログラムをコンピュータに読取らせて、シナリオの作成を容易に行い、開発履歴情報を反映させて信頼性を高めたテストを行わせることができる。
【0087】
また本発明によれば、GUI機能などを備えるソフトウェアの設計において一般的に使われているプロトタイピングツールなどから得られる状態遷移情報から複数のシナリオを作成し、テスト対象となるソフトウェアの開発履歴情報やシナリオの実行時間に基づいてシナリオに重み付けを行い、実行時間が予め定める条件を満たす範囲で信頼性の高いテストを行うことができる。
【0088】
また本発明によれば、ソフトウェアのテスト装置は、ソフトウェア部品が、実機における使用実績のあるもの、実機における使用実績のあるものを一部修正したもの、新規に作成されて実機における使用実績のないもののうち、いずれに属するかを属性情報として記憶しておく属性情報記憶手段を備え、重み付け手段が、属性情報を用いて、シナリオ作成手段で作成される各シナリオに重みを付け、時間算出手段で算出される各シナリオの実行時間の長さの相対的な比で重みを除算し、各シナリオの重み付け点数を求める。
【0089】
このように、属性情報に基づいて、実機における使用実績のあるもの、実機における使用実績のあるものを一部修正したもの、新規に作成されて実機における使用実績のないものであるかを、重み付けに反映させるので、新規に作成されて実機における使用実績がなく信頼性の低い状態は重み付け点数を大きくすることができる。重み付け点数の大きいシナリオを優先的に実行させることによって、信頼性の低い部分を重点的にテストし、実機における使用実績のある信頼性の高いと推定される部分のテストを省くことができるので、テストの実施に要する総時間を節約でき、効率的で信頼性の高いテストを行うことの可能なソフトウェアのテスト装置が実現される。
【0090】
また本発明によれば、ソフトウェアのテスト装置は、修正を予定している状態を含むソフトウェアを、該状態を識別するためのステート識別子とともに修正情報として記憶しておく修正情報記憶手段を備え、テスト範囲予測手段が、修正情報に基づいて、該ステート識別子を含むシナリオを抽出し、抽出されるシナリオの実行時間の合計をテストに要する時間であると予測する。このことによって、修正を予定している状態を含むソフトウェアに関わるシナリオを抽出し、抽出した全てのシナリオのテスト実施に要する総時間を明確にすることの可能なソフトウェアのテスト装置が実現される。
【0091】
また本発明によれば、ソフトウェアのテスト装置は、実行手段として、抽出手段が抽出するシナリオを実行してテストを行う実行部と、シナリオを実行した結果の合否を判定し、不合格と判定された遷移を含むシナリオに、抽出の可否を判別する抽出情報として、抽出しないことを示すオン情報を付加する合否判定部とを含む。合否判定部は、不具合の遷移を含み不合格と判定されるシナリオが発覚すると、該不具合の遷移を含むシナリオの有無を検索し、検索結果として検出されるシナリオの全てに抽出情報としてオン情報を付加し、不具合に関わりのあるシナリオを明確にする。抽出手段は、オン情報の付加されるシナリオを抽出しない。このことによって、ソフトウェアを修正するまで、不具合と関わりのないシナリオを抽出して重点的にテストすることのできるソフトウェアのテスト装置が実現される。
【図面の簡単な説明】
【図1】本発明の実施の一形態であるソフトウェアのテスト装置1の概略的なシステム構成を示すブロック図である。
【図2】図1に示す状態遷移情報10の一例を示す図表である。
【図3】図2の状態遷移情報10に基づく遷移フローを表す図である。
【図4】図1のソフトウェアのテスト装置1で行われる動作手順を示すフローチャートである。
【図5】図4の動作手順で得られるシナリオ60の定義の一例を表す図である。
【図6】本発明の実施の第2の形態であるソフトウェアのテスト装置2の概略的なシステム構成を示すブロック図である。
【図7】図6のソフトウェアのテスト装置2で行なわれる動作手順を示すフローチャートである。
【図8】本発明の実施の第3の形態であるソフトウェアのテスト装置3の概略的なシステム構成を示すブロック図である。
【図9】図8のソフトウェアのテスト装置3で行なわれる動作手順を示すフローチャートである。
【図10】本発明の実施の第4の形態であるソフトウェアのテスト装置4の概略的なシステム構成を示すブロック図である。
【図11】図10のソフトウェアのテスト装置4で行なわれる動作手順を示すフローチャートである。
【図12】不合格リストの例を示す図である。
【図13】シナリオを例示する図である。
【図14】修正された関係シナリオの抽出情報をオフにする動作手順を説明するフローチャートである。
【符号の説明】
1,2,3,4 ソフトウェアのテスト装置
10 状態遷移情報
20 実行時間情報
30 開発履歴情報
40 シナリオ実行手段
41 作成部
42 時間算出部
43 記憶部
44 抽出部
50 重み付け手段
60 シナリオ
70 シナリオ実行手段
71 実行部
72 合否判定部
80 属性情報記憶手段
90 修正情報記憶手段
100 テスト範囲予測手段

Claims (12)

  1. 複数の状態間を遷移しながら動作するソフトウェアのテスト方法であって、
    該ソフトウェアの各状態に関する修正の回数を開発履歴情報として記憶しておき、
    状態間の遷移を遷移のトリガとなる入力情報とともに定める状態遷移情報に基づいて、状態間をトリガで連結してテストを行うシナリオを、複数作成する作成工程と、
    作成工程で作成される各シナリオの実行時間を算出する時間算出工程と、
    開発履歴情報を用いて、シナリオ作成工程で作成される各シナリオに重みを付け、時間算出工程で算出される各シナリオの実行時間の長さの相対的な比で重みを除算し、各シナリオの重み付け点数を求める重み付け工程と、
    重み付け工程で求められる重み付け点数が大きい順に、作成工程で作成されているシナリオを抽出し、抽出されるシナリオの実行時間の合計が予め定める条件を満たすように抽出するシナリオを選択する抽出工程と、
    抽出工程で抽出するシナリオを実行してテストを行う実行工程とを、
    含むことを特徴とするソフトウェアのテスト方法。
  2. 複数の状態間を遷移しながら動作するソフトウェアのテスト方法であって、
    ソフトウェア部品が、実機における使用実績のあるもの、実機における使用実績のあるものを一部修正したもの、新規に作成されて実機における使用実績のないもののうち、いずれに属するかを属性情報として記憶しておき、
    状態間の遷移を遷移のトリガとなる入力情報とともに定める状態遷移情報に基づいて、状態間をトリガで連結してテストを行うシナリオを、複数作成する作成工程と、
    作成工程で作成される各シナリオの実行時間を算出する時間算出工程と、
    属性情報を用いて、シナリオ作成工程で作成される各シナリオに重みを付け、時間算出工程で算出される各シナリオの実行時間の長さの相対的な比で重みを除算し、各シナリオの重み付け点数を求める重み付け工程と、
    重み付け工程で求められる重み付け点数が大きい順に、作成工程で作成されているシナリオを抽出し、抽出されるシナリオの実行時間の合計が予め定める条件を満たすように抽出するシナリオを選択する抽出工程と、
    抽出工程で抽出するシナリオを実行してテストを行う実行工程とを、
    含むことを特徴とするソフトウェアのテスト方法。
  3. 修正を予定している状態を含むソフトウェアを、該状態を識別するためのステート識別子とともに修正情報として記憶しておき、
    修正情報に基づいて、該ステート識別子を含むシナリオを抽出し、
    抽出されるシナリオの実行時間の合計をテストに要する時間とみなすことによって、テストに要する時間を予測するテスト範囲予測工程を、
    さらに含むことを特徴とする請求項1または2記載のソフトウェアのテスト方法。
  4. 前記実行工程は、
    シナリオを実行した結果の合否を判定し、不合格と判定された遷移を含むシナリオに、抽出の可否を判別する抽出情報として、抽出しないことを示すオン情報を付加する合否判定ステップをさらに含み、
    前記抽出工程は、
    抽出情報がオンであるシナリオを抽出しないことを特徴とする請求項1〜3のいずれかに記載のソフトウェアのテスト方法。
  5. 前記抽出工程では、1または複数のシナリオを抽出し、
    前記予め定める条件は、予め実行時間情報として入力される時間より、抽出するシナリオの実行時間の合計が短いことであることを特徴とする請求項1〜4のいずれかに記載のソフトウェアのテスト方法。
  6. 前記実行工程では、実行したシナリオの重み付け点数を減少させることを特徴とする請求項1〜5のいずれかに記載のソフトウェアのテスト方法。
  7. 請求項1〜6のいずれかに記載のソフトウェアのテスト方法を、コンピュータに実行させるためのプログラム。
  8. 請求項1〜6のいずれかに記載のソフトウェアのテスト方法を、コンピュータに実行させるためのプログラムが記録されるコンピュータ読取り可能な記録媒体。
  9. 複数の状態間を遷移しながら動作するソフトウェアのテスト装置であって、
    ソフトウェアの各状態に関する修正の回数を開発履歴情報として記憶する履歴記憶手段と、
    状態間の遷移を遷移のトリガとなる入力情報とともに定める状態遷移情報に基づいて、状態間をトリガで連結してテストを行うシナリオを、複数作成する作成手段と、
    作成手段で作成される各シナリオの実行時間を算出する時間算出手段と、
    履歴記憶手段に記憶されている開発履歴情報を用いて、作成手段で作成される各シナリオに重みを付け、時間算出手段で算出される各シナリオの実行時間の長さの相対的な比で重みを除算し、各シナリオの重み付け点数を求める重み付け手段と、
    重み付け手段で求められる重み付け点数が大きい順に、作成手段で作成されているシナリオを抽出し、抽出されるシナリオの実行時間の合計が予め定める条件を満たすように抽出するシナリオを選択する抽出手段と、
    抽出手段が抽出するシナリオを実行してテストを行う実行手段とを、
    含むことを特徴とするソフトウェアのテスト装置。
  10. 複数の状態間を遷移しながら動作するソフトウェアのテスト装置であって、
    ソフトウェア部品が、実機における使用実績のあるもの、実機における使用実績のあるものを一部修正したもの、新規に作成されて実機における使用実績のないもののうち、いずれに属するかを属性情報として記憶する属性情報記憶手段と、
    状態間の遷移を遷移のトリガとなる入力情報とともに定める状態遷移情報に基づいて、状態間をトリガで連結してテストを行うシナリオを、複数作成する作成手段と、
    作成手段で作成される各シナリオの実行時間を算出する時間算出手段と、
    属性情報記憶手段に記憶されている属性情報を用いて、作成手段で作成される各シナリオに重みを付け、時間算出手段で算出される各シナリオの実行時間の長さの相対的な比で重みを除算し、各シナリオの重み付け点数を求める重み付け手段と、
    重み付け手段で求められる重み付け点数が大きい順に、作成手段で作成されているシナリオを抽出し、抽出されるシナリオの実行時間の合計が予め定める条件を満たすように抽出するシナリオを選択する抽出手段と、
    抽出手段が抽出するシナリオを実行してテストを行う実行手段とを、
    含むことを特徴とするソフトウェアのテスト装置。
  11. 修正を予定している状態を含むソフトウェアを、該状態を識別するためのステート識別子とともに修正情報として記憶する修正情報記憶手段と、
    修正情報に基づいて、該ステート識別子を含むシナリオを抽出し、抽出されるシナリオの実行時間の合計をテストに要する時間とみなすことによって、テストに要する時間を予測するテスト範囲予測手段とを、
    さらに含むことを特徴とする請求項9または10記載のソフトウェアのテスト装置。
  12. 前記実行手段は、
    抽出手段が抽出するシナリオを実行してテストを行う実行部と、
    シナリオを実行した結果の合否を判定し、不合格と判定された遷移を含むシナリオに、抽出の可否を判別する抽出情報として、抽出しないことを示すオン情報を付加する合否判定部とを含み、
    前記抽出手段は、
    抽出情報がオンであるシナリオを抽出しないことを特徴とする請求項9〜11のいずれかに記載のソフトウェアのテスト装置。
JP2003011147A 2002-04-05 2003-01-20 ソフトウェアのテスト方法および装置 Pending JP2004005399A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003011147A JP2004005399A (ja) 2002-04-05 2003-01-20 ソフトウェアのテスト方法および装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002104219 2002-04-05
JP2003011147A JP2004005399A (ja) 2002-04-05 2003-01-20 ソフトウェアのテスト方法および装置

Publications (1)

Publication Number Publication Date
JP2004005399A true JP2004005399A (ja) 2004-01-08

Family

ID=30446709

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003011147A Pending JP2004005399A (ja) 2002-04-05 2003-01-20 ソフトウェアのテスト方法および装置

Country Status (1)

Country Link
JP (1) JP2004005399A (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006099743A (ja) * 2004-09-29 2006-04-13 Microsoft Corp 再現可能なテストの自動化に関するテストケース実行挙動を選択するシステムおよび方法
US7506211B2 (en) * 2005-09-13 2009-03-17 International Business Machines Corporation Automated atomic system testing
JP2009116643A (ja) * 2007-11-07 2009-05-28 Nec Corp 検査時間制御装置、方法、およびプログラム
JP2010134643A (ja) * 2008-12-03 2010-06-17 Hitachi Software Eng Co Ltd テストケースの選択方法及び選択システム
JP2011008628A (ja) * 2009-06-26 2011-01-13 Fujitsu Ltd プログラムモデル検査方法、プログラムモデル検査プログラム
US8584095B2 (en) 2009-12-21 2013-11-12 International Business Machines Corporation Test support system, method and computer program product, which optimize test scenarios to minimize total test time
JP2013257839A (ja) * 2012-06-14 2013-12-26 Mitsubishi Electric Building Techno Service Co Ltd プログラム試験装置
JP2014049066A (ja) * 2012-09-04 2014-03-17 Fujitsu Ltd プログラム、情報処理装置およびテスト方法
JP2015075872A (ja) * 2013-10-08 2015-04-20 株式会社日立製作所 試験仕様書生成装置、方法及びコンピュータプログラム
JP2016151925A (ja) * 2015-02-18 2016-08-22 日本電信電話株式会社 優先度付与装置、優先度付与方法および優先度付与プログラム
KR20200072656A (ko) * 2018-12-13 2020-06-23 한화시스템 주식회사 전투체계 소프트웨어 빌드 방법
KR20200072657A (ko) * 2018-12-13 2020-06-23 한화시스템 주식회사 전투체계 소프트웨어 빌드 시스템

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006099743A (ja) * 2004-09-29 2006-04-13 Microsoft Corp 再現可能なテストの自動化に関するテストケース実行挙動を選択するシステムおよび方法
US7506211B2 (en) * 2005-09-13 2009-03-17 International Business Machines Corporation Automated atomic system testing
JP2009116643A (ja) * 2007-11-07 2009-05-28 Nec Corp 検査時間制御装置、方法、およびプログラム
JP2010134643A (ja) * 2008-12-03 2010-06-17 Hitachi Software Eng Co Ltd テストケースの選択方法及び選択システム
JP2011008628A (ja) * 2009-06-26 2011-01-13 Fujitsu Ltd プログラムモデル検査方法、プログラムモデル検査プログラム
US8584095B2 (en) 2009-12-21 2013-11-12 International Business Machines Corporation Test support system, method and computer program product, which optimize test scenarios to minimize total test time
JP2013257839A (ja) * 2012-06-14 2013-12-26 Mitsubishi Electric Building Techno Service Co Ltd プログラム試験装置
JP2014049066A (ja) * 2012-09-04 2014-03-17 Fujitsu Ltd プログラム、情報処理装置およびテスト方法
JP2015075872A (ja) * 2013-10-08 2015-04-20 株式会社日立製作所 試験仕様書生成装置、方法及びコンピュータプログラム
JP2016151925A (ja) * 2015-02-18 2016-08-22 日本電信電話株式会社 優先度付与装置、優先度付与方法および優先度付与プログラム
KR20200072656A (ko) * 2018-12-13 2020-06-23 한화시스템 주식회사 전투체계 소프트웨어 빌드 방법
KR20200072657A (ko) * 2018-12-13 2020-06-23 한화시스템 주식회사 전투체계 소프트웨어 빌드 시스템
KR102157843B1 (ko) * 2018-12-13 2020-09-21 한화시스템 주식회사 전투체계 소프트웨어 빌드 시스템
KR102162030B1 (ko) * 2018-12-13 2020-10-07 한화시스템 주식회사 전투체계 소프트웨어 빌드 방법

Similar Documents

Publication Publication Date Title
US20070214173A1 (en) Program, method, and apparatus for supporting creation of business process model diagram
JP2004005399A (ja) ソフトウェアのテスト方法および装置
JP2001142738A (ja) スクリプタおよびインタープリタ
JP2005234705A (ja) システムの自動構成を実現するシステムレイアウト設計プログラム、システムレイアウト設計装置、およびシステムレイアウト設計方法
CN109710298A (zh) 接口管理方法、接口管理装置、接口管理设备及存储介质
JP2006268666A (ja) 補正機能を持つ自動試験システム、自動試験方法、およびプログラム
JP6076660B2 (ja) プログラム構造評価システム、プログラム
JP2016126552A (ja) テスト選択プログラム、テスト選択方法、及びテスト選択装置
JP2002207612A (ja) ログ解析方法及びその実施装置並びにその処理プログラムを記録した記録媒体
JPH11306039A (ja) 試験プログラム実行制御装置,試験プログラム実行制御方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2008310815A (ja) 検索結果提供方法及びシステム
JP5747751B2 (ja) リグレッションテスト支援プログラム及びリグレッションテスト支援装置
JP5153470B2 (ja) 状態遷移検証装置および状態遷移検証方法
JP2007334837A (ja) テストシナリオ作成方法、プログラム及び記録媒体
JP2001166924A (ja) ソフトウェア開発物管理装置および管理方法
JP2004118553A (ja) ワークフロー実行方法とシステム、およびそのためのプログラム
JP2010231594A (ja) 試験プログラム及び試験装置
CN113704114A (zh) 功能接口的自动化测试方法、装置、设备及介质
JP2005025543A (ja) 整合性チェックシステム及び整合性チェック方法及び整合性チェックプログラム及び管理情報作成システム
JP7333885B1 (ja) ストレスデータ分析システム、ストレスデータ分析方法およびストレスデータ分析プログラム
JP2020098413A (ja) テスト支援装置、テスト支援方法及びコンピュータプログラム
JP2008072359A (ja) メッセージ比較判定装置、メッセージ比較判定方法およびメッセージ比較判定プログラム
JP3104586B2 (ja) 設計支援方法
JP2910662B2 (ja) 回路接続情報の比較装置
JP2009157505A (ja) ソフトウェア変更影響分析装置