JP6365276B2 - Program, information processing apparatus and information processing method - Google Patents
Program, information processing apparatus and information processing method Download PDFInfo
- Publication number
- JP6365276B2 JP6365276B2 JP2014247774A JP2014247774A JP6365276B2 JP 6365276 B2 JP6365276 B2 JP 6365276B2 JP 2014247774 A JP2014247774 A JP 2014247774A JP 2014247774 A JP2014247774 A JP 2014247774A JP 6365276 B2 JP6365276 B2 JP 6365276B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- test
- mutant
- cpu
- code
- 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
Links
- 230000010365 information processing Effects 0.000 title claims description 12
- 238000003672 processing method Methods 0.000 title claims description 4
- 238000012360 testing method Methods 0.000 claims description 141
- 238000000034 method Methods 0.000 claims description 40
- 230000004048 modification Effects 0.000 claims description 10
- 230000007812 deficiency Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000012937 correction Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
本発明は、プログラム、情報処理装置及び情報処理方法に関する。 The present invention relates to a program, an information processing apparatus, and an information processing method.
従来、プログラムを構成するソースコードモジュールの1つに構文上のミュータントを挿入することによりコンピュータプログラムの機能的シミュレーション及び検証を行う技術が開示されている(例えば特許文献1及び2参照)。
Conventionally, a technique for performing functional simulation and verification of a computer program by inserting a syntactic mutant into one of source code modules constituting the program has been disclosed (see, for example,
しかしながら、従来の技術では修正したプログラムの欠損した箇所を推定することができないという問題がある。 However, the conventional technique has a problem that it is impossible to estimate a missing part of a corrected program.
一つの側面では、修正したプログラムの欠損した箇所を推定することが可能なプログラム等を提供することを目的とする。 In one aspect, an object is to provide a program or the like that can estimate a missing part of a modified program.
一つの案では、プログラムは、コンピュータに、元のプログラムを修正した修正プログラムに対し、複数のテストを実行することにより第1テスト結果を取得し、前記元のプログラムに基づき生成したミュータントに対し、前記複数のテストを実行することにより、第2テスト結果を取得し、前記第2テスト結果の内失敗したテストと前記第1テスト結果との相関に基づき、前記修正プログラムの欠損が推定されるコードを出力する処理を実行させる。 In one proposal, the program obtains a first test result by executing a plurality of tests on a modified program obtained by modifying the original program on a computer, and for a mutant generated based on the original program, A code that obtains a second test result by executing the plurality of tests, and that estimates a lack of the correction program based on a correlation between the failed test and the first test result among the second test results Is executed.
一つの側面では、修正したプログラムの欠損した箇所を推定することが可能となる。 In one aspect, it is possible to estimate missing portions of the modified program.
実施の形態1
以下実施の形態を、図面を参照して説明する。図1は情報処理装置1のハードウェア群を示すブロック図である。情報処理装置1はサーバコンピュータ、パーソナルコンピュータ、携帯電話、スマートフォン、ゲーム機またはPDA(Personal Digital Assistant)等である。以下では情報処理装置1をコンピュータ1と読み替えて説明する。コンピュータ1は制御部としてのCPU(Central Processing Unit)11、RAM(Random Access Memory)12、入力部13、表示部14、記憶部15、及び、通信部16等を含む。
Hereinafter, embodiments will be described with reference to the drawings. FIG. 1 is a block diagram illustrating a hardware group of the
CPU11は、バス17を介してハードウェア各部と接続されている。CPU11は記憶部15に記憶された制御プログラム15Pに従いハードウェア各部を制御する。RAM12は例えば(Static RAM)、DRAM(Dynamic RAM)、フラッシュメモリ等である。RAM12は、記憶部としても機能し、CPU11による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。
The
入力部13はマウスまたはキーボード、マウスまたはタッチパネル等の入力デバイスであり、受け付けた操作情報をCPU11へ出力する。表示部14は液晶ディスプレイまたは有機EL(electroluminescence)ディスプレイ等であり、CPU11の指示に従い各種情報を表示する。通信部16は通信モジュールであり、図示しない他のコンピュータとの間でインターネット等の通信網Nを介して、情報の送受信を行う。
The
記憶部15はハードディスクまたは大容量メモリであり、制御プログラム15P、テストスイートデータベース(以下、DBという)151、修正プログラム実行結果DB152、ミュータントオペレータDB153を含む。また、記憶部15は、ミュータントDB154及び実行結果DB155等を記憶している。なお、実施形態ではテストスイートDB151等を記憶部15に記憶する例を挙げたがこれに限るものではない。RAM12に記憶するほか、図示しない他のDBサーバ内に記憶するようにしても良い。
The
図2はテストスイートDB151の記憶内容を示す説明図である。テストスイートDB151にはプログラムに対して実行される複数のテストが記憶されている。本実施形態ではテスト1からテスト50までのテストを用いる例を挙げて説明するが、数値は一例であり、これに限るものではない。
FIG. 2 is an explanatory diagram showing the contents stored in the
図3は修正プログラム実行結果DB152のレコードレイアウトを示す説明図である。各テストに対応付けて、実行結果が成功、または、失敗と記憶されている。図3の例ではテスト1及びテスト2は成功したが、テスト3は失敗している。CPU11は、元のプログラムを記憶部15から読み出し、表示部14に表示する。ユーザは元のプログラムを、入力部13を通じて適宜修正する。CPU11は、入力部13からプログラムの修正を受け付け、受け付けた修正後の修正プログラムを記憶部15に記憶する。
FIG. 3 is an explanatory diagram showing a record layout of the correction program
CPU11は、修正プログラムを記憶部15から読み出し、テストスイートDB151に記憶されたテスト1からテスト50を実行し、各テストの実行結果を修正プログラム実行結果DB152に記憶する。
The
図4はミュータントオペレータDB153の記憶内容を示す説明図である。ミュータントオペレータDB153には、人工的な誤りを含むプログラムであるミュータントを生成するための複数のミュータントオペレータが記憶されている。例えば、「<→>」のミュータントオペレータは、元のプログラムのコードに「<」が存在する場合、大小関係が逆となる「>」に書き換える。CPU11は、元のプログラムの特定のコードを書き換えることにより、当該コードについての複数のミュータントを生成する。CPU11は、生成したミュータントをミュータントDB154に記憶する。
FIG. 4 is an explanatory diagram showing the contents stored in the
図5は実行結果DB155のレコードレイアウトを示す説明図である。実行結果DB155は、元のプログラムフィールド、ミュータントオペレータフィールド、行フィールド、テストフィールド、成功数フィールド、失敗数フィールド、リスク値フィールド及びリスク平均値フィールド等を含む。元のプログラムフィールドには、修正前の元のプログラムのコードが記憶されている。なお、実行結果DB155の記憶内容は図5に示す例に限るものではない。データ間の関係が維持されていれば他の記憶形態であっても良い。
FIG. 5 is an explanatory diagram showing a record layout of the
ミュータントオペレータフィールドには、元のプログラムのコードに対して書き換えを行うための複数のミュータントオペレータが記憶されている。行フィールドには、コードの行を特定するための行番号がコードに対応付けて記憶されている。テストフィールドには、テスト毎に、ミュータントに対してテストを行った結果が記憶されている。例えば、M2で示すミュータントオペレータを用いたミュータントに対するテスト結果は、テスト1が失敗したことを示す「1」、テスト2も失敗したことを示す「1」が記憶されている。
In the mutant operator field, a plurality of mutant operators for rewriting the code of the original program is stored. In the line field, a line number for specifying the line of the code is stored in association with the code. In the test field, the result of testing the mutant for each test is stored. For example, the test result for the mutant using the mutant operator indicated by M2 stores “1” indicating that the
また例えば、M46で示すミュータントオペレータを用いたミュータントに対するテスト結果は、テスト1が成功したことを示す「0」、テスト3は失敗したことを示す「1」が記憶されている。なお、図5の下部には、説明を容易にするため、修正プログラムの実行結果を各テストに対応させて記載している。例えば修正プログラムに対するテスト1は「成功」しており、修正プログラムに対するテスト3は「失敗」していることが理解できる。なお、一つの行のコードに対するミュータントの数は一例であり特に限定するものではない。
Further, for example, the test result for the mutant using the mutant operator indicated by M46 stores “0” indicating that the
成功数フィールドには、コード及びミュータントオペレータに対応付けて、成功数が記憶されている。具体的には、CPU11は、修正プログラム実行結果DB152及び実行結果DB155を参照し、元のプログラムのミュータントに対するテストが失敗し、かつ、修正プログラムに対する対応するテストが成功した数を記憶する。また失敗数フィールドには、コード及びミュータントオペレータに対応付けて、失敗数が記憶されている。具体的には、CPU11は、修正プログラム実行結果DB152及び実行結果DB155を参照し、元のプログラムのミュータントに対するテストが失敗し、かつ、修正プログラムに対する対応するテストが失敗した数を記憶する。
In the success number field, the success number is stored in association with the code and the mutant operator. Specifically, the
図5の例では、行11についてミュータントオペレータM2が用いられており、テスト1の結果は「1」であり、失敗している。対応するテスト1の修正プログラムの結果は成功である。この場合、CPU11は、実行結果DB155の成功数をインクリメントする。テスト2の結果は「1」であり失敗している。対応するテスト1の修正プログラム結果は成功である。この場合も、CPU11は、成功数をインクリメントする。テスト3の結果は「1」であり失敗している。対応するテスト1の修正プログラム結果は失敗である。この場合、CPU11は、失敗数をインクリメントする。同様の処理を各テストについて行った結果、全テスト50の内、成功数は40であり、失敗数は10と記憶される。
In the example of FIG. 5, the mutant operator M2 is used for the
続いて17行のミュータントオペレータM46について着目する。テスト1及び2については、結果が成功を示す0であるため、成功数及び失敗数の計数処理を実行しない。テスト3については、結果が失敗を示す1であり、また修正プログラムのテスト3の結果も失敗であるので、CPU11は、失敗数を1インクリメントする。CPU11は、テスト50まで同様の処理を行う。なお図5の例では、ミュータントオペレータM46を用いた場合、成功数は0、失敗数は10となる。
Next, attention is paid to the mutant operator M46 in the 17th row. For
続いて、CPU11は、各ミュータントの失敗数の合計値を求め、ミュータント総数で除すことで平均失敗数を算出する。本実施形態では平均失敗数を後述するリスク値を求める上でのパラメータとする。なお、平均失敗数以外に、予め記憶部15に記憶した値をパラメータとして用いても良い。
Subsequently, the
CPU11は、各ミュータントの成功数が、失敗数に平均失敗数を加算した和(以下、加算値という)よりも大きいか否か判断する。CPU11は、大きくないと判断した場合、リスク値フィールドにリスク0を記憶する。CPU11は、大きいと判断した場合、リスク値フィールドに、当該ミュータントの失敗数を記憶する。図5の例では、ミュータントオペレータM42を用いたミュータントのリスク値が10と記憶されている。
The
リスク平均値フィールドには、各コードのリスク値の平均値が記憶されている。CPU11は、行毎に、全ミュータントのリスク値の合計値を求める。CPU11は、合計値を当該行内の全ミュータント数で除すことで、各コードのリスク平均値を算出する。図5の例では第11行のコードのリスク平均値は0、第17行のコードのリスク平均値は4.29となっている。CPU11は、最も高いリスク平均値を有するコードが欠損したコードであると推定する。CPU11は、欠損を推定したコードを表示部14へ出力する。なお、推定したコードは通信部16を介して、他のコンピュータへ出力するようにしても良い。
The average risk value of each code is stored in the risk average value field. CPU11 calculates | requires the total value of the risk value of all the mutants for every line. The
以上のハードウェア群において、各種ソフトウェア処理を、フローチャートを用いて説明する。図6はミュータント生成処理の手順を示すフローチャートである。CPU11は、記憶部15から修正プログラムを読み出す(ステップS61)。CPU11は、テストスイートDB151から複数のテストを読み出す(ステップS62)。CPU11は、修正プログラムに対し全てのテストを行い、テスト結果を修正プログラム実行結果DB152に記憶する(ステップS63)。CPU11は、図3に示すようにテストに対応付けて成功または失敗を示す情報を、修正プログラム実行結果DB152に記憶する。
In the above hardware group, various software processes will be described with reference to flowcharts. FIG. 6 is a flowchart showing the procedure of the mutant generation process. CPU11 reads a correction program from the memory | storage part 15 (step S61). The
CPU11は、修正前の元のプログラムを記憶部15から読み出す(ステップS64)。CPU11は、ミュータントオペレータを適用するコードを抽出する(ステップS65)。図5の例では、適用対象のコードとして、11行目、17行目等のコードを抽出している。CPU11は、ミュータントオペレータDB153から複数のミュータントオペレータを読み出す(ステップS66)。なお、CPU11は、元のプログラムのコード、行、及びミュータントオペレータを、実行結果DB155に記憶する。CPU11は、元のプログラムにミュータントオペレータを作用させ、ミュータントを生成する(ステップS67)。
CPU11 reads the original program before correction from the memory | storage part 15 (step S64). CPU11 extracts the code | cord | chord which applies a mutant operator (step S65). In the example of FIG. 5, codes such as the 11th and 17th lines are extracted as the codes to be applied. The
CPU11は、生成したミュータントをミュータントDB154に記憶する(ステップS68)。CPU11は、全てのミュータントオペレータに対する処理を終了したか否かを判断する(ステップS69)。CPU11は、全てのミュータントオペレータに対する処理を終了していないと判断した場合(ステップS69でNO)、処理をステップS67に処理を戻す。CPU11は、未処理のミュータントオペレータを用いて、ステップS67の処理を行う。これにより全てのミュータントオペレータを用いたミュータントが生成される。
The
CPU11は、全てのミュータントオペレータに対する処理を終了したと判断した場合(ステップS69でYES)、処理をステップS610へ移行させる。CPU11は、全ての適用対象となるコードについて処理を終了したか否かを判断する(ステップS610)。CPU11は、全てのコードに対する処理を終了していないと判断した場合(ステップS610でNO)、処理をステップS66へ戻す。CPU11は、未処理のコードに対し、ステップS66以降の処理を行う。これにより各コードについて、複数のミュータントが生成される。CPU11は、全てのコードに対する処理を終了したと判断した場合(ステップS610でYES)、一連の処理を終了する。
If the
図7はテスト結果の記憶処理手順を示すフローチャートである。CPU11は、元のプログラムのミュータントをミュータントDB154から読み出す(ステップS71)。CPU11は、テストスイートDB151からテストを読み出す(ステップS72)。CPU11は、ミュータントに対しテストを行い、テスト結果を、ミュータント及びテストに対応付けて、実行結果DB155に記憶する(ステップS73)。CPU11は、ミュータントのテスト結果が失敗、かつ、修正プログラムの対応するテスト結果が成功であるか否かを、修正プログラム実行結果DB152を参照して判断する(ステップS74)。
FIG. 7 is a flowchart showing a test result storing process. The
CPU11は、ミュータントのテスト結果が失敗、かつ、修正プログラムの対応するテスト結果が成功であると判断した場合(ステップS74でYES)、処理をステップS75へ移行させる。CPU11は、実行結果DB155における当該ミュータントの成功数をインクリメントする(ステップS75)。CPU11は、その後処理をステップS78へ移行させる。CPU11は、ミュータントのテスト結果が失敗、かつ、修正プログラムの対応するテスト結果が成功でないと判断した場合(ステップS74でNO)、処理をステップS76へ移行させる。
If the
CPU11は、ミュータントのテスト結果が失敗、かつ、修正プログラムの対応するテスト結果が失敗と判断した場合(ステップS76でYES)、処理をステップS77へ移行させる。CPU11は、実行結果DB155における当該ミュータントの失敗数をインクリメントする(ステップS77)。CPU11は、その後処理をステップS78へ移行させる。CPU11は、ミュータントのテスト結果が失敗、かつ、修正プログラムの対応するテスト結果が失敗でないと判断した場合(ステップS76でNO)、処理をステップS78へ移行させる。なお、本実施形態ではステップS74の処理をステップS76よりも先に行ったが、先にステップS76の処理を実行しても良い。
If the
CPU11は、全てのテストに対し処理を終了したか否か判断する(ステップS78)。CPU11は、全てのテストに対し処理を終了していないと判断した場合(ステップS78でNO)、処理をステップS72に戻す。以上の処理を繰り返すことにより、ミュータントに対する各テスト結果、成功数及び失敗数が記憶される。
The
CPU11は、全てのテストに対し処理を終了したと判断した場合(ステップS78でYES)、処理をステップS79へ移行させる。CPU11は、全てのミュータントに対する処理を終了したか否かを判断する(ステップS79)。CPU11は、全てのミュータントに対する処理を終了していないと判断した場合(ステップS79でNO)、処理をステップS71に戻す。これにより全てのミュータントについてのテスト結果、成功数及び失敗数が記憶される。CPU11は、全てのミュータントに対する処理を終了したと判断した場合(ステップS79でYES)、処理を終了する。
If the
図8は欠損コードの推定処理を示すフローチャートである。CPU11は、実行結果DB155を参照し、全てのミュータントの失敗数の合計値を算出する(ステップS81)。CPU11は、合計値を全てのミュータント数で除して平均失敗数を算出する(ステップS82)。CPU11は、各ミュータントの成功数が、失敗数に平均失敗数を加算した加算値より大きいか否かを判断する(ステップS83)。CPU11は、成功数が、失敗数に平均失敗数を加算した値よりも大きいと判断した場合(ステップS83でYES)、処理をステップS84へ移行させる。
FIG. 8 is a flowchart showing a missing code estimation process. The
CPU11は、ミュータントに対応付けてリスク値0を実行結果DB155に記憶する(ステップS84)。CPU11は、その後処理をステップS86へ移行させる。CPU11は、成功数が、失敗数に平均失敗数を加算した値より大きくないと判断した場合(ステップS83でNO)、処理をステップS85へ移行させる。CPU11は、当該ミュータントにおける失敗数をリスク値として、ミュータントに対応付けて実行結果DB155に記憶する(ステップS85)。CPU11は、全てのミュータントに対する処理を終了したか否かを判断する(ステップS86)。
The
CPU11は、全てのミュータントに対する処理を終えていない場合(ステップS86でNO)、処理をステップS83へ戻す。CPU11は、未処理のミュータントに対し、ステップS83以降の処理を行う。これにより全てのミュータントについてのリスク値が算出される。CPU11は、全てのミュータントに対する処理を終了したと判断した場合(ステップS86でYES)、処理をステップS87へ移行させる。
CPU11 returns a process to step S83, when the process with respect to all the mutants is not completed (it is NO at step S86). CPU11 performs the process after step S83 with respect to an unprocessed mutant. As a result, risk values for all mutants are calculated. If the
CPU11は、コード毎のリスク値の平均からリスク平均値を算出する(ステップS87)。具体的には、CPU11は、同一コード内のミュータントのリスク値の合計値を求め、同一コード内の全ミュータント数で除すことで、リスク平均値を算出する。CPU11は、最も大きいリスク平均値を有するコードを、欠損が推定されるコードとして表示部14へ出力する(ステップS88)。
CPU11 calculates a risk average value from the average of the risk value for every code (step S87). Specifically, the
なお、欠損が推定されるコードは、リスク平均値が最大のものを出力する例を示したがこれに限るものではない。リスク平均値が大きい上位数行のコードを欠損が推定されるコードとして出力しても良い。またリスク平均値ではなく、合計値が最も大きいコード、または合計値が大きい上位数行のコードを欠損が推定されるコードとして出力しても良い。これにより、修正したプログラムの欠損した箇所を推定することが可能となる。また修正プログラム及びミュータント双方の相関により精度良くコードの欠損箇所を推定する事ができる。またパラメータとして平均失敗数を利用することでより精度を向上させることができる。 In addition, although the example which outputs the code | cord | chord with the largest risk average value was shown for the code | symbol with which a loss is estimated, it is not restricted to this. You may output the code | cord | chord of the high-order several lines with a large average risk value as a code | symbol from which a defect | deletion is estimated. Further, instead of the risk average value, the code having the largest total value or the code of the top several lines having the largest total value may be output as the code for which the loss is estimated. As a result, it is possible to estimate the missing part of the modified program. Moreover, it is possible to accurately estimate the missing portion of the code by the correlation between the correction program and the mutant. Further, the accuracy can be improved by using the average number of failures as a parameter.
実施の形態2
図9は上述した形態のコンピュータ1の動作を示す機能ブロック図である。CPU11が制御プログラム15Pを実行することにより、コンピュータ1は以下のように動作する。第1取得部91は、元のプログラムを修正した修正プログラムに対し、複数のテストを実行することにより第1テスト結果を取得する。第2取得部92は、前記元のプログラムに基づき生成したミュータントに対し、前記複数のテストを実行することにより、第2テスト結果を取得する。出力部93は、前記第2テスト結果の内失敗したテストと前記第1テスト結果との相関に基づき、前記修正プログラムの欠損が推定されるコードを出力する。
FIG. 9 is a functional block diagram showing the operation of the
図10は実施の形態2に係るコンピュータ1のハードウェア群を示すブロック図である。コンピュータ1を動作させるためのプログラムは、ディスクドライブ等の読み取り部10AにCD-ROM、DVD(Digital Versatile Disc)ディスク、メモリーカード、またはUSB(Universal Serial Bus)メモリ等の可搬型記録媒体1Aを読み取らせて記憶部15に記憶しても良い。また当該プログラムを記憶したフラッシュメモリ等の半導体メモリ1Bをコンピュータ1内に実装しても良い。さらに、当該プログラムは、インターネット等の通信網Nを介して接続される他のサーバコンピュータ(図示せず)からダウンロードすることも可能である。以下に、その内容を説明する。
FIG. 10 is a block diagram illustrating a hardware group of the
図10に示すコンピュータ1は、上述した各種ソフトウェア処理を実行するプログラムを、可搬型記録媒体1Aまたは半導体メモリ1Bから読み取り、或いは、通信網Nを介して他のサーバコンピュータ(図示せず)からダウンロードする。当該プログラムは、制御プログラム15Pとしてインストールされ、RAM12にロードして実行される。これにより、上述したコンピュータ1として機能する。
The
本実施の形態2は以上の如きであり、その他は実施の形態1から5と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。 The second embodiment is as described above, and the others are the same as those of the first to fifth embodiments. Therefore, the corresponding parts are denoted by the same reference numerals and detailed description thereof is omitted.
以上の実施の形態1及び2を含む実施形態に関し、さらに以下の付記を開示する。 With respect to the embodiments including the first and second embodiments, the following additional notes are disclosed.
(付記1)
コンピュータに、
元のプログラムを修正した修正プログラムに対し、複数のテストを実行することにより第1テスト結果を取得し、
前記元のプログラムに基づき生成したミュータントに対し、前記複数のテストを実行することにより、第2テスト結果を取得し、
前記第2テスト結果の内失敗したテストと前記第1テスト結果との相関に基づき、前記修正プログラムの欠損が推定されるコードを出力する
処理を実行させるプログラム。
(付記2)
ミュータントに対するテストに失敗し、かつ、修正プログラムに対する前記テストに成功した成功数を計数し、
ミュータントに対するテストに失敗し、かつ、修正プログラムに対する前記テストに失敗した失敗数を計数し、
前記成功数及び失敗数の大小関係に基づき、欠損が推定されるコードを出力する
付記1に記載のプログラム。
(付記3)
前記プログラムのコード毎に、複数のミュータントを生成し、
ミュータント毎に前記複数のテストを実行することにより、第2テスト結果を取得する
付記2に記載のプログラム。
(付記4)
計数した各ミュータントの失敗数に基づき平均失敗数を算出し、
計数した各ミュータントの成功数と、失敗数に前記平均失敗数を加算した和との大小関係に基づき、欠損が推定されるコードを出力する
付記3に記載のプログラム。
(付記5)
前記成功数よりも前記和が大きい場合に、失敗数を抽出し、
コード毎に、抽出した失敗数の平均値を算出し、
算出した平均値に基づき、欠損が推定されるコードを出力する
付記4に記載のプログラム。
(付記6)
元のプログラムを修正した修正プログラムに対し、複数のテストを実行することにより第1テスト結果を取得する第1取得部と、
前記元のプログラムに基づき生成したミュータントに対し、前記複数のテストを実行することにより、第2テスト結果を取得する第2取得部と、
前記第2テスト結果の内失敗したテストと前記第1テスト結果との相関に基づき、前記修正プログラムの欠損が推定されるコードを出力する出力部と
を備える情報処理装置。
(付記7)
元のプログラムを修正した修正プログラムに対し、複数のテストを実行することにより第1テスト結果を取得し、
前記元のプログラムに基づき生成したミュータントに対し、前記複数のテストを実行することにより、第2テスト結果を取得し、
前記第2テスト結果の内失敗したテストと前記第1テスト結果との相関に基づき、前記修正プログラムの欠損が推定されるコードを出力する
コンピュータを用いた情報処理方法。
(Appendix 1)
On the computer,
The first test result is obtained by executing a plurality of tests on the modified program obtained by modifying the original program,
A second test result is obtained by executing the plurality of tests on the mutant generated based on the original program,
A program for executing a process of outputting a code in which a deficiency of the correction program is estimated based on a correlation between a failed test among the second test results and the first test result.
(Appendix 2)
Count the number of successes that failed the test against the mutant and succeeded in the test against the modification program,
Count the number of failures that failed the test against the mutant and failed the test against the modification program,
The program according to
(Appendix 3)
A plurality of mutants are generated for each code of the program,
The program according to
(Appendix 4)
Calculate the average number of failures based on the number of failures of each mutant counted,
The program according to claim 3, wherein a code that estimates a deficiency is output based on a magnitude relationship between the counted number of successes of each mutant and the sum of the number of failures plus the average number of failures.
(Appendix 5)
If the sum is greater than the success number, extract the failure number;
Calculate the average number of failures extracted for each code,
The program according to appendix 4, which outputs a code for which a loss is estimated based on the calculated average value.
(Appendix 6)
A first acquisition unit that acquires a first test result by executing a plurality of tests on a correction program obtained by correcting the original program;
A second acquisition unit that acquires a second test result by executing the plurality of tests on the mutant generated based on the original program;
An information processing apparatus comprising: an output unit that outputs a code for which a deficiency of the correction program is estimated based on a correlation between a failed test of the second test results and the first test result.
(Appendix 7)
The first test result is obtained by executing a plurality of tests on the modified program obtained by modifying the original program,
A second test result is obtained by executing the plurality of tests on the mutant generated based on the original program,
An information processing method using a computer that outputs a code in which a deficiency of the correction program is estimated based on a correlation between a failed test of the second test results and the first test result.
1 コンピュータ
1A 可搬型記録媒体
1B 半導体メモリ
10A 読み取り部
11 CPU
12 RAM
13 入力部
14 表示部
15 記憶部
15P 制御プログラム
16 通信部
151 テストスイートDB
152 修正プログラム実行結果DB
153 ミュータントオペレータDB
154 ミュータントDB
155 実行結果DB
91 第1取得部
92 第2取得部
93 出力部
N 通信網
DESCRIPTION OF
12 RAM
13
152 Correction program execution result DB
153 Mutant Operator DB
154 Mutant DB
155 Execution result DB
91
Claims (5)
元のプログラムを修正した修正プログラムに対し、複数のテストを実行することにより第1テスト結果を取得し、
前記元のプログラムに基づき生成したミュータントに対し、前記複数のテストを実行することにより、第2テスト結果を取得し、
前記第2テスト結果の内失敗したテストと前記第1テスト結果との相関に基づき、前記修正プログラムの欠損が推定されるコードを出力する
処理を実行させるプログラム。 On the computer,
The first test result is obtained by executing a plurality of tests on the modified program obtained by modifying the original program,
A second test result is obtained by executing the plurality of tests on the mutant generated based on the original program,
A program for executing a process of outputting a code in which a deficiency of the correction program is estimated based on a correlation between a failed test among the second test results and the first test result.
ミュータントに対するテストに失敗し、かつ、修正プログラムに対する前記テストに失敗した失敗数を計数し、
前記成功数及び失敗数の大小関係に基づき、欠損が推定されるコードを出力する
請求項1に記載のプログラム。 Count the number of successes that failed the test against the mutant and succeeded in the test against the modification program,
Count the number of failures that failed the test against the mutant and failed the test against the modification program,
The program according to claim 1, wherein a code in which a deficiency is estimated is output based on a magnitude relationship between the success number and the failure number.
ミュータント毎に前記複数のテストを実行することにより、第2テスト結果を取得する
請求項2に記載のプログラム。 A plurality of mutants are generated for each code of the program,
The program according to claim 2, wherein the second test result is obtained by executing the plurality of tests for each mutant.
前記元のプログラムに基づき生成したミュータントに対し、前記複数のテストを実行することにより、第2テスト結果を取得する第2取得部と、
前記第2テスト結果の内失敗したテストと前記第1テスト結果との相関に基づき、前記修正プログラムの欠損が推定されるコードを出力する出力部と
を備える情報処理装置。 A first acquisition unit that acquires a first test result by executing a plurality of tests on a correction program obtained by correcting the original program;
A second acquisition unit that acquires a second test result by executing the plurality of tests on the mutant generated based on the original program;
An information processing apparatus comprising: an output unit that outputs a code for which a deficiency of the correction program is estimated based on a correlation between a failed test of the second test results and the first test result.
前記元のプログラムに基づき生成したミュータントに対し、前記複数のテストを実行することにより、第2テスト結果を取得し、
前記第2テスト結果の内失敗したテストと前記第1テスト結果との相関に基づき、前記修正プログラムの欠損が推定されるコードを出力する
コンピュータを用いた情報処理方法。 The first test result is obtained by executing a plurality of tests on the modified program obtained by modifying the original program,
A second test result is obtained by executing the plurality of tests on the mutant generated based on the original program,
An information processing method using a computer that outputs a code in which a deficiency of the correction program is estimated based on a correlation between a failed test of the second test results and the first test result.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014247774A JP6365276B2 (en) | 2014-12-08 | 2014-12-08 | Program, information processing apparatus and information processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014247774A JP6365276B2 (en) | 2014-12-08 | 2014-12-08 | Program, information processing apparatus and information processing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016110419A JP2016110419A (en) | 2016-06-20 |
JP6365276B2 true JP6365276B2 (en) | 2018-08-01 |
Family
ID=56124324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014247774A Expired - Fee Related JP6365276B2 (en) | 2014-12-08 | 2014-12-08 | Program, information processing apparatus and information processing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6365276B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6748357B2 (en) * | 2016-09-23 | 2020-09-02 | 富士通株式会社 | Analysis device, analysis program, and analysis method |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014126900A (en) * | 2012-12-25 | 2014-07-07 | Nec Corp | Program analysis device, program analysis method, and program analysis program |
-
2014
- 2014-12-08 JP JP2014247774A patent/JP6365276B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2016110419A (en) | 2016-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20140113257A1 (en) | Automated evaluation of programming code | |
Heydt | Python Web Scraping Cookbook: Over 90 proven recipes to get you scraping with Python, microservices, Docker, and AWS | |
US20220358269A1 (en) | Simulation execution system, simulation execution method, and computer readable medium | |
JP2016099857A (en) | Fraudulent program handling system and fraudulent program handling method | |
US9477582B2 (en) | Executable software specification generation | |
JP2013156811A (en) | Specification document check method, program, and system | |
CN107357588B (en) | Object code generation method and device | |
Mohd-Shafie et al. | Model-based test case prioritization using selective and even-spread count-based methods with scrutinized ordering criterion | |
JP6365276B2 (en) | Program, information processing apparatus and information processing method | |
US9501390B1 (en) | Enhancing automated mobile application testing | |
CN108196975B (en) | Data verification method and device based on multiple checksums and storage medium | |
Borg | Embrace your issues: compassing the software engineering landscape using bug reports | |
CN103634366A (en) | Method and device for identifying network robot | |
JP6451417B2 (en) | Debug support device, debug support system, debug support method, and debug support program | |
Nabuco et al. | Inferring user interface patterns from execution traces of web applications | |
Nijhawan et al. | An SRGM for multi-release open source software system | |
JP6740912B2 (en) | Data compression device, data compression program, data compression method and program | |
JP6547345B2 (en) | Test case generation program, test case generation method and test case generation apparatus | |
Ben Charrada et al. | An automated hint generation approach for supporting the evolution of requirements specifications | |
JP2007226526A (en) | Information processor, information processing method, program and storage medium | |
JP2021103354A (en) | Program testing method | |
CN113051153A (en) | Application software vulnerability scanning method and related equipment | |
JP2015069332A (en) | Object range extractor, static verification system, object range extraction method, and object range extraction program for extracting object range to be subjected to static verification by static verification device | |
CN110045985B (en) | Targetlink model calibration parameter setting method, device, equipment and medium | |
CN111522737B (en) | Automatic test verification method and device for front-end interface and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170804 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180419 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180508 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180515 |
|
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: 20180605 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180618 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6365276 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |