(57)【要約】【課題】  ソフトウェアに実装されている機能と設計情報に基づく期待される機能との整合性の検証を支援し、試験結果の視覚的な把握を可能にする。【解決手段】  フローチャート作成部２０が試験対象ソースコードを解析し、状態解析部４０は、状態変数編集部６０を介して供給される状態変数に基づいて、ソースコードの解析結果から状態遷移情報を抽出する。試験実行部１００は、試験シナリオによって提供される設計情報に基づく状態遷移情報と、状態解析部４０が解析した状態遷移情報を比較し、両者の異同を出力する。これにより、プログラム中の状態遷移に関わる部分の実装状態について、設計情報と合っているかを容易に確認することができる。また、試験実行部１００は、試験シナリオに基づいて試験を実行したプログラム中のパスを、フローチャート上に明示して出力するようにしたので、試験済みのパスを視覚的に把握することができる。【選択図】        図１
2005316710.tif 000002
【特許請求の範囲】
【請求項１】
試験対象ソフトウェアのソースコードを解析し、上記ソフトウェアの状態遷移に関わる制御構造と関連条件を抽出するソースコード解析手段と、
上記制御構造と上記関連条件に基いて、上記ソフトウェアのフローチャートを生成するフローチャート作成手段と、
入力された上記ソフトウェアの状態変数に基づいて、上記ソースコード解析手段による解析結果から状態遷移情報を生成する状態解析手段と、
入力された試験シナリオに基いて上記ソフトウェアの試験を実施し、上記試験シナリオによって提供される設計情報に基づく状態遷移情報と、上記状態解析手段によって生成された状態遷移情報を比較し、両者の異同を出力すると共に、上記試験シナリオに基づく試験によって実行済みとなった上記ソフトウェア中の経路を、上記フローチャート上に明示して出力する試験実行手段と、
上記フローチャートと、上記状態解析手段によって生成された状態遷移情報と、上記試験実行手段による試験結果とを表示する表示手段を備えたソフトウェア試験支援装置。
【請求項２】
ソースコード解析手段は、
修正したソースコードの再試験を行う場合には、修正前ソースコードとの変更点を抽出し、
フローチャート作成手段は、上記変更点に対応する箇所を明示したフローチャートを生成することを特徴とする請求項１記載のソフトウェア試験支援装置。
【請求項３】
試験実行手段による試験結果を、フローチャート形式および帳票形式で出力する試験結果レポート出力手段を備えたことを特徴とする請求項１または請求項２記載のソフトウェア試験支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ソフトウェア試験支援装置に関するものである。
【背景技術】
【０００２】
ソフトウェア開発において、実装されたソフトウェアの動作テストを効率よく行うため、様々なソフトウェア試験支援装置が提案されている。
例えば、特許文献１に記載された従来のソフトウェアテスト支援システムでは、ソースコード解析手段によって、構造化プログラミング手法を用いて作成されたソースコードが複数の単位ルーチンに分類され、各単位ルーチンの呼び出し関係の解析が行われる。また、テストケース作成手段は、解析された各単位ルーチンの呼び出し関係に基づいて全ての呼び出しパターンを網羅する複数のテストケースを作成する。このように、ソースコードに基づいてテストケースを自動的に作成するため、日本語などの自然言語で記述されたソフトウェアの仕様書やソフトウェアの状態遷移仕様などをベースにテストケースを作成する方式に比べ、より簡便にテストケースを作成することができる。
【０００３】
また、特許文献２に記載された従来の試験手順生成装置は、ソフトウェアの動作と、動作に基づく状態間の遷移との仕様を定義する動作フローの入力を受け、その動作フローを解析する。解析結果に基づいて、第一の状態から第二の状態へ至る遷移をノードに対応づけ、状態間の遷移を有向線分に対応付けるグラフを生成し、生成したグラフの構造に基づいてノードを削除する削除順序を定め、削除順序に従ってノードを削除してグラフを簡略化し、グラフを用いて、第一の状態から第二の状態へ至る遷移の順序関係を示すパス式を生成する。生成したパス式に基づいて、遷移の順序関係に沿った試験パスを生成し、試験パスに基づいて、試験を行う。
【０００４】
【特許文献１】特開平７−２１０４２４号公報
【特許文献２】特開２００３−２１６４５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載された従来技術では、試験対象となるソースコードの制御構造を自動的に解析し、テストケースを自動作成する。これにより、試験パス本数、および被試験パス、被試験コード率の算出、表示が可能であったが、設計内容と実装内容との間に整合性が保たれているか否かを検証することが出来ないという問題があった。
また、全てのパスを試験することが可能なテストケースが作成されるが、試験結果は、テキスト文字形式で出力されるため、試験結果を視覚的に把握できないという点で問題があった。特に、被試験パスのうち、状態遷移に関わるパス等、ソフトウェアの挙動にとって重要なパスについての結果を視覚的に把握したいという要望があった。
また、特許文献２に記載された従来技術では、開発者が設計仕様に基づいて入力した情報から、動作フローを作成し、それを基に試験パスが作成されるが、特許文献１に記載の技術と同様に、試験結果を視覚的に把握する手段がなかった。
【０００６】
この発明は上記のような課題を解決するためになされたもので、ソフトウェアに実装されている機能と設計情報に基づく期待される機能との整合性の検証を支援し、試験結果の視覚的な把握を可能にするソフトウェア試験支援装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係るソフトウェア試験支援装置は、試験対象ソフトウェアのソースコードを解析し、ソフトウェアの状態遷移に関わる制御構造と関連条件を抽出するソースコード解析手段と、制御構造と関連条件に基いて、ソフトウェアのフローチャートを生成するフローチャート作成手段と、入力されたソフトウェアの状態変数に基づいて、ソースコード解析手段による解析結果から状態遷移情報を生成する状態解析手段と、入力された試験シナリオに基いてソフトウェアの試験を実施し、試験シナリオによって提供される設計情報に基づく状態遷移情報と、状態解析手段によって生成された状態遷移情報を比較し、両者の異同を出力すると共に、試験シナリオに基づく試験によって実行済みとなったソフトウェア中の経路を、フローチャート上に明示して出力する試験実行手段と、フローチャートと、状態解析手段によって生成された状態遷移情報と、試験実行手段による試験結果とを表示する表示手段を備えたものである。
【発明の効果】
【０００８】
この発明によれば、入力された状態変数に基づいて、ソースコードの解析結果から状態遷移情報を抽出し、試験シナリオによって提供される設計情報に基づく状態遷移情報との比較により、両者の異同を検出するようにしたので、プログラム中の状態遷移に関わる部分の実装状態を確認することができる。また、試験シナリオに基づいて試験を実行したソフトウェア中の経路を、フローチャート上に明示して出力するようにしたので、試験済みの経路を視覚的に把握することができる。
【発明を実施するための最良の形態】
【０００９】
以下、この発明の実施の形態を説明する。
実施の形態１．
図１は、この発明の実施の形態１によるソフトウェア試験支援装置９００の構成を示すブロック図である。図に示すように、ソフトウェア試験支援装置１００は、ソースコード記憶部１０、フローチャート作成部（ソースコード解析手段、フローチャート作成手段）２０、フローチャート記憶部３０、状態解析部（状態解析手段）４０、状態遷移記憶部５０、状態変数編集部６０、状態変数記憶部７０、試験シナリオ編集部８０、試験シナリオ記憶部９０、試験実行部（試験実行手段）１００、試験結果記憶部１１０、表示部（表示手段）１２０を備えている。
フローチャート作成部２０、状態解析部４０、状態変数編集部６０、試験シナリオ編集部８０、試験実行部１００、および表示部１２０は、ソフトウェア試験支援装置９００のプロセッサを動作させるプログラムのモジュールを表しており、これらは実際には、一体としてソフトウェア試験支援装置９００のプロセッサを構成する。
【００１０】
ソースコード記憶部１０、フローチャート記憶部３０、状態遷移記憶部５０、状態変数記憶部７０、試験シナリオ記憶部９０、および試験結果記憶部１１０は、ソフトウェア試験支援装置９００のメモリ、あるいはソフトウェア試験支援装置９００と接続された外部の記憶装置であり、これらは同一の記憶装置に格納されていてもよい。
【００１１】
次に、動作について説明する。
まず、ソースコード解析処理について説明する。
フローチャート作成部２０は、ソースコード記憶部１０に格納された、試験の対象となるソフトウェアのソースコードの制御構造、関連条件を解析し、フローチャートを作成する。ここで、ソースコードの制御構造とは、ソースコード中、状態遷移に関わる条件分岐等の制御文を意味し、関連条件とは、当該制御文に関わる変数や呼び出し構造を意味する。すなわち、ソフトウェアがどのような条件で状態遷移し、また、状態遷移後どのような処理を行うかについての情報である。例えば、ソースコードがＣ言語によって記述されている場合には、ｉｆ〜ｔｈｅｎ〜ｅｌｓｅ、ｆｏｒ、ｗｈｉｌｅ、ｓｗｉｔｃｈ、ｂｒｅａｋ、ｃｏｎｔｉｎｕｅ、ｒｅｔｕｒｎ、ｇｏｔｏ、ｌａｂｅｌ等の制御文が分岐構造であり、フローチャート作成部２０は、これらの制御文における分岐条件等を解析する。
【００１２】
図２は、試験対象となるソースコードの例である。また、図３は、図２中のｅｖｅｎｔＡの制御構造及び関連条件の解析結果を示す図である。
図３に示すように、この例では、解析の結果、ｅｖｅｎｔＡは条件分岐Ａと関数呼び出しＢ、返り値付ｒｅｔｕｒｎＣ１，Ｃ２により構成されていることが解析される。また、条件分岐Ａに関係する変数（ｖａｒｉａｂｌｅ）は「ｓｔａｔｕｓ」、数値（ｖａｌｕｅ）は「ＩＮＩＴＩＡＬ」、条件は「＝＝」であることが解析される。また、関数呼び出しＢに関係する変数、数値、条件は無いことが解析される。また、Ｃ１に関係する変数、条件は無く、数値は「ＣＯＮＴ１」、Ｃ２に関係している変数、条件は無く、数値は「ＥＲＲＯＲ」であることが解析される。
【００１３】
フローチャート作成部２０は、ソフトウェアの制御構造と関連条件を解析した後、解析結果に基づいてフローチャートを作成し、フローチャート記憶部３０に格納する。
図４は、図３に例示した制御構造の解析結果に基づいて作成された、図２に示す試験対象ソフトウェアのフローチャートである。作成されたフローチャートの情報はフローチャート記憶部３０に格納され、表示部１２０を介してディスプレイ等の表示装置（図示せず。）に表示させることができる。
【００１４】
次に、ソースコード解析結果から、ソフトウェアの状態遷移に関する情報を抽出する処理について説明する。
まず、ユーザが、試験対象ソフトウェアの設計資料に基づいて、状態変数編集部６０を介して、当該ソフトウェアの状態変数および状態遷移を入力する。ここで、状態変数とは、ソフトウェアの状態遷移を決定付ける変数であり、図２に示すソフトウェアの例で説明すると、ｓｔａｔｕｓ、状態は、ＩＮＩＴＩＡＬ、ＣＯＮＴ１、ＣＯＮＴ２、ＥＮＤ、ＥＲＲＯＲが該当する。
入力された状態変数の情報は、状態変数記憶部７０に格納され、状態解析部４０に供給される。
【００１５】
状態解析部４０は、フローチャート作成部２０によるソースコードの解析結果を参照して、状態変数記憶部７０から供給された状態変数の情報を抽出し、各々のイベントにおける状態変数の遷移情報を生成する。図５は、状態解析部４０によって生成される状態変数の遷移情報を示したものである。図に示すように、各々の状態変数（ｓｔａｔｅ）の、ｅｖｅｎｔＡ、ｅｖｅｎｔＢ、ｅｖｅｎｔＣにおける状態遷移情報が解析されている。生成された状態遷移情報は、状態遷移記憶部５０に格納され、表示部１２０を介してディスプレイ等の表示装置（図示せず。）に表示することができる。
【００１６】
次に、試験シナリオに基づくソフトウェア試験の実行処理について説明する。
試験シナリオは、試験シナリオ編集部８０を介して外部から入力され、試験シナリオ記憶部９０に格納される。図６は、入力される試験シナリオの例である。また、図７は、図６に示す試験シナリオに基づく、各イベントの状態遷移情報を示した図である。図７の遷移情報は、設計情報に基づいて予想される遷移状態を表している。この設計情報に基づく状態遷移情報は、試験シナリオ記憶部９０に格納され、表示部１２０を介してディスプレイ等の表示装置（図示せず。）に表示することができる。
【００１７】
試験実行部１００は、試験シナリオ記憶部９０から試験シナリオを取得し、試験対象ソフトウェアの試験を実施する。
まず、試験実行部１００は、試験シナリオ記憶部９０から供給される図７に示す予想される状態遷移と、状態遷移記憶部５０から供給される図５に示す実装された状態遷移を比較し、異同を検出する。
図８は、試験実行部１００によって出力される、実装された状態遷移と設計情報に基づく状態遷移の比較結果を示す図である。図中、太字で示した部分が、設計情報に基づく値と実際の試験結果が異なる箇所（試験結果がＮＧである部分）である。また、図中「未」で示された部分は、試験シナリオの不備による未試験ケースを表している。この比較結果は、試験結果記憶部１１０に格納され、表示部１２０を介してディスプレイ等の表示装置（図示せず。）に表示することができる。表示形式は、例えば、図８に示すような形式でもよい。
【００１８】
さらに、試験実行部１００は、フローチャート記憶部３０からフローチャート作成部２０によって生成されたソースコード解析結果を取得し、試験シナリオに基づいて実施した試験が通ったパスを太線で示したフローチャートを作成する。図９に、作成されたフローチャートを示す。このフローチャートは試験結果記憶部１１０に格納され、表示部１２０を介してディスプレイ等の表示装置（図示せず。）に表示することができる。なお、試験実施済みパスの明示方法は、太線のほか、色を変えて表示する等の方法であってもよい。
また、試験結果記憶部１１０に格納された、試験実施済みのパスを明示したフローチャートと図８に示す状態遷移の試験結果を、フローチャート及び帳票形式で出力する試験結果レポート出力手段を設けるようにしてもよい。
【００１９】
次に、上記の試験結果に基づいてソフトウェアの修正を行った後、再試験をする場合の処理について説明する。
図１０は、図８に示す状態遷移の試験結果に基づいて、図２に示すソースコードを修正したものを示す図である。図中、太線で示した部分が修正箇所である。
フローチャート作成部２０は、修正後のソースコードを解析し、フローチャートを作成する。図１２は、フローチャート作成部２０によって作成した修正後のソースコードのフローチャートである。図中、破線で示した部分が図４に示す修正前のソースコードと異なる部分である。作成されたフローチャートの情報はフローチャート記憶部３０に格納され、表示部１２０を介してディスプレイ等の表示装置（図示せず。）に表示させることができる。なお、変更された箇所の明示方法は、図１２に示すような破線による表示方法には限られない。
修正後のフローチャートによりソフトウェアの変更点が示されるので、再試験が必要な部位を把握することができる。
【００２０】
また、図１１は、図８に示す状態遷移の試験結果に基づいて修正した試験シナリオを示す図である。図中、太線で示した部分が修正箇所である。
【００２１】
試験実行部１００は、修正後の試験シナリオに基づいて修正後のソフトウェアの試験を実行する。図１３は、試験実行部１００によって出力される、修正後のソースコードに実装された状態遷移と設計情報に基づく状態遷移の比較結果を示す図である。図に示すように、図８では「ＮＧ」と示されていた箇所が、ソースコードの修正により、設計情報に基づく値と等しくなっている。また、試験シナリオの不備により、図８で「未」と示されていた箇所には、試験シナリオの修正により試験結果が示されるようになっている。
【００２２】
以上のように、実施の形態１によれば、フローチャート作成部２０が試験対象ソースコードを解析し、状態解析部４０は、状態変数編集部６０を介して供給される状態変数に基づいて、ソースコードの解析結果から状態遷移情報を抽出する。試験実行部１００は、試験シナリオによって提供される設計情報に基づく状態遷移情報と、状態解析部４０が解析した状態遷移情報を比較し、両者の異同を出力する。これにより、プログラム中の状態遷移に関わる部分の実装状態について、設計情報と合っているかを容易に確認することができる。
また、試験実行部１００は、試験シナリオに基づいて試験を実行したプログラム中のパスを、フローチャート上に明示して出力するようにしたので、試験済みのパスを視覚的に把握することができる。
【００２３】
また、ソースコードを修正して再試験を行う際には、フローチャート作成部２０によって、変更された箇所を明示したフローチャートが作成されるようにしたので、再試験を行うべきパスを視覚的に把握することができる。
【図面の簡単な説明】
【００２４】
【図１】この発明の実施の形態１による、ソフトウェア試験支援装置の構成を示すブロック図である。
【図２】試験対象となるソースコードの例である。
【図３】この発明の実施の形態１による、制御構造及び関連条件の解析結果の例を示す図である。
【図４】この発明の実施の形態１による、ソフトウェアの制御構造の解析結果に基づいて作成されたフローチャートの例である。
【図５】この発明の実施の形態１による、状態解析部によって解析された状態遷移情報を示す図である。
【図６】この発明の実施の形態１による、試験シナリオの例を示す図である。
【図７】この発明の実施の形態１による、試験シナリオに基づく状態遷移情報を示す図である。
【図８】この発明の実施の形態１による、実装された状態遷移と設計情報に基づく状態遷移の比較結果を示す図である。
【図９】この発明の実施の形態１による、試験済みのパスを太線で示したフローチャートの例である。
【図１０】修正後のソースコードを示す図である。
【図１１】修正後の試験シナリオを示す図である。
【図１２】この発明の実施の形態１による、フローチャート作成部によって作成された、修正後のソースコードのフローチャートである。
【図１３】この発明の実施の形態１による、修正後のソースコードに実装された状態遷移と設計情報に基づく状態遷移の比較結果を示す図である。
【符号の説明】
【００２５】
１０  ソースコード記憶部、２０  フローチャート作成部、３０  フローチャート記憶部、４０  状態解析部、５０  状態遷移記憶部、６０  状態変数編集部、７０  状態変数記憶部、８０  試験シナリオ編集部、９０  試験シナリオ記憶部、１００  試験実行部、１１０  試験結果記憶部、１２０  表示部。
【図１】
2005316710.tif 000003
【図２】
2005316710.tif 000004
【図３】
2005316710.tif 000005
【図４】
2005316710.tif 000006
【図５】
2005316710.tif 000007
【図６】
2005316710.tif 000008
【図７】
2005316710.tif 000009
【図８】
2005316710.tif 000010
【図９】
2005316710.tif 000011
【図１０】
2005316710.tif 000012
【図１１】
2005316710.tif 000013
【図１２】
2005316710.tif 000014
【図１３】
2005316710.tif 000015