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 PDF

Info

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
Application number
JP2020177319A
Other languages
Japanese (ja)
Inventor
明彦 ▲高▼橋
Akihiko Takahashi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2020177319A priority Critical patent/JP2022068566A/en
Publication of JP2022068566A publication Critical patent/JP2022068566A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

To enable test coverage to be understood when changing a source code without running a test.SOLUTION: A data server extracts, when a software source code is changed, a function (or method) from the changed software source code. The data server determines whether or not there is a changed portion in the extracted function based on difference information of the software source code before and after the change. The data server generates, when determining that there is the changed portion, test coverage information corresponding to the changed software source code based on the latest test coverage information and the difference information.SELECTED DRAWING: Figure 16

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.

特開2015-88001号公報Japanese Unexamined Patent Publication No. 2015-88801 特開2000-267887号公報Japanese Unexamined Patent Publication No. 2000-267878

しかしながら、従来技術では、ソフトウェアソースコードの変更時に、テストカバレッジがどの程度低下するのか、再度テストを実施するまでわからないという問題がある。 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.

図1は、実施の形態にかかるテストカバレッジ更新方法の一実施例を示す説明図である。FIG. 1 is an explanatory diagram showing an embodiment of a test coverage update method according to an embodiment. 図2は、情報処理システム200のシステム構成例を示す説明図である。FIG. 2 is an explanatory diagram showing a system configuration example of the information processing system 200. 図3は、テストカバレッジ情報自動更新機能に関するデータサーバ201の動作例を示すシーケンス図である。FIG. 3 is a sequence diagram showing an operation example of the data server 201 related to the test coverage information automatic update function. 図4は、テスト実行機能に関するデータサーバ201の動作例を示すシーケンス図である。FIG. 4 is a sequence diagram showing an operation example of the data server 201 related to the test execution function. 図5は、全テスト実行機能に関するデータサーバ201の動作例を示すシーケンス図である。FIG. 5 is a sequence diagram showing an operation example of the data server 201 related to all test execution functions. 図6は、テストカバレッジ情報閲覧機能に関するデータサーバ201の動作例を示すシーケンス図である。FIG. 6 is a sequence diagram showing an operation example of the data server 201 related to the test coverage information browsing function. 図7は、データサーバ201のハードウェア構成例を示すブロック図である。FIG. 7 is a block diagram showing a hardware configuration example of the data server 201. 図8Aは、ソフトウェアソースコードの具体例を示す説明図(その1)である。FIG. 8A is an explanatory diagram (No. 1) showing a specific example of the software source code. 図8Bは、ソフトウェアソースコードの具体例を示す説明図(その2)である。FIG. 8B is an explanatory diagram (No. 2) showing a specific example of the software source code. 図9は、変更前後のソースコードの差分情報の具体例を示す説明図である。FIG. 9 is an explanatory diagram showing a specific example of the difference information of the source code before and after the change. 図10は、テストカバレッジ情報更新リスト1000の記憶内容の一例を示す説明図である。FIG. 10 is an explanatory diagram showing an example of the stored contents of the test coverage information update list 1000. 図11は、データサーバ201の機能的構成例を示すブロック図である。FIG. 11 is a block diagram showing a functional configuration example of the data server 201. 図12は、テストカバレッジ情報更新リスト1000の更新例を示す説明図である。FIG. 12 is an explanatory diagram showing an update example of the test coverage information update list 1000. 図13は、テストカバレッジ情報の具体例を示す説明図である。FIG. 13 is an explanatory diagram showing a specific example of the test coverage information. 図14Aは、テストカバレッジ情報の生成例を示す説明図(その1)である。FIG. 14A is an explanatory diagram (No. 1) showing an example of generating test coverage information. 図14Bは、テストカバレッジ情報の生成例を示す説明図(その2)である。FIG. 14B is an explanatory diagram (No. 2) showing an example of generating test coverage information. 図15は、閲覧画面の画面例を示す説明図である。FIG. 15 is an explanatory diagram showing a screen example of the browsing screen. 図16は、ソフトウェアソースコード変更時の動作例を示す説明図である。FIG. 16 is an explanatory diagram showing an operation example when the software source code is changed. 図17は、データサーバ201のテストカバレッジ更新処理手順の一例を示すフローチャート(その1)である。FIG. 17 is a flowchart (No. 1) showing an example of the test coverage update processing procedure of the data server 201. 図18は、データサーバ201のテストカバレッジ更新処理手順の一例を示すフローチャート(その2)である。FIG. 18 is a flowchart (No. 2) showing an example of the test coverage update processing procedure of the data server 201.

以下に図面を参照して、本発明にかかるテストカバレッジ更新プログラム、テストカバレッジ更新方法および情報処理装置の実施の形態を詳細に説明する。 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 information processing apparatus 101 is a computer that updates the test coverage information of the software SW when the source code of the software SW is changed. The software SW is a computer program to be developed, and describes instructions, procedures, and the like for operating the computer.

ソフトウェア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 information processing apparatus 101 will be described.

(1)情報処理装置101は、ソフトウェアSWの変更後のソースコードsc2から関数またはメソッドを抽出する。具体的には、例えば、情報処理装置101は、変更後のソースコードscに含まれるすべての関数またはメソッド名を抽出する。ただし、情報処理装置101は、例えば、特定の関数やメソッドを抽出対象から除外してもよい。 (1) The information processing apparatus 101 extracts a function or a method from the source code sc2 after the change of the software SW. Specifically, for example, the information processing apparatus 101 extracts all the function or method names included in the changed source code sc. However, the information processing apparatus 101 may exclude a specific function or method from the extraction target, for example.

(2)情報処理装置101は、ソフトウェアSWの変更前のソースコードsc1と変更後のソースコードsc2との差分情報dfに基づいて、抽出した関数内またはメソッド内に変更箇所があるか否かを判定する。ここで、差分情報dfは、変更前のソースコードsc1と変更後のソースコードsc2との差分を示す情報であり、例えば、変更前後において、変更された行、新規に追加された行、削除された行などを特定可能な情報である。 (2) The information processing apparatus 101 determines whether or not there is a change in the extracted function or method based on the difference information df between the source code sc1 before the change and the source code sc2 after the change of the software SW. judge. Here, the difference information df is information indicating the difference between the source code sc1 before the change and the source code sc2 after the change. For example, before and after the change, the changed line, the newly added line, and the deleted line are deleted. It is information that can identify the line.

具体的には、例えば、情報処理装置101は、抽出した関数内またはメソッド内に変更行、新規追加行および削除行の少なくともいずれかが含まれる場合に、関数内またはメソッド内に変更箇所があると判定する。変更行、新規追加行および削除行は、変更前のソースコードsc1と変更後のソースコードsc2との差分情報dfから特定される。 Specifically, for example, the information processing apparatus 101 has a changed part in a function or a method when at least one of a changed line, a newly added line, and a deleted line is included in the extracted function or the method. Is determined. The changed line, the newly added line, and the deleted line are specified from the difference information df between the source code sc1 before the change and the source code sc2 after the change.

(3)情報処理装置101は、変更箇所があると判定した場合、変更前のソースコードsc1に対応する第1のテストカバレッジ情報cv1と差分情報dfとに基づいて、変更後のソースコードsc2に対応する第2のテストカバレッジ情報cv2を生成する。第2のテストカバレッジ情報cv2は、変更箇所があると判定された関数またはメソッドについて、テストが未実施状態であることを示す情報を含む。 (3) When the information processing apparatus 101 determines that there is a change, the changed source code sc2 is based on the first test coverage information cv1 and the difference information df corresponding to the source code sc1 before the change. Generate the corresponding second test coverage information 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.

ここで、第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 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. Further, the information processing apparatus 101 indicates that the test has not been executed for all the rows in the function or the method (excluding the parts not included in the coverage) that are determined to have the changed parts. By using the information, the second test coverage information cv2 is generated. The unexecuted state of the test is a state in which the line with the corresponding line number is not passed (executed) when the software is executed (when the test is executed).

このように、情報処理装置101によれば、ソフトウェアソースコード変更時に、変更前のテストカバレッジ情報をもとに、変更箇所を含む関数やメソッドについての情報を、テストが未実施状態であることを示す情報に初期化して、変更後のテストカバレッジ情報を生成することができる。これにより、ソフトウェアソースコード変更時に、テスト実行することなく、変更後のソフトウェアソースコードについてのテストカバレッジを把握することが可能となる。 As described above, according to the information processing apparatus 101, when the software source code is changed, the test has not been executed for the information about the function or method including the changed part based on the test coverage information before the change. It can be initialized to the information shown to generate the modified test coverage information. 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.

(情報処理システム200のシステム構成例)
つぎに、図1に示した情報処理装置101を含む情報処理システム200のシステム構成例について説明する。以下の説明では、図1に示した情報処理装置101を、データサーバ201に適用した場合を例に挙げて説明する。情報処理システム200は、例えば、ソフトウェア開発を支援するサービスに適用される。
(System configuration example of information processing system 200)
Next, a system configuration example of the information processing system 200 including the information processing apparatus 101 shown in FIG. 1 will be described. In the following description, the case where the information processing apparatus 101 shown in FIG. 1 is applied to the data server 201 will be described as an example. The information processing system 200 is applied to, for example, a service that supports software development.

図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 information processing system 200. In FIG. 2, the information processing system 200 includes a data server 201, an editing terminal 202, and a browsing terminal 203. In the information processing system 200, the data server 201, the editing terminal 202, and the browsing terminal 203 are connected via a wired or wireless network 210. The network 210 is, for example, the Internet, a LAN, a WAN (Wide Area Network), or the like.

ここで、データサーバ201は、ソースコードDB(Database)220、テストケースDB230およびテストカバレッジDB240を有するコンピュータである。ソースコードDB220は、ソフトウェアソースコードを記憶する。ソフトウェアソースコードは、ソフトウェアSWのソースコードである。 Here, the data server 201 is a computer having a source code DB (Database) 220, a test case DB 230, and a test coverage DB 240. The source code DB 220 stores software source code. The software source code is the source code of the software SW.

例えば、ソースコードDB220には、各世代のソースコード(変更後のソースコード)と対応付けて、変更前のソースコードと変更後のソースコードとの差分情報が記憶される。ソフトウェアソースコードの具体例については、図8Aおよび図8Bを用いて後述する。差分情報の具体例については、図9を用いて後述する。 For example, the source code DB 220 stores the difference information between the source code before the change and the source code after the change in association with the source code of each generation (source code after the change). Specific examples of the software source code will be described later with reference to FIGS. 8A and 8B. A specific example of the difference information will be described later with reference to FIG.

テストケースDB230は、テストケースを記憶する。テストケースは、ソフトウェアソースコードテストを実施するためのプログラム(ソースコード)である。テストケースは、例えば、ソフトウェアのあるパス(実行経路)を通る動作を規定したプログラムである。例えば、テストケースDB230には、ソフトウェアソースコードと対応付けて、テストケースが記憶される。 The test case DB 230 stores the test case. A test case is a program (source code) for performing a software source code test. A test case is, for example, a program that defines an operation through a certain path (execution path) of software. For example, the test case DB 230 stores the test case in association with the software source code.

テストカバレッジDB240は、テストカバレッジ情報を記憶する。例えば、テストカバレッジDB240には、ソフトウェアソースコードとテストケースと対応付けて、テストカバレッジ情報が記憶される。テストカバレッジ情報の具体例については、図13を用いて後述する。 The test coverage DB 240 stores the test coverage information. For example, the test coverage DB 240 stores the test coverage information in association with the software source code and the test case. A specific example of the test coverage information will be described later with reference to FIG.

編集端末202は、ソフトウェア開発に従事する技術者が使用するコンピュータである。編集端末202において、技術者は、例えば、ソフトウェアソースコードを変更したり、テストケースを追加したり、テストを実行したりすることができる。編集端末202は、例えば、PC(Personal Computer)やタブレットPCなどである。 The editing terminal 202 is a computer used by an engineer engaged in software development. At the editing terminal 202, the technician can, for example, modify the software source code, add test cases, and execute tests. The editing terminal 202 is, for example, a PC (Personal Computer), a tablet PC, or the like.

閲覧端末203は、ソフトウェア開発に従事する技術者やプロジェクト管理者が使用するコンピュータである。閲覧端末203において、技術者やプロジェクト管理者は、例えば、ソフトウェアソースコードに対応するテストカバレッジ情報を閲覧することができる。閲覧端末203は、例えば、PCやタブレットPCなどである。 The browsing terminal 203 is a computer used by engineers and project managers engaged in software development. In the browsing terminal 203, the technician and the project manager can browse the test coverage information corresponding to the software source code, for example. The viewing terminal 203 is, for example, a PC or a tablet PC.

情報処理システム200において、データサーバ201は、例えば、テストカバレッジ情報自動更新機能、テスト実行機能、全テスト実行機能およびテストカバレッジ情報閲覧機能を有する。テストカバレッジ情報自動更新機能は、ソフトウェアソースコードの変更に応じて、テストカバレッジ情報を更新する機能である。 In the information processing system 200, the data server 201 has, for example, a test coverage information automatic update function, a test execution function, an all test execution function, and a test coverage information browsing function. The test coverage information automatic update function is a function that updates the test coverage information in response to a change in the software source code.

テスト実行機能は、特定のテストケースを用いて、ソフトウェアソースコードのテストを実行する機能である。全テスト実行機能は、ソフトウェアソースコードと対応付けてテストケース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 test case DB 230 in association with the software source code. The test coverage information browsing function is a function that visualizes and outputs test coverage information.

なお、各機能についてのデータサーバ201の動作例については、図3~図6を用いて後述する。また、図2の例では、データサーバ201を、編集端末202と閲覧端末203と別体に設けることにしたが、これに限らない。例えば、データサーバ201は、編集端末202または閲覧端末203により実現されることにしてもよい。 An operation example of the data server 201 for each function will be described later with reference to FIGS. 3 to 6. Further, in the example of FIG. 2, the data server 201 is provided separately from the editing terminal 202 and the viewing terminal 203, but the present invention is not limited to this. For example, the data server 201 may be realized by the editing terminal 202 or the viewing terminal 203.

(データサーバ201の動作例)
つぎに、図3~図6を用いて、テストカバレッジ情報自動更新機能、テスト実行機能、全テスト実行機能およびテストカバレッジ情報閲覧機能について、データサーバ201の動作例について説明する。
(Operation example of data server 201)
Next, an operation example of the data server 201 will be described with reference to FIGS. 3 to 6 regarding the test coverage information automatic update function, the test execution function, the all test execution function, and the test coverage information browsing function.

図3は、テストカバレッジ情報自動更新機能に関するデータサーバ201の動作例を示すシーケンス図である。図3のシーケンス図において、データサーバ201は、編集端末202からソフトウェアソースコードのアップデート指示を受け付ける(ステップS301)。 FIG. 3 is a sequence diagram showing an operation example of the data server 201 related to the test coverage information automatic update function. In the sequence diagram of FIG. 3, the data server 201 receives a software source code update instruction from the editing terminal 202 (step S301).

データサーバ201は、アップデート指示されたソフトウェアソースコードと、差分情報とをソースコードDB220にアップデートする(ステップS302)。差分情報は、変更前のソースコードと変更後のソースコード(アップデートされたソフトウェアソースコード)との差分情報である。 The data server 201 updates the software source code instructed to update and the difference information to the source code DB 220 (step S302). The difference information is the difference information between the source code before the change and the source code after the change (updated software source code).

なお、差分情報は、例えば、データサーバ201において作成されてもよく、また、編集端末202において作成されてもよい。変更前のソースコード(一世代前のソフトウェアソースコード)は、例えば、ソースコードDB220に記憶されている。 The difference information may be created, for example, in the data server 201 or in the editing terminal 202. The source code before the change (software source code one generation ago) is stored in, for example, the source code DB 220.

データサーバ201は、アップデートされたソフトウェアソースコードと差分情報とに基づいて、テストカバレッジ更新処理を実行する(ステップS303)。テストカバレッジ更新処理は、例えば、最新のテストカバレッジ情報を更新して、変更後のソースコードについてのテストカバレッジ情報を生成する処理である。なお、テストカバレッジ更新処理の具体的な処理手順については、図17および図18を用いて後述する。 The data server 201 executes the test coverage update process based on the updated software source code and the difference information (step S303). The test coverage update process is, for example, a process of updating the latest test coverage information and generating test coverage information about the changed source code. The specific processing procedure of the test coverage update process will be described later with reference to FIGS. 17 and 18.

データサーバ201は、更新後のテストカバレッジ情報をテストカバレッジDB240にアップデートする(ステップS304)。 The data server 201 updates the updated test coverage information to the test coverage DB 240 (step S304).

これにより、テスト実行することなく、変更後のソースコード(アップデートされたソフトウェアソースコード)についてのテストカバレッジ情報を生成することができる。 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 data server 201 related to the test execution function. In the sequence diagram of FIG. 4, the data server 201 receives a test case update instruction from the editing terminal 202 (step S401).

データサーバ201は、アップデート指示されたテストケースをテストケースDB230にアップデートする(ステップS402)。データサーバ201は、アップデートされたテストケースを用いて、図3に示したステップS302においてアップデートされたソフトウェアソースコードのテストを実行する(ステップS403)。 The data server 201 updates the test case instructed to be updated to the test case DB 230 (step S402). The data server 201 performs a test of the updated software source code in step S302 shown in FIG. 3 using the updated test case (step S403).

データサーバ201は、実行したテストの結果に基づいて、テストカバレッジ情報を算出する(ステップS404)。なお、テストカバレッジ情報は、例えば、gcov、LCOVなどのカバレッジ測定ツールを用いて算出される。データサーバ301は、算出したテストカバレッジ情報をテストカバレッジDB240にアップデートする(ステップS405)。 The data server 201 calculates the test coverage information based on the result of the executed test (step S404). The test coverage information is calculated using, for example, a coverage measurement tool such as gcov or LCOV. The data server 301 updates the calculated test coverage information to the test coverage DB 240 (step S405).

これにより、アップデートされたテストケースを用いて、ソフトウェアソースコードのテストを実行して、テストカバレッジ情報を更新することができる。 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 data server 201 related to all test execution functions. In the sequence diagram of FIG. 5, the data server 201 receives a test execution instruction from the editing terminal 202 (step S501). The data server 201 executes a software source code test using all the test cases stored in the test case DB 230 (step S502).

データサーバ201は、実行したテストの結果に基づいて、テストカバレッジ情報を算出する(ステップS503)。データサーバ301は、算出したテストカバレッジ情報をテストカバレッジDB240にアップデートする(ステップS504)。 The data server 201 calculates the test coverage information based on the result of the executed test (step S503). The data server 301 updates the calculated test coverage information to the test coverage DB 240 (step S504).

これにより、テストケースDB230にあるすべてのテストケースを用いて、ソフトウェアソースコードのテストを実行して、テストカバレッジ情報を更新することができる。 Thereby, all the test cases in the test case DB 230 can be used to execute the test of the software source code and update the test coverage information.

図6は、テストカバレッジ情報閲覧機能に関するデータサーバ201の動作例を示すシーケンス図である。図6のシーケンス図において、データサーバ201は、閲覧端末203から閲覧指示を受け付ける(ステップS601)。データサーバ201は、ソースコードDB220から最新のソフトウェアソースコードを取得する(ステップS602)。 FIG. 6 is a sequence diagram showing an operation example of the data server 201 related to the test coverage information browsing function. In the sequence diagram of FIG. 6, the data server 201 receives a browsing instruction from the browsing terminal 203 (step S601). The data server 201 acquires the latest software source code from the source code DB 220 (step S602).

データサーバ201は、テストカバレッジDB240からテストカバレッジ情報を取得する(ステップS603)。データサーバ201は、取得したソフトウェアソースコードと、取得したテストカバレッジ情報とを可視化して閲覧端末203に出力する(ステップS604)。 The data server 201 acquires the test coverage information from the test coverage DB 240 (step S603). The data server 201 visualizes the acquired software source code and the acquired test coverage information and outputs the acquired software source code to the browsing terminal 203 (step S604).

これにより、技術者やプロジェクト管理者は、ソフトウェアソースコードに対応するテストカバレッジ情報を閲覧することができる。 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 data server 201 will be described.

図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 data server 201. In FIG. 7, the data server 201 includes a CPU (Central Processing Unit) 701, a memory 702, a disk drive 703, a disk 704, a communication I / F (Interface) 705, and a portable recording medium I / F706. It has a portable recording medium 707. Further, each component is connected by a bus 700.

ここで、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 CPU 701 controls the entire data server 201. The CPU 701 may have a plurality of cores. The memory 702 includes, for example, a ROM (Read Only Memory), a RAM (Random Access Memory), a flash ROM, and the like. Specifically, for example, the flash ROM stores the OS (Operating System) program, the ROM stores the application program, and the RAM is used as the work area of the CPU 701. The program stored in the memory 702 is loaded into the CPU 701 to cause the CPU 701 to execute the coded process.

ディスクドライブ703は、CPU701の制御に従ってディスク704に対するデータのリード/ライトを制御する。ディスク704は、ディスクドライブ703の制御で書き込まれたデータを記憶する。ディスク704としては、例えば、磁気ディスク、光ディスクなどが挙げられる。 The disk drive 703 controls data read / write to the disk 704 according to the control of the CPU 701. The disk 704 stores data written under the control of the disk drive 703. Examples of the disk 704 include a magnetic disk and an optical disk.

通信I/F705は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して外部のコンピュータ(例えば、図2に示した編集端末202、閲覧端末203)に接続される。そして、通信I/F705は、ネットワーク210と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。通信I/F705には、例えば、モデムやLANアダプタなどを採用することができる。 The communication I / F 705 is connected to the network 210 through a communication line, and is connected to an external computer (for example, the editing terminal 202 and the viewing terminal 203 shown in FIG. 2) via the network 210. The communication I / F 705 controls the interface between the network 210 and the inside of the device, and controls the input / output of data from an external computer. For the communication I / F 705, for example, a modem, a LAN adapter, or the like can be adopted.

可搬型記録媒体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 portable recording medium 707 according to the control of the CPU 701. The portable recording medium 707 stores data written under the control of the portable recording medium I / F706. Examples of the portable recording medium 707 include a CD (Compact Disc) -ROM, a DVD (Digital Versaille Disc), and a USB (Universal Serial Bus) memory.

なお、データサーバ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 data server 201 may include, for example, an SSD (Solid State Drive), an input device, a display, and the like. Further, the data server 201 may not have, for example, a disk drive 703, a disk 704, a portable recording medium I / F706, and a portable recording medium 707 among the above-mentioned components. Further, the editing terminal 202 and the browsing terminal 203 shown in FIG. 2 can also be realized by the same hardware configuration as the data server 201. However, the editing terminal 202 and the viewing terminal 203 have, for example, an input device, a display, and the like, in addition to the above-mentioned components.

(ソフトウェアソースコードの具体例)
つぎに、図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 software source code 810 is an example of the source code before the change of the software SW. In FIG. 8B, the software source code 820 is an example of the source code after the software SW is changed.

(差分情報の具体例)
つぎに、図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 software source codes 810 and 820 shown in FIGS. 8A and 8B as examples.

図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 difference information 900 shows the difference between the software source code 810 (source code before the change) shown in FIG. 8A and the software source code 820 (source code after the change) shown in FIG. 8B. "Main.c" is a source code file name.

差分情報900において、左側の数字は、変更前のソースコードにおける行番号を示す。右側の数字は、変更後のソースコードにおける行番号を示す。点線枠901,903は、変更前後において削除された行を示す。実線枠902は、変更前後において追加された行(変更された行、新規に追加された行)を示す。 In the difference information 900, the number on the left side indicates the line number in the source code before the change. The numbers on the right indicate the line numbers in the modified source code. Dotted line frames 901 and 903 indicate lines deleted before and after the change. The solid line frame 902 indicates lines added before and after the change (changed lines, newly added lines).

(テストカバレッジ情報更新リスト1000の記憶内容)
つぎに、データサーバ201が用いるテストカバレッジ情報更新リスト1000の記憶内容について説明する。テストカバレッジ情報更新リスト1000は、例えば、図7に示したメモリ702、ディスク704などの記憶装置により実現される。
(Memory contents of test coverage information update list 1000)
Next, the stored contents of the test coverage information update list 1000 used by the data server 201 will be described. The test coverage information update list 1000 is realized by, for example, a storage device such as a memory 702 and a disk 704 shown in FIG. 7.

図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 information update list 1000. In FIG. 10, the test coverage information update list 1000 has fields of ID, source code file name, function / method name, and test coverage information initialization flag, and by setting information in each field, function / method information. Store 1000-1 to 1000-4 as records.

ここで、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 data server 201. In FIG. 11, the data server 201 includes an extraction unit 1101, a determination unit 1102, a generation unit 1103, and an output unit 1104. The extraction unit 1101 to the output unit 1104 are functions that serve as control units. Specifically, for example, a program stored in a storage device such as the memory 702, the disk 704, and the portable recording medium 707 shown in FIG. 7 is stored in the CPU 701. The function is realized by having the user execute the function or by using the communication I / F705. The processing result of each functional unit is stored in a storage device such as a memory 702 or a disk 704, for example.

抽出部1101は、ソフトウェアSWの変更後のソースコードsc2から関数またはメソッドを抽出する。具体的には、例えば、抽出部1101は、ソフトウェアソースコードがソースコードDB220にアップデートされた場合に、アップデートされたソフトウェアソースコードから関数またはメソッド名を抽出する。 The extraction unit 1101 extracts a function or a method from the source code sc2 after the change of the software SW. Specifically, for example, when the software source code is updated to the source code DB 220, the extraction unit 1101 extracts a function or a method name from the updated software source code.

この際、抽出部1101は、例えば、ソフトウェアソースコードに含まれるすべての関数またはメソッド名を抽出してもよく、また、特定の関数やメソッドを抽出対象から除外してもよい。抽出された抽出結果は、例えば、図10に示したようなテストカバレッジ情報更新リスト1000に記憶される。 At this time, the extraction unit 1101 may extract all the functions or method names included in the software source code, or may exclude specific functions or methods from the extraction target. The extracted extraction result is stored in the test coverage information update list 1000 as shown in FIG. 10, for example.

例えば、アップデートされたソフトウェアソースコード(変更後のソースコード)を、図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 software source code 820 shown in FIG. 8B. In this case, the extraction unit 1101 extracts the function or method name from the software source code 820. In the example of FIG. 8B, func_a (), func_b (), func_c (), and main () are extracted. However, printf (standard library function) is excluded from the extraction target. Further, the function or method names may be extracted in any order.

そして、抽出部1101は、抽出した関数を、ソフトウェアソースコード820のソースコードファイル名と対応付けて、テストカバレッジ情報更新リスト1000に記憶する。この際、IDが採番される。この結果、関数/メソッド情報1000-1~1000-4が新たなレコードとして登録される。テストカバレッジ情報初期化フラグは、初期状態では「False」である。 Then, the extraction unit 1101 stores the extracted function in the test coverage information update list 1000 in association with the source code file name of the software source code 820. At this time, the ID is numbered. As a result, the function / method information 1000-1 to 1000-4 are registered as new records. The test coverage information initialization flag is "False" in the initial state.

判定部1102は、ソフトウェアSWの変更前のソースコードsc1と変更後のソースコードsc2との差分情報dfに基づいて、抽出された関数内またはメソッド内に変更箇所があるか否かを判定する。具体的には、例えば、判定部1102は、抽出された関数内またはメソッド内に変更行、新規追加行および削除行の少なくともいずれかが含まれる場合に、関数内またはメソッド内に変更箇所があると判定する。 The determination unit 1102 determines whether or not there is a change in the extracted function or method based on the difference information df between the source code sc1 before the change and the source code sc2 after the change of the software SW. Specifically, for example, the determination unit 1102 has a changed part in the function or the method when at least one of the changed line, the newly added line and the deleted line is contained in the extracted function or the method. Is determined.

また、判定部1102は、抽出された関数内またはメソッド内に変更行または削除行が含まれる場合、変更行または削除行に、関数またはメソッドの呼び出し箇所があるか否かを判定する。例えば、抽出された関数内に「func_A()」から「func_B()」に変更された行が含まれるとする。 Further, when the changed line or the deleted line is included in the extracted function or the method, the determination unit 1102 determines whether or not the changed line or the deleted line has a call location of the function or the method. For example, suppose that the extracted function contains a line changed from "func_A ()" to "func_B ()".

この場合、判定部1102は、抽出された関数内に変更行が含まれるため、変更行に関数の呼び出し箇所があるか否かを判定する。ここでは、func_B()の呼び出しが含まれるため、判定部1102は、関数の呼び出し箇所があると判定する。判定された判定結果は、例えば、テストカバレッジ情報更新リスト1000に記憶される。 In this case, since the changed line is included in the extracted function, the determination unit 1102 determines whether or not the changed line has a call point of the function. Here, since the call of func_B () is included, the determination unit 1102 determines that there is a place to call the function. The determined determination result is stored in, for example, the test coverage information update list 1000.

より詳細に説明すると、例えば、判定部1102は、ソースコードDB220からソフトウェアソースコード820とともにアップデートされた差分情報を取得する。ここでは、ソフトウェアソースコード820とともにアップデートされた差分情報を、図9に示した差分情報900とする。この場合、判定部1102は、差分情報900を参照して、抽出した各関数内に変更箇所があるか否かを判定する。 More specifically, for example, the determination unit 1102 acquires the updated difference information together with the software source code 820 from the source code DB 220. Here, the difference information updated together with the software source code 820 is referred to as the difference information 900 shown in FIG. In this case, the determination unit 1102 refers to the difference information 900 and determines whether or not there is a change in each of the extracted functions.

ここで、図12を用いて、テストカバレッジ情報更新リスト1000の更新例について説明する。 Here, an example of updating the test coverage information update list 1000 will be described with reference to FIG.

図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 information update list 1000. For example, in the case of func_a (), since the deleted line, the changed line, and the newly added line are included, the determination unit 1102 determines that there is a changed part in the func_a (). The deleted line is the line with the line number “4” before the change (dotted line frame 901 in FIG. 9). The changed line is the line with the changed line number “4” in the solid line frame 902 in FIG. The newly added line is the line with the changed line number “5 to 9” in the solid line frame 902 in FIG. When the determination unit 1102 determines that there is a change in func_a (), the test coverage information initialization flag of the function / method information 1000-2 corresponding to func_a () in the test coverage information update list 1000 is set to "True". To change to.

また、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 determination unit 1102 determines that there is a changed part in func_b (). The deleted line is the line with the line number “9” before the change (dotted line frame 903 in FIG. 9). When the determination unit 1102 determines that there is a change in func_b (), the test coverage information initialization flag of the function / method information 1000-3 corresponding to func_b () in the test coverage information update list 1000 is set to "True". To change to. Further, the deleted line of the line number "9" before the change includes func_c (). Therefore, the determination unit 1102 determines that the deleted line includes the call location of the function.

この場合、判定部1102は、テストカバレッジ情報更新リスト1000内の呼び出し先の関数であるfunc_c()に対応する関数/メソッド情報1000-4のテストカバレッジ情報初期化フラグを「True」に変更する。なお、呼び出し先の関数内に関数の呼び出し箇所がある場合、さらに、その呼び出し先の関数に対応するテストカバレッジ情報初期化フラグが「True」に変更される。 In this case, the determination unit 1102 changes the test coverage information initialization flag of the function / method information 1000-4 corresponding to the called function func_c () in the test coverage information update list 1000 to "True". If there is a function call location in the called function, the test coverage information initialization flag corresponding to the called function is changed to "True".

また、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 determination unit 1102 determines that there is no changed part in the func_c (). In this case, the determination unit 1102 does not change the test coverage information initialization flag of the function / method information 1000-4 corresponding to func_c () in the test coverage information update list 1000. However, since func_c () is included in the deleted line in func_b (), the test coverage information initialization flag corresponding to func_c () is changed to "True".

また、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 determination unit 1102 determines that there is no changed part in the main (). In this case, the determination unit 1102 does not change the test coverage information initialization flag of the function / method information 1000-1 corresponding to the main () in the test coverage information update list 1000.

生成部1103は、抽出された関数内またはメソッド内に変更箇所があると判定された場合、変更前のソースコードsc1に対応する第1のテストカバレッジ情報cv1と差分情報dfとに基づいて、変更後のソースコードsc2に対応する第2のテストカバレッジ情報cv2を生成する。 When it is determined that there is a change in the extracted function or method, the generation unit 1103 changes based on the first test coverage information cv1 and the difference information df corresponding to the source code sc1 before the change. The second test coverage information cv2 corresponding to the later source code sc2 is generated.

ここで、第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 generation unit 1103 updates the information corresponding to the line number of the first test coverage information cv1 based on the difference information df. At this time, the generation unit 1103 may use the information of the row added by the change (changed row, newly added row) as information indicating that the row has not passed (test not executed state). good.

つぎに、生成部1103は、変更箇所があると判定された関数内またはメソッド内のすべての行について、テストが未実施状態であることを示す情報に更新する。さらに、生成部1103は、変更箇所(変更行、削除行)に関数またはメソッドの呼び出し箇所があると判定された場合、呼び出し先の関数内またはメソッド内のすべての行について、テストが未実施状態であることを示す情報に更新する。 Next, the generation unit 1103 updates all the rows in the function or the method determined to have the changed part with the information indicating that the test has not been executed. Further, when the generation unit 1103 determines that the changed part (changed line, deleted line) has a called part of the function or method, the test has not been executed for all the lines in the called function or method. Update to the information indicating that.

これにより、変更後のソースコード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 output unit 1104 outputs the generated second test coverage information cv2. The output format of the output unit 1104 includes, for example, storage in a storage device such as a memory 702 and a disk 704, transmission to another computer by communication I / F 705, display on a display (not shown), and printing to a printer (not shown). There is print output and so on.

具体的には、例えば、出力部1104は、生成された第2のテストカバレッジ情報cv2を、変更後のソースコードsc2と対応付けて出力することにしてもよい。より詳細に説明すると、例えば、出力部1104は、閲覧端末203からの閲覧指示に応じて、ソースコードDB220から、閲覧指示に含まれるソースコードファイル名のソフトウェアソースコード(変更後のソースコードsc2)を取得する。 Specifically, for example, the output unit 1104 may output the generated second test coverage information cv2 in association with the changed source code sc2. More specifically, for example, the output unit 1104 receives a browsing instruction from the browsing terminal 203 from the source code DB 220, and the software source code of the source code file name included in the browsing instruction (source code sc2 after the change). To get.

つぎに、出力部1104は、テストカバレッジDB240から、閲覧指示に含まれるソースコードファイル名に対応するテストカバレッジ情報(第2のテストカバレッジ情報cv2)を取得する。そして、出力部1104は、取得したソフトウェアソースコードと、取得したテストカバレッジ情報とを可視化して閲覧端末203に出力する。ソフトウェアソースコードとテストカバレッジ情報とを可視化して示す閲覧画面の画面例については、図15を用いて後述する。 Next, the output unit 1104 acquires the test coverage information (second test coverage information cv2) corresponding to the source code file name included in the browsing instruction from the test coverage DB 240. Then, the output unit 1104 visualizes the acquired software source code and the acquired test coverage information and outputs the acquired software source code to the viewing terminal 203. A screen example of the browsing screen that visualizes the software source code and the test coverage information will be described later with reference to FIG.

なお、上述したデータサーバ201が有する機能部は、例えば、情報処理システム200内の複数のコンピュータ(例えば、データサーバ201、編集端末202など)により実現されることにしてもよい。 The functional unit of the data server 201 described above may be realized by, for example, a plurality of computers in the information processing system 200 (for example, the data server 201, the editing terminal 202, etc.).

(第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 test coverage information 1300 is an example of the first test coverage information cv1 corresponding to the source code sc1 before the change. Here, the source code sc1 before the change is referred to as software source code 810.

テストカバレッジ情報1300は、ソースコードファイル名「main.c」と、行番号ごとのカバレッジ情報とを含む。カバレッジ情報は、lineとLine dataとを対応付けて示す。lineは、行番号を示す。Line dataは、ソフトウェア実行時(テスト実行時)に、該当行番号の行を通過(実行)したか否かを示すカバレッジ情報である。 The test coverage information 1300 includes a source code file name “main.c” and coverage information for each line number. The coverage information shows the line and the line data in association with each other. line indicates a line number. Line data is coverage information indicating whether or not the line of the corresponding line number has been passed (executed) when the software is executed (test execution time).

ここで、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 software source code 810 of the source code file name "main.c" was executed, that is, printf (that is, printf () in func_a (). "Hello") indicates that it has been executed.

図13に示すテストカバレッジ情報1300の例では、カバレッジ率は、100%(=6/6×100)である。カバレッジ率は、すべての実行可能命令(ステートメント)のうち、テストで実行された命令の割合を示す。なお、図示は省略するが、テストカバレッジ情報1300には、例えば、カバレッジ率を算出する対象範囲(カバレッジ率を算出する際の分母を特定する情報)や、分岐時にどのパスを通過したかなどの様々な情報が含まれる。 In the example of the test coverage information 1300 shown in FIG. 13, the coverage rate is 100% (= 6/6 × 100). The coverage rate indicates the percentage of all executable instructions (statements) that were executed in the test. Although not shown, the test coverage information 1300 includes, for example, a target range for calculating the coverage rate (information for specifying the denominator when calculating the coverage rate), which path was passed at the time of branching, and the like. Contains various information.

また、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 test coverage information 1300 is updated to generate the second test coverage information cv2 corresponding to the changed source code sc2 will be described. Here, the changed source code sc2 is referred to as software source code 820. Further, the difference information df is the difference information 900 shown in FIG.

図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 generation unit 1103 updates the information corresponding to the line number of the test coverage information 1300 based on the difference information 900. Here, since the 4th and 9th lines before the change are deleted and the 4th to 9th lines after the change are added, the line numbers of the 4th and subsequent lines before the change are updated.

図14Aおよび図14Bでは、更新後のテストカバレッジ情報1300を「テストカバレッジ情報1400」と表記する。例えば、変更前の7行目の「void func_b() {」は、変更後の12行目に対応する。この際、生成部1103は、変更により追加された行(変更行、新規追加行)のカバレッジ情報については、その行を通過していない(テスト未実施状態)ことを示す情報とする。ここでは、4~8行目のLine dataが「0」となっている。 In FIGS. 14A and 14B, the updated test coverage information 1300 is referred to as “test coverage information 1400”. For example, "voice func_b () {" on the 7th line before the change corresponds to the 12th line after the change. At this time, the generation unit 1103 uses the coverage information of the row added by the change (changed row, newly added row) as information indicating that the row has not passed (test not executed state). Here, Line data on the 4th to 8th lines is "0".

図14Bにおいて、生成部1103は、図12に示したテストカバレッジ情報更新リスト1000を参照して、テストカバレッジ情報初期化フラグが「True」の関数/メソッドに対して、関数/メソッド内のすべてのカバレッジ情報を初期化(Line data「0」)する。すなわち、ソフトウェアソースコード変更の影響を受ける箇所のテストの実施状況を、テスト未実施状態と同等のカバレッジ情報に更新する。 In FIG. 14B, the generation unit 1103 refers to the test coverage information update list 1000 shown in FIG. 12, and for the function / method whose test coverage information initialization flag is “True”, all the functions / methods in the function / method. Initialize the coverage information (Line data "0"). That is, the test execution status of the part affected by the software source code change is updated to the same coverage information as the test unexecuted state.

ここでは、func_a()、func_b()およびfunc_c()内の行(4~8,13,17行目)のカバレッジ情報が初期化される。ただし、func_a()内の行(4~8行目)については、カバレッジ情報は初期化済みである。 Here, the coverage information of the lines (lines 4 to 8, 13, and 17) in func_a (), func_b () and func_c () is initialized. However, the coverage information has already been initialized for the lines (4th to 8th lines) in func_a ().

これにより、ソフトウェアソースコード820(変更後のソースコードsc2)を対象としたテストを実行することなく、ソフトウェアソースコード820に対応するテストカバレッジ情報1400を生成することができる。図14Aに示すテストカバレッジ情報1300の例では、カバレッジ率は、22.2%(≒2/9×100)である。 As a result, the test coverage information 1400 corresponding to the software source code 820 can be generated without executing the test for the software source code 820 (changed source code sc2). In the example of the test coverage information 1300 shown in FIG. 14A, the coverage rate is 22.2% (≈2 / 9 × 100).

なお、テストカバレッジ情報1400が生成された場合、生成部1103は、例えば、更新前のテストカバレッジ情報1300を破棄することにしてもよい。これにより、メモリ使用量を抑えることができる。 When the test coverage information 1400 is generated, the generation unit 1103 may, for example, discard the test coverage information 1300 before the update. As a result, the memory usage can be suppressed.

(閲覧画面の画面例)
つぎに、図15を用いて、閲覧端末203に表示される閲覧画面の画面例について説明する。
(Screen example of browsing screen)
Next, a screen example of the browsing screen displayed on the browsing terminal 203 will be described with reference to FIG.

図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 browsing screen 1500 is an example of a screen displayed on the browsing terminal 203 in response to a browsing instruction from an engineer engaged in software development or a project manager. The browsing screen 1500 includes test coverage information 1400, software source code 820, and coverage rate.

閲覧画面1500によれば、技術者やプロジェクト管理者は、ソフトウェアソースコード820(変更後のソースコードsc2)に対応するテストカバレッジ情報1400(第2のテストカバレッジ情報cv2)を確認することができる。例えば、Line dataが「0」の行(4~8,13,17行目)がテスト未実施状態であり、これらの行を通過するテストケースを追加すべきであると判断することができる。また、ソフトウェアソースコード変更後にテストを実行することなくテストカバレッジの概算(カバレッジ率:22.2%)が得られるため、目標のカバレッジに対して必要なテスト工数を早期に見積もることができる。 According to the browsing screen 1500, the engineer or the project manager can confirm the test coverage information 1400 (second test coverage information cv2) corresponding to the software source code 820 (changed source code sc2). For example, it can be determined that the lines (lines 4 to 8, 13, and 17) where Line data is "0" are in the untested state, and a test case that passes through these lines should be added. In addition, since the approximate test coverage (coverage rate: 22.2%) can be obtained without executing the test after changing the software source code, the test man-hours required for the target coverage can be estimated at an early stage.

なお、ソフトウェア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 data server 201 updates the latest test coverage information (test coverage information corresponding to the software source code before the change) to correspond to the changed software source code. Generate test coverage information. Specifically, for example, the data server 201 extracts a function (or method) from the modified software source code. The data server 201 determines whether or not there is a change in the extracted function based on the difference information of the software source code before and after the change. When the data server 201 determines that there is a change, the data server 201 generates the test coverage information corresponding to the changed software source code based on the latest test coverage information and the difference information.

これにより、ソフトウェア開発に従事する技術者やプロジェクト管理者は、テスト実行することなく、本体コード修正後のテストカバレッジ情報の閲覧が可能となる。ソフトウェア開発に従事する技術者やプロジェクト管理者は、生成されたテストカバレッジ情報をもとに、目標のカバレッジを満たすようにテストケースを更新する。このあと、更新後のテストケースを用いて、変更後のソフトウェアソースコードを対象としたテストが実行され、テストの実行結果をもとにテストカバレッジ情報が新規作成される。直前に生成されたテストカバレッジ情報は破棄される。このように、本手法では、ソフトウェアソースコード変更時に、変更後のソフトウェアソースコードを対象としたテストは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 data server 201 will be described with reference to FIGS. 17 and 18.

図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 data server 201. In the flowchart of FIG. 17, first, the data server 201 extracts the function / method name from the source code sc2 after the change of the software SW (step S1701).

変更後のソースコードsc2は、例えば、編集端末202またはソースコードDB220から取得される。関数/メソッド名は、関数またはメソッド名を示す。なお、抽出対象としては、例えば、関数だけに着目してもよいし、メソッド名だけに着目してもよいし、関数およびメソッド名の両方に着目してもよい。 The changed source code sc2 is obtained from, for example, the editing terminal 202 or the source code DB 220. The function / method name indicates a function or method name. As the extraction target, for example, only the function may be focused on, only the method name may be focused on, or both the function and the method name may be focused on.

そして、データサーバ201は、抽出した抽出結果に基づいて、テストカバレッジ情報更新リストを作成する(ステップS1702)。つぎに、データサーバ201は、作成したテストカバレッジ情報更新リストから選択されていない未選択の関数/メソッド情報を選択する(ステップS1703)。 Then, the data server 201 creates a test coverage information update list based on the extracted extraction result (step S1702). Next, the data server 201 selects unselected function / method information that has not been selected from the created test coverage information update list (step S1703).

そして、データサーバ201は、ソフトウェアSWの変更前のソースコードsc1と変更後のソースコードsc2との差分情報dfに基づいて、選択した関数/メソッド情報の関数/メソッド内に変更箇所があるか否かを判定する(ステップS1704)。差分情報dfは、ソースコードDB220から取得される。ここで、変更箇所がない場合(ステップS1704:No)、データサーバ201は、ステップS1709に移行する。 Then, the data server 201 determines whether or not there is a change in the function / method of the selected function / method information based on the difference information df between the source code sc1 before the change of the software SW and the source code sc2 after the change. (Step S1704). The difference information df is acquired from the source code DB 220. Here, if there is no change (step S1704: No), the data server 201 proceeds to step S1709.

一方、変更箇所がある場合(ステップS1704:Yes)、データサーバ201は、選択した関数/メソッド情報のテストカバレッジ情報初期化フラグに「True」を設定する(ステップS1705)。なお、図17および図18では、テストカバレッジ情報初期化フラグを「初期化フラグ」と表記する。 On the other hand, when there is a change (step S1704: Yes), the data server 201 sets "True" in the test coverage information initialization flag of the selected function / method information (step S1705). In FIGS. 17 and 18, the test coverage information initialization flag is referred to as an “initialization flag”.

つぎに、データサーバ201は、変更箇所に変更行または削除行があるか否かを判定する(ステップS1706)。ここで、変更行または削除行がない場合(ステップS1706:No)、データサーバ201は、ステップS1709に移行する。一方、変更行または削除行がある場合(ステップS1706:Yes)、データサーバ201は、変更行または削除行に関数またはメソッドの呼び出し箇所があるか否かを判定する(ステップS1707)。 Next, the data server 201 determines whether or not there is a changed row or a deleted row in the changed portion (step S1706). Here, if there is no changed line or deleted line (step S1706: No), the data server 201 proceeds to step S1709. On the other hand, when there is a changed line or a deleted line (step S1706: Yes), the data server 201 determines whether or not the changed line or the deleted line has a call point of a function or a method (step S1707).

ここで、呼び出し箇所がない場合(ステップS1707:No)、データサーバ201は、ステップS1709に移行する。一方、呼び出し箇所がある場合(ステップS1707:Yes)、データサーバ201は、テストカバレッジ情報更新リスト内の呼び出し先の関数またはメソッドに対応するテストカバレッジ情報初期化フラグに「True」を設定する(ステップS1708)。 Here, if there is no call location (step S1707: No), the data server 201 proceeds to step S1709. On the other hand, when there is a call location (step S1707: Yes), the data server 201 sets "True" in the test coverage information initialization flag corresponding to the called function or method in the test coverage information update list (step). S1708).

なお、呼び出し先の関数またはメソッドは、一つ先の関数やメソッドだけでなく、さらにその先以降の関数やメソッドを含む。すなわち、呼び出し先のスコープは、「呼び出し先のスコープ=先の関数/メソッド、先の先の関数/メソッド、先の先の先の関数/メソッド、・・・」となる。 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 data server 201 determines whether or not there is unselected function / method information that has not been selected from the test coverage information update list (step S1709). Here, if there is unselected function / method information (step S1709: Yes), the data server 201 returns to step S1703.

一方、未選択の関数/メソッド情報がない場合(ステップS1709:No)、データサーバ201は、図18に示すステップS1801に移行する。 On the other hand, when there is no unselected function / method information (step S1709: No), the data server 201 proceeds to step S1801 shown in FIG.

図18のフローチャートにおいて、まず、データサーバ201は、差分情報dfに基づいて、変更前のソースコードsc1に対応するテストカバレッジ情報(第1のテストカバレッジ情報cv1)内のソースコード名と行番号とに対応する情報を更新する(ステップS1801)。第1のテストカバレッジ情報cv1は、テストカバレッジDB240から取得される。 In the flowchart of FIG. 18, first, the data server 201 has a source code name and a line number in the test coverage information (first test coverage information cv1) corresponding to the source code sc1 before the change, based on the difference information df. Update the information corresponding to (step S1801). The first test coverage information cv1 is acquired from the test coverage DB 240.

つぎに、データサーバ201は、テストカバレッジ情報更新リストを参照して、テストカバレッジ情報初期化フラグ「True」の関数/メソッドのうち選択されていない未選択の関数/メソッドを選択する(ステップS1802)。そして、データサーバ201は、テストカバレッジ情報内の選択した関数/メソッドに対応する行番号のLine dataを「0」にする(ステップS1803)。 Next, the data server 201 refers to the test coverage information update list and selects an unselected function / method among the functions / methods of the test coverage information initialization flag “True” (step S1802). .. Then, the data server 201 sets the Line data of the line number corresponding to the selected function / method in the test coverage information to "0" (step S1803).

なお、ここでは、テストカバレッジ情報として、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 data server 201 also updates other information related to test coverage (parameters other than Line data).

つぎに、データサーバ201は、テストカバレッジ情報更新リストを参照して、テストカバレッジ情報初期化フラグ「True」の関数/メソッドのうち選択されていない未選択の関数/メソッドがあるか否かを判断する(ステップS1804)。ここで、未選択の関数/メソッドがある場合(ステップS1804:Yes)、データサーバ201は、ステップS1802に戻る。 Next, the data server 201 refers to the test coverage information update list and determines whether or not there is an unselected function / method among the functions / methods of the test coverage information initialization flag "True". (Step S1804). Here, if there is an unselected function / method (step S1804: Yes), the data server 201 returns to step S1802.

一方、未選択の関数/メソッドがない場合(ステップS1804:No)、データサーバ201は、テストカバレッジ情報更新リストを破棄して(ステップS1805)、本フローチャートによる一連の処理を終了する。 On the other hand, when there is no unselected function / method (step S1804: No), the data server 201 discards the test coverage information update list (step S1805), and ends a series of processes according to this flowchart.

これにより、ソフトウェアソースコードの変更に応じて、テスト実行することなく、変更後のソースコード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 test coverage DB 240.

以上説明したように、実施の形態にかかるデータサーバ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 information processing apparatus 101 described in the present embodiment can also be realized by a standard cell, an IC for a specific application such as a structured ASIC (Application Specific Integrated Circuit), or a PLD (Programmable Logic Device) such as an FPGA.

上述した実施の形態に関し、さらに以下の付記を開示する。 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 Appendix 2.

(付記4)生成した前記第2のテストカバレッジ情報を前記変更後のソースコードと対応付けて出力する、処理を前記コンピュータに実行させることを特徴とする付記1~3のいずれか一つに記載のテストカバレッジ更新プログラム。 (Appendix 4) Described in any one of the appendices 1 to 3, wherein the generated second test coverage information is output in association with the modified source code, and the processing is executed by the computer. Test coverage update.

(付記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 Supplementary note 1 to 4, which is characterized by the above.

(付記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 Supplementary note 1 to 5, wherein the second test coverage information is generated by the above method.

(付記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 Information processing device 200 Information processing system 201, 301 Data server 202 Editing terminal 203 Browsing terminal 210 Network 220 Source code DB
230 test case DB
240 test coverage DB
700 bus 701 CPU
702 Memory 703 Disk drive 704 Disk 705 Communication I / F
706 Portable recording medium I / F
707 Portable recording medium 810,820 Software source code 900 Difference information 901,903 Dotted line frame 902 Solid line frame 1000 Test coverage information update list 1101 Extraction unit 1102 Judgment unit 1103 Generation unit 1104 Output unit 1300, 1400 Test coverage information 1500 Browsing screen

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.
生成した前記第2のテストカバレッジ情報を前記変更後のソースコードと対応付けて出力する、処理を前記コンピュータに実行させることを特徴とする請求項1~3のいずれか一つに記載のテストカバレッジ更新プログラム。 The test coverage according to any one of claims 1 to 3, wherein the generated second test coverage information is output in association with the changed source code, and the processing is executed by the computer. Update. ソフトウェアの変更後のソースコードから関数またはメソッドを抽出し、
前記ソフトウェアの変更前のソースコードと前記変更後のソースコードとの差分情報に基づいて、抽出した前記関数内または前記メソッド内に変更箇所があるか否かを判定し、
前記変更箇所があると判定した場合、前記変更前のソースコードに対応する第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.
JP2020177319A 2020-10-22 2020-10-22 Test coverage update program, test coverage update method, and information processing apparatus Pending JP2022068566A (en)

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)

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