JP7664779B2 - 不具合解析支援装置及び不具合解析支援方法 - Google Patents
不具合解析支援装置及び不具合解析支援方法 Download PDFInfo
- Publication number
- JP7664779B2 JP7664779B2 JP2021114875A JP2021114875A JP7664779B2 JP 7664779 B2 JP7664779 B2 JP 7664779B2 JP 2021114875 A JP2021114875 A JP 2021114875A JP 2021114875 A JP2021114875 A JP 2021114875A JP 7664779 B2 JP7664779 B2 JP 7664779B2
- Authority
- JP
- Japan
- Prior art keywords
- defect
- fault
- occurrence
- failure
- path
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3604—Analysis of software for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/079—Root cause analysis, i.e. error or fault diagnosis
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
- G06F11/3624—Debugging of software by performing operations on the source code, e.g. via a compiler
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
- G06F11/3644—Debugging of software by instrumenting at runtime
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Debugging And Monitoring (AREA)
Description
そのため、当該ソフトウェアの開発に際しては、リリース前に不具合を特定し、それを修正するため、テストを実施する。このテストでは、ソフトウェアにおける入力と出力をテストケースとして予め作成し、当該ソフトウェアがテストケースの入力に対して想定している正しい出力を返すか確認することになる。
従来技術によれば、こうした状況の出現を効果的に回避し、不具合解析を効率的なものとすることが期待される。ところが、不具合解析に用いられるログに、多くの不具合に関する情報が含まれているケース、すなわち多くの不具合が同時発生するケースに対処する点に関しては課題が残されていた。
、修正されることになる。その場合、例えば、或る機能に含まれる不具合Aに対処するために分析および修正が実施されたとしても、同機能に含まれる障害Bについては、もう一度分析および修正が必要となり、当該不具合に関して重複する分析や修正が行われてしま
う可能性がある。
また、本発明の不具合解析支援方法は、情報処理装置が、処理対象となるソフトウェアのソースコードを記憶装置で格納し、前記ソースコードにおける関数呼び出し関係に基づき、不具合位置を含む関数であるすべてのターゲット関数を通過する記号実行分析ルートを計算し、前記記号実行分析ルートにおける前記ターゲット関数に不具合条件を統合後、実行順序が最小となる前記記号実行分析ルートの関数から記号実行を行うことで、実行パス及び制約を含む情報を取得する処理を、前記記号実行分析ルートのすべての機能について実行し、前記統合後の不具合位置によって終了する実行パスである不具合発生パスを取得することで、全ての不具合の発生パスを再生成する処理と、前記不具合発生パスの変数の定義情報をノードに設定し、前記ノードに設定された前記変数の使用方法をデータフローとして設定し、前記ノードを、前記不具合発生パスで記述された順序に沿ってエッジで接続することで、不具合発生グラフを生成する処理と、前記不具合発生グラフにおいて、不具合同士の関係性として共有ノード又は共有エッジの有無で互いの依存関係を規定した不具合関係パターンに対応するインスタンスを検索する処理と、前記検索の結果を所定装置に出力する処理を実行する、ことを特徴とする。
以下に本発明の実施形態について図面を用いて詳細に説明する。図1は、本実施形態の不具合解析支援装置100を含むシステムの構成図である。図1に示す不具合解析支援装置100は、1つのプログラムが含む複数の不具合に関して、分析および修正の重複を効果的に回避し、一貫性のある修正を支援可能とするコンピュータである。
る。不具合関係パターン定義133は、端末5から得た不具合関係パターン127をメモリ103に格納したものであって、不具合同士の関係性に関する定義である。
<ハードウェア構成>
また、本実施形態の不具合解析支援装置100のハードウェア構成は、図2に以下の如くとなる。
<フロー例:メインフロー>
以下、本実施形態における不具合解析支援方法の実際手順について図に基づき説明する。以下で説明する不具合解析支援方法に対応する各種動作は、不具合解析支援装置100がメモリ等に読み出して実行するプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
発生グラフ131を生成する(s2)。
<フロー例:記号実行による不具合発生パス再生成>
続いて、上述のメインフローにおける不具合発生パス再生成(s1)を構成する、記号実行による不具合発生パス再生成処理について、図5~図11に基づき説明する。なお、ここでは、不具合発生グラフ131の生成(s2)についても説明する。
ドを追加し(図9参照)、不具合条件を、それらを含むターゲット関数に統合する(s22)。ここで 追加されたコードの位置は、統合不具合位置と称する。
<フロー例:ログ解析による不具合発生パス再生成>
続いて、上述のメインフローにおける不具合発生パス再生成(s1)を構成する、ログ解析による不具合発生パス再生成処理について、図12~図15に基づき説明する。なお、ここでは、不具合発生グラフ131の生成(s2)についても説明する。
るために使用される(c-use= {v})。
<フロー例:インスタンスの検索>
続いて、上述のメインフローにおけるインスタンス検索(s3)の処理について、図16~図20に基づき説明する。
s504)。
ここで図16のフローの説明にもどる。不具合関係パターンインスタンス検索部113は、未処理の不具合ペアを取得する(s51)。
一方、上述の判定の結果、不具合発生パスには共有ノードがない場合(s56:No)、不具合関係パターンインスタンス検索部113は、当該ペアは、独立した関係の不具合関係パターンと特定する(s58)。
みか判定する(s59)。
定された前記変数の使用方法をデータフローとして設定し、前記ノードを、前記発生パスで記述された順序に沿ってエッジで接続することで、前記不具合発生グラフを生成する、としてもよい。
5 端末
10 不具合解析支援システム
100 不具合解析支援装置
101 記憶装置
102 プログラム
103 メモリ
104 演算装置
105 通信装置
110 不具合発生パス再生成部
111 不具合発生グラフ生成部
112 不具合の変数定義抽出部
113 不具合関係パターンインスタンス検索部
114 分析結果表示部
125 ソースコード
126 不具合ログ
127 不具合関係パターン定義
130 不具合発生パス
131 不具合発生グラフ
132 不具合の変数定義
133 不具合関係パターン定義
134 不具合関係パターンインスタンス
Claims (4)
- 処理対象となるソフトウェアのソースコードを格納した記憶装置と、
前記ソースコードにおける関数呼び出し関係に基づき、不具合位置を含む関数であるすべてのターゲット関数を通過する記号実行分析ルートを計算し、前記記号実行分析ルートにおける前記ターゲット関数に不具合条件を統合後、実行順序が最小となる前記記号実行分析ルートの関数から記号実行を行うことで、実行パス及び制約を含む情報を取得する処理を、前記記号実行分析ルートのすべての機能について実行し、前記統合後の不具合位置によって終了する実行パスである不具合発生パスを取得することで、全ての不具合の発生パスを再生成する処理と、前記不具合発生パスの変数の定義情報をノードに設定し、前記ノードに設定された前記変数の使用方法をデータフローとして設定し、前記ノードを、前記不具合発生パスで記述された順序に沿ってエッジで接続することで、不具合発生グラフを生成する処理と、前記不具合発生グラフにおいて、不具合同士の関係性として共有ノード又は共有エッジの有無で互いの依存関係を規定した不具合関係パターンに対応するインスタンスを検索する処理と、前記検索の結果を所定装置に出力する処理を実行する演算装置と、
を含むことを特徴とする不具合解析支援装置。 - 前記演算装置は、
前記インスタンスの検索に際し、
前記不具合ごとに、前記不具合発生グラフから、当該不具合の前記変数の定義、当該変数の定義の説明に使用するグラフ要素、及び不具合状態に現れるすべての変数の使用法、の各情報を抽出する処理と、
未処理の不具合ペアを特定し、当該不具合ペアにおける不具合の前記変数の定義、及び前記グラフ要素をマージしたものを、前記不具合関係パターンと比較し、該当する不具合関係パターンについて判定する処理と、
前記不具合ペアの前記変数の定義及び前記グラフ要素は、共有エッジを含んでいるか判定する処理と、
前記共有エッジに関する判定の結果、前記共有エッジを含んでいない場合、前記不具合ペアの各不具合の発生パスを比較し、当該発生パスに共有ノードが含まれるか判定し、前記共有ノードが含まれない場合、互いに独立した不具合であると特定する処理と、
前記共有エッジに関する判定の結果、前記共有エッジを含んでいる場合、前記不具合ペアの各不具合の間のデータ相関を算定する処理と、
前記共有ノードに関する判定の結果、前記共有ノードが含まれる場合、コントロール依存の不具合関係にあると特定する処理と、
を実行するものである、
ことを特徴とする請求項1に記載の不具合解析支援装置。 - 情報処理装置が、
処理対象となるソフトウェアのソースコードを記憶装置で格納し、
前記ソースコードにおける関数呼び出し関係に基づき、不具合位置を含む関数であるすべてのターゲット関数を通過する記号実行分析ルートを計算し、前記記号実行分析ルートにおける前記ターゲット関数に不具合条件を統合後、実行順序が最小となる前記記号実行分析ルートの関数から記号実行を行うことで、実行パス及び制約を含む情報を取得する処理を、前記記号実行分析ルートのすべての機能について実行し、前記統合後の不具合位置によって終了する実行パスである不具合発生パスを取得することで、全ての不具合の発生パスを再生成する処理と、前記不具合発生パスの変数の定義情報をノードに設定し、前記ノードに設定された前記変数の使用方法をデータフローとして設定し、前記ノードを、前記不具合発生パスで記述された順序に沿ってエッジで接続することで、不具合発生グラフを生成する処理と、前記不具合発生グラフにおいて、不具合同士の関係性として共有ノード又は共有エッジの有無で互いの依存関係を規定した不具合関係パターンに対応するインスタンスを検索する処理と、前記検索の結果を所定装置に出力する処理を実行する、
ことを特徴とする不具合解析支援方法。 - 前記情報処理装置が、
前記インスタンスの検索に際し、
前記不具合ごとに、前記不具合発生グラフから、当該不具合の前記変数の定義、当該変数の定義の説明に使用するグラフ要素、及び不具合状態に現れるすべての変数の使用法、の各情報を抽出する処理と、
未処理の不具合ペアを特定し、当該不具合ペアにおける不具合の前記変数の定義、及び前記グラフ要素をマージしたものを、前記不具合関係パターンと比較し、該当する不具合関係パターンについて判定する処理と、
前記不具合ペアの前記変数の定義及び前記グラフ要素は、共有エッジを含んでいるか判定する処理と、
前記共有エッジに関する判定の結果、前記共有エッジを含んでいない場合、前記不具合ペアの各不具合の発生パスを比較し、当該発生パスに共有ノードが含まれるか判定し、前記共有ノードが含まれない場合、互いに独立した不具合であると特定する処理と、
前記共有エッジに関する判定の結果、前記共有エッジを含んでいる場合、前記不具合ペアの各不具合の間のデータ相関を算定する処理と、
前記共有ノードに関する判定の結果、前記共有ノードが含まれる場合、コントロール依存の不具合関係にあると特定する処理と、
を実行することを特徴とする請求項3に記載の不具合解析支援方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021114875A JP7664779B2 (ja) | 2021-07-12 | 2021-07-12 | 不具合解析支援装置及び不具合解析支援方法 |
| EP22182876.7A EP4120085B1 (en) | 2021-07-12 | 2022-07-04 | Failure analysis support device and failure analysis support method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021114875A JP7664779B2 (ja) | 2021-07-12 | 2021-07-12 | 不具合解析支援装置及び不具合解析支援方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2023011182A JP2023011182A (ja) | 2023-01-24 |
| JP7664779B2 true JP7664779B2 (ja) | 2025-04-18 |
Family
ID=82547637
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021114875A Active JP7664779B2 (ja) | 2021-07-12 | 2021-07-12 | 不具合解析支援装置及び不具合解析支援方法 |
Country Status (2)
| Country | Link |
|---|---|
| EP (1) | EP4120085B1 (ja) |
| JP (1) | JP7664779B2 (ja) |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001249828A (ja) | 1999-12-28 | 2001-09-14 | Toshiba Lsi System Support Kk | 情報処理装置、不具合解析プログラムを格納したコンピュータ読み取り可能な記憶媒体、不具合解析方法、及びアプリケーションプログラム開発支援システム |
| JP2010079447A (ja) | 2008-09-24 | 2010-04-08 | Fujitsu Ltd | バグ検出支援プログラム、類似構文識別情報一覧出力プログラム、バグ検出支援装置およびバグ検出支援方法 |
| JP2011253363A (ja) | 2010-06-02 | 2011-12-15 | Hitachi Ltd | アプリケーションの解析方法、解析システム及び解析プログラム |
| JP2016071774A (ja) | 2014-10-01 | 2016-05-09 | 日本電気株式会社 | 検証支援装置、検証支援方法およびコンピュータプログラム |
| JP2017187999A (ja) | 2016-04-08 | 2017-10-12 | 株式会社日立製作所 | ジョブネット検証装置及びジョブネット検証方法 |
| US20200310949A1 (en) | 2016-07-01 | 2020-10-01 | Hitachi, Ltd. | Control Device |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012128727A (ja) | 2010-12-16 | 2012-07-05 | Toyota Infotechnology Center Co Ltd | ソフトウェアコンポーネントの信頼性評価方法および装置 |
| US8516443B2 (en) * | 2011-05-26 | 2013-08-20 | Oracle International Corporation | Context-sensitive analysis framework using value flows |
| US8893102B2 (en) * | 2011-07-27 | 2014-11-18 | Oracle International Corporation | Method and system for performing backward-driven path-sensitive dataflow analysis |
| US10599852B2 (en) * | 2014-08-15 | 2020-03-24 | Securisea, Inc. | High performance software vulnerabilities detection system and methods |
| CN106294156B (zh) * | 2016-08-11 | 2018-12-07 | 北京邮电大学 | 一种静态代码缺陷检测分析方法及装置 |
| JP7459522B2 (ja) | 2020-01-21 | 2024-04-02 | 沖電気工業株式会社 | 負荷制御装置および画像形成装置 |
-
2021
- 2021-07-12 JP JP2021114875A patent/JP7664779B2/ja active Active
-
2022
- 2022-07-04 EP EP22182876.7A patent/EP4120085B1/en active Active
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001249828A (ja) | 1999-12-28 | 2001-09-14 | Toshiba Lsi System Support Kk | 情報処理装置、不具合解析プログラムを格納したコンピュータ読み取り可能な記憶媒体、不具合解析方法、及びアプリケーションプログラム開発支援システム |
| JP2010079447A (ja) | 2008-09-24 | 2010-04-08 | Fujitsu Ltd | バグ検出支援プログラム、類似構文識別情報一覧出力プログラム、バグ検出支援装置およびバグ検出支援方法 |
| JP2011253363A (ja) | 2010-06-02 | 2011-12-15 | Hitachi Ltd | アプリケーションの解析方法、解析システム及び解析プログラム |
| JP2016071774A (ja) | 2014-10-01 | 2016-05-09 | 日本電気株式会社 | 検証支援装置、検証支援方法およびコンピュータプログラム |
| JP2017187999A (ja) | 2016-04-08 | 2017-10-12 | 株式会社日立製作所 | ジョブネット検証装置及びジョブネット検証方法 |
| US20200310949A1 (en) | 2016-07-01 | 2020-10-01 | Hitachi, Ltd. | Control Device |
Also Published As
| Publication number | Publication date |
|---|---|
| EP4120085A1 (en) | 2023-01-18 |
| EP4120085B1 (en) | 2025-01-22 |
| JP2023011182A (ja) | 2023-01-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7743403B2 (ja) | データフローグラフのコンポーネントのユニットテスト | |
| US20080126867A1 (en) | Method and system for selective regression testing | |
| US20150186251A1 (en) | Control flow error localization | |
| JP2000222244A (ja) | コンピュ―タプログラムの微細でない変異のフィルタリングによる強化された機能テスト | |
| CN111949551A (zh) | 应用程序测试方法、装置、设备及存储介质 | |
| CN111108481A (zh) | 故障分析方法及相关设备 | |
| JP7611927B2 (ja) | 決定論的順序でテストを実行すること | |
| CN120409376A (zh) | 回归测试方法、系统、计算机设备和可读存储介质 | |
| CN115587048A (zh) | 回归测试方法、终端设备及计算机可读存储介质 | |
| JP7190246B2 (ja) | ソフトウェア不具合予測装置 | |
| US11194704B2 (en) | System testing infrastructure using combinatorics | |
| JP7664779B2 (ja) | 不具合解析支援装置及び不具合解析支援方法 | |
| JP6451417B2 (ja) | デバッグ支援装置、デバッグ支援システム、デバッグ支援方法、および、デバッグ支援プログラム | |
| JP7447044B2 (ja) | プログラム分析装置、プログラム分析方法およびトレース処理追加装置 | |
| CN118642717A (zh) | 前端工程代码的清洗方法、设备及存储介质 | |
| CN113297038B (zh) | 监控与数据处理方法、装置、设备及监控系统、数据中心 | |
| CN115114156B (zh) | 流程失效状态的分析方法及其系统、计算机设备 | |
| Trivedi et al. | Modelling and analysing of software defect prevention using ODC | |
| Tomar et al. | Regression Testing Approaches, Tools, and Applications in Various Environments | |
| Vasudevan et al. | Automated low-cost sbst optimization techniques for processor testing | |
| JP5516277B2 (ja) | テストケース関係抽出方法、テストケース関係抽出装置及びテストケース関係抽出プログラム | |
| JP2023042058A (ja) | 情報処理装置及び情報処理方法 | |
| JP7228374B2 (ja) | シミュレーションシステム及びシミュレート方法 | |
| JP7631164B2 (ja) | 不具合解析装置及び不具合解析方法 | |
| JP7760317B2 (ja) | ソフトウェア不具合分析装置及びソフトウェア不具合分析方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240213 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20241211 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20241224 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250129 |
|
| 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: 20250401 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250408 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7664779 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |