JP2022178544A - プログラム修正装置、プログラム修正方法、及びプログラム修正プログラム - Google Patents
プログラム修正装置、プログラム修正方法、及びプログラム修正プログラム Download PDFInfo
- Publication number
- JP2022178544A JP2022178544A JP2021085423A JP2021085423A JP2022178544A JP 2022178544 A JP2022178544 A JP 2022178544A JP 2021085423 A JP2021085423 A JP 2021085423A JP 2021085423 A JP2021085423 A JP 2021085423A JP 2022178544 A JP2022178544 A JP 2022178544A
- Authority
- JP
- Japan
- Prior art keywords
- program
- component
- correction
- information
- test
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【解決手段】プログラム修正装置1は、検証対象プログラムの各構成要素の情報と、各構成要素を検証する各テストプログラムの情報とを対応づけた情報である構成要素情報を記憶する情報記憶部260と、各テストプログラムを実行することにより検証対象プログラムの不具合箇所を推定する不具合箇所推定部220と、推定した各不具合箇所に係る、検証対象プログラムの各構成要素を構成要素情報により特定し、特定した各構成要素間の関係に基づき、各構成要素の修正順位を決定する実行優先度決定部240と、決定した修正順位に従って、検証対象プログラムの各構成要素を、各構成要素に対応した修正プログラムにより修正する自動修正実行制御部250と、を備える。
【選択図】図1
Description
要素情報により特定し、特定した各構成要素間の関係に基づき、前記各構成要素の修正順位を決定する実行優先度決定部と、前記決定した修正順位に従って、前記検証対象プログラムの各構成要素を、当該各構成要素に対応した修正プログラムにより修正する自動修正実行制御部と、を備える、プログラム修正装置、とする。
本実施形態のプログラム修正装置1は、不具合(バグ)を含む可能性のあるプログラム
(例えば、所定言語で記述されたソースコード。以下、検証対象プログラムという。)を修正する情報処理装置である。
以下、実施例1に係るプログラム修正装置1について説明する。
図2は、ソースファイル情報261の一例を示す図である。ソースファイル情報261は、1又は複数のソースファイル320(検証対象プログラム)の情報を含む。各ソースファイル320には、その名称及び記憶場所310(ファイル名及びフォルダ等)が対応づけられて記憶されている。
図3は、テストプログラム情報262の一例を示す図である。テストプログラム情報262は、1又は複数のテストファイル420(以下、テストプログラム又はテストケース群という)の集合であるテストクラスの情報である。各テストファイル420には、その名称及び記憶場所410(ファイル名及びフォルダ等)が対応づけて記憶されている。
た期待結果とが一致するか否かを判定する判定部423とを含む。
象プログラムに適用した場合(実行した場合)の有効性(修正成功又は修正失敗)を検証する。パッチ検証部1020は、パッチ候補のうち有効性のあるパッチ候補をパッチ案として特定する。
10と、RAM(Random Access Memory)、ROM(Read Only Memory)等の主記憶装置120と、HDD(Hard Disk Drive)、SSD(Solid State Drive)等の補助記憶装置130と、キーボード、マウス、タッチパネル等の入力装置140と、モニタ(ディスプレイ)等の出力装置150と、他の情報処理装置とデータ通信を行う、無線ネットワークインターフェース又はネットワークインターフェースカード等の通信装置160とを備える。
次に、プログラム修正装置1が行う処理について説明する。
ラムにより実行された検証対象プログラム内の各処理の実行経路を特定することで、検証対象プログラム内の各処理の疑惑値を算出し、不具合箇所を特定する。
ここで、テスト結果情報263及び不具合特定情報264の例を説明する。
図6は、テスト結果情報263の一例を示す図である。テスト結果情報263は、各テストプログラム(テストケース群)のテスト番号2631、テスト番号2631に係るテストプログラムにより不具合の有無が検証される構成要素である対応要素2632、テスト番号2631に係るテストプログラムによるテスト結果2633、及び、テスト番号2631に係るテストプログラムの実行時間であるテスト実行時間2634の各データ項目を有する。なお、対応要素2632は予め、例えば、検証対象プログラムに関する所定の設計情報に基づき設定される。
図7は、不具合特定情報264の一例を示す図である。不具合特定情報264は、不具合箇所ごとに割り当てられた番号2641、及び、その不具合箇所を検出したテストプログラムである、1又は複数のテストケース群2642の各データ項目を有する。
ここで、図8は、実行優先度決定処理により生成される実行優先度情報265の一例を示す図である。実行優先度情報265は、修正対象構成要素2651、優先度2652、及びAPR結果2653の各データ項目を有する。
図9は、修正履歴情報266の一例を示す図である。修正履歴情報266は、実行した修正プログラム(パッチ候補)の番号2661、そのパッチ候補により修正される修正対象構成要素2662、そのパッチ候補による修正がこれまでに成功した回数及び失敗した回数である修正成功失敗2663、及び、そのパッチ候補が適用された時刻の履歴である
修正適用時刻履歴2664の各データ項目を有する。
図10は、プログラム修正処理により修正された検証対象プログラムの情報である修正結果情報267の一例を示す図である。この修正結果情報267は、修正された1又は複数の検証対象プログラム920の情報を含み、検証対象プログラム920には、その名称及び記憶場所910(ファイル名及びフォルダ等)が対応づけられて記憶されている。
検証対象プログラム920には、例えば、修正プログラムにより新たな関数921が追加され、また一部の処理が削除される(符号922)。
<実行優先度決定処理>
図11は、実行優先度決定処理の詳細を説明するフロー図である。
実行優先度決定部240は、テスト結果情報263の対応要素2632及び、構成要素情報を参照することで、互いに依存関係がある構成要素を特定し、特定した依存関係に応じて、その各構成要素の修正順位を決定する(s821)。
成功率又は修正の必要度に基づき、各構成要素の修正順位を決定する。
れに基づいて各構成要素の間に異なる修正順位を設定する。これにより、プログラム内の各モジュール間の依存関係に応じて効率的なプログラム修正を行うことができる。
実施例2では、プログラム修正装置1は、テストプログラムに基づき特定した不具合箇所に係る構成要素について、互いに依存関係のある構成要素の修正順位を決定した場合、依存元の構成要素のみを修正プログラムで修正することにより検証対象プログラムを更新しておく。そして、プログラム修正装置1は、更新した新たな検証対象プログラムに対して再び各テストプログラムを実行する。
pγ、及び構成要素CompAの順に不具合箇所の特定を行い、構成要素Compα、構成要素Compγ、及び構成要素CompAに不具合箇所があることを特定する(s902。実施例1のs801~s803に対応)。そして、プログラム修正装置1は、構成要素Compα、構成要素Compγ、及び構成要素CompAのそれぞれに対する修正プログラム(パッチ候補)を生成する(s903。実施例1のs805~s806に対応)。
Claims (10)
- プロセッサ及びメモリを有し、
検証対象プログラムの各構成要素の情報と、前記各構成要素を検証する各テストプログラムの情報とを対応づけた情報である構成要素情報を記憶する情報記憶部と、
前記各テストプログラムを実行することにより前記検証対象プログラムの不具合箇所を推定する不具合箇所推定部と、
前記推定した各不具合箇所に係る、前記検証対象プログラムの各構成要素を前記構成要素情報により特定し、特定した各構成要素間の関係に基づき、前記各構成要素の修正順位を決定する実行優先度決定部と、
前記決定した修正順位に従って、前記検証対象プログラムの各構成要素を、当該各構成要素に対応した修正プログラムにより修正する自動修正実行制御部と、
を備える、プログラム修正装置。 - 前記実行優先度決定部は、前記特定した各構成要素の間に処理上の依存関係があるか否かを判定し、処理上の依存関係があると判定した場合に、前記処理上の依存関係に基づいて、前記各構成要素の間に異なる修正順位を設定する、
請求項1に記載のプログラム修正装置。 - 前記実行優先度決定部は、前記特定した各構成要素のうち第1の構成要素が第2の構成要素を実行させているという依存関係があるか否かを判定し、当該依存関係があると判定した場合には、前記第2の構成要素に係る修正順位を前記第1の構成要素に係る修正順位より高く設定する、
請求項2に記載のプログラム修正装置。 - 前記実行優先度決定部は、前記特定した各構成要素のうち第1の構成要素及び第2の構成要素が第3の構成要素の情報を参照しているという依存関係があるか否かを判定し、当該依存関係があると判定した場合には、前記第3の構成要素に係る修正順位を前記第1の構成要素及び前記第2の構成要素に係る修正順位より高く設定する、
請求項2に記載のプログラム修正装置。 - 前記修正プログラムによる前記各構成要素の修正履歴を記憶した情報記憶部をさらに備え、
前記実行優先度決定部は、前記特定した各構成要素の修正の成功率又は必要度を前記修正履歴に基づき推定し、推定した成功率又は必要度に基づき、前記各構成要素の修正順位を決定する、
請求項1に記載のプログラム修正装置。 - 前記各構成要素の修正に用いた前記修正プログラムの数の情報を当該各構成要素ごとに記憶する情報記憶部をさらに備え、
前記実行優先度決定部は、前記特定した各構成要素の修正に用いた修正プログラムの数を、前記修正プログラムの数の情報に基づき特定し、特定した修正プログラムの数に基づき、前記各構成要素の修正順位を決定する、
請求項1に記載のプログラム修正装置。 - 前記テストプログラムの実行時間の情報を前記各構成要素ごとに記憶する情報記憶部をさらに備え、
前記実行優先度決定部は、前記特定した各構成要素に係るテストプログラムの各実行時間を、前記実行時間の情報に基づき推定し、推定した各実行時間に基づき、前記各構成要素の修正順位を決定する、
請求項1に記載のプログラム修正装置。 - 前記自動修正実行制御部は、前記各構成要素の間の処理上の依存関係に関して、他の構成要素の前提となる構成要素を特定し、特定した構成要素に対応した前記修正プログラムにより修正された新たな検証対象プログラムを生成し、
前記不具合箇所推定部は、前記新たな検証対象プログラムに対して、前記複数のテストプログラムを実行することにより前記検証対象プログラムの不具合箇所を推定し、
前記実行優先度決定部は、前記推定した各不具合箇所に係る、前記新たな検証対象プログラムの各構成要素を前記構成要素情報により特定し、特定した各構成要素間の関係に基づき、前記各構成要素の修正順位を決定する、
請求項1に記載のプログラム修正装置。 - 情報処理装置が、
検証対象プログラムの各構成要素の情報と、前記各構成要素を検証する各テストプログラムの情報とを対応づけた情報である構成要素情報を記憶する構成情報記憶処理と、
複数の前記テストプログラムを実行することにより前記検証対象プログラムの不具合箇所を推定する不具合箇所推定処理と、
前記推定した各不具合箇所に係る、前記検証対象プログラムの各構成要素を前記構成要素情報により特定し、特定した各構成要素間の関係に基づき、前記各構成要素の修正順位を決定する実行優先度決定処理と、
前記決定した修正順位に従って、前記検証対象プログラムの各構成要素を、当該各構成要素に対応した修正プログラムにより修正する自動修正実行制御処理と、
を実行する、プログラム修正方法。 - 情報処理装置に、
検証対象プログラムの各構成要素の情報と、前記各構成要素を検証する各テストプログラムの情報とを対応づけた情報である構成要素情報を記憶する構成情報記憶処理と、
複数の前記テストプログラムを実行することにより前記検証対象プログラムの不具合箇所を推定する不具合箇所推定処理と、
前記推定した各不具合箇所に係る、前記検証対象プログラムの各構成要素を前記構成要素情報により特定し、特定した各構成要素間の関係に基づき、前記各構成要素の修正順位を決定する実行優先度決定処理と、
前記決定した修正順位に従って、前記検証対象プログラムの各構成要素を、当該各構成要素に対応した修正プログラムにより修正する自動修正実行制御処理と、
を実行させる、プログラム修正プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021085423A JP7686452B2 (ja) | 2021-05-20 | 2021-05-20 | プログラム修正装置、プログラム修正方法、及びプログラム修正プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021085423A JP7686452B2 (ja) | 2021-05-20 | 2021-05-20 | プログラム修正装置、プログラム修正方法、及びプログラム修正プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022178544A true JP2022178544A (ja) | 2022-12-02 |
JP7686452B2 JP7686452B2 (ja) | 2025-06-02 |
Family
ID=84239140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021085423A Active JP7686452B2 (ja) | 2021-05-20 | 2021-05-20 | プログラム修正装置、プログラム修正方法、及びプログラム修正プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7686452B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7625737B1 (ja) | 2024-02-28 | 2025-02-03 | 楽天グループ株式会社 | 複数のテストシーケンスを実行する順序を制御するプログラム、制御装置、ならびに、制御方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09212387A (ja) * | 1996-01-31 | 1997-08-15 | Matsushita Electric Works Ltd | プログラム開発支援装置 |
JPH09319611A (ja) * | 1996-05-28 | 1997-12-12 | Matsushita Electric Works Ltd | プログラム開発支援装置 |
JPH11212824A (ja) * | 1998-01-27 | 1999-08-06 | Matsushita Electric Works Ltd | プログラムテスト方法、プログラムテスト装置及びテストプログラム記憶媒体 |
JP2007041804A (ja) * | 2005-08-02 | 2007-02-15 | Sharp Corp | プログラム生成装置、プログラム検証装置および検証プログラム |
JP2015022386A (ja) * | 2013-07-17 | 2015-02-02 | 株式会社日立製作所 | 鉄道運行管理システム及び検証装置 |
JP2018133081A (ja) * | 2017-02-17 | 2018-08-23 | 富士通株式会社 | ソフトウェアプログラム修復のためのメソッド呼び出し合成 |
JP2020129372A (ja) * | 2019-02-07 | 2020-08-27 | 富士通株式会社 | 自動化されたソフトウェアプログラム修復 |
-
2021
- 2021-05-20 JP JP2021085423A patent/JP7686452B2/ja active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09212387A (ja) * | 1996-01-31 | 1997-08-15 | Matsushita Electric Works Ltd | プログラム開発支援装置 |
JPH09319611A (ja) * | 1996-05-28 | 1997-12-12 | Matsushita Electric Works Ltd | プログラム開発支援装置 |
JPH11212824A (ja) * | 1998-01-27 | 1999-08-06 | Matsushita Electric Works Ltd | プログラムテスト方法、プログラムテスト装置及びテストプログラム記憶媒体 |
JP2007041804A (ja) * | 2005-08-02 | 2007-02-15 | Sharp Corp | プログラム生成装置、プログラム検証装置および検証プログラム |
JP2015022386A (ja) * | 2013-07-17 | 2015-02-02 | 株式会社日立製作所 | 鉄道運行管理システム及び検証装置 |
JP2018133081A (ja) * | 2017-02-17 | 2018-08-23 | 富士通株式会社 | ソフトウェアプログラム修復のためのメソッド呼び出し合成 |
JP2020129372A (ja) * | 2019-02-07 | 2020-08-27 | 富士通株式会社 | 自動化されたソフトウェアプログラム修復 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7625737B1 (ja) | 2024-02-28 | 2025-02-03 | 楽天グループ株式会社 | 複数のテストシーケンスを実行する順序を制御するプログラム、制御装置、ならびに、制御方法 |
Also Published As
Publication number | Publication date |
---|---|
JP7686452B2 (ja) | 2025-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109359468B (zh) | 漏洞检测方法、装置及设备 | |
US20080307264A1 (en) | Parameterized test driven development | |
US10289536B2 (en) | Distinguishing public and private code in testing environments | |
US9921947B2 (en) | Test selection method and test selection apparatus | |
CN108255576B (zh) | 虚拟机热迁移异常处理方法、装置和存储介质 | |
US11314610B2 (en) | Auto-recovery for software systems | |
US11023366B2 (en) | Diminution of test templates in test suites | |
US20200341887A1 (en) | Device, System, and Method for Automatically Detecting and Repairing a Bug in a Computer Program using a Genetic Algorithm | |
JP2022178544A (ja) | プログラム修正装置、プログラム修正方法、及びプログラム修正プログラム | |
US20150310332A1 (en) | Predicting outcome based on input | |
JP2010102454A (ja) | 情報処理装置、情報処理プログラム | |
JP2016167180A (ja) | デバッグ支援装置、デバッグ支援システム、デバッグ支援方法、および、デバッグ支援プログラム | |
US11256813B2 (en) | System vulnerability mitigation | |
JP6665576B2 (ja) | 支援装置、支援方法及びプログラム | |
CN113297038B (zh) | 监控与数据处理方法、装置、设备及监控系统、数据中心 | |
JP5962350B2 (ja) | プログラム、情報処理装置およびテスト方法 | |
KR102002545B1 (ko) | 가상화를 통한 코드 테스트 수행 자동화 방법 및 장치 | |
JP7296426B2 (ja) | 情報システムを管理する管理システム及び管理方法 | |
JP7596213B2 (ja) | プログラム修正装置、プログラム修正方法、及びプログラム修正プログラム | |
JP7504775B2 (ja) | 計算機システム、プログラム、及びプログラム修正方法 | |
JP5181699B2 (ja) | コンピュータ試験方法,プログラムおよび情報処理装置 | |
US20250138989A1 (en) | Risk analysis of test failures that occurred during a testing phase of a continuous integration pipeline | |
JP7562483B2 (ja) | 不具合箇所特定支援装置および不具合箇所特定支援方法 | |
US20250021438A1 (en) | Detecting an error in an updated software package by automatically rebuilding related downstream products | |
JP7456843B2 (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: 20241126 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20241217 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250213 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20250311 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250424 |
|
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: 20250513 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250521 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7686452 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |