JP2022068566A - Test coverage update program, test coverage update method, and information processing apparatus - Google Patents
Test coverage update program, test coverage update method, and information processing apparatus Download PDFInfo
- Publication number
- JP2022068566A JP2022068566A JP2020177319A JP2020177319A JP2022068566A JP 2022068566 A JP2022068566 A JP 2022068566A JP 2020177319 A JP2020177319 A JP 2020177319A JP 2020177319 A JP2020177319 A JP 2020177319A JP 2022068566 A JP2022068566 A JP 2022068566A
- Authority
- JP
- Japan
- Prior art keywords
- source code
- test coverage
- test
- information
- change
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
本発明は、テストカバレッジ更新プログラム、テストカバレッジ更新方法および情報処理装置に関する。 The present invention relates to a test coverage update program, a test coverage update method, and an information processing apparatus.
従来、ソフトウェア開発において、ソフトウェアソースコードが変更されると、その都度、テストカバレッジがどの程度低下したかを確認するために、変更後のソフトウェアソースコードを対象としたテストが再実行される。テストカバレッジは、ソフトウェアの品質を定量的に測るための重要な指標の一つである。 Conventionally, in software development, every time the software source code is changed, the test for the changed software source code is re-executed in order to check how much the test coverage is deteriorated. Test coverage is one of the important indicators for quantitatively measuring the quality of software.
先行技術としては、例えば、修正後のソースファイルのチェックすべき箇所を抽出するための技術がある。また、ソフトウェア試験を実施する際、対象となるプログラムモジュールの試験箇所を提示するための技術がある。 As the prior art, for example, there is a technique for extracting a part to be checked in the modified source file. In addition, there is a technique for presenting the test location of the target program module when conducting a software test.
しかしながら、従来技術では、ソフトウェアソースコードの変更時に、テストカバレッジがどの程度低下するのか、再度テストを実施するまでわからないという問題がある。 However, in the prior art, there is a problem that it is not known how much the test coverage is lowered when the software source code is changed until the test is performed again.
一つの側面では、本発明は、ソースコードの変更時に、テストを実行することなく、テストカバレッジを把握可能にすることを目的とする。 In one aspect, it is an object of the present invention to make it possible to grasp the test coverage when the source code is changed without executing the test.
1つの実施態様では、ソフトウェアの変更後のソースコードから関数またはメソッドを抽出し、前記ソフトウェアの変更前のソースコードと前記変更後のソースコードとの差分情報に基づいて、抽出した前記関数内または前記メソッド内に変更箇所があるか否かを判定し、前記変更箇所があると判定した場合、前記変更前のソースコードに対応する第1のテストカバレッジ情報と前記差分情報とに基づいて、前記変更箇所がある関数またはメソッドについて、テストが未実施状態であることを示す情報を含む、前記変更後のソースコードに対応する第2のテストカバレッジ情報を生成する、テストカバレッジ更新プログラムが提供される。 In one embodiment, a function or method is extracted from the modified source code of the software, and the extracted function or method is based on the difference information between the source code before the modification of the software and the source code after the modification. It is determined whether or not there is a change in the method, and if it is determined that there is a change, the said is based on the first test coverage information corresponding to the source code before the change and the difference information. A test coverage update is provided that generates a second test coverage information corresponding to the modified source code, including information indicating that the test has not been performed for the function or method with the changes. ..
本発明の一側面によれば、ソースコードの変更時に、テストを実行することなく、テストカバレッジを把握可能にすることができるという効果を奏する。 According to one aspect of the present invention, there is an effect that the test coverage can be grasped without executing the test when the source code is changed.
以下に図面を参照して、本発明にかかるテストカバレッジ更新プログラム、テストカバレッジ更新方法および情報処理装置の実施の形態を詳細に説明する。 Hereinafter, embodiments of the test coverage update program, the test coverage update method, and the information processing apparatus according to the present invention will be described in detail with reference to the drawings.
(実施の形態)
図1は、実施の形態にかかるテストカバレッジ更新方法の一実施例を示す説明図である。図1において、情報処理装置101は、ソフトウェアSWのソースコードが変更された場合に、ソフトウェアSWのテストカバレッジ情報を更新するコンピュータである。ソフトウェアSWは、開発対象のコンピュータプログラムであり、コンピュータを動作させる命令、手順などを記述したものである。
(Embodiment)
FIG. 1 is an explanatory diagram showing an embodiment of a test coverage update method according to an embodiment. In FIG. 1, the
ソフトウェアSWは、関数やメソッドを含む。関数は、与えられた値(引数)をもとに、決められた処理を行い、その結果を出力する命令群である。メソッドは、一連の処理を一つにまとめたものであり、例えば、オブジェクト指向プログラミングにおける、特定のクラスやオブジェクトに属する、特定の処理をひとまとまりにしたサブルーチンである。 The software SW includes functions and methods. A function is a group of instructions that performs a predetermined process based on a given value (argument) and outputs the result. A method is a collection of a series of processes, for example, in object-oriented programming, a subroutine that belongs to a specific class or object and is a group of specific processes.
テストカバレッジは、所定の網羅条件がテストによってどれだけ実行されたかを表すものであり、ソフトウェアの品質を定量的に測るための重要な指標の一つである。網羅条件としては、例えば、命令網羅、分岐網羅、条件網羅などがある。例えば、命令網羅の場合、テストカバレッジ情報は、すべての実行可能な命令のうち、テストで実行された命令の割合を特定可能な情報である。 Test coverage shows how well a given coverage condition is performed by a test, and is one of the important indicators for quantitatively measuring the quality of software. Coverage conditions include, for example, instruction coverage, branch coverage, and condition coverage. For example, in the case of instruction coverage, the test coverage information is information that can specify the ratio of the instructions executed in the test among all the executable instructions.
ソフトウェア開発において、ソフトウェアの仕様変更、機能追加、不具合修正などにより、ソフトウェアのソースコードが変更されることがある。例えば、ソフトウェア開発に従事する技術者やプロジェクト管理者は、ソフトウェアのソースコードが変更されると、テストカバレッジがどの程度低下したかを確認し、目標のカバレッジに対して必要なテスト工数を見積もる。 In software development, the source code of software may be changed due to changes in software specifications, addition of functions, correction of defects, etc. For example, engineers and project managers engaged in software development check how much the test coverage is reduced when the software source code is changed, and estimate the test man-hours required for the target coverage.
変更後のソフトウェアソースコードに対するテストカバレッジ情報は、変更後のソフトウェアソースコードを対象としたすべてのテストを再実行することにより収集することができる。この場合、ソフトウェアソースコードの変更時に、テストカバレッジがどの程度低下するのかは、再度テストを実施するまでわからない。 Test coverage information for the modified software source code can be collected by rerunning all tests on the modified software source code. In this case, it is not known how much the test coverage will be reduced when the software source code is changed until the test is performed again.
このため、ソフトウェア開発に従事する技術者やプロジェクト管理者は、テストを再実行するまでは、目標のカバレッジに対して必要なテスト工数を見積もることができない。また、実行に多大な時間を必要とするテストや、テスト実行の際に必要となる機器数の制限によって、すぐにテストを実行できず、テストカバレッジ情報を収集するまでに時間を要する場合がある。 For this reason, engineers and project managers engaged in software development cannot estimate the test man-hours required for the target coverage until the test is re-executed. In addition, due to tests that require a lot of time to execute and the limitation of the number of devices required to execute the test, it may not be possible to execute the test immediately and it may take time to collect the test coverage information. ..
すなわち、ソフトウェアソースコードの変更時に、その都度、すべてのテストを再実行するとなると、ソフトウェアの規模が大きくなるにつれて、テスト実行に時間やリソースがかかり、ひいては、開発期間の長期化やコストの増大を招くおそれがある。 In other words, if all tests are re-executed each time the software source code is changed, it will take time and resources to execute the tests as the scale of the software increases, which in turn will prolong the development period and increase the cost. There is a risk of inviting.
そこで、本実施の形態では、ソフトウェアソースコードの更新時に、ソフトウェアソースコードに対して専用のプログラムを挿入するといった改変を行うことなく、また、テストを実施せずに、全体のテストカバレッジ情報を更新するテストカバレッジ更新方法について説明する。以下、情報処理装置101の処理例について説明する。
Therefore, in the present embodiment, when the software source code is updated, the entire test coverage information is updated without modification such as inserting a dedicated program into the software source code and without performing a test. Explains how to update the test coverage. Hereinafter, a processing example of the
(1)情報処理装置101は、ソフトウェアSWの変更後のソースコードsc2から関数またはメソッドを抽出する。具体的には、例えば、情報処理装置101は、変更後のソースコードscに含まれるすべての関数またはメソッド名を抽出する。ただし、情報処理装置101は、例えば、特定の関数やメソッドを抽出対象から除外してもよい。
(1) The
(2)情報処理装置101は、ソフトウェアSWの変更前のソースコードsc1と変更後のソースコードsc2との差分情報dfに基づいて、抽出した関数内またはメソッド内に変更箇所があるか否かを判定する。ここで、差分情報dfは、変更前のソースコードsc1と変更後のソースコードsc2との差分を示す情報であり、例えば、変更前後において、変更された行、新規に追加された行、削除された行などを特定可能な情報である。
(2) The
具体的には、例えば、情報処理装置101は、抽出した関数内またはメソッド内に変更行、新規追加行および削除行の少なくともいずれかが含まれる場合に、関数内またはメソッド内に変更箇所があると判定する。変更行、新規追加行および削除行は、変更前のソースコードsc1と変更後のソースコードsc2との差分情報dfから特定される。
Specifically, for example, the
(3)情報処理装置101は、変更箇所があると判定した場合、変更前のソースコードsc1に対応する第1のテストカバレッジ情報cv1と差分情報dfとに基づいて、変更後のソースコードsc2に対応する第2のテストカバレッジ情報cv2を生成する。第2のテストカバレッジ情報cv2は、変更箇所があると判定された関数またはメソッドについて、テストが未実施状態であることを示す情報を含む。
(3) When the
ここで、第1のテストカバレッジ情報cv1は、変更前のソースコードsc1についてのテストカバレッジを特定可能な情報である。第1のテストカバレッジ情報cv1は、例えば、変更前のソースコードsc1を対象としたテストを実行することにより得られた情報である。 Here, the first test coverage information cv1 is information that can specify the test coverage of the source code sc1 before the change. The first test coverage information cv1 is, for example, information obtained by executing a test targeting the source code sc1 before the change.
また、第2のテストカバレッジ情報cv2は、変更後のソースコードsc2についてのテストカバレッジを特定可能な情報である。第2のテストカバレッジ情報cv2は、変更後のソースコードsc2を対象としたテストを実行することなく得られる情報である。各テストカバレッジ情報は、例えば、ソースコードの行番号と対応付けて、当該行番号の行についてテストを実施したか否かを示す情報を保持する。 Further, the second test coverage information cv2 is information that can specify the test coverage of the changed source code sc2. The second test coverage information cv2 is information obtained without executing a test targeting the modified source code sc2. Each test coverage information holds, for example, information indicating whether or not a test has been performed on the line with the line number in association with the line number of the source code.
具体的には、例えば、情報処理装置101は、差分情報dfに基づいて、第1のテストカバレッジ情報cv1の行番号に対応する情報を更新する。さらに、情報処理装置101は、変更箇所があると判定された関数内またはメソッド内のすべての行(ただし、カバレッジの範囲に含まない箇所は除く)について、テストが未実施状態であることを示す情報とすることにより、第2のテストカバレッジ情報cv2を生成する。テストが未実施状態とは、ソフトウェア実行時(テスト実行時)に、該当の行番号の行を通過(実行)していない状態である。
Specifically, for example, the
このように、情報処理装置101によれば、ソフトウェアソースコード変更時に、変更前のテストカバレッジ情報をもとに、変更箇所を含む関数やメソッドについての情報を、テストが未実施状態であることを示す情報に初期化して、変更後のテストカバレッジ情報を生成することができる。これにより、ソフトウェアソースコード変更時に、テスト実行することなく、変更後のソフトウェアソースコードについてのテストカバレッジを把握することが可能となる。
As described above, according to the
(情報処理システム200のシステム構成例)
つぎに、図1に示した情報処理装置101を含む情報処理システム200のシステム構成例について説明する。以下の説明では、図1に示した情報処理装置101を、データサーバ201に適用した場合を例に挙げて説明する。情報処理システム200は、例えば、ソフトウェア開発を支援するサービスに適用される。
(System configuration example of information processing system 200)
Next, a system configuration example of the
図2は、情報処理システム200のシステム構成例を示す説明図である。図2において、情報処理システム200は、データサーバ201と、編集端末202と、閲覧端末203と、を含む。情報処理システム200において、データサーバ201、編集端末202および閲覧端末203は、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、インターネット、LAN、WAN(Wide Area Network)などである。
FIG. 2 is an explanatory diagram showing a system configuration example of the
ここで、データサーバ201は、ソースコードDB(Database)220、テストケースDB230およびテストカバレッジDB240を有するコンピュータである。ソースコードDB220は、ソフトウェアソースコードを記憶する。ソフトウェアソースコードは、ソフトウェアSWのソースコードである。
Here, the
例えば、ソースコードDB220には、各世代のソースコード(変更後のソースコード)と対応付けて、変更前のソースコードと変更後のソースコードとの差分情報が記憶される。ソフトウェアソースコードの具体例については、図8Aおよび図8Bを用いて後述する。差分情報の具体例については、図9を用いて後述する。
For example, the
テストケースDB230は、テストケースを記憶する。テストケースは、ソフトウェアソースコードテストを実施するためのプログラム(ソースコード)である。テストケースは、例えば、ソフトウェアのあるパス(実行経路)を通る動作を規定したプログラムである。例えば、テストケースDB230には、ソフトウェアソースコードと対応付けて、テストケースが記憶される。
The
テストカバレッジDB240は、テストカバレッジ情報を記憶する。例えば、テストカバレッジDB240には、ソフトウェアソースコードとテストケースと対応付けて、テストカバレッジ情報が記憶される。テストカバレッジ情報の具体例については、図13を用いて後述する。
The
編集端末202は、ソフトウェア開発に従事する技術者が使用するコンピュータである。編集端末202において、技術者は、例えば、ソフトウェアソースコードを変更したり、テストケースを追加したり、テストを実行したりすることができる。編集端末202は、例えば、PC(Personal Computer)やタブレットPCなどである。
The
閲覧端末203は、ソフトウェア開発に従事する技術者やプロジェクト管理者が使用するコンピュータである。閲覧端末203において、技術者やプロジェクト管理者は、例えば、ソフトウェアソースコードに対応するテストカバレッジ情報を閲覧することができる。閲覧端末203は、例えば、PCやタブレットPCなどである。
The
情報処理システム200において、データサーバ201は、例えば、テストカバレッジ情報自動更新機能、テスト実行機能、全テスト実行機能およびテストカバレッジ情報閲覧機能を有する。テストカバレッジ情報自動更新機能は、ソフトウェアソースコードの変更に応じて、テストカバレッジ情報を更新する機能である。
In the
テスト実行機能は、特定のテストケースを用いて、ソフトウェアソースコードのテストを実行する機能である。全テスト実行機能は、ソフトウェアソースコードと対応付けてテストケースDB230に記憶されている全テストケースを用いて、当該ソフトウェアソースコードのテストを実行する機能である。テストカバレッジ情報閲覧機能は、テストカバレッジ情報を可視化して出力する機能である。
The test execution function is a function for executing a test of software source code using a specific test case. The all test execution function is a function for executing a test of the software source code by using all the test cases stored in the
なお、各機能についてのデータサーバ201の動作例については、図3~図6を用いて後述する。また、図2の例では、データサーバ201を、編集端末202と閲覧端末203と別体に設けることにしたが、これに限らない。例えば、データサーバ201は、編集端末202または閲覧端末203により実現されることにしてもよい。
An operation example of the
(データサーバ201の動作例)
つぎに、図3~図6を用いて、テストカバレッジ情報自動更新機能、テスト実行機能、全テスト実行機能およびテストカバレッジ情報閲覧機能について、データサーバ201の動作例について説明する。
(Operation example of data server 201)
Next, an operation example of the
図3は、テストカバレッジ情報自動更新機能に関するデータサーバ201の動作例を示すシーケンス図である。図3のシーケンス図において、データサーバ201は、編集端末202からソフトウェアソースコードのアップデート指示を受け付ける(ステップS301)。
FIG. 3 is a sequence diagram showing an operation example of the
データサーバ201は、アップデート指示されたソフトウェアソースコードと、差分情報とをソースコードDB220にアップデートする(ステップS302)。差分情報は、変更前のソースコードと変更後のソースコード(アップデートされたソフトウェアソースコード)との差分情報である。
The
なお、差分情報は、例えば、データサーバ201において作成されてもよく、また、編集端末202において作成されてもよい。変更前のソースコード(一世代前のソフトウェアソースコード)は、例えば、ソースコードDB220に記憶されている。
The difference information may be created, for example, in the
データサーバ201は、アップデートされたソフトウェアソースコードと差分情報とに基づいて、テストカバレッジ更新処理を実行する(ステップS303)。テストカバレッジ更新処理は、例えば、最新のテストカバレッジ情報を更新して、変更後のソースコードについてのテストカバレッジ情報を生成する処理である。なお、テストカバレッジ更新処理の具体的な処理手順については、図17および図18を用いて後述する。
The
データサーバ201は、更新後のテストカバレッジ情報をテストカバレッジDB240にアップデートする(ステップS304)。
The
これにより、テスト実行することなく、変更後のソースコード(アップデートされたソフトウェアソースコード)についてのテストカバレッジ情報を生成することができる。 This makes it possible to generate test coverage information about the modified source code (updated software source code) without executing the test.
図4は、テスト実行機能に関するデータサーバ201の動作例を示すシーケンス図である。図4のシーケンス図において、データサーバ201は、編集端末202からテストケースのアップデート指示を受け付ける(ステップS401)。
FIG. 4 is a sequence diagram showing an operation example of the
データサーバ201は、アップデート指示されたテストケースをテストケースDB230にアップデートする(ステップS402)。データサーバ201は、アップデートされたテストケースを用いて、図3に示したステップS302においてアップデートされたソフトウェアソースコードのテストを実行する(ステップS403)。
The
データサーバ201は、実行したテストの結果に基づいて、テストカバレッジ情報を算出する(ステップS404)。なお、テストカバレッジ情報は、例えば、gcov、LCOVなどのカバレッジ測定ツールを用いて算出される。データサーバ301は、算出したテストカバレッジ情報をテストカバレッジDB240にアップデートする(ステップS405)。
The
これにより、アップデートされたテストケースを用いて、ソフトウェアソースコードのテストを実行して、テストカバレッジ情報を更新することができる。 This allows you to perform tests on your software source code and update test coverage information using the updated test cases.
図5は、全テスト実行機能に関するデータサーバ201の動作例を示すシーケンス図である。図5のシーケンス図において、データサーバ201は、編集端末202からテスト実行指示を受け付ける(ステップS501)。データサーバ201は、テストケースDB230に記憶されたすべてのテストケースを用いて、ソフトウェアソースコードのテストを実行する(ステップS502)。
FIG. 5 is a sequence diagram showing an operation example of the
データサーバ201は、実行したテストの結果に基づいて、テストカバレッジ情報を算出する(ステップS503)。データサーバ301は、算出したテストカバレッジ情報をテストカバレッジDB240にアップデートする(ステップS504)。
The
これにより、テストケースDB230にあるすべてのテストケースを用いて、ソフトウェアソースコードのテストを実行して、テストカバレッジ情報を更新することができる。
Thereby, all the test cases in the
図6は、テストカバレッジ情報閲覧機能に関するデータサーバ201の動作例を示すシーケンス図である。図6のシーケンス図において、データサーバ201は、閲覧端末203から閲覧指示を受け付ける(ステップS601)。データサーバ201は、ソースコードDB220から最新のソフトウェアソースコードを取得する(ステップS602)。
FIG. 6 is a sequence diagram showing an operation example of the
データサーバ201は、テストカバレッジDB240からテストカバレッジ情報を取得する(ステップS603)。データサーバ201は、取得したソフトウェアソースコードと、取得したテストカバレッジ情報とを可視化して閲覧端末203に出力する(ステップS604)。
The
これにより、技術者やプロジェクト管理者は、ソフトウェアソースコードに対応するテストカバレッジ情報を閲覧することができる。 This allows engineers and project managers to view the test coverage information that corresponds to the software source code.
(データサーバ201のハードウェア構成例)
つぎに、データサーバ201のハードウェア構成例について説明する。
(Hardware configuration example of data server 201)
Next, a hardware configuration example of the
図7は、データサーバ201のハードウェア構成例を示すブロック図である。図7において、データサーバ201は、CPU(Central Processing Unit)701と、メモリ702と、ディスクドライブ703と、ディスク704と、通信I/F(Interface)705と、可搬型記録媒体I/F706と、可搬型記録媒体707と、を有する。また、各構成部は、バス700によってそれぞれ接続される。
FIG. 7 is a block diagram showing a hardware configuration example of the
ここで、CPU701は、データサーバ201の全体の制御を司る。CPU701は、複数のコアを有していてもよい。メモリ702は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMがOS(Operating System)のプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU701のワークエリアとして使用される。メモリ702に記憶されるプログラムは、CPU701にロードされることで、コーディングされている処理をCPU701に実行させる。
Here, the
ディスクドライブ703は、CPU701の制御に従ってディスク704に対するデータのリード/ライトを制御する。ディスク704は、ディスクドライブ703の制御で書き込まれたデータを記憶する。ディスク704としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
The
通信I/F705は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して外部のコンピュータ(例えば、図2に示した編集端末202、閲覧端末203)に接続される。そして、通信I/F705は、ネットワーク210と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。通信I/F705には、例えば、モデムやLANアダプタなどを採用することができる。
The communication I /
可搬型記録媒体I/F706は、CPU701の制御に従って可搬型記録媒体707に対するデータのリード/ライトを制御する。可搬型記録媒体707は、可搬型記録媒体I/F706の制御で書き込まれたデータを記憶する。可搬型記録媒体707としては、例えば、CD(Compact Disc)-ROM、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリなどが挙げられる。
The portable recording medium I / F706 controls data read / write to the
なお、データサーバ201は、上述した構成部のほかに、例えば、SSD(Solid State Drive)、入力装置、ディスプレイ等を有することにしてもよい。また、データサーバ201は、上述した構成部のうち、例えば、ディスクドライブ703、ディスク704、可搬型記録媒体I/F706、可搬型記録媒体707を有していなくてもよい。また、図2に示した編集端末202、閲覧端末203についても、データサーバ201と同様のハードウェア構成により実現することができる。ただし、編集端末202、閲覧端末203は、上述した構成部のほかに、例えば、入力装置、ディスプレイ等を有する。
In addition to the above-mentioned components, the
(ソフトウェアソースコードの具体例)
つぎに、図8Aおよび図8Bを用いて、ソフトウェアソースコードの具体例について説明する。
(Specific example of software source code)
Next, a specific example of the software source code will be described with reference to FIGS. 8A and 8B.
図8Aおよび図8Bは、ソフトウェアソースコードの具体例を示す説明図である。図8Aにおいて、ソフトウェアソースコード810は、ソフトウェアSWの変更前のソースコードの一例である。図8Bにおいて、ソフトウェアソースコード820は、ソフトウェアSWの変更後のソースコードの一例である。
8A and 8B are explanatory views showing specific examples of software source code. In FIG. 8A, the
(差分情報の具体例)
つぎに、図9を用いて、変更前後のソースコードの差分情報の具体例について説明する。差分情報は、例えば、ソースコードが変更された際に、既存の差分抽出ツール等を用いて、変更前のソースコードと変更後のソースコードとから作成される。ここでは、図8Aおよび図8Bに示したソフトウェアソースコード810,820を例に挙げて、変更前後のソースコードの差分情報の具体例について説明する。
(Specific example of difference information)
Next, a specific example of the difference information of the source code before and after the change will be described with reference to FIG. The difference information is created from the source code before the change and the source code after the change, for example, when the source code is changed, using an existing difference extraction tool or the like. Here, a specific example of the difference information of the source code before and after the change will be described by taking the
図9は、変更前後のソースコードの差分情報の具体例を示す説明図である。図9において、差分情報900は、図8Aに示したソフトウェアソースコード810(変更前のソースコード)と、図8Bに示したソフトウェアソースコード820(変更後のソースコード)との差分を示す。「main.c」は、ソースコードファイル名である。
FIG. 9 is an explanatory diagram showing a specific example of the difference information of the source code before and after the change. In FIG. 9, the
差分情報900において、左側の数字は、変更前のソースコードにおける行番号を示す。右側の数字は、変更後のソースコードにおける行番号を示す。点線枠901,903は、変更前後において削除された行を示す。実線枠902は、変更前後において追加された行(変更された行、新規に追加された行)を示す。
In the
(テストカバレッジ情報更新リスト1000の記憶内容)
つぎに、データサーバ201が用いるテストカバレッジ情報更新リスト1000の記憶内容について説明する。テストカバレッジ情報更新リスト1000は、例えば、図7に示したメモリ702、ディスク704などの記憶装置により実現される。
(Memory contents of test coverage information update list 1000)
Next, the stored contents of the test coverage
図10は、テストカバレッジ情報更新リスト1000の記憶内容の一例を示す説明図である。図10において、テストカバレッジ情報更新リスト1000は、ID、ソースコードファイル名、関数/メソッド名およびテストカバレッジ情報初期化フラグのフィールドを有し、各フィールドに情報を設定することで、関数/メソッド情報1000-1~1000-4をレコードとして記憶する。
FIG. 10 is an explanatory diagram showing an example of the stored contents of the test coverage
ここで、IDは、関数/メソッド情報を一意に識別する識別子である。ソースコードファイル名は、ソースコードファイル(変更後のソースコード)のファイル名を示す。関数/メソッド名は、ソースコードファイル(変更後のソースコード)から抽出された関数/メソッド名を示す。 Here, the ID is an identifier that uniquely identifies the function / method information. The source code file name indicates the file name of the source code file (changed source code). The function / method name indicates the function / method name extracted from the source code file (changed source code).
テストカバレッジ情報初期化フラグは、関数/メソッド名に対応するカバレッジ情報を初期化(テスト未実施状態)するか否かを示す。ここでは、テストカバレッジ情報初期化フラグ「False」は、カバレッジ情報を初期化しないことを示す。テストカバレッジ情報初期化フラグ「True」は、カバレッジ情報を初期化することを示す。 The test coverage information initialization flag indicates whether or not to initialize the coverage information corresponding to the function / method name (test not executed state). Here, the test coverage information initialization flag "False" indicates that the coverage information is not initialized. The test coverage information initialization flag "True" indicates that the coverage information is initialized.
(データサーバ201の機能的構成例)
図11は、データサーバ201の機能的構成例を示すブロック図である。図11において、データサーバ201は、抽出部1101と、判定部1102と、生成部1103と、出力部1104と、を含む。抽出部1101~出力部1104は制御部となる機能であり、具体的には、例えば、図7に示したメモリ702、ディスク704、可搬型記録媒体707などの記憶装置に記憶されたプログラムをCPU701に実行させることにより、または、通信I/F705により、その機能を実現する。各機能部の処理結果は、例えば、メモリ702、ディスク704などの記憶装置に記憶される。
(Example of functional configuration of data server 201)
FIG. 11 is a block diagram showing a functional configuration example of the
抽出部1101は、ソフトウェアSWの変更後のソースコードsc2から関数またはメソッドを抽出する。具体的には、例えば、抽出部1101は、ソフトウェアソースコードがソースコードDB220にアップデートされた場合に、アップデートされたソフトウェアソースコードから関数またはメソッド名を抽出する。
The
この際、抽出部1101は、例えば、ソフトウェアソースコードに含まれるすべての関数またはメソッド名を抽出してもよく、また、特定の関数やメソッドを抽出対象から除外してもよい。抽出された抽出結果は、例えば、図10に示したようなテストカバレッジ情報更新リスト1000に記憶される。
At this time, the
例えば、アップデートされたソフトウェアソースコード(変更後のソースコード)を、図8Bに示したソフトウェアソースコード820とする。この場合、抽出部1101は、ソフトウェアソースコード820から関数またはメソッド名を抽出する。図8Bの例では、func_a(),func_b(),func_c(),main()が抽出される。ただし、printf(標準ライブラリ関数)は、抽出対象から除外する。また、関数またはメソッド名は、どのような順序で抽出することにしてもよい。
For example, the updated software source code (changed source code) is the
そして、抽出部1101は、抽出した関数を、ソフトウェアソースコード820のソースコードファイル名と対応付けて、テストカバレッジ情報更新リスト1000に記憶する。この際、IDが採番される。この結果、関数/メソッド情報1000-1~1000-4が新たなレコードとして登録される。テストカバレッジ情報初期化フラグは、初期状態では「False」である。
Then, the
判定部1102は、ソフトウェアSWの変更前のソースコードsc1と変更後のソースコードsc2との差分情報dfに基づいて、抽出された関数内またはメソッド内に変更箇所があるか否かを判定する。具体的には、例えば、判定部1102は、抽出された関数内またはメソッド内に変更行、新規追加行および削除行の少なくともいずれかが含まれる場合に、関数内またはメソッド内に変更箇所があると判定する。
The
また、判定部1102は、抽出された関数内またはメソッド内に変更行または削除行が含まれる場合、変更行または削除行に、関数またはメソッドの呼び出し箇所があるか否かを判定する。例えば、抽出された関数内に「func_A()」から「func_B()」に変更された行が含まれるとする。
Further, when the changed line or the deleted line is included in the extracted function or the method, the
この場合、判定部1102は、抽出された関数内に変更行が含まれるため、変更行に関数の呼び出し箇所があるか否かを判定する。ここでは、func_B()の呼び出しが含まれるため、判定部1102は、関数の呼び出し箇所があると判定する。判定された判定結果は、例えば、テストカバレッジ情報更新リスト1000に記憶される。
In this case, since the changed line is included in the extracted function, the
より詳細に説明すると、例えば、判定部1102は、ソースコードDB220からソフトウェアソースコード820とともにアップデートされた差分情報を取得する。ここでは、ソフトウェアソースコード820とともにアップデートされた差分情報を、図9に示した差分情報900とする。この場合、判定部1102は、差分情報900を参照して、抽出した各関数内に変更箇所があるか否かを判定する。
More specifically, for example, the
ここで、図12を用いて、テストカバレッジ情報更新リスト1000の更新例について説明する。
Here, an example of updating the test coverage
図12は、テストカバレッジ情報更新リスト1000の更新例を示す説明図である。例えば、func_a()の場合、削除行、変更行および新規追加行が含まれるため、判定部1102は、func_a()内に変更箇所があると判定する。削除行は、変更前の行番号「4」の行(図9中、点線枠901)である。変更行は、図9中、実線枠902内の変更後の行番号「4」の行である。新規追加行は、図9中、実線枠902内の変更後の行番号「5~9」の行である。判定部1102は、func_a()内に変更箇所があると判定した場合、テストカバレッジ情報更新リスト1000内のfunc_a()に対応する関数/メソッド情報1000-2のテストカバレッジ情報初期化フラグを「True」に変更する。
FIG. 12 is an explanatory diagram showing an update example of the test coverage
また、func_b()の場合、削除行が含まれるため、判定部1102は、func_b()内に変更箇所があると判定する。削除行は、変更前の行番号「9」の行(図9中、点線枠903)である。判定部1102は、func_b()内に変更箇所があると判定した場合、テストカバレッジ情報更新リスト1000内のfunc_b()に対応する関数/メソッド情報1000-3のテストカバレッジ情報初期化フラグを「True」に変更する。また、変更前の行番号「9」の削除行には、func_c()が含まれる。このため、判定部1102は、削除行に関数の呼び出し箇所が含まれると判定する。
Further, in the case of func_b (), since the deleted line is included, the
この場合、判定部1102は、テストカバレッジ情報更新リスト1000内の呼び出し先の関数であるfunc_c()に対応する関数/メソッド情報1000-4のテストカバレッジ情報初期化フラグを「True」に変更する。なお、呼び出し先の関数内に関数の呼び出し箇所がある場合、さらに、その呼び出し先の関数に対応するテストカバレッジ情報初期化フラグが「True」に変更される。
In this case, the
また、func_c()の場合、変更行、新規追加行および削除行のいずれも含まれないため、判定部1102は、func_c()内に変更箇所がないと判定する。この場合、判定部1102は、テストカバレッジ情報更新リスト1000内のfunc_c()に対応する関数/メソッド情報1000-4のテストカバレッジ情報初期化フラグは変更しない。ただし、func_c()は、func_b()内の削除行に含まれるため、func_c()に対応するテストカバレッジ情報初期化フラグは「True」に変更されている。
Further, in the case of func_c (), since none of the changed line, the newly added line, and the deleted line is included, the
また、main()の場合、変更行、新規追加行および削除行のいずれも含まれないため、判定部1102は、main()内に変更箇所がないと判定する。この場合、判定部1102は、テストカバレッジ情報更新リスト1000内のmain()に対応する関数/メソッド情報1000-1のテストカバレッジ情報初期化フラグは変更しない。
Further, in the case of main (), since none of the changed line, the newly added line, and the deleted line is included, the
生成部1103は、抽出された関数内またはメソッド内に変更箇所があると判定された場合、変更前のソースコードsc1に対応する第1のテストカバレッジ情報cv1と差分情報dfとに基づいて、変更後のソースコードsc2に対応する第2のテストカバレッジ情報cv2を生成する。
When it is determined that there is a change in the extracted function or method, the
ここで、第1のテストカバレッジ情報cv1は、変更前のソースコードsc1についてのテストカバレッジを特定可能な情報である。また、第2のテストカバレッジ情報cv2は、変更後のソースコードsc2についてのテストカバレッジを特定可能な情報である。テストカバレッジは、所定の網羅条件(命令網羅、分岐網羅、条件網羅など)がテストによってどれだけ実行されたかを表すものである。 Here, the first test coverage information cv1 is information that can specify the test coverage of the source code sc1 before the change. Further, the second test coverage information cv2 is information that can specify the test coverage of the changed source code sc2. The test coverage indicates how much a predetermined coverage condition (instruction coverage, branch coverage, condition coverage, etc.) is executed by the test.
第2のテストカバレッジ情報cv2は、変更箇所があると判定された関数またはメソッドについて、テストが未実施状態であることを示す情報を含む。また、変更箇所である変更行または削除行に、関数またはメソッドの呼び出し箇所があると判定された場合、第2のテストカバレッジ情報cv2は、さらに、呼び出し先の関数またはメソッドについて、テストが未実施状態であることを示す情報を含む。 The second test coverage information cv2 includes information indicating that the test has not been executed for the function or method determined to have a change. Further, when it is determined that the changed line or the deleted line which is the changed part has the called part of the function or the method, the second test coverage information cv2 is further tested for the called function or the method. Contains information indicating that it is in a state.
具体的には、例えば、まず、生成部1103は、差分情報dfに基づいて、第1のテストカバレッジ情報cv1の行番号に対応する情報を更新する。この際、生成部1103は、変更により追加された行(変更行、新規追加行)の情報については、その行を通過していない(テスト未実施状態)ことを示す情報とすることにしてもよい。
Specifically, for example, first, the
つぎに、生成部1103は、変更箇所があると判定された関数内またはメソッド内のすべての行について、テストが未実施状態であることを示す情報に更新する。さらに、生成部1103は、変更箇所(変更行、削除行)に関数またはメソッドの呼び出し箇所があると判定された場合、呼び出し先の関数内またはメソッド内のすべての行について、テストが未実施状態であることを示す情報に更新する。
Next, the
これにより、変更後のソースコードsc2を対象としたテストを実行することなく、変更後のソースコードsc2に対応する第2のテストカバレッジ情報cv2を生成する。なお、第2のテストカバレッジ情報cv2の生成例については、図13、図14Aおよび図14Bを用いて後述する。 As a result, the second test coverage information cv2 corresponding to the changed source code sc2 is generated without executing the test for the changed source code sc2. An example of generating the second test coverage information cv2 will be described later with reference to FIGS. 13, 14A and 14B.
出力部1104は、生成された第2のテストカバレッジ情報cv2を出力する。出力部1104の出力形式としては、例えば、メモリ702、ディスク704などの記憶装置への記憶、通信I/F705による他のコンピュータへの送信、不図示のディスプレイへの表示、不図示のプリンタへの印刷出力などがある。
The
具体的には、例えば、出力部1104は、生成された第2のテストカバレッジ情報cv2を、変更後のソースコードsc2と対応付けて出力することにしてもよい。より詳細に説明すると、例えば、出力部1104は、閲覧端末203からの閲覧指示に応じて、ソースコードDB220から、閲覧指示に含まれるソースコードファイル名のソフトウェアソースコード(変更後のソースコードsc2)を取得する。
Specifically, for example, the
つぎに、出力部1104は、テストカバレッジDB240から、閲覧指示に含まれるソースコードファイル名に対応するテストカバレッジ情報(第2のテストカバレッジ情報cv2)を取得する。そして、出力部1104は、取得したソフトウェアソースコードと、取得したテストカバレッジ情報とを可視化して閲覧端末203に出力する。ソフトウェアソースコードとテストカバレッジ情報とを可視化して示す閲覧画面の画面例については、図15を用いて後述する。
Next, the
なお、上述したデータサーバ201が有する機能部は、例えば、情報処理システム200内の複数のコンピュータ(例えば、データサーバ201、編集端末202など)により実現されることにしてもよい。
The functional unit of the
(第2のテストカバレッジ情報cv2の生成例)
つぎに、図13、図14Aおよび図14Bを用いて、第2のテストカバレッジ情報cv2の生成例について説明する。
(Example of generating the second test coverage information cv2)
Next, an example of generating the second test coverage information cv2 will be described with reference to FIGS. 13, 14A and 14B.
図13は、テストカバレッジ情報の具体例を示す説明図である。図13において、テストカバレッジ情報1300は、変更前のソースコードsc1に対応する第1のテストカバレッジ情報cv1の一例である。ここでは、変更前のソースコードsc1を、ソフトウェアソースコード810とする。
FIG. 13 is an explanatory diagram showing a specific example of the test coverage information. In FIG. 13, the
テストカバレッジ情報1300は、ソースコードファイル名「main.c」と、行番号ごとのカバレッジ情報とを含む。カバレッジ情報は、lineとLine dataとを対応付けて示す。lineは、行番号を示す。Line dataは、ソフトウェア実行時(テスト実行時)に、該当行番号の行を通過(実行)したか否かを示すカバレッジ情報である。
The
ここで、Line data「1」は、該当行番号の行を通過(実行)したことを示す。また、Line data「0」は、該当行番号の行を通過(実行)していないことを示す。なお、Line dataが示されていない行は、カバレッジの範囲に含まない箇所である。 Here, Line data "1" indicates that the line of the corresponding line number has been passed (executed). Further, Line data "0" indicates that the line of the corresponding line number has not been passed (executed). The line where Line data is not shown is a part that is not included in the coverage range.
例えば、line「4」のLine data「1」は、ソースコードファイル名「main.c」のソフトウェアソースコード810のテスト実行時に、4行目を通過したこと、すなわち、func_a()内のprintf(“hello”)が実行されたことを示す。
For example, the line data "1" of the line "4" passed the fourth line when the test of the
図13に示すテストカバレッジ情報1300の例では、カバレッジ率は、100%(=6/6×100)である。カバレッジ率は、すべての実行可能命令(ステートメント)のうち、テストで実行された命令の割合を示す。なお、図示は省略するが、テストカバレッジ情報1300には、例えば、カバレッジ率を算出する対象範囲(カバレッジ率を算出する際の分母を特定する情報)や、分岐時にどのパスを通過したかなどの様々な情報が含まれる。
In the example of the
また、Line dataは、テストカバレッジ情報のパラメータの一例である。テストカバレッジ情報には、テストカバレッジに関連する他の情報も含まれていてもよい。他のパラメータとしては、例えば、分岐(if)で付与される情報がある。分岐の情報は、例えば、ブランチカバレッジを算出する際に用いられる。 In addition, Line data is an example of parameters of test coverage information. The test coverage information may also include other information related to test coverage. Other parameters include, for example, information given by branching (if). The branch information is used, for example, when calculating branch coverage.
つぎに、テストカバレッジ情報1300を更新して、変更後のソースコードsc2に対応する第2のテストカバレッジ情報cv2を生成する場合について説明する。ここでは、変更後のソースコードsc2を、ソフトウェアソースコード820とする。また、差分情報dfを、図9に示した差分情報900とする。
Next, a case where the
図14Aおよび図14Bは、テストカバレッジ情報の生成例を示す説明図である。図14Aにおいて、生成部1103は、差分情報900に基づいて、テストカバレッジ情報1300の行番号に対応する情報を更新する。ここでは、変更前の4行目と9行目が削除され、変更後の4~9行目が追加されたため、変更前の4行目以降の各行の行番号を更新する。
14A and 14B are explanatory views showing an example of generating test coverage information. In FIG. 14A, the
図14Aおよび図14Bでは、更新後のテストカバレッジ情報1300を「テストカバレッジ情報1400」と表記する。例えば、変更前の7行目の「void func_b() {」は、変更後の12行目に対応する。この際、生成部1103は、変更により追加された行(変更行、新規追加行)のカバレッジ情報については、その行を通過していない(テスト未実施状態)ことを示す情報とする。ここでは、4~8行目のLine dataが「0」となっている。
In FIGS. 14A and 14B, the updated
図14Bにおいて、生成部1103は、図12に示したテストカバレッジ情報更新リスト1000を参照して、テストカバレッジ情報初期化フラグが「True」の関数/メソッドに対して、関数/メソッド内のすべてのカバレッジ情報を初期化(Line data「0」)する。すなわち、ソフトウェアソースコード変更の影響を受ける箇所のテストの実施状況を、テスト未実施状態と同等のカバレッジ情報に更新する。
In FIG. 14B, the
ここでは、func_a()、func_b()およびfunc_c()内の行(4~8,13,17行目)のカバレッジ情報が初期化される。ただし、func_a()内の行(4~8行目)については、カバレッジ情報は初期化済みである。
Here, the coverage information of the lines (
これにより、ソフトウェアソースコード820(変更後のソースコードsc2)を対象としたテストを実行することなく、ソフトウェアソースコード820に対応するテストカバレッジ情報1400を生成することができる。図14Aに示すテストカバレッジ情報1300の例では、カバレッジ率は、22.2%(≒2/9×100)である。
As a result, the
なお、テストカバレッジ情報1400が生成された場合、生成部1103は、例えば、更新前のテストカバレッジ情報1300を破棄することにしてもよい。これにより、メモリ使用量を抑えることができる。
When the
(閲覧画面の画面例)
つぎに、図15を用いて、閲覧端末203に表示される閲覧画面の画面例について説明する。
(Screen example of browsing screen)
Next, a screen example of the browsing screen displayed on the
図15は、閲覧画面の画面例を示す説明図である。図15において、閲覧画面1500は、ソフトウェア開発に従事する技術者やプロジェクト管理者からの閲覧指示に応じて閲覧端末203に表示される画面の一例である。閲覧画面1500は、テストカバレッジ情報1400と、ソフトウェアソースコード820と、カバレッジ率とを含む。
FIG. 15 is an explanatory diagram showing a screen example of the browsing screen. In FIG. 15, the
閲覧画面1500によれば、技術者やプロジェクト管理者は、ソフトウェアソースコード820(変更後のソースコードsc2)に対応するテストカバレッジ情報1400(第2のテストカバレッジ情報cv2)を確認することができる。例えば、Line dataが「0」の行(4~8,13,17行目)がテスト未実施状態であり、これらの行を通過するテストケースを追加すべきであると判断することができる。また、ソフトウェアソースコード変更後にテストを実行することなくテストカバレッジの概算(カバレッジ率:22.2%)が得られるため、目標のカバレッジに対して必要なテスト工数を早期に見積もることができる。
According to the
なお、ソフトウェアSWが複数のソフトウェアソースコードから構成され、複数のソフトウェアソースコードがフォルダ形式で階層構造化されている場合、フォルダ単位でカバレッジを確認することができるようにしてもよい。これにより、例えば、機能ごとにフォルダが作成されていれば、機能ごとにカバレッジを確認することができる。 When the software SW is composed of a plurality of software source codes and the plurality of software source codes are hierarchically structured in a folder format, coverage may be confirmed for each folder. As a result, for example, if a folder is created for each function, coverage can be confirmed for each function.
(データサーバ201の動作例)
つぎに、図16を用いて、従来手法と比較しながら、本手法(テストカバレッジ更新方法)におけるソフトウェアソースコード変更時の動作例について説明する。
(Operation example of data server 201)
Next, with reference to FIG. 16, an operation example at the time of changing the software source code in this method (test coverage update method) will be described while comparing with the conventional method.
図16は、ソフトウェアソースコード変更時の動作例を示す説明図である。図16において、左側は、従来手法におけるソフトウェアソースコード変更時の動作を示す。また、右側は、本手法におけるソフトウェアソースコード変更時の動作を示す。 FIG. 16 is an explanatory diagram showing an operation example when the software source code is changed. In FIG. 16, the left side shows the operation when the software source code is changed in the conventional method. The right side shows the operation when the software source code is changed in this method.
従来手法では、ソフトウェアソースコードが変更されると、変更後のソフトウェアソースコードを対象としたすべてのテストが再実行され、テストの実行結果をもとにテストカバレッジ情報が新規作成される。変更前のソフトウェアソースコードに対応するテストカバレッジ情報は破棄される。ソフトウェア開発に従事する技術者やプロジェクト管理者は、新規作成されたテストカバレッジ情報をもとに、目標のカバレッジを満たすようにテストケースを更新する。このあと、更新後のテストケースを用いて、変更後のソフトウェアソースコードを対象としたテストが実行され、テストの実行結果をもとにテストカバレッジ情報が新規作成される。直前に作成されたテストカバレッジ情報は破棄される。このように、従来手法では、ソフトウェアソースコード変更時に、変更後のソフトウェアソースコードを対象としたテストが2回実行される。 In the conventional method, when the software source code is changed, all the tests targeting the changed software source code are re-executed, and new test coverage information is created based on the test execution result. The test coverage information corresponding to the software source code before the change is discarded. Engineers and project managers engaged in software development update test cases to meet the target coverage based on the newly created test coverage information. After that, using the updated test case, a test targeting the modified software source code is executed, and test coverage information is newly created based on the test execution result. The test coverage information created immediately before is discarded. As described above, in the conventional method, when the software source code is changed, the test for the changed software source code is executed twice.
本手法では、データサーバ201は、ソフトウェアソースコードが変更されると、最新のテストカバレッジ情報(変更前のソフトウェアソースコードに対応するテストカバレッジ情報)を更新して、変更後のソフトウェアソースコードに対応するテストカバレッジ情報を生成する。具体的には、例えば、データサーバ201は、変更後のソフトウェアソースコードから関数(または、メソッド)を抽出する。データサーバ201は、変更前後のソフトウェアソースコードの差分情報に基づいて、抽出した関数内に変更箇所があるか否かを判定する。データサーバ201は、変更箇所があると判定した場合、最新のテストカバレッジ情報と差分情報とに基づいて、変更後のソフトウェアソースコードに対応するテストカバレッジ情報を生成する。
In this method, when the software source code is changed, the
これにより、ソフトウェア開発に従事する技術者やプロジェクト管理者は、テスト実行することなく、本体コード修正後のテストカバレッジ情報の閲覧が可能となる。ソフトウェア開発に従事する技術者やプロジェクト管理者は、生成されたテストカバレッジ情報をもとに、目標のカバレッジを満たすようにテストケースを更新する。このあと、更新後のテストケースを用いて、変更後のソフトウェアソースコードを対象としたテストが実行され、テストの実行結果をもとにテストカバレッジ情報が新規作成される。直前に生成されたテストカバレッジ情報は破棄される。このように、本手法では、ソフトウェアソースコード変更時に、変更後のソフトウェアソースコードを対象としたテストは1回実行される。本手法では、カバレッジ予測のためのテスト実行が不要となるため、従来手法に比べて、全体のテスト実行回数を減らして、開発期間の短縮化につなげることができる。 As a result, engineers and project managers engaged in software development can view the test coverage information after modifying the main body code without executing the test. Engineers and project managers engaged in software development update test cases to meet the target coverage based on the generated test coverage information. After that, using the updated test case, a test targeting the modified software source code is executed, and test coverage information is newly created based on the test execution result. The test coverage information generated immediately before is discarded. As described above, in this method, when the software source code is changed, the test for the changed software source code is executed once. Since this method does not require test execution for coverage prediction, it is possible to reduce the total number of test executions and shorten the development period as compared with the conventional method.
(データサーバ201のテストカバレッジ更新処理手順)
つぎに、図17および図18を用いて、データサーバ201のテストカバレッジ更新処理の具体的な処理手順について説明する。
(Test coverage update processing procedure of data server 201)
Next, a specific processing procedure of the test coverage update processing of the
図17および図18は、データサーバ201のテストカバレッジ更新処理手順の一例を示すフローチャートである。図17のフローチャートにおいて、まず、データサーバ201は、ソフトウェアSWの変更後のソースコードsc2から関数/メソッド名を抽出する(ステップS1701)。
17 and 18 are flowcharts showing an example of the test coverage update processing procedure of the
変更後のソースコードsc2は、例えば、編集端末202またはソースコードDB220から取得される。関数/メソッド名は、関数またはメソッド名を示す。なお、抽出対象としては、例えば、関数だけに着目してもよいし、メソッド名だけに着目してもよいし、関数およびメソッド名の両方に着目してもよい。
The changed source code sc2 is obtained from, for example, the
そして、データサーバ201は、抽出した抽出結果に基づいて、テストカバレッジ情報更新リストを作成する(ステップS1702)。つぎに、データサーバ201は、作成したテストカバレッジ情報更新リストから選択されていない未選択の関数/メソッド情報を選択する(ステップS1703)。
Then, the
そして、データサーバ201は、ソフトウェアSWの変更前のソースコードsc1と変更後のソースコードsc2との差分情報dfに基づいて、選択した関数/メソッド情報の関数/メソッド内に変更箇所があるか否かを判定する(ステップS1704)。差分情報dfは、ソースコードDB220から取得される。ここで、変更箇所がない場合(ステップS1704:No)、データサーバ201は、ステップS1709に移行する。
Then, the
一方、変更箇所がある場合(ステップS1704:Yes)、データサーバ201は、選択した関数/メソッド情報のテストカバレッジ情報初期化フラグに「True」を設定する(ステップS1705)。なお、図17および図18では、テストカバレッジ情報初期化フラグを「初期化フラグ」と表記する。
On the other hand, when there is a change (step S1704: Yes), the
つぎに、データサーバ201は、変更箇所に変更行または削除行があるか否かを判定する(ステップS1706)。ここで、変更行または削除行がない場合(ステップS1706:No)、データサーバ201は、ステップS1709に移行する。一方、変更行または削除行がある場合(ステップS1706:Yes)、データサーバ201は、変更行または削除行に関数またはメソッドの呼び出し箇所があるか否かを判定する(ステップS1707)。
Next, the
ここで、呼び出し箇所がない場合(ステップS1707:No)、データサーバ201は、ステップS1709に移行する。一方、呼び出し箇所がある場合(ステップS1707:Yes)、データサーバ201は、テストカバレッジ情報更新リスト内の呼び出し先の関数またはメソッドに対応するテストカバレッジ情報初期化フラグに「True」を設定する(ステップS1708)。
Here, if there is no call location (step S1707: No), the
なお、呼び出し先の関数またはメソッドは、一つ先の関数やメソッドだけでなく、さらにその先以降の関数やメソッドを含む。すなわち、呼び出し先のスコープは、「呼び出し先のスコープ=先の関数/メソッド、先の先の関数/メソッド、先の先の先の関数/メソッド、・・・」となる。 It should be noted that the called function or method includes not only the function or method one ahead but also the function or method after that. That is, the scope of the call destination is "the scope of the call destination = the destination function / method, the destination function / method, the destination function / method, ...".
つぎに、データサーバ201は、テストカバレッジ情報更新リストから選択されていない未選択の関数/メソッド情報があるか否かを判断する(ステップS1709)。ここで、未選択の関数/メソッド情報がある場合(ステップS1709:Yes)、データサーバ201は、ステップS1703に戻る。
Next, the
一方、未選択の関数/メソッド情報がない場合(ステップS1709:No)、データサーバ201は、図18に示すステップS1801に移行する。
On the other hand, when there is no unselected function / method information (step S1709: No), the
図18のフローチャートにおいて、まず、データサーバ201は、差分情報dfに基づいて、変更前のソースコードsc1に対応するテストカバレッジ情報(第1のテストカバレッジ情報cv1)内のソースコード名と行番号とに対応する情報を更新する(ステップS1801)。第1のテストカバレッジ情報cv1は、テストカバレッジDB240から取得される。
In the flowchart of FIG. 18, first, the
つぎに、データサーバ201は、テストカバレッジ情報更新リストを参照して、テストカバレッジ情報初期化フラグ「True」の関数/メソッドのうち選択されていない未選択の関数/メソッドを選択する(ステップS1802)。そして、データサーバ201は、テストカバレッジ情報内の選択した関数/メソッドに対応する行番号のLine dataを「0」にする(ステップS1803)。
Next, the
なお、ここでは、テストカバレッジ情報として、Line dataというパラメータを例に挙げて説明したが、これに限らない。例えば、ステップS1803では、データサーバ201は、テストカバレッジに関連する他の情報(Line data以外のパラメータ)についてもあわせて更新する。
Here, as the test coverage information, a parameter called Line data has been described as an example, but the present invention is not limited to this. For example, in step S1803, the
つぎに、データサーバ201は、テストカバレッジ情報更新リストを参照して、テストカバレッジ情報初期化フラグ「True」の関数/メソッドのうち選択されていない未選択の関数/メソッドがあるか否かを判断する(ステップS1804)。ここで、未選択の関数/メソッドがある場合(ステップS1804:Yes)、データサーバ201は、ステップS1802に戻る。
Next, the
一方、未選択の関数/メソッドがない場合(ステップS1804:No)、データサーバ201は、テストカバレッジ情報更新リストを破棄して(ステップS1805)、本フローチャートによる一連の処理を終了する。
On the other hand, when there is no unselected function / method (step S1804: No), the
これにより、ソフトウェアソースコードの変更に応じて、テスト実行することなく、変更後のソースコードsc2に対応するテストカバレッジ情報(第2のテストカバレッジ情報cv2)を生成することができる。なお、変更後のソースコードsc2に対応するテストカバレッジ情報は、テストカバレッジDB240にアップデートされる。
Thereby, the test coverage information (second test coverage information cv2) corresponding to the changed source code sc2 can be generated according to the change of the software source code without executing the test. The test coverage information corresponding to the changed source code sc2 is updated to the
以上説明したように、実施の形態にかかるデータサーバ201(情報処理装置101)によれば、ソフトウェアSWの変更後のソースコードsc2から関数またはメソッドを抽出し、ソフトウェアSWの変更前のソースコードsc1と変更後のソースコードsc2との差分情報dfに基づいて、抽出した関数内またはメソッド内に変更箇所があるか否かを判定することができる。そして、データサーバ201(情報処理装置101)によれば、変更箇所があると判定した場合、変更前のソースコードsc1に対応する第1のテストカバレッジ情報cv1と差分情報dfとに基づいて、変更箇所がある関数またはメソッドについて、テストが未実施状態であることを示す情報を含む、変更後のソースコードsc2に対応する第2のテストカバレッジ情報cv2を生成することができる。 As described above, according to the data server 201 (information processing apparatus 101) according to the embodiment, the function or method is extracted from the source code sc2 after the software SW is changed, and the source code sc1 before the software SW is changed. Based on the difference information df between the changed source code sc2 and the changed source code sc2, it can be determined whether or not there is a change in the extracted function or method. Then, according to the data server 201 (information processing apparatus 101), when it is determined that there is a change, the change is made based on the first test coverage information cv1 and the difference information df corresponding to the source code sc1 before the change. It is possible to generate a second test coverage information cv2 corresponding to the modified source code sc2, which includes information indicating that the test has not been performed for the function or method in which the part is located.
これにより、ソフトウェアソースコード変更時に、テスト実行することなく、変更後のソフトウェアソースコードについてのテストカバレッジを把握することが可能となる。 As a result, when the software source code is changed, it is possible to grasp the test coverage of the changed software source code without executing the test.
具体的には、例えば、データサーバ201(情報処理装置101)は、差分情報dfに基づいて、第1のテストカバレッジ情報cv1の行番号に対応する情報を更新し、変更箇所がある関数内またはメソッド内の各行について、テストが未実施状態であることを示す情報とすることにより、第2のテストカバレッジ情報cv2を生成する。第1のテストカバレッジ情報cv1は、変更前のソースコードsc1の行番号と対応付けて、当該行番号の行についてテストを実施したか否かを示す情報を含む。 Specifically, for example, the data server 201 (information processing apparatus 101) updates the information corresponding to the line number of the first test coverage information cv1 based on the difference information df, and the information corresponding to the line number is updated in the function having the changed part or The second test coverage information cv2 is generated by making each row in the method information indicating that the test has not been executed. The first test coverage information cv1 includes information indicating whether or not a test has been performed on the line of the line number in association with the line number of the source code sc1 before the change.
これにより、ソフトウェアソースコード変更時に、変更箇所を含む関数やメソッドについてのカバレッジ情報を、テストが未実施状態であることを示すように初期化して、変更後のテストカバレッジ情報を生成することができる。 As a result, when the software source code is changed, the coverage information about the function or method including the changed part can be initialized to indicate that the test has not been executed, and the changed test coverage information can be generated. ..
また、データサーバ201(情報処理装置101)によれば、抽出した関数内またはメソッド内に変更行、新規追加行および削除行の少なくともいずれかが含まれる場合に、関数内またはメソッド内に変更箇所があると判定することができる。 Further, according to the data server 201 (information processing apparatus 101), when at least one of a changed line, a newly added line, and a deleted line is included in the extracted function or method, the changed part in the function or method. It can be determined that there is.
これにより、ソフトウェアソースコードの変更により、テストカバレッジに影響を与える可能性が高い箇所をピックアップすることができる。 This makes it possible to pick up points that are likely to affect test coverage due to changes in the software source code.
また、データサーバ201(情報処理装置101)によれば、抽出した関数内またはメソッド内に変更行または削除行が含まれる場合、その変更行または削除行に、関数またはメソッドの呼び出し箇所があるか否かを判定することができる。そして、データサーバ201(情報処理装置101)によれば、呼び出し箇所があると判定した場合、さらに、呼び出し先の関数またはメソッドについて、テストが未実施状態であることを示す情報を含む、第2のテストカバレッジ情報cv2を生成することができる。呼び出し先の関数またはメソッドは、一つ先の関数やメソッドだけでなく、さらにその先以降の関数やメソッドを含む。 Further, according to the data server 201 (information processing apparatus 101), if a changed line or a deleted line is included in the extracted function or method, does the changed line or deleted line have a call point of the function or method? It can be determined whether or not. Then, according to the data server 201 (information processing apparatus 101), when it is determined that there is a call location, the second function or method of the call destination includes information indicating that the test has not been executed yet. Test coverage information cv2 can be generated. The called function or method includes not only the function or method one ahead but also the function or method after that.
これにより、変更箇所に含まれる呼び出し先の関数やメソッドについても、テストカバレッジに影響を与える可能性が高い箇所としてピックアップして、カバレッジ情報を初期化することができる。 As a result, the called function or method included in the changed part can be picked up as a part that is likely to affect the test coverage, and the coverage information can be initialized.
また、データサーバ201(情報処理装置101)によれば、生成した第2のテストカバレッジ情報cv2を変更後のソースコードsc2と対応付けて出力することができる。 Further, according to the data server 201 (information processing apparatus 101), the generated second test coverage information cv2 can be output in association with the changed source code sc2.
これにより、ソフトウェア開発に従事する技術者やプロジェクト管理者は、変更後のソフトウェアソースコードに対応するテストカバレッジ情報を確認して、テストカバレッジがどの程度低下するかの概算を得ることができる。 This allows engineers and project managers engaged in software development to check the test coverage information corresponding to the modified software source code and obtain an estimate of how much the test coverage will be reduced.
これらのことから、実施の形態にかかるデータサーバ201(情報処理装置101)によれば、ソフトウェアソースコード変更時に、テストを実行することなく、テストカバレッジがどの程度低下するかの概算を得ることができる。これにより、ソフトウェア開発に従事する技術者やプロジェクト管理者は、目標のカバレッジに対して必要なテスト工数を見積もることが可能になる。 From these facts, according to the data server 201 (information processing apparatus 101) according to the embodiment, it is possible to obtain an estimate of how much the test coverage is lowered when the software source code is changed without executing the test. can. This allows engineers and project managers engaged in software development to estimate the test man-hours required for target coverage.
なお、本実施の形態で説明したテストカバレッジ更新方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本テストカバレッジ更新プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、DVD、USBメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本テストカバレッジ更新プログラムは、インターネット等のネットワークを介して配布してもよい。 The test coverage update method described in this embodiment can be realized by executing a program prepared in advance on a computer such as a personal computer or a workstation. This test coverage update program is recorded on a computer-readable recording medium such as a hard disk, flexible disk, CD-ROM, DVD, or USB memory, and is executed by being read from the recording medium by the computer. In addition, this test coverage update program may be distributed via a network such as the Internet.
また、本実施の形態で説明した情報処理装置101は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けICやFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。
Further, the
上述した実施の形態に関し、さらに以下の付記を開示する。 The following additional notes are further disclosed with respect to the above-described embodiment.
(付記1)ソフトウェアの変更後のソースコードから関数またはメソッドを抽出し、
前記ソフトウェアの変更前のソースコードと前記変更後のソースコードとの差分情報に基づいて、抽出した前記関数内または前記メソッド内に変更箇所があるか否かを判定し、
前記変更箇所があると判定した場合、前記変更前のソースコードに対応する第1のテストカバレッジ情報と前記差分情報とに基づいて、前記変更箇所がある関数またはメソッドについて、テストが未実施状態であることを示す情報を含む、前記変更後のソースコードに対応する第2のテストカバレッジ情報を生成する、
処理をコンピュータに実行させることを特徴とするテストカバレッジ更新プログラム。
(Appendix 1) Extract the function or method from the modified source code of the software.
Based on the difference information between the source code before the change and the source code after the change of the software, it is determined whether or not there is a change in the extracted function or method.
If it is determined that there is a change, the function or method with the change has not been tested based on the first test coverage information corresponding to the source code before the change and the difference information. Generate a second test coverage information corresponding to the modified source code, including information indicating that it is.
A test coverage update that lets a computer perform processing.
(付記2)前記判定する処理は、
前記抽出した関数内またはメソッド内に変更行、新規追加行および削除行の少なくともいずれかが含まれる場合に、前記関数内または前記メソッド内に変更箇所があると判定する、ことを特徴とする付記1に記載のテストカバレッジ更新プログラム。
(Appendix 2) The determination process is
Addendum characterized in that, when at least one of a changed line, a newly added line, and a deleted line is included in the extracted function or method, it is determined that there is a changed part in the function or the method. The test coverage update program described in 1.
(付記3)前記抽出した関数内またはメソッド内に変更行または削除行が含まれる場合、前記変更行または前記削除行に関数またはメソッドの呼び出し箇所があるか否かを判定する、
処理を前記コンピュータに実行させ、
前記生成する処理は、
前記呼び出し箇所があると判定した場合、さらに、呼び出し先の関数またはメソッドについて、テストが未実施状態であることを示す情報を含む、前記第2のテストカバレッジ情報を生成する、ことを特徴とする付記2に記載のテストカバレッジ更新プログラム。
(Appendix 3) When the changed line or the deleted line is included in the extracted function or the method, it is determined whether or not the changed line or the deleted line has a call point of the function or the method.
Let the computer perform the process
The process to be generated is
When it is determined that there is a call location, the second test coverage information including information indicating that the test has not been executed is generated for the called function or method. The test coverage update program described in
(付記4)生成した前記第2のテストカバレッジ情報を前記変更後のソースコードと対応付けて出力する、処理を前記コンピュータに実行させることを特徴とする付記1~3のいずれか一つに記載のテストカバレッジ更新プログラム。
(Appendix 4) Described in any one of the
(付記5)前記第1のテストカバレッジ情報は、前記変更前のソースコードについて、所定の網羅条件がテストによってどれだけ実行されたかを表す情報であり、
前記第2のテストカバレッジ情報は、前記変更後のソースコードについて、前記所定の網羅条件がテストによってどれだけ実行されたかを表す情報である、
ことを特徴とする付記1~4のいずれか一つに記載のテストカバレッジ更新プログラム。
(Appendix 5) The first test coverage information is information indicating how much a predetermined coverage condition is executed by the test for the source code before the change.
The second test coverage information is information indicating how much the predetermined coverage condition is executed by the test for the modified source code.
The test coverage update program according to any one of
(付記6)前記第1のテストカバレッジ情報は、前記変更前のソースコードの行番号と対応付けて、当該行番号の行についてテストを実施したか否かを示す情報を含み、
前記生成する処理は、
前記差分情報に基づいて、前記第1のテストカバレッジ情報の行番号に対応する情報を更新し、前記変更箇所がある関数内またはメソッド内の各行について、テストが未実施状態であることを示す情報とすることにより、前記第2のテストカバレッジ情報を生成する、ことを特徴とする付記1~5のいずれか一つに記載のテストカバレッジ更新プログラム。
(Appendix 6) The first test coverage information includes information indicating whether or not a test has been performed on the line of the line number in association with the line number of the source code before the change.
The process to be generated is
Information corresponding to the line number of the first test coverage information is updated based on the difference information, and information indicating that the test has not been executed for each line in the function or method in which the changed part is present. The test coverage update program according to any one of
(付記7)ソフトウェアの変更後のソースコードから関数またはメソッドを抽出し、
前記ソフトウェアの変更前のソースコードと前記変更後のソースコードとの差分情報に基づいて、抽出した前記関数内または前記メソッド内に変更箇所があるか否かを判定し、
前記変更箇所があると判定した場合、前記変更前のソースコードに対応する第1のテストカバレッジ情報と前記差分情報とに基づいて、前記変更箇所がある関数またはメソッドについて、テストが未実施状態であることを示す情報を含む、前記変更後のソースコードに対応する第2のテストカバレッジ情報を生成する、
処理をコンピュータが実行することを特徴とするテストカバレッジ更新方法。
(Appendix 7) Extract the function or method from the modified source code of the software.
Based on the difference information between the source code before the change and the source code after the change of the software, it is determined whether or not there is a change in the extracted function or method.
If it is determined that there is a change, the function or method with the change has not been tested based on the first test coverage information corresponding to the source code before the change and the difference information. Generate a second test coverage information corresponding to the modified source code, including information indicating that it is.
A test coverage update method characterized by the computer performing the process.
(付記8)ソフトウェアの変更後のソースコードから関数またはメソッドを抽出し、
前記ソフトウェアの変更前のソースコードと前記変更後のソースコードとの差分情報に基づいて、抽出した前記関数内または前記メソッド内に変更箇所があるか否かを判定し、
前記変更箇所があると判定した場合、前記変更前のソースコードに対応する第1のテストカバレッジ情報と前記差分情報とに基づいて、前記変更箇所がある関数またはメソッドについて、テストが未実施状態であることを示す情報を含む、前記変更後のソースコードに対応する第2のテストカバレッジ情報を生成する、
制御部を有することを特徴とする情報処理装置。
(Appendix 8) Extract the function or method from the modified source code of the software.
Based on the difference information between the source code before the change and the source code after the change of the software, it is determined whether or not there is a change in the extracted function or method.
If it is determined that there is a change, the function or method with the change has not been tested based on the first test coverage information corresponding to the source code before the change and the difference information. Generate a second test coverage information corresponding to the modified source code, including information indicating that it is.
An information processing device characterized by having a control unit.
101 情報処理装置
200 情報処理システム
201,301 データサーバ
202 編集端末
203 閲覧端末
210 ネットワーク
220 ソースコードDB
230 テストケースDB
240 テストカバレッジDB
700 バス
701 CPU
702 メモリ
703 ディスクドライブ
704 ディスク
705 通信I/F
706 可搬型記録媒体I/F
707 可搬型記録媒体
810,820 ソフトウェアソースコード
900 差分情報
901,903 点線枠
902 実線枠
1000 テストカバレッジ情報更新リスト
1101 抽出部
1102 判定部
1103 生成部
1104 出力部
1300,1400 テストカバレッジ情報
1500 閲覧画面
101
230 test case DB
240 test coverage DB
700
702
706 Portable recording medium I / F
707 Portable recording medium 810,820
Claims (6)
前記ソフトウェアの変更前のソースコードと前記変更後のソースコードとの差分情報に基づいて、抽出した前記関数内または前記メソッド内に変更箇所があるか否かを判定し、
前記変更箇所があると判定した場合、前記変更前のソースコードに対応する第1のテストカバレッジ情報と前記差分情報とに基づいて、前記変更箇所がある関数またはメソッドについて、テストが未実施状態であることを示す情報を含む、前記変更後のソースコードに対応する第2のテストカバレッジ情報を生成する、
処理をコンピュータに実行させることを特徴とするテストカバレッジ更新プログラム。 Extract a function or method from the modified source code of the software
Based on the difference information between the source code before the change and the source code after the change of the software, it is determined whether or not there is a change in the extracted function or method.
If it is determined that there is a change, the function or method with the change has not been tested based on the first test coverage information corresponding to the source code before the change and the difference information. Generate a second test coverage information corresponding to the modified source code, including information indicating that it is.
A test coverage update that lets a computer perform processing.
前記抽出した関数内またはメソッド内に変更行、新規追加行および削除行の少なくともいずれかが含まれる場合に、前記関数内または前記メソッド内に変更箇所があると判定する、ことを特徴とする請求項1に記載のテストカバレッジ更新プログラム。 The determination process is
A claim characterized in that, when at least one of a changed line, a newly added line, and a deleted line is included in the extracted function or method, it is determined that there is a changed part in the function or the method. The test coverage update program according to Item 1.
処理を前記コンピュータに実行させ、
前記生成する処理は、
前記呼び出し箇所があると判定した場合、さらに、呼び出し先の関数またはメソッドについて、テストが未実施状態であることを示す情報を含む、前記第2のテストカバレッジ情報を生成する、ことを特徴とする請求項2に記載のテストカバレッジ更新プログラム。 When the changed line or the deleted line is included in the extracted function or the method, it is determined whether or not the changed line or the deleted line has a call point of the function or the method.
Let the computer perform the process
The process to be generated is
When it is determined that there is a call location, the second test coverage information including information indicating that the test has not been executed is generated for the called function or method. The test coverage update program according to claim 2.
前記ソフトウェアの変更前のソースコードと前記変更後のソースコードとの差分情報に基づいて、抽出した前記関数内または前記メソッド内に変更箇所があるか否かを判定し、
前記変更箇所があると判定した場合、前記変更前のソースコードに対応する第1のテストカバレッジ情報と前記差分情報とに基づいて、前記変更箇所がある関数またはメソッドについて、テストが未実施状態であることを示す情報を含む、前記変更後のソースコードに対応する第2のテストカバレッジ情報を生成する、
処理をコンピュータが実行することを特徴とするテストカバレッジ更新方法。 Extract a function or method from the modified source code of the software
Based on the difference information between the source code before the change and the source code after the change of the software, it is determined whether or not there is a change in the extracted function or method.
If it is determined that there is a change, the function or method with the change has not been tested based on the first test coverage information corresponding to the source code before the change and the difference information. Generate a second test coverage information corresponding to the modified source code, including information indicating that it is.
A test coverage update method characterized by the computer performing the process.
前記ソフトウェアの変更前のソースコードと前記変更後のソースコードとの差分情報に基づいて、抽出した前記関数内または前記メソッド内に変更箇所があるか否かを判定し、
前記変更箇所があると判定した場合、前記変更前のソースコードに対応する第1のテストカバレッジ情報と前記差分情報とに基づいて、前記変更箇所がある関数またはメソッドについて、テストが未実施状態であることを示す情報を含む、前記変更後のソースコードに対応する第2のテストカバレッジ情報を生成する、
制御部を有することを特徴とする情報処理装置。 Extract a function or method from the modified source code of the software
Based on the difference information between the source code before the change and the source code after the change of the software, it is determined whether or not there is a change in the extracted function or method.
If it is determined that there is a change, the function or method with the change has not been tested based on the first test coverage information corresponding to the source code before the change and the difference information. Generate a second test coverage information corresponding to the modified source code, including information indicating that it is.
An information processing device characterized by having a control unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020177319A JP2022068566A (en) | 2020-10-22 | 2020-10-22 | Test coverage update program, test coverage update method, and information processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020177319A JP2022068566A (en) | 2020-10-22 | 2020-10-22 | Test coverage update program, test coverage update method, and information processing apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022068566A true JP2022068566A (en) | 2022-05-10 |
Family
ID=81459906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020177319A Pending JP2022068566A (en) | 2020-10-22 | 2020-10-22 | Test coverage update program, test coverage update method, and information processing apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2022068566A (en) |
-
2020
- 2020-10-22 JP JP2020177319A patent/JP2022068566A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8966449B2 (en) | Test case pattern matching | |
CN108959059B (en) | Test method and test platform | |
US9141521B2 (en) | Method and apparatus for automatically generating a test script for a graphical user interface | |
JP5767471B2 (en) | Apparatus and method for evaluating test completeness | |
CN103793324B (en) | The test device and test method and test scene combined method of embedded software | |
US8949672B1 (en) | Analyzing a dump file from a data storage device together with debug history to diagnose/resolve programming errors | |
CN111858371A (en) | Software testing method, system, storage medium and computer equipment | |
US20130212564A1 (en) | Code coverage rate determination method and system | |
US11544176B1 (en) | Systems and methods for automatically assessing and conforming software development modules to accessibility guidelines in real-time | |
CN114282752A (en) | Method and device for generating flow task, electronic equipment and storage medium | |
CN110413517A (en) | A kind of test report generation method, device, electronic equipment and storage medium | |
WO2017023299A1 (en) | Composing future tests | |
CN112817869A (en) | Test method, test device, test medium, and electronic apparatus | |
CN109977016A (en) | A kind of test triggering method, device and equipment and a kind of test macro | |
US9280627B1 (en) | GUI based verification at multiple abstraction levels | |
KR20150128711A (en) | Method and system for analyzing a trace timeline of computer system activity | |
JP2022068566A (en) | Test coverage update program, test coverage update method, and information processing apparatus | |
CN109019217B (en) | Elevator control software field debugging system | |
GB2397905A (en) | Method for automatically generating and ordering test scripts | |
KR101251792B1 (en) | Embedded Software Unit Test Automation Tool and Method Using Debugger | |
US8141039B2 (en) | Method and system for consolidating machine readable code | |
WO2012111167A1 (en) | Trace information acquisition method, computer system, and program | |
CN104517285A (en) | Method and system for diagnosing graphics display problems | |
JPH0934754A (en) | Instrument and method for measuring performance of program | |
JP2008262473A (en) | Equipment maintenance management system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7426 Effective date: 20201118 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20201118 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20220104 |