JP2007249495A - ソフトウェア検証方法、情報処理装置およびプログラム - Google Patents

ソフトウェア検証方法、情報処理装置およびプログラム Download PDF

Info

Publication number
JP2007249495A
JP2007249495A JP2006070873A JP2006070873A JP2007249495A JP 2007249495 A JP2007249495 A JP 2007249495A JP 2006070873 A JP2006070873 A JP 2006070873A JP 2006070873 A JP2006070873 A JP 2006070873A JP 2007249495 A JP2007249495 A JP 2007249495A
Authority
JP
Japan
Prior art keywords
verification
module
range
scale
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.)
Pending
Application number
JP2006070873A
Other languages
English (en)
Inventor
Kenjiro Ikeda
健次郎 池田
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2006070873A priority Critical patent/JP2007249495A/ja
Publication of JP2007249495A publication Critical patent/JP2007249495A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】ソフトウェアの部分検証を適正に行うための検証範囲を特定する技術を提供する。
【解決手段】情報処理装置は、相互の呼出し関係が規定された複数のモジュールを含むソフトウェアの検証処理が記述された検証シナリオと、検証シナリオにより処理すべき検証規模の上限を表す最大検証規模と、各モジュールの検証規模とを認識した後、ソフトウェアにおける検証の起点モジュールに対し検証シナリオを実行する。情報処理装置は、起点モジュールから呼出され、且つ、起点モジュールおよび自モジュールの検証規模の総和が最大検証規模以下となるモジュール集合を求める。そして、求めたモジュール集合から被呼出し回数が最も多いモジュールを検出し該モジュールおよび起点モジュールを検証範囲として認識する。
【選択図】図2

Description

本発明は、ソフトウェアを検証する技術に関し、特に、ソフトウェアを部分検証するための技術に関する。
従来、開発されたソフトウェアが適正であるか否かを検証するための種々の技術が提案されている。そのひとつに、例えば、後述の特許文献1に記載された技術がある。特許文献1には、ソフトウェアを構成するモジュール群から特定の作業を行うための対象モジュール群を抽出するために、各モジュールを製造する開発拠点に対し、その製造能力に応じたモジュールを分配するという方式が記載されている。また、ソフトウェアを検証する際は、そのソフトウェアに含まれる静的な情報を用いて検証対象が特定される。
特開平5−20037号公報
上記特許文献1に記載の技術のような従来の検証方法において、大規模のソフトウェアの部分検証を行う際は、機能分割されたモジュール構造の設計情報やソースコードでの呼出し関係といった静的な情報により、部分検証の対象範囲が特定される。そのため、検証対象のソフトウェアが修正された場合、あるいは、特定のシナリオに沿って検証を行う場合は、検証対象の範囲が適切ではなくなり、結果として、検証精度が低下するおそれがある。
本発明は、上記課題に鑑みてなされたものであり、その目的は、ソフトウェアの部分検証を適正に行うための検証範囲を特定する技術を提供することにある。
本発明に係るソフトウェア検証方法は、情報処理装置が、相互の呼出し関係が規定された複数のモジュールを含むソフトウェアの検証処理が記述された検証シナリオと該検証シナリオにより処理すべき検証規模の上限を表す最大検証規模と前記各モジュールの検証規模とを認識するステップと、前記ソフトウェアにおける検証の起点モジュールに対し前記検証シナリオを実行し、前記起点モジュールから呼出され且つ前記起点モジュールおよび自モジュールの検証規模の総和が前記最大検証規模以下となるモジュール集合を求めるステップと、前記モジュール集合から被呼出し回数が最も多いモジュールを検出し該モジュールおよび前記起点モジュールを検証範囲として認識するステップとを実行するという方法である。
本発明によれば、検証シナリオに沿って測定したモジュールの呼出し回数を用いて検証範囲を特定することから、任意の検証シナリオに対し適切な検証範囲を提供することができる。また、モジュールの呼出し回数という動的な情報を用いることから、たとえ検証対象のソフトウェア自体が修正されても、適切な検証範囲を特定することができる。このように、ソフトウェアにおける検証の起点モジュールと強く関連するモジュールを、規定の最大検証規模に達するまで検証範囲に追加するよう構成したことで、より高い精度での部分検証が可能となる。
本発明の実施形態について図面を参照して詳細に説明する。図11に、本実施形態の情報処理装置10の機能的な構成を示す。情報処理装置10は、検証対象のソフトウェア100および検証シナリオ200を読み出して認識し、各種設定値の初期化処理を行う初期設定手段11と、部分検証の検証範囲の候補を検出する候補検出手段12と、検出された候補を用いて検証範囲を特定する検証範囲特定手段13とを備える。検証シナリオ200は、別途作成された、いわゆるテストケースや一連のテストデータのようなプログラムである。
図1に、検証対象となるソフトウェア100のモジュール構造を示す。図示のソフトウェア100は、それぞれ所定の処理が記述されたm1〜m12の12個のモジュール1を有し、各モジュール1は、矢印2で示す静的な呼出し関係を持つ。
ここで、各モジュール(m1〜m12)の検証規模をvk(k=1〜12)とし、図中に破線で示すMiをソフトウェア100の部分検証の範囲とし、検証範囲Miに含まれるモジュールの検証規模の総和をViとする。モジュールの検証規模は、ソフトウェア100に対する検証の内容に応じて変化するものであり、例えば、ソースコードの静的解析の場合であれば、ソースコードの行数を検証規模とすることができる。また、状態遷移のデッドロック検査である場合は、状態数及び遷移数をパラメータとする関数により検証規模が決定される。
ソフトウェア100の検証の初期状態では、検証範囲Miとして、検証の起点となるモジュールが設定される。この検証範囲Miに関し、予め作成した検証シナリオの集合Sに沿って、検証範囲外のモジュールに対する呼出し回数ni_kを測定する。そして、検証範囲Miより呼出されるモジュールmkであり、かつ、Mi及び自モジュールの検証規模の総和が最大検証規模VMAXを超えないモジュールmkの集合を追加候補のモジュール集合Mciとして求める。
さらに、追加候補となるモジュールmkが存在する、すなわちMciが空集合でない場合には、モジュール集合Mciの中からni_kが最大となるモジュールmkを求め、それを検証範囲Miに追加する。このモジュール追加による検証範囲の更新を、追加候補のモジュールmkが検出されなくなるまで、すなわちMciが空集合になるまで繰り返す。
図2に示すフローチャートを参照して、起点モジュールの検証範囲を決定するための基本動作を説明する。なお、図示のフローチャートにおいて、ステップST1/ST2が図11に示す初期設定手段11に対応し、ステップST3/ST4が候補検出手段12に対応し、ステップST5/ST6/ST7が検証範囲特定手段13に対応する。
まず、対象のソフトウェアの検証シナリオの集合Sを作成し、それを情報処理装置(10)に認識させる(ステップST1)。検証シナリオSには、各モジュールの検証規模vsと、検証の際の最大検証規模VMAXとが設定されている。また、各設定値の初期化処理を行う。具体的には、初期の検証範囲M1として、ソフトウェアにおける検証の起点となるモジュールmsのみを要素とする集合を設定し、このモジュール集合msの検証規模vsをM1の検証規模V1とし、繰返し回数iを「1」に初期化する(ステップST2)。
上記の初期化後、検証シナリオSにそって、検証範囲Miから検証範囲外のモジュールに対する呼出し回数ni_kを測定する(ステップST3)。測定の結果をもとに、呼出し回数ni_kが「0」より大きく、かつ、Vi+vkが最大検証規模VMAX以下になるモジュールを追加候補のモジュール集合Mciとして求める(ステップST4)。その結果、Mciが空集合ではない場合には(ステップST5:No)、Mciの中から呼出し回数ni_kが最大となるモジュールmkを選び(ステップST6)、検証範囲Miに追加すると共に検証範囲の検証規模を更新する(ステップST7)。
上記ステップST3以降の手順を、検証範囲Miに追加可能なモジュールが存在しなくなるまで、すなわちMciが空集合になるまで繰返し、Mciが空集合となった時点のMiをもって最終的な検証範囲Miとする。
次に、本実施形態の動作について図2のフローチャートに基づく実施例を挙げる。ここでは、図3に示すソフトウェア101が検証対象であるとし、許容される最大検証規模VMAXは「6」、検証の起点となるモジュールはm2とする。また、各モジュール(m1〜m12)の検証規模vkは、図7に示すものであるとする。
情報処理装置(10)は、m2を起点モジュールとして作成された検証のシナリオ集合Sを認識し(図2のステップST1)、繰り返し回数iを初回の「1」とし、検証範囲M1を{m2}とし、検証規模V1を「2」(=v2)とする(ステップST2)。検証規模V1が「2」であることは、図7に示す一覧におけるモジュールm2の値に基づく。
図4に、検証範囲M1に関する検証の様子を模式的に示す。まず、検証シナリオSに沿って、検証範囲M1から検証範囲外のモジュールの呼出し回数n1_kを測定する(ステップST3)。この測定対象となるモジュールは、図4より、起点モジュールm2と直接的な呼出し関係にある3つのモジュールm4、m5及びm10である。これら3つのモジュールから、呼出し回数ni_kが「0」より大きく、かつ、Vi+vkが最大検証規模VMAX以下になるモジュール集合を次のように求める(ステップST4)。
図8に、M1からの呼出し回数に関する測定結果を示す。図示の一覧より、測定対象のモジュールm4、m5及びm10は、検証範囲M1{m2}から呼出された回数が「0」より大きいことがわかる。また、これらの各モジュールの検証規模(図7)をそれぞれ検証範囲M1{m2}の検証規模「2」に加算しても、規定のVMAX「6」を超えない。具体的には、例えばモジュールm4の場合、その検証規模は、図7より「1」であり、この検証規模「1」とM1の検証規模「2」との合計は「3」である。よって、VMAX「6」を超えないと判断する。他のモジュールm5及びm10についても、同様の要領にて判断することができる。
上記判断より、M1に関する測定対象であるモジュールm4、m5及びm10は、すべて条件を満たすことから、図4に示すように、検証範囲M1への追加候補Mc1は{m4,m5,m10}となる。
また、今回の追加候補Mc1は空集合ではないことから(ステップST5:No)、このMc1{m4,m5,m10}の中から、呼出し回数が最大となるものを選ぶ(ステップST6)。ここでは、図8より、呼出し回数が最大値をとるモジュールとしてm5が検出される。そして、新たな検証範囲M2を{m2,m5}とし、新たな検証規模V2を「5」(=「2」+「3」)として更新する(ステップST7)。これを以って、初回の検証範囲M1に関する処理が終了し、続いて、2回目の処理へ移行する。
図5に、繰り返し回数が2回目の検証範囲M2に関する処理を模式的に示す。情報処理装置(10)は、検証範囲M2{m2,m5}について、検証シナリオSに沿った呼出し回数の測定を行う(図2:ステップST3)。今回の測定対象は、図5に示すように、検証範囲M2のモジュールm2から呼出されるモジュールm4及びm10と、同検証範囲M2のモジュールm5から呼出されるモジュールm7とである。
図9に、モジュールm4、m7及びm10に対する呼出し回数の測定結果を示す。図示の一覧より、モジュールm4、m7及びm10は、いずれも呼出し回数が「0」より大きいが、それらの検証規模(図7)のうち、検証範囲M2の検証規模「5」に追加してもVMAX「6」を超えない検証規模のモジュールは、検証規模が「1」のモジュールm4のみである。したがって、図5に示すように、検証範囲M2の追加候補Mc2は{m4}となる(ステップST4)。
上記のようにして形成された追加候補Mc2は、空集合ではないので(ステップST5:No)、このMc2から呼出し回数が最大となるものを選ぶ(ステップST6)。ここでは、追加候補Mc2の要素はモジュールm4のみであるから、このモジュールm4を選ぶ。そして、新たな検証範囲M3を{m2,m5,m4}とすると共に、新たな検証規模V3を「6」(=「2」+「3」+「1」)とし(ステップST7)、3回目の処理へ移行する。
図6に、繰り返し回数が3回目の検証範囲M3に関する処理を模式的に示す。情報処理装置(10)は、検証範囲M3{m2,m5,m4}について、検証シナリオSに沿った呼出し回数の測定を行う。今回の測定対象は、図6に示すように、モジュールm6、m7及びm10である。
図10に、モジュールm6、m7及びm10に対する呼出し回数の測定結果を示す。なお、モジュールm5からm7に対する呼出し回数は、前回(図9)と同様の「4」であるが、同じモジュールm7に対してはモジュールm6からの呼出し回数(「5」)のほうが多いので、図示の一覧からは省略されている。
図10より、測定対象のモジュールm6、m7及びm10の呼出し回数は「0」より大きいが、それらの検証規模のうち、検証範囲M3の検証規模「6」に追加してもVMAX「6」を超えないモジュールは存在しない。従って、追加候補Mc3は空集合となる。このように追加候補が空集合となったとき、情報処理装置(10)は、以降の繰り返し処理を停止し、現時点の検証範囲(M3{m2,m5,m4})を、最終的に特定した検証範囲として認識する。
以上説明したように、本実施形態は、検証シナリオに沿って、検証範囲のモジュールから検証範囲外のモジュールに対する呼出し回数を測定し、測定結果をもとに条件に合うモジュールを検証範囲に加えるよう構成されている。したがって、任意の検証シナリオに対し適切な検証範囲を提供することができる。また、検証対象のソフトウェア自体が修正されても、適切な検証範囲を特定することができる。その理由は、検証範囲外のモジュールの呼出し回数という動的な情報を用いて、検証毎に検証範囲を特定しているためである。
このように、ソフトウェアにおける検証の起点となるモジュールと強く関連するモジュールを、規定の最大検証規模に達するまで検証範囲に追加するよう構成したことで、より高い精度での部分検証が可能となる。
本発明は、例えば、設計モデルやソースコードを用いたソフトウェアの部分的検証に適用できる。また、スタブを用いた結合テストといった用途にも好適である。
本発明の実施形態における検証範囲の概念に関する説明図である。 実施形態の動作手順を示すフローチャートである。 実施形態の一実施例における検証対象のソフトウェアの説明図である。 実施例における初回の処理に関する説明図である。 実施例における2回目の処理に関する説明図である。 実施例における3回目の処理に関する説明図である。 実施例における各モジュールの検証規模に関する説明図である。 実施例における初回の測定結果に関する説明図である。 実施例における2回目の測定結果に関する説明図である。 実施例における3回目の測定結果に関する説明図である。 実施形態の情報処理装置の機能構成を示すブロック図である。
符号の説明
1 モジュール(m1〜m12)
2 呼出し関係
100 検証対象ソフトウェア
200 検証シナリオ
11 初期設定手段
12 候補検出手段
13 検証範囲特定手段

Claims (7)

  1. 情報処理装置が、
    相互の呼出し関係が規定された複数のモジュールを含むソフトウェアの検証処理が記述された検証シナリオと該検証シナリオにより処理すべき検証規模の上限を表す最大検証規模と前記各モジュールの検証規模とを認識するステップと、
    前記ソフトウェアにおける検証の起点モジュールに対し前記検証シナリオを実行し、前記起点モジュールから呼出され且つ前記起点モジュールおよび自モジュールの検証規模の総和が前記最大検証規模以下となるモジュール集合を求めるステップと、
    前記モジュール集合から被呼出し回数が最も多いモジュールを検出し該モジュールおよび前記起点モジュールを検証範囲として認識するステップとを実行することを特徴とするソフトウェア検証方法。
  2. 前記情報処理装置が、
    前記起点モジュールの検証範囲に対し前記検証シナリオを実行し、前記検証範囲から呼出され且つ前記検証範囲および自モジュールの検証規模の総和が前記最大検証規模以下となるモジュール集合を求めるステップと、
    前記モジュール集合から被呼出し回数が最も多いモジュールを検出し該モジュールを前記検証範囲に付加して該検証範囲を更新するステップとを実行することを特徴とする請求項1記載のソフトウェア検証方法。
  3. 前記情報処理装置が、
    前記検証範囲に対する前記検証シナリオの実行により求められたモジュール集合が空集合であることを認識したとき前記検証シナリオの新たな実行を停止することを特徴とする請求項2記載のソフトウェア検証方法。
  4. 相互の呼出し関係が規定された複数のモジュールを含むソフトウェアの検証処理が記述された検証シナリオと該検証シナリオにより処理すべき検証規模の上限を表す最大検証規模と前記各モジュールの検証規模とを認識する手段と、
    前記ソフトウェアにおける検証の起点モジュールに対し前記検証シナリオを実行し、前記起点モジュールから呼出され且つ前記起点モジュールおよび自モジュールの検証規模の総和が前記最大検証規模以下となるモジュール集合を求める手段と、
    前記モジュール集合から被呼出し回数が最も多いモジュールを検出し該モジュールおよび前記起点モジュールを検証範囲として認識する手段とを備えることを特徴とする情報処理装置。
  5. 前記起点モジュールの検証範囲に対し前記検証シナリオを実行し、前記検証範囲から呼出され且つ前記検証範囲および自モジュールの検証規模の総和が前記最大検証規模以下となるモジュール集合を求め、前記モジュール集合から被呼出し回数が最も多いモジュールを検出し該モジュールを前記検証範囲に付加して該検証範囲を更新することを特徴とする請求項4記載の情報処理装置。
  6. 前記起点モジュールの検証範囲に対する前記検証シナリオの実行により求められたモジュール集合が空集合であることを認識したとき前記検証シナリオの新たな実行を停止することを特徴とする請求項5記載の情報処理装置。
  7. コンピュータを請求項4乃至6のいずれか1項に記載の情報処理装置として機能させることを特徴とするプログラム。
JP2006070873A 2006-03-15 2006-03-15 ソフトウェア検証方法、情報処理装置およびプログラム Pending JP2007249495A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006070873A JP2007249495A (ja) 2006-03-15 2006-03-15 ソフトウェア検証方法、情報処理装置およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006070873A JP2007249495A (ja) 2006-03-15 2006-03-15 ソフトウェア検証方法、情報処理装置およびプログラム

Publications (1)

Publication Number Publication Date
JP2007249495A true JP2007249495A (ja) 2007-09-27

Family

ID=38593731

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006070873A Pending JP2007249495A (ja) 2006-03-15 2006-03-15 ソフトウェア検証方法、情報処理装置およびプログラム

Country Status (1)

Country Link
JP (1) JP2007249495A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012056569A1 (ja) * 2010-10-29 2012-05-03 株式会社日立製作所 性能測定方法、性能測定装置、及び、性能測定プログラム
US9760470B2 (en) 2013-05-15 2017-09-12 Mitsubishi Electric Corporation Device, method, and program analysis of new source code to be added to execution program to check for bug

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012056569A1 (ja) * 2010-10-29 2012-05-03 株式会社日立製作所 性能測定方法、性能測定装置、及び、性能測定プログラム
US9760470B2 (en) 2013-05-15 2017-09-12 Mitsubishi Electric Corporation Device, method, and program analysis of new source code to be added to execution program to check for bug

Similar Documents

Publication Publication Date Title
US20100180263A1 (en) Apparatus and method for detecting software error
WO2020237508A1 (zh) 一种断言验证代码绑定方法及装置
CN110134598B (zh) 一种批量处理方法、装置及系统
CN111552370B (zh) 振动信号的校准方法、存储介质及电子设备
US11501037B2 (en) Microstructures using generative adversarial networks
CN113342671B (zh) 对运算模块进行验证的方法、装置、电子设备和介质
JP2007249495A (ja) ソフトウェア検証方法、情報処理装置およびプログラム
CN113485697A (zh) 一种人工智能框架下的模型建设运营服务方法及系统
CN112417463A (zh) 软件漏洞预测方法、装置、计算机设备及存储介质
US8627273B2 (en) Model checking of liveness property in a phase abstracted model
US11036980B2 (en) Information processing method and information processing system
CN111950517A (zh) 一种目标检测方法、模型训练方法,电子设备及存储介质
US10372849B2 (en) Performing and communicating sheet metal simulations employing a combination of factors
JPWO2018154657A1 (ja) 等価性検証装置および等価性検証プログラム
JP2018112995A (ja) 迂回配線チェックプログラム、迂回配線チェック方法、および情報処理装置
US20190236354A1 (en) Information processing method and information processing system
US7650579B2 (en) Model correspondence method and device
CN112307589A (zh) 单位工况创建方法、装置、电子设备及存储介质
CN111080694A (zh) 定位模型的训练和定位方法、装置、设备以及存储介质
KR101832583B1 (ko) 전력 상태 커버리지 메트릭 및 이의 추정 방법
CN115510782B (zh) 定位验证错误的方法、电子设备和存储介质
CN112597717B (zh) Ip核验证方法、装置及电子设备
TWI722627B (zh) 測試方法及測試系統
US8521502B2 (en) Passing non-architected registers via a callback/advance mechanism in a simulator environment
CN110750817B (zh) 连接件放置方法、相邻关系确定方法、装置、设备和介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071112

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080603

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100809

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101004

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20101005

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20101005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110208

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110817