JP4893811B2 - 検証支援プログラム、および検証支援装置 - Google Patents

検証支援プログラム、および検証支援装置 Download PDF

Info

Publication number
JP4893811B2
JP4893811B2 JP2009276767A JP2009276767A JP4893811B2 JP 4893811 B2 JP4893811 B2 JP 4893811B2 JP 2009276767 A JP2009276767 A JP 2009276767A JP 2009276767 A JP2009276767 A JP 2009276767A JP 4893811 B2 JP4893811 B2 JP 4893811B2
Authority
JP
Japan
Prior art keywords
node
similar
failure
sequence
scenario
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
Application number
JP2009276767A
Other languages
English (en)
Other versions
JP2011118757A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009276767A priority Critical patent/JP4893811B2/ja
Priority to US12/957,970 priority patent/US20110138228A1/en
Publication of JP2011118757A publication Critical patent/JP2011118757A/ja
Application granted granted Critical
Publication of JP4893811B2 publication Critical patent/JP4893811B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

本発明は、ソフトウェアまたはハードウェアにかかる検証を支援する検証支援プログラム、および検証支援装置に関する。
近年、ソフトウェアやハードウェアのシステム開発において、設計技術の進歩によりシステムが大規模化、複雑化している。一方で、システムの大規模化、複雑化により、開発期間全体における検証工程の占める割合が増加する傾向にある。検証工程では、システムが正しく動作しているか否かの検証がおこなわれる(たとえば、下記特許文献1〜3参照。)。
具体的には、たとえば、検証工程では、検証対象にシナリオという形でテストパターンを与えて、その振る舞いをチェックして正しい動作をしているか否かを検証する。この際、あるシーケンスで障害が検出されると、その障害に関連する障害を潰し込むために、そのシーケンスと同一または類似する類似シーケンスを含むシナリオを選択して試験する必要がある。
特開2004−220356号公報 特開平11−39179号公報 特開2007−52703号公報
しかしながら、上述した従来技術によれば、類似シーケンスを含むシナリオを導出する基準や手段が明確ではないため、関連障害の発生を検証するために必要となるシナリオを適切に選び出すことが難しいという問題がある。この結果、関連障害の潰し込みが不十分となり、検証品質の低下を招くという問題がある。
本発明は、上述した従来技術による問題点を解消するため、ソフトウェアまたはハードウェアにかかる検証の網羅性を向上させることができる検証支援プログラム、および検証支援装置を提供することを目的とする。
上述した課題を解決し、目的を達成するため、開示の検証支援プログラム、および検証支援装置は、検証対象の動作を実現するシーケンスをノードとして階層化することにより、前記検証対象の動作を検証するシナリオ群を表現する構造体の中から、障害が発生したシーケンスを表す障害ノードに類似する類似ノードを検出し、前記構造体の開始ノードから検出された類似ノードに辿り着くまでの経路上のノード群が表す一連のシーケンスを作成し、作成された一連のシーケンスを出力することを要件とする。
本検証支援プログラム、および検証支援装置によれば、ソフトウェアまたはハードウェアにかかる検証の網羅性を向上させることができるという効果を奏する。
本検証支援手法の概要の一例を示す説明図である。 シナリオ群(hMSC)のデータ構造の一例を示す説明図である。 ノード(bMSC)のデータ構造の一例を示す説明図である。 検証支援装置のハードウェア構成を示すブロック図である。 検証支援装置の機能的構成を示すブロック図である。 指定画面の一例を示す説明図(その1)である。 指定画面の一例を示す説明図(その2)である。 類似ノードテーブルの記憶内容の一例を示す説明図である。 類似ノードの検出例を示す説明図(その1)である。 類似ノードの検出例を示す説明図(その2)である。 類似ノードの検出例を示す説明図(その3)である。 類似ノードテーブルの設定例を示す説明図である。 シナリオの作成例を示す説明図である。 シナリオDBの記憶内容の一例を示す説明図である。 シナリオの具体例を示す説明図である。 検証支援装置の検証支援処理手順の一例を示すフローチャートである。 類似ノード検出処理の具体的処理手順の一例を示すフローチャートである。 シナリオ作成処理の具体的処理手順の一例を示すフローチャートである。
以下に添付図面を参照して、この発明にかかる検証支援プログラム、および検証支援装置の好適な実施の形態を詳細に説明する。
(本検証支援手法の概要)
まず、本実施の形態にかかる検証支援手法の概要について説明する。図1は、本検証支援手法の概要の一例を示す説明図である。本手法では、検証対象となるソフトウェアやハードウェアの動作を検証するためのシナリオ群を、検証対象の動作を実現するための各シーケンスをノードとして階層化された構造体で表現する。
ここで、シーケンスとは、オブジェクト(または、インスタンス)間で送受信されるイベント(または、メッセージ)を時系列で表現する処理手順である。また、オブジェクト(または、インスタンス)とは、検証対象に含まれるブロックまたは検証対象と干渉する外部環境である。なお、構造体およびシーケンスの詳細な説明は、図2および図3を用いて後述する。
図1において、本手法では、検証対象のシナリオ群を表現する構造体100の中から、障害が発生しているノード(以下、「障害ノード」という)を指定する(図1中(1))。たとえば、本手法では、障害ノードの指定画面(図6−1参照)において、構造体100の中から障害ノードNfをユーザの操作入力によって指定する。
本手法では、構造体100の中から、指定された障害ノードNfに類似するノード(以下、「類似ノード」という)を検出する(図1中(2))。類似ノードは、たとえば、障害ノードが表すシーケンスの内容に基づいて、構造体100の中から自動検出される。ここでは、一例としてノードNeが類似ノードとして検出されている。
本手法では、構造体100の開始ノードNaから検出された類似ノードNeに辿り着くまでの経路P上のノード群Na,Nc,Nd,Neが表す一連のシーケンスを含むシナリオを作成する(図1中(3))。ここでは、『ノードNa→ノードNc→ノードNd→ノードNe』の順に各ノードが表すシーケンスを実行するシナリオが作成される。
このシナリオは、類似ノードNeでの障害発生を検証するためのシナリオ、すなわち、障害ノードNfで発生した障害の関連障害を潰し込むためのシナリオとなる。これにより、本手法によれば、検証対象において発生した一の障害に関連する他の障害の発生を検証するためのシナリオを自動作成することができる。この結果、検証対象にかかる検証の網羅性を向上させて、検証品質を向上させることができる。
(シナリオ群のデータ構造)
つぎに、検証対象の動作を検証するためのシナリオ群のデータ構造について説明する。ここでは、hMSC(High Level Message Sequence Chart)により記述されたシナリオ群を、XML(eXtensible Markup Language)を用いて表現する。hMSCとは、シーケンス(図)を表すbMSC(basic MSC)を要素とする図表であり、上述した構造体を表現する一手法である。
図2は、シナリオ群(hMSC)のデータ構造の一例を示す説明図である。図2において、構造体200は、検証対象の動作を検証するためのシナリオ群を表現する有向グラフである。具体的には、構造体200は、検証対象の動作を実現するための各シーケンスをノードN0〜N7として有向グラフ化したものである。
この構造体200は、XMLを用いてhMSC情報210として記述される。hMSC情報210には、構造体200に含まれるノード群(XML記述211)と、各ノード間の接続関係(XML記述212)が定義されている。ただし、図2中●は、開始点(init)を表している。したがって、構造体200において、開始点●に直接接続されたノードN0が開始ノードとなる。
ここで、ノードN3を例に挙げて、hMSCの要素となる各シーケンスを表すノードのデータ構造について説明する。図3は、ノード(bMSC)のデータ構造の一例を示す説明図である。図3において、シーケンスSq3は、ノードN3が表す検証対象の動作を実現する処理手順である。
このシーケンスSq3は、XMLを用いてbMSC情報310として記述される。bMSC情報310には、シーケンスSq3に含まれるインスタンス群(XML記述311)と、各インスタンス間で送受信されるメッセージ(XML記述312)が定義されている。また、XML記述312には、各インスタンスの時間軸上でのメッセージの順序が記述されている(符号313)。
具体的には、メッセージE1は、インスタンスAが最初に行うイベント(送信)であって、かつ、インスタンスX0が最初に行うイベント(受信)である。また、メッセージE0は、インスタンスX0が2番目に行うイベント(送信)であって、かつ、インスタンスBが最初に行うイベント(受信)である。また、メッセージE2は、インスタンスX0が3番目に行うイベント(送信)であって、かつ、インスタンスAが2番目に行うイベント(受信)である。
このように、検証対象のシナリオ群は、図2に示すhMSC情報210と、hMSC情報210に定義されている各ノードN0〜N7のbMSC情報(たとえば、bMSC情報310)の集合によって表現される。
なお、hMSCについての詳細な説明は、たとえば、非特許文献『Doron Peled“Specification and Verification using Message Sequence Charts”Electronic Notes in Theoretical Computer Science 65 No.7 2002』を参照できる。
(検証支援装置のハードウェア構成)
つぎに、本実施の形態にかかる検証支援装置のハードウェア構成の一例について説明する。図4は、検証支援装置のハードウェア構成を示すブロック図である。図4において、検証支援装置400は、CPU(Central Processing Unit)401と、ROM(Read‐Only Memory)402と、RAM(Random Access Memory)403と、磁気ディスクドライブ404と、磁気ディスク405と、光ディスクドライブ406と、光ディスク407と、ディスプレイ408と、I/F(Interface)409と、キーボード410と、マウス411と、スキャナ412と、プリンタ413と、を備えている。また、各構成部はバス420によってそれぞれ接続されている。
ここで、CPU401は、検証支援装置400の全体の制御を司る。ROM402は、ブートプログラムなどのプログラムを記憶している。RAM403は、CPU401のワークエリアとして使用される。磁気ディスクドライブ404は、CPU401の制御にしたがって磁気ディスク405に対するデータのリード/ライトを制御する。磁気ディスク405は、磁気ディスクドライブ404の制御で書き込まれたデータを記憶する。
光ディスクドライブ406は、CPU401の制御にしたがって光ディスク407に対するデータのリード/ライトを制御する。光ディスク407は、光ディスクドライブ406の制御で書き込まれたデータを記憶したり、光ディスク407に記憶されたデータをコンピュータに読み取らせたりする。
ディスプレイ408は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ408は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
I/F409は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク414に接続され、このネットワーク414を介して他の装置に接続される。そして、I/F409は、ネットワーク414と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F409には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード410は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス411は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ412は、画像を光学的に読み取り、検証支援装置400内に画像データを取り込む。なお、スキャナ412は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ413は、画像データや文書データを印刷する。プリンタ413には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
(検証支援装置の機能的構成)
つぎに、検証支援装置400の機能的構成について説明する。図5は、検証支援装置の機能的構成を示すブロック図である。図5において、検証支援装置400は、入力部501と、検出部502と、作成部503と、出力部504と、を含む構成である。各機能部(入力部501〜出力部504)は、具体的には、たとえば、図4に示したROM402、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶されたプログラムをCPU401に実行させることにより、または、I/F409により、その機能を実現する。
まず、入力部501は、検証対象の動作を検証するためのシナリオ群の入力を受け付ける機能を有する。具体的には、たとえば、入力部501が、図4に示したキーボード410やマウス411を用いたユーザの操作入力により、図2および図3に示したhMSC情報210およびbMSC情報310を受け付ける。なお、入力された入力結果は、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶される。
また、入力部501は、検証対象の動作を検証するシナリオ群を表現する構造体の中から、障害が発生したシーケンスを表す障害ノードの指定を受け付ける機能を有する。具体的には、たとえば、入力部501が、図6に示す指定画面610,620において、キーボード410やマウス411を用いたユーザの操作入力により、障害ノードの指定を受け付けることにしてもよい。
ここで、障害ノードの指定画面について説明する。図6−1および図6−2は、指定画面の一例を示す説明図である。図6−1および図6−2において、障害ノードを指定するための指定画面610,620がディスプレイ408(図4参照)に表示されている。
指定画面610において、ユーザが、カーソルCを移動させて、障害による修正対象となったメッセージE0をクリックすることで、構造体200の中から障害ノードN3を指定することができる。なお、各ノードN0〜N7が表すシーケンスの内容は、たとえば、カーソルCを移動させて各ノードN0〜N7に合わせると拡大表示される。
また、指定画面620において、ユーザが、ボックスB1に障害ノードのノード名を入力するとともに、ボックスB2に障害による修正対象となったイベントのメッセージ名を入力することで、構造体200の中から障害ノードN3を指定することができる。
なお、ここでは指定画面610,620において障害ノードを指定することにしたが、これに限らない。たとえば、入力部501が、障害ノードを特定するための障害情報の入力を受け付けることにしてもよい。指定された指定結果は、たとえば、図7に示す類似ノードテーブル700に記憶される。
なお、以下の説明では、構造体に含まれるノード群を「ノード群N1〜Nn」と表記し、ノード群N1〜Nnのうち任意のノードを「ノードNi」と表記する(i=0,1,…,n)。また、特に指定する場合を除いて、構造体の中から指定された障害ノードを「障害ノードTgN」と表記する。
図7は、類似ノードテーブルの記憶内容の一例を示す説明図である。図7において、類似ノードテーブル700は、障害ノードID、第1類似ノードID、第2類似ノードIDおよび第3類似ノードIDの項目を有する。各項目に情報を設定することで、障害ノードTgNごとの類似ノード情報(たとえば、類似ノード情報700−1)がレコードとして記憶されている。
ここで、障害ノードIDとは、ノード群N1〜Nnのうち障害ノードTgNを識別する識別子である。第1類似ノードIDとは、障害ノードTgNと類似する第1類似ノードを識別する識別子である。第2類似ノードIDとは、障害ノードTgNと類似する第2類似ノードを識別する識別子である。第3類似ノードIDとは、障害ノードTgNと類似する第3類似ノードを識別する識別子である。
第1、第2および第3類似ノードは、障害ノードTgNとの類似度B1〜B3に応じて分類された類似ノードである。障害ノードTgNと各第1、第2および第3類似ノードとの類似度B1〜B3の大きさは『B1>B2>B3』となる。ただし、類似度B1〜B3の値が大きいほど、障害ノードTgNと類似していることを表している。
たとえば、障害ノードN3が指定されると、類似ノードテーブル700内の障害ノードID項目に「N3」が設定されて、類似ノード情報700−1が新たなレコードとして記憶される。なお、この類似ノードテーブル700は、たとえば、RAM403、磁気ディスク405、光ディスク407などの記憶装置によって実現される。
図5の説明に戻り、検出部502は、検証対象のシナリオ群を表現する構造体の中から、障害ノードTgNに類似する類似ノードを検出する機能を有する。ここで、類似ノードとは、たとえば、障害ノードTgNが表すシーケンスに類似する類似シーケンスを表すノードNiである。また、類似シーケンスとは、たとえば、オブジェクト(または、インスタンス)、イベント(または、メッセージ)、イベントの実行順序の少なくともいずれかが、障害ノードTgNが表すシーケンスと一致するノードNiである。
また、類似度ノードは、障害ノードTgNとの類似性を表す類似度に応じて複数種類に分類することができる。具体的には、たとえば、検出部502が、障害ノードTgNとの類似度B1〜B3に応じて、構造体の中から3種類の第1、第2および第3類似ノードを検出することにしてもよい。なお、検出処理の具体的な処理内容については、図8−1〜図8−3を用いて後述する。
作成部503は、構造体の開始ノードから、検出された類似ノードに辿り着くまでの経路上のノード群が表す一連のシーケンスを含むシナリオを作成する機能を有する。具体的には、たとえば、まず、作成部503が、構造体の開始ノードから幅優先探索を行って、構造体の各ノードNiの開始ノードからの深さdiを求める。ここで、深さdiは、開始ノードからノードNiに辿り着くまでの最短経路上に含まれるノード数によって表現される。
このあと、作成部503が、深さdiが小さくなるように、類似ノードから開始ノードに辿り着くまでの経路を探索する。そして、作成部503が、探索された経路上に含まれるノード群Np〜Nqを逆順に並べたノード群Nq〜Npが表す一連のシーケンスを、関連障害を検証するためのシナリオとして作成する。
これにより、類似ノードが表すシーケンスの障害、すなわち、障害ノードTgNで発生した障害の関連障害を検証するためのシナリオを作成することができる。なお、作成処理の具体的な処理内容については、図10を用いて後述する。
出力部504は、作成されたシナリオを出力する機能を有する。具体的には、たとえば、出力部504が、XMLを用いて表現されたシナリオを出力することにしてもよい。この際、出力部504が、シナリオと、障害ノードTgNとの類似性を表す類似度と関連付けて出力することにしてもよい。
なお、出力結果の具体例は、図11を用いて後述する。また、出力形式としては、たとえば、ディスプレイ408への表示、プリンタ413への印刷出力、I/F409による外部装置への送信がある。また、RAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶することとしてもよい。
(検出部502の処理内容)
つぎに、上記検出部502の具体的な処理内容の一例について説明する。図8−1〜図8−3は、類似ノードの検出例を示す説明図である。ここでは、検出部502が、障害ノードTgNとの類似度B1〜B3に応じて、第1〜第3類似ノードを検出する場合について説明する(ただし、B1>B2>B3)。
また、ここでは障害ノードTgNをノードN3とし、ノードN3を類似ノードの検出対象から除外する。なお、各類似度B1〜B3は、たとえば、障害ノードTgNと類似しているとみなす類似条件(図8−1〜図8−3参照)に応じて設定される。
<第1類似ノード>
まず、類似度B1の第1類似ノードの検出例について説明する。検出部502は、障害ノードTgNと同一シーケンス(MSC)を表すノードNiを第1類似ノードとして検出する。具体的には、たとえば、図8−1において、検出部502が、ノード群N0〜N7の中から、障害ノードN3のbMSC情報310に含まれるXML記述311,312と一致するXML記述を持つノードNiを検出する。
ここで、XML記述311は、障害ノードN3が表すシーケンスSq3に含まれるインスタンス群を定義する記述である。XML記述312は、各インスタンス間で送受信されるメッセージを定義する記述である。
ここでは、ノードN4が表すシーケンスSq4に含まれるインスタンスA,X0,BおよびメッセージE1,E2,E0が一致し、かつ、各メッセージE1,E2,E0のすべての属性値(from、to、fromseq、toseq)が一致する。すなわち、ノードN4のbMSC情報810は、XML記述311,312と一致するXML記述811,812を持つ。
このため、検出部502が、ノード群N0〜N7の中から、ノードN4を第1類似ノードとして検出する。なお、検出された障害ノードN3の第1類似ノードは、たとえば、図7に示した類似ノードテーブル700内の類似ノード情報700−1に設定される。
図9は、類似ノードテーブルの設定例を示す説明図である。図9において、ノードN4が第1類似ノードとして検出された結果、類似ノードテーブル700内の類似ノード情報700−1の第1類似ノードID項目に「N4」が設定されている(図9中(9−1))。
<第2類似ノード>
つぎに、類似度B2の第2類似ノードの検出例について説明する。なお、以下の説明では、障害による修正対象となったメッセージを「メッセージTgM」と表記し、メッセージTgMの実行主体となるインスタンスを「インスタンスTgI」と表記する。また、インスタンスTgIのメッセージシーケンスを「メッセージシーケンスTgMS」と表記する。なお、メッセージシーケンスとは、インスタンスが実行するイベント群の実行順序である。
検出部502は、まず、障害ノードTgNのインスタンスTgIと同一のインスタンスTgIを含むノードNiを検出する。そして、検出部502は、ノードNiのインスタンスTgIのメッセージシーケンスが、障害ノードTgNのインスタンスTgIのメッセージシーケンスTgMSと同一の場合、ノードNiを第2類似ノードとして検出する。
具体的には、たとえば、図8−2において、検出部502が、ノード群N0〜N7の中から、障害ノードN3のbMSC情報310に含まれるXML記述314と一致するXML記述を持つノードNiを検出する。ここで、XML記述821は、障害が発生したメッセージTgMの実行主体となるインスタンスTgIを定義する記述である。ここでは、ノードN5のbMSC情報820に含まれるXML記述821が一致する。
このあと、検出部502が、インスタンスTgIを「from」または「to」に持つメッセージの方向(from/to)と順番(fromseq/toseq)が一致するXML記述を検出する。すなわち、検出部502が、障害ノードN3のXML記述312内の点線部分の記述が一致するXML記述を持つノードNiを検出する。ここでは、ノードN5のXML記述822内の点線部分の記述が一致する。
このため、検出部502が、ノード群N0〜N7の中から、ノードN5を第2類似ノードとして検出する。なお、検出された障害ノードN3の第2類似ノードは、たとえば、類似ノードテーブル700内の類似ノード情報700−1に設定される。具体的には、図9において、ノードN5が第2類似ノードとして検出された結果、類似ノード情報700−1の第2類似ノードID項目に「N5」が設定されている(図9中(9−2))。
<第3類似ノード>
つぎに、類似度B3の第3類似ノードの検出例について説明する。検出部502は、まず、障害が発生したメッセージTgMの実行主体となるインスタンスTgIと同一のインスタンスTgIを含むノードNiを検出する。そして、検出部502は、検出されたノードNiのインスタンスTgIのメッセージが、障害ノードTgNのインスタンスTgIのメッセージTgMと同一の場合、ノードNiを第3類似ノードとして検出する。
具体的には、たとえば、図8−3において、検出部502が、ノード群N0〜N7の中から、障害ノードN3のbMSC情報310に含まれるXML記述314と一致するXML記述を持つノードNiを検出する。ここでは、ノードN7のbMSC情報830に含まれるXML記述831が一致する。
このあと、検出部502が、インスタンスTgIのメッセージTgMと同一のメッセージ(メッセージ名、from、toが一致)のXML記述を検出する。すなわち、検出部502が、障害ノードN3のXML記述315と一致するXML記述を持つノードNiを検出する。ここでは、ノードN7のXML記述832が一致する。
このため、検出部502が、ノード群N0〜N7の中から、ノードN7を第3類似ノードとして検出する。なお、検出された障害ノードN3の第3類似ノードは、たとえば、類似ノードテーブル700内の類似ノード情報700−1に設定される。具体的には、図9において、ノードN7が第3類似ノードとして検出された結果、類似ノード情報700−1の第3類似ノードID項目に「N7」が設定されている(図9中(9−3))。
(作成部503の処理内容)
つぎに、上記作成部503の具体的な処理内容について説明する。ここでは、類似ノードN4での障害発生を検証するためのシナリオを作成する場合について説明する。図10は、シナリオの作成例を示す説明図である。
図10において、まず、作成部503が、構造体200の開始ノードN0から幅優先探索を行って、構造体200の各ノードN0〜N7の開始ノードN0からの深さdiを求める(図10中(1))。このあと、作成部503が、深さdiが小さくなるように、類似ノードN4から開始ノードN0に辿り着くまでの経路P1を探索する(図10中(2))。
そして、作成部503が、探索された経路P1上に含まれるノード群N4,N2,N1,N0を逆順に並べたもの(ノード群N0,N1,N2,N4)を、類似障害を検証するためのシナリオS1として作成する。すなわち、作成部503が、『ノードN0→ノードN1→ノードN2→ノードN4』の順に各ノードが表すシーケンスを実行するシナリオS1を作成する。なお、作成された作成結果は、たとえば、図11に示すシナリオDB(データベース)1100に記憶される。
図11は、シナリオDBの記憶内容の一例を示す説明図である。図11において、シナリオDB1100は、類似度およびシナリオの項目を有し、各項目に情報を設定することでシナリオ情報1100−1〜1100−3をレコードとして記憶している。
ここで、類似度とは、障害ノードTgNとの類似性の度合いを表す指標値である。シナリオとは、XMLを用いて記述された関連障害を検証するためのシナリオデータである。なお、このシナリオDB1100は、たとえば、RAM403、磁気ディスク405、光ディスク407などの記憶領域によって実現される。
(シナリオの具体例)
図12は、シナリオの具体例を示す説明図である。図12において、障害ノードN3で発生した障害の関連障害を検証するためのシナリオ情報1200が示されている。具体的には、シナリオ情報1200には、障害ノードN3との類似度B1〜B3が高い順に、各シナリオS1〜S3を表現するXML記述1210,1220,1230が記述されている。
ここで、XML記述1210は、『ノードN0→ノードN1→ノードN2→ノードN4』の順に各ノードが表すシーケンスを実行するシナリオS1である。XML記述1220は、『ノードN0→ノードN1→ノードN2→ノードN5』の順に各ノードが表すシーケンスを実行するシナリオS2である。XML記述1230は、『ノードN0→ノードN6→ノードN7』の順に各ノードが表すシーケンスを実行するシナリオS3である。
シナリオ情報1200によれば、検証時に、障害が発生したシーケンスとの類似度が高い類似シーケンスを含むシナリオ(ここでは、シナリオS1)から優先的に実行されることになる。このため、関連障害を早い段階で発見できる可能性が高まり、結果的に検証品質の向上および検証作業にかかる作業時間の短縮化を図ることができる。
(検証支援装置400の検証支援処理手順)
つぎに、検証支援装置400の検証支援処理手順について説明する。図13は、検証支援装置の検証支援処理手順の一例を示すフローチャートである。図13のフローチャートにおいて、まず、入力部501により、検証対象の動作を検証するためのシナリオ群の入力を受け付けたか否かを判断する(ステップS1301)。
ここで、シナリオ群の入力を待って(ステップS1301:No)、入力された場合(ステップS1301:Yes)、出力部504により、障害ノードTgNの指定画面610をディスプレイ408に表示する(ステップS1302)。そして、入力部501により、障害ノードTgNの指定を受け付けたか否かを判断する(ステップS1303)。
ここで、障害ノードTgNの指定を待って(ステップS1303:No)、指定された場合(ステップS1303:Yes)、検出部502により、障害ノードTgNの類似ノードを検出する類似ノード検出処理を実行する(ステップS1304)。なお、指定された障害ノードTgNは、図7に示した類似ノードテーブル700に記憶される。
そして、作成部503により、検証対象において発生している障害に関連する関連障害の発生を検証するためのシナリオを作成するシナリオ作成処理を実行する(ステップS1305)。最後に、出力部504により、作成されたシナリオを障害ノードTgNとの類似度が高い順に出力して(ステップS1306)、本フローチャートによる一連の処理を終了する。
これにより、障害ノードTgNの類似ノードが表すシーケンスの障害、すなわち、障害ノードTgNで発生した障害の関連障害を検証するためのシナリオを自動作成することができる。
<類似ノード検出処理手順>
つぎに、図13に示したステップS1304の類似ノード検出処理の具体的な処理手順について説明する。図14は、類似ノード検出処理の具体的処理手順の一例を示すフローチャートである。
図14において、検出部502により、ノードNiを「i=0」で初期化して(ステップS1401)、検証対象のシナリオ群を表現する構造体に含まれるノード群N0〜Nnの中からノードNiを選択する(ステップS1402)。そして、検出部502により、ノードNiが障害ノードTgNか否かを判断する(ステップS1403)。なお、障害ノードTgNは、図13に示したステップS1302において指定された障害ノードである。
ここで、障害ノードTgNではない場合(ステップS1403:No)、検出部502により、ノードNiと障害ノードTgNが同一のMSCを持つか否かを判断する(ステップS1404)。そして、同一のMSCを持つ場合(ステップS1404:Yes)、検出部502により、類似ノードテーブル700内の障害ノードTgNの第1類似ノードID項目にノードNiを設定する(ステップS1405)。
つぎに、検出部502により、iをインクリメントして(ステップS1406)、「i>n」か否かを判断する(ステップS1407)。ここで、「i≦n」の場合(ステップS1407:No)、ステップS1402に戻る。一方、「i>n」の場合(ステップS1407:Yes)、図13に示したステップS1305に移行する。
また、ステップS1403において、ノードNiが障害ノードTgNの場合(ステップS1403:Yes)、ステップS1406に移行する。
また、ステップS1404において、ノードNiが障害ノードTgNと同一のMSCを持たない場合(ステップS1404:No)、検出部502により、ノードNiがインスタンスTgIを持つか否かを判断する(ステップS1408)。なお、インスタンスTgIは、障害が発生したイベント(メッセージ)の実行主体となるインスタンスである。
ここで、ノードNiがインスタンスTgIを持たない場合(ステップS1408:No)、ステップS1406に移行する。一方、インスタンスTgIを持つ場合(ステップS1408:Yes)、検出部502により、ノードNiのインスタンスTgIのメッセージシーケンスが、障害ノードTgNのインスタンスTgIのメッセージシーケンスTgMSと一致するか否かを判断する(ステップS1409)。
ここで、メッセージシーケンスが一致する場合(ステップS1409:Yes)、検出部502により、類似ノードテーブル700内の障害ノードTgNの第2類似ノードID項目にノードNiを設定する(ステップS1410)。
一方、メッセージシーケンスが不一致の場合(ステップS1409:No)、検出部502により、ノードNiのインスタンスTgIのメッセージと、障害ノードTgNのインスタンスTgIのメッセージTgMとが一致するか否かを判断する(ステップS1411)。
ここで、メッセージが一致する場合(ステップS1411:Yes)、検出部502により、類似ノードテーブル700内の障害ノードTgNの第3類似ノードID項目にノードNiを設定して(ステップS1412)、ステップS1406に移行する。一方、メッセージが不一致の場合(ステップS1411:No)、ステップS1406に移行する。
これにより、障害ノードTgNとの類似度B1〜B3に応じて、3種類の第1、第2および第3の類似ノードを検出することができる。
<シナリオ作成処理手順>
つぎに、図13に示したステップS1305のシナリオ作成処理の具体的な処理手順について説明する。図15は、シナリオ作成処理の具体的処理手順の一例を示すフローチャートである。
図15のフローチャートにおいて、まず、作成部503により、検証対象のシナリオ群を表現する構造体において、各ノードNiの開始ノードN0からの深さdiを算出する(ステップS1501)。そして、作成部503により、類似ノードテーブル700内の障害ノードTgNの第1類似ノードID項目から類似ノードNj(j=0,1,…,n)を選択する(ステップS1502)。
ここで、第1類似ノードID項目から類似ノードNjが選択された場合(ステップS1503:Yes)、作成部503により、構造体において、類似ノードNjから深さdjが小さくなる方向にノード群Np〜Nqを探索する(ステップS1504)。
そして、作成部503により、探索されたノード群Np〜Nqを逆順に並べたノード群Nq〜Npが表す一連のシーケンスをシナリオとして作成する(ステップS1505)。なお、作成されたシナリオは、図11に示したシナリオDB1100に記憶される。この際、第1類似ノードを含むシナリオの類似度は「B1」となり、第2類似ノードを含むシナリオの類似度は「B2」となり、第3類似ノードを含むシナリオの類似度は「B3」となる。
このあと、作成部503により、類似ノードテーブル700から選択されていない未選択の類似ノードNjがあるか否かを判断する(ステップS1506)。ここで、未探索の類似ノードがある場合(ステップS1506:Yes)、ステップS1502に戻る。
また、ステップS1503において、第1類似ノードID項目から類似ノードNjが選択されなかった場合(ステップS1503:No)、作成部503により、類似ノードテーブル700内の障害ノードTgNの第2類似ノードID項目から類似ノードNjを選択する(ステップS1507)。
ここで、第2類似ノードID項目から類似ノードNjが選択された場合(ステップS1508:Yes)、ステップS1504に移行する。一方、第2類似ノードID項目から類似ノードNjが選択されなかった場合(ステップS1508:No)、作成部503により、類似ノードテーブル700内の障害ノードTgNの第3類似ノードID項目から類似ノードNjを選択して(ステップS1509)、ステップS1504に移行する。
また、ステップS1506において、未選択の類似ノードNjがない場合(ステップS1506:No)、図13に示したステップS1306に移行する。
これにより、障害ノードTgNとの類似度B1〜B3が高い順に、各第1、第2、第3類似ノードが表すシーケンスを含むシナリオを作成することができる。
以上説明したように、本実施の形態によれば、検証対象のシナリオ群を表現する構造体の開始ノードN0から障害ノードTgNの類似ノードまでの経路上のノード群が表す一連のシーケンスを含むシナリオを自動作成することができる。これにより、類似ノードが表すシーケンスの障害、すなわち、障害ノードTgNで発生した障害の関連障害を検証するためのシナリオを自動作成することができる。
また、本実施の形態によれば、障害ノードと同一シーケンスを表すノードを第1類似ノードとして検出することができる。また、本実施の形態によれば、障害ノードTgNのインスタンスTgIのメッセージシーケンスTgMSと同一のメッセージシーケンスを持つインスタンスTgIを含むノードNiを第2類似ノードとして検出することができる。また、本実施の形態によれば、障害ノードTgNのインスタンスTgIと同一のインスタンスTgIを含むノードN3を第3類似ノードとして検出することができる。これにより、障害ノードTgNとの類似度(たとえば、類似度B1〜B3)が異なる複数種類(3種類)の類似ノードを検出することができる。
また、本実施の形態によれば、障害ノードTgNとの類似度が高い順に、各第1、第2、第3類似ノードが表すシーケンスを含むシナリオを作成することができる。これにより、障害が発生しているシーケンスとの類似度の高い類似シーケンスを含むシナリオから優先的に実行されることになる。そのため、関連障害を早い段階で発見できる可能性が高まり、結果的に検証品質の向上および検証作業にかかる作業時間の短縮化を図ることができる。また、検証者がシナリオ群の実行順序を判断する必要がないため、検証者の判断ミスを排除するとともに、検証者の負担を軽減することができる。
なお、本実施の形態で説明した検証支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本検証支援プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本検証支援プログラムは、インターネット等のネットワークを介して配布してもよい。
400 検証支援装置
501 入力部
502 検出部
503 作成部
504 出力部
700 類似ノードテーブル
1100 シナリオDB

Claims (6)

  1. コンピュータに、
    検証対象の動作を実現するシーケンスをノードとして階層化することにより、前記検証対象の動作を検証するシナリオ群を表現する構造体の中から、障害が発生したシーケンスを表す障害ノードに類似する類似ノードを検出する検出手順と、
    前記構造体の開始ノードから前記検出手順によって検出された類似ノードに辿り着くまでの経路上のノード群が表す一連のシーケンスを作成する作成手順と、
    前記作成手順によって作成された一連のシーケンスを出力する出力手順と、
    を実行させることを特徴とする検証支援プログラム。
  2. 前記検出手順は、
    前記障害ノードと同一シーケンスを表すノードを前記類似ノードとして検出することを特徴とする請求項1に記載の検証支援プログラム。
  3. 前記検出手順は、
    前記シーケンスの実行主体となる要素群のうち障害が発生した処理の実行主体となる要素と同一の要素を含み、かつ、当該要素が実行するシーケンスの実行順序と同一の実行順序で当該シーケンスを実行する要素を含むノードを前記類似ノードとして検出することを特徴とする請求項1または2に記載の検証支援プログラム。
  4. 前記検出手順は、
    前記シーケンスを実行する要素群のうち、前記障害が発生した処理の実行主体となる要素と同一の要素を含むノードを前記類似ノードとして検出することを特徴とする請求項1〜3のいずれか一つに記載の検証支援プログラム。
  5. 前記作成手順は、
    前記障害ノードと類似する複数の類似ノードが検出された場合、前記障害ノードと前記類似ノードとの類似度が高い順に、前記開始ノードから前記類似ノードに辿り着くまでの経路上のノード群が表す一連のシーケンスを作成することを特徴とする請求項2〜4のいずれか一つに記載の検証支援プログラム。
  6. 検証対象の動作を実現するシーケンスをノードとして階層化することにより、前記検証対象の動作を検証するシナリオ群を表現する構造体の中から、障害が発生したシーケンスを表す障害ノードに類似する類似ノードを検出する検出手段と、
    前記構造体の開始ノードから前記検出手段によって検出された類似ノードに辿り着くまでの経路上のノード群が表す一連のシーケンスを作成する作成手段と、
    前記作成手段によって作成された一連のシーケンスを出力する出力手段と、
    を備えることを特徴とする検証支援装置。
JP2009276767A 2009-12-04 2009-12-04 検証支援プログラム、および検証支援装置 Expired - Fee Related JP4893811B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009276767A JP4893811B2 (ja) 2009-12-04 2009-12-04 検証支援プログラム、および検証支援装置
US12/957,970 US20110138228A1 (en) 2009-12-04 2010-12-01 Verification computer product and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009276767A JP4893811B2 (ja) 2009-12-04 2009-12-04 検証支援プログラム、および検証支援装置

Publications (2)

Publication Number Publication Date
JP2011118757A JP2011118757A (ja) 2011-06-16
JP4893811B2 true JP4893811B2 (ja) 2012-03-07

Family

ID=44083196

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009276767A Expired - Fee Related JP4893811B2 (ja) 2009-12-04 2009-12-04 検証支援プログラム、および検証支援装置

Country Status (2)

Country Link
US (1) US20110138228A1 (ja)
JP (1) JP4893811B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429466B2 (en) * 2010-07-23 2013-04-23 Sap Ag XML-schema-based automated test procedure for enterprise service pairs
JP5966890B2 (ja) * 2012-11-29 2016-08-10 富士通株式会社 制約条件抽出プログラム、制約条件抽出装置および制約条件抽出方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000163116A (ja) * 1998-11-30 2000-06-16 Hitachi Ltd 支援テストケース作成装置及びテストケース作成方法
US6516306B1 (en) * 1999-08-17 2003-02-04 Lucent Technologies Inc. Model checking of message flow diagrams
JP3515727B2 (ja) * 2000-01-28 2004-04-05 Necエレクトロニクス株式会社 論理回路の故障箇所推定システムおよびその方法並びにプログラムを記録した機械読み取り可能な記録媒体
EP1161014A1 (en) * 2000-05-31 2001-12-05 PIRELLI CAVI E SISTEMI S.p.A. Autoprotected optical communication ring network
CA2350735A1 (en) * 2001-03-14 2002-09-14 Ibm Canada Limited-Ibm Canada Limitee A method for providing open access to application profiling data
US20040208547A1 (en) * 2001-12-14 2004-10-21 Boca Photonics Inc. QoS based protection of mesh-based intelligent optical networks
US7512954B2 (en) * 2002-07-29 2009-03-31 Oracle International Corporation Method and mechanism for debugging a series of related events within a computer system
CA2498619A1 (en) * 2002-10-08 2004-04-22 Deutsche Telekom Ag System and method for monitoring time-related connection data detected by a network node
US7275231B2 (en) * 2004-09-15 2007-09-25 Fujitsu Limited High level validation of designs and products
JP2006119922A (ja) * 2004-10-21 2006-05-11 Canon Inc 機能検証システム、制御方法、及びプログラム
JP2007052703A (ja) * 2005-08-19 2007-03-01 Fujitsu Ltd テストシナリオ作成プログラム、テストシナリオ作成装置、テストシナリオ作成方法
US20070204192A1 (en) * 2006-02-27 2007-08-30 Jia-Siang Yeh Method for detecting defects of a chip
US7958407B2 (en) * 2006-06-30 2011-06-07 Spx Corporation Conversion of static diagnostic procedure to dynamic test plan method and apparatus
US20080040611A1 (en) * 2006-08-02 2008-02-14 International Business Machines Corporation Method and apparatus for path concealment in networks and graphs
US8549405B2 (en) * 2006-08-22 2013-10-01 Centurylink Intellectual Property Llc System and method for displaying a graphical representation of a network to identify nodes and node segments on the network that are not operating normally
US8036133B2 (en) * 2007-03-05 2011-10-11 Nokia Corporation Efficient techniques for error detection and authentication in wireless networks
GB2450130B (en) * 2007-06-13 2012-04-18 Advanced Risc Mach Ltd An apparatus and method for performing a sequence of verification tests to verify a design of a data processing system
US7584394B2 (en) * 2007-07-18 2009-09-01 International Business Machines Corporation System and method for pseudo-random test pattern memory allocation for processor design verification and validation
US7916665B2 (en) * 2008-03-18 2011-03-29 Canon Kabushiki Kaisha Method and device for building of a network coding scheme for data transmission, corresponding computer program product and storage means
US8423879B2 (en) * 2008-05-14 2013-04-16 Honeywell International Inc. Method and apparatus for test generation from hybrid diagrams with combined data flow and statechart notation
US7827438B2 (en) * 2008-06-10 2010-11-02 Microsoft Corporation Distributed testing system and techniques

Also Published As

Publication number Publication date
US20110138228A1 (en) 2011-06-09
JP2011118757A (ja) 2011-06-16

Similar Documents

Publication Publication Date Title
CN110928772B (zh) 一种测试方法及装置
JP4395761B2 (ja) プログラムテスト支援装置およびその方法
JP5350428B2 (ja) 自動プログラム生成装置、方法及びコンピュータプログラム
JP2007334627A (ja) サービスベースソフトウェア設計支援方法及びそのための装置
JP2012043160A (ja) データ復元装置、データ復元方法およびデータ復元プログラム
JP5525225B2 (ja) 障害原因解析システム及びプログラム
JP4893811B2 (ja) 検証支援プログラム、および検証支援装置
US10083106B2 (en) Computer aided bug reporting system for GUI applications
US8458110B2 (en) Verification support apparatus, verification support method, and computer product
JP5267327B2 (ja) 設計支援プログラム、設計支援装置、および設計支援方法
JP4716964B2 (ja) タイミングダイアグラム編集プログラム、タイミングダイアグラム編集装置およびタイミングダイアグラム編集方法
JP2013077124A (ja) ソフトウェアテストケース生成装置
CN104199689A (zh) 综合前端系统的安装方法及装置
JP2010003084A (ja) 状態遷移検証装置および状態遷移検証方法
JP5300888B2 (ja) ソフトウェア開発支援プログラム及び装置
JPWO2012049816A1 (ja) モデル検査装置、方法及びプログラム
JP4116660B2 (ja) 検証支援装置、検証支援方法、検証支援プログラムおよび記録媒体
Xiu et al. Diagnosing Conformance between Object-Centric Event Logs and Models
WO2011100915A2 (zh) 信息配置过程中的辅助方法及装置
Moran et al. Fixing bug reporting for mobile and GUI-based applications
JP7106895B2 (ja) ワークフロー試験装置及びワークフロー試験プログラム
US8560986B2 (en) Computer product, apparatus, and method for correcting assertion
JP6603637B2 (ja) ユーザインタフェース接続装置、及びプログラム
JP2011022807A (ja) 情報処理装置及び情報処理方法及びプログラム
JP5003093B2 (ja) ハザード識別支援装置及びプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111116

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150106

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees