JPH0528010A - ソフトウエアバグ原因推論方法及びエキスパートシス テム - Google Patents

ソフトウエアバグ原因推論方法及びエキスパートシス テム

Info

Publication number
JPH0528010A
JPH0528010A JP3204925A JP20492591A JPH0528010A JP H0528010 A JPH0528010 A JP H0528010A JP 3204925 A JP3204925 A JP 3204925A JP 20492591 A JP20492591 A JP 20492591A JP H0528010 A JPH0528010 A JP H0528010A
Authority
JP
Japan
Prior art keywords
bug
cause
knowledge
inference
information
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.)
Granted
Application number
JP3204925A
Other languages
English (en)
Other versions
JP2725490B2 (ja
Inventor
Yukihiko Kumakura
幸彦 熊倉
Koji Ando
浩司 安藤
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.)
Hitachi Engineering Co Ltd
Hitachi Ltd
Original Assignee
Hitachi Engineering Co Ltd
Hitachi 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 Hitachi Engineering Co Ltd, Hitachi Ltd filed Critical Hitachi Engineering Co Ltd
Priority to JP3204925A priority Critical patent/JP2725490B2/ja
Publication of JPH0528010A publication Critical patent/JPH0528010A/ja
Application granted granted Critical
Publication of JP2725490B2 publication Critical patent/JP2725490B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】 ソフトウエアバグの原因究明が不可の時にそ
のバグ情報を元に新しい知識を自動的に作成し知識ベー
スに追加する機能をもたせる。 【構成】 発生したバグの情報を入力するマンマシン部
2、原因を推論する推論エンジン部3、推論で使用する
知識ベース4、推論不可の時に一時的にバグの情報を格
納しておく中間知識ファイル部9、そのファイルを作成
する中間知識ファイル作成部8、判明したバグ原因を入
力して自動的に新しい知識を作成し知識ベース4に追加
する知識ベース自動追加処理部7より構成される。 【効果】 推論不可となった場合でも、原因判明時に新
しい知識が知識ベースに追加されるから、知識の充実が
容易に行える。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は計算機システムのソフト
ウエア開発時及び保守時に発生したソフトウエアバグの
原因を究明するためのソフトウエアバグ原因推論方法及
びエキスパートシステムに関する。
【0002】
【従来の技術】ソフトウエアの開発及び保守時にはバグ
の原因を明らかにしてプログラムの修正を行う作業が不
可欠であり、このためのエキスパートシステムが数多く
開発されている。このようなエキスパートシステムに
は、例えば特開昭63ー41954号に開示されている
ように、バグ発生時のプログラム状態を調べ、その状態
に適合する原因が、予め種々の状態と原因とを対応付け
て作成されたデータベースにあるかを調べて推論を行っ
ていた。この場合適合する状態が無いときは推論不可能
とされる。ここで”適合”と言うのは、バグを示す状態
が複数の要素からなり、これら全てについて適合すこと
としている。
【0003】
【発明が解決しようとする課題】しかし要素の一部が若
干異なっていても、それを適合しているとして推論した
結果には満足できる場合が多く存在する。そこで、出願
人は先にこのような点を考慮した出願を行った(特願平
2ー57948号。)特願平2ー57948号に開示さ
れたシステムでは、バグ状態の複数の要素を必要条件で
ある要素と十分条件である要素に分け、十分条件である
要素の適合範囲を広げることによりバグ原因推論の可能
性を拡大している。しかし、適合条件を変更しても適合
するバグ原因が無い場合は、推論失敗とし、入力された
バグ状態情報は捨てられていた。従って入力された、即
ち発生したバグ情報は捨てられ、これを新しい知識とし
て利用するという点については考慮されていなかった。
【0004】本発明の目的は、推論失敗時のバグの状態
情報を有効に活用してシステムの推論能力を向上させる
ことのできる、ソフトウエアバグ原因推論方法及びエキ
スパートシステムを提供するにある。
【0005】
【課題を解決するための手段】上記の目的は、ソフトウ
エアバグ発生時の状態情報を入力するためのマンマシン
部と、バグ原因を推論するための情報を格納した知識ベ
ース部と、該知識ベース部を参照して上記マンマシン部
より入力された状態情報に適合するバグ原因を推論する
推論エンジン部とを備えたソフトウエアバグ原因推論エ
キスパートシステムに於て、上記推論エンジン部で適合
するバグ原因を推論できなかったときに上記マンマシン
部より入力されたその時の状態情報を編集して中間知識
ファイルを作成するための中間知識ファイル作成部と、
上記中間中間知識ファイルを格納するための中間知識フ
ァイル部と、バグ原因が判明したときに上記中間知識フ
ァイル部の情報とその時に上記マンマシン部より入力さ
れたバグの情報とから新しい知識を作成し、上記知識ベ
ースに自動的に追加する知識ベース自動追加処理部とを
設けることにより達成される。
【0006】
【作用】マンマシン部で入力されたバグの状態情報に適
合するバグ原因を推論エンジン部が推論できなかったと
き、中間知識ファイル作成部がマンマシン部よりバグの
状態情報を取り込み、中間知識ファイル部の情報を作成
し、同ファイル部へ格納する。そして後でバグ原因が判
明したとき、マンマシン部を介してバグ原因を入力した
知識ベース自動追加処理部が、中間知識ファイル部の情
報と共に新しい知識を作成し、知識ベース部に貯えるこ
とにより、後の推論で使用可能となる。
【0007】
【実施例】以下、本発明を実施例により詳細に説明す
る。図1は本発明の装置の一実施例を示すもので、バグ
の状態情報を入力するマンマシン部2、バグ原因を推論
するための知識を格納しておくための知識ベース部4、
知識ベース部4をもとにマンマシン部2で入力されたバ
グの状態情報に適合するバグ原因を推論する推論エンジ
ン部3、知識ベース4の適合条件を変更する適合条件変
更部5、適合条件変更のための知識を格納したプログラ
ム構成情報部6、推論エンジン部3で適合するバグ原因
が推論できなかったとき、マンマシン部2で入力された
バグの状態情報から中間知識ファイル部9の情報を作成
する中間知識ファイル作成部8、及びバグ原因が判明し
たときマンマシン部2を介して入力されたバグ原因と中
間知識ファイル部9の情報を元に新しい知識を作成し、
知識ベース部4に格納する知識ベース自動追加処理部7
により構成されている。
【0008】図2は本実施例の知識ベース部4のフレー
ム内容を示す。以下では、バグ原因を推論するソフトウ
エアはプラント制御用計算機システムのものであるとす
る。フレームは、類似した計算機システムで過去に発生
したソフトウエアバグ情報を知識ベース化したものであ
り、発生したバグ1件ごとに、バグ発生時の状態情報を
次の6種類の要素に分析したものである。 1.バグの現象が発生した場所、 2.バグ発生のタイミング1、 3.バグ発生のタイミング2(タイミング1を補足する
要素)、 4.バグ発生箇所1、 5.バグ発生箇所2(箇所1の詳細要素)、 6.バグが発生した状態。 例えばバグNo.1は「T/Wに日替り時自動印字した
日報の印字項目の中で電力量の値が誤りであった」とい
うことであり、その時のバグ原因は「日報計算処理プロ
グラム不良」と言うことを示している。
【0009】図3は本実施例の全体の動作を示すフロー
チャートで、ソフトウエア開発中や保守時にバグが発生
した場合、システムを起動するとまず始めにステップ1
0でその発生したバグの状態情報の1つである「バグ発
生箇所」に関する情報がマンマシン部2から入力され
る。これは図2に示した知識ベース部4のフレームが参
照され、フレーム内の「場所」に格納されている要素の
中から選択するという形で入力される。次にステップ2
0で、「バグが発生したタイミング1」が入力される。
ここでも前回のステップ10と同様にフレーム内の「タ
イミング1」より選択されるが、ステップ10の「場
所」に対応する「タイミング1」だけが選択可能となっ
ている。例えば、図2の例では「場所」で「TXW」が
選択された場合、「タイミング1」では「自動印字」と
「出力要求時」の2種類から選択されることになる。以
下、ステップ30から60もステップ10と同様に図2
のフレームを参照し、選択する形で入力される。このよ
うにしてバグが発生したときの状態情報の要素がすべて
入力されたならば、次にステップ70では、推論エンジ
ン部3が、各要素の適合条件を示した知識ベース部4を
参照し、要素適合条件ルールにより、バグ原因の推論を
行う。適合条件を図4に示す。適合条件は各要素毎にあ
り、ステップ10から60で入力されたバグの状態情報
の各要素と、知識ベース部4のフレーム内全てのバグ情
報知識の要素を比較し、一致している要素を探す。そし
て適合条件No.1から6まですべて満足したバグ情報
があった場合、ステップ80で要素がすべて適合したバ
グ情報と判定し、ステップ90でその適合した情報に対
応するバグ原因を、知識ベース部4のフレーム内の「バ
グ原因」を参照し、表示する。
【0010】ところで、従来の特開昭63ー41954
号に開示されたシステムでは、ステップ80で適合する
バグ情報無しと判定すると、推論失敗を表示してそのま
ま終了していたが、特願平2ー57948号に開示され
たシステムでは、適合情報を変更してさらに推論を続け
る。即ちステップ80で、要素がすべて適合したバグ情
報がフレーム内のバグ情報知識になしと判定した場合、
ステップ100へ進む。この場合、例えばステップ10
から60でバグ状態情報の要素として「T/W」、「自
動印字」、「日替り」、「日報」、「周波数」、「値が
誤り」と入力し、かつ図2に示す知識しか知識ベース部
4に存在しないとしたときは、ステップ80で要素がす
べて適合するバグ情報はなしとなるが、このとき入力さ
れた要素とフレーム内のバグNo.1の要素では、適合
していないものは「箇所2」のみである。日報の自動印
字で「電力量」と「周波数」を処理しているプログラム
はすべて同一であることを考えると、適合条件No.5
を削除して推論を実施し、バグ原因は「日報計算処理プ
ログラム不良」と表示しても十分バグ原因究明には役立
つことが分かる。このように削除しても推論が行えるよ
うな条件は、図5に示すように、機能名称毎に削除する
適合条件の要素名をプログラム構成情報部6に予め格納
しておく。この例では2つまで削除可能な適合条件が指
定されている。そこでまずステップ100では、入力さ
れたバグ状態情報の要素「箇所1」と「タイミング1」
とにより、プログラム構成情報部6の内容を元に機能名
称を決定する。前回の例では、それぞれ「日報」、「自
動印字」であるので、機能名称はNo.1の「日報自動
印字」となる。つぎにステップ110で削除順位1の適
合条件を削除する。例では「日報自動印字」で一番目に
削除する適合条件の要素名は「箇所2」であるので、適
合条件No.5を削除することになる。以上の削除処理
は適合条件変更部5により行われる。そしてステップ1
20で再度推論を行う。今の例では適合条件をすべて満
足しているからステップ130からステップ90へ移
り、バグ原因「日報計算処理プログラム不良」を表示す
る。またステップ130でもすべて適合したバグ情報な
しと判定されたときは、ステップ140で削除順位2の
適合条件を削除する。そしてステップ150で推論し、
ステップ160ですべて適合したバグ情報が有りと判定
すれば、上記のようにステップ90でバグ原因を表示す
る。以上のように適合条件を変更することでバグ原因の
推論をよりよく行える。
【0011】しかし、ステップ160でもなお適合条件
を満足するバグ原因を見いだせなかったときは、従来は
入力されたバグ状態情報はそのまま捨てられ、推論不可
能を表示して(ステップ170)終わっていた。本発明
では、これらの状態情報を一時的に保存し、バグ原因が
判明した時点にそのバグ原因を入力してやることによ
り、新しい知識を作成して知識ベースに貯え、後の推論
で使用可能とするものである。そのためにステップ16
0で適合条件なしと判定されたときは、推論失敗の表示
(ステップ170)に続いてステップ180で中間知識
ファイル作成部8が入力されたバグの状態情報から図6
に示すようなデータを作成し、中間知識ファイル部9に
一時的に保存しておく。中間知識ファイル部9の構成
は、先頭に保存されているバグの状態情報のケース数が
あり、それ以降各状態情報が各ケース毎に保存されてい
る。
【0012】次に、バグ原因が判明したとき、バグ原因
を入力し新しい知識が知識ベース自動追加処理部7によ
り作成される。そのフローチャートは図7に示されてお
り、バグ原因が判明したとき、まずステップ200で中
間知識ファイル部9の情報を表示する。図8に表示フォ
ーマットを示す。表示内容は情報ケース数、各ケース毎
の状態情報である。そこで、今回判明したバグ原因に対
応するケースNoをステップ210で入力し、併せてス
テップ220でバグ原因を入力する。そしてステップ2
30で入力されたバグ原因と対応するケースNoの状態
情報を組み合わせて図2に示す知識ベース部4の最終バ
グNoの次のケースに新しい知識を格納する。例ではバ
グNo9に格納される。以上のようにして、従来は推論
不可能のとき捨てていたバグの状態情報を元に新しい知
識を自動的に作成でき、後の推論で使用可能となる。
【0013】なお、以上の実施例では、最初に推論失敗
となったとき適合条件変更と再推論を行うものとした
が、最初の推論失敗後にすぐに推論失敗を表示して、バ
グ状態の中間知識ファイル部9への登録を行うようにす
ることもできる。
【0014】
【発明の効果】本発明にょれば、推論不可能となった場
合、そのバグ原因の状態情報を一時的に保存しておき、
バグ原因が判明した時点にバグ原因を入力することによ
り、自動的に新しい知識を作成できるから、知識ベース
が次第に充実し、より多くのバグ原因の推論が可能とな
るという効果がある。
【図面の簡単な説明】
【図1】本発明の装置の一実施例を示すブロック図であ
る。
【図2】知識ベースの例を示す図である。
【図3】図1の実施例の推論動作を示すフローチャート
である。
【図4】適合条件の例を示す図である。
【図5】プログラム構成情報部の例を示す図である。
【図6】中間知識ファイル部の例を示す図である。
【図7】知識ベース自動追加処理部の処理を示すフロー
チャートである。
【図8】中間知識情報ファイルの表示例である。
【符号の説明】
2 マンマシン部 3 推論エンジン部 4 知識ベース部 5 適合条件変更部 6 プログラム構成情報部 7 知識ベース自動追加処理部 8 中間知識ファイル作成部 9 中間知識ファイル部

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 ソフトウエアバグ発生時の状態情報を入
    力するためのマンマシン部と、バグ原因を推論するため
    の情報を格納した知識ベース部と、該知識ベース部を参
    照して上記マンマシン部より入力された状態情報に適合
    するバグ原因を推論する推論エンジン部とを備えたソフ
    トウエアバグ原因推論エキスパートシステムに於て、上
    記推論エンジン部で適合するバグ原因を推論できなかっ
    たときに上記マンマシン部より入力されたその時の状態
    情報を編集して中間知識ファイルを作成しバグ原因が判
    明したときに上記中間知識ファイル部の情報とその時に
    上記マンマシン部より入力されたバグの情報とから新し
    い知識を作成し、上記知識ベース部に自動的に追加する
    ことを特徴とするソフトウエアバグ原因推論方法。
  2. 【請求項2】 ソフトウエアバグ発生時の状態情報を入
    力するためのマンマシン部と、バグ原因を推論するため
    の情報を格納した知識ベース部と、該知識ベース部を参
    照して上記マンマシン部より入力された状態情報に適合
    するバグ原因を推論する推論エンジン部とを備えたソフ
    トウエアバグ原因推論エキスパートシステムに於て、上
    記推論エンジン部で適合するバグ原因を推論できなかっ
    たときに上記マンマシン部より入力されたその時の状態
    情報を編集して中間知識ファイルを作成するための中間
    知識ファイル作成部と、上記中間知識ファイルを格納す
    るための中間知識ファイルハ部と、バグ原因が判明した
    ときに上記中間知識ファイル部の情報とその時に上記マ
    ンマシン部より入力されたバグの情報とから新しい知識
    を作成し、上記知識ベースに自動的に追加する知識ベー
    ス部自動追加処理部とを設けたことを特徴とするソフト
    ウエアバグ原因推論エキスパートシステム。
  3. 【請求項3】 前記推論エンジン部による推論ができな
    かったときにその時のバグの状態情報に応じて前記知識
    ベース内の状態情報に関する条件を変更するための条件
    変更部と、該変更部で用いるための情報を格納したプロ
    グラム構成情報部とを付加し、上記推論エンジン部によ
    り推論できなかったときには上記条件変更部による知識
    ベースの変更を行ったのち上記推論エンジン部による推
    論を行うという処理を所定の回数繰り返し、該繰り返し
    の間にも推論ができなかったときは前記中間知識ファイ
    ル作成部による中間知識ファイルの作成を行うことを特
    徴とする請求項2記載のソフトウエアバグ原因推論エキ
    スパートシステム。
JP3204925A 1991-07-19 1991-07-19 ソフトウエアバグ原因推論エキスパートシステム Expired - Lifetime JP2725490B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3204925A JP2725490B2 (ja) 1991-07-19 1991-07-19 ソフトウエアバグ原因推論エキスパートシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3204925A JP2725490B2 (ja) 1991-07-19 1991-07-19 ソフトウエアバグ原因推論エキスパートシステム

Publications (2)

Publication Number Publication Date
JPH0528010A true JPH0528010A (ja) 1993-02-05
JP2725490B2 JP2725490B2 (ja) 1998-03-11

Family

ID=16498637

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3204925A Expired - Lifetime JP2725490B2 (ja) 1991-07-19 1991-07-19 ソフトウエアバグ原因推論エキスパートシステム

Country Status (1)

Country Link
JP (1) JP2725490B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11175369A (ja) * 1997-12-10 1999-07-02 Toshiba Corp プログラム開発支援装置、プログラム開発支援方法及びプログラム開発支援プログラムを記録した媒体
WO2017068803A1 (ja) * 2015-10-21 2017-04-27 株式会社ビジネス・プログレス イベント管理システム
JP2019197393A (ja) * 2018-05-10 2019-11-14 株式会社エクサ 欠陥対策支援システム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03150643A (ja) * 1989-11-08 1991-06-27 Hitachi Ltd 情報処理システムの障害監視装置と制御方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03150643A (ja) * 1989-11-08 1991-06-27 Hitachi Ltd 情報処理システムの障害監視装置と制御方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11175369A (ja) * 1997-12-10 1999-07-02 Toshiba Corp プログラム開発支援装置、プログラム開発支援方法及びプログラム開発支援プログラムを記録した媒体
WO2017068803A1 (ja) * 2015-10-21 2017-04-27 株式会社ビジネス・プログレス イベント管理システム
JP2019197393A (ja) * 2018-05-10 2019-11-14 株式会社エクサ 欠陥対策支援システム

Also Published As

Publication number Publication date
JP2725490B2 (ja) 1998-03-11

Similar Documents

Publication Publication Date Title
US6775827B1 (en) Real-time program audit software
JP2797698B2 (ja) ソフトウェア再利用支援方法
JPH0869380A (ja) ソースプログラムチェック装置
JPH0528010A (ja) ソフトウエアバグ原因推論方法及びエキスパートシス テム
JP3206096B2 (ja) 入力データ処理装置
JPH09185500A (ja) ソースプログラムの自動修正装置および自動修正方法
JPH05120001A (ja) 作業計画作成方式
JPH05265740A (ja) プログラム編集方法
AU778165B2 (en) Real-time program audit software
JPH0667871A (ja) プログラム自動更新方式
JPH05173844A (ja) コーディングミス修正方式
JP3207247B2 (ja) 知識・事例ベース構築装置
JP2921492B2 (ja) ソフトウエア製品ファイル正誤チェック方式
JPH1049358A (ja) 改造プログラムの自動生成装置及び方法
JPH03260740A (ja) ソフトウエアバグ原因推論エキスパートシステム
JP2621818B2 (ja) 知識ベース検証装置
JPH06242933A (ja) プログラムドキュメント保守装置
JP2655549B2 (ja) テキストの世代管理処理装置
JPH10111803A (ja) 論理式の対話的証明構築装置
JPH07129381A (ja) プログラムドキュメント作成装置
JP3630243B2 (ja) プリント板設計チェック処理装置
JPH06309390A (ja) 設計データの改廃履歴管理方法
JPH06309391A (ja) 図面作成時の図面情報チェック方法
JPH03141428A (ja) 帳票出力用cobolコピー文自動生成方式
JPH04245335A (ja) 知識表現方式