JP2015011396A - Regression test support system - Google Patents

Regression test support system Download PDF

Info

Publication number
JP2015011396A
JP2015011396A JP2013134137A JP2013134137A JP2015011396A JP 2015011396 A JP2015011396 A JP 2015011396A JP 2013134137 A JP2013134137 A JP 2013134137A JP 2013134137 A JP2013134137 A JP 2013134137A JP 2015011396 A JP2015011396 A JP 2015011396A
Authority
JP
Japan
Prior art keywords
regression test
application
execution
test
processing
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
JP2013134137A
Other languages
Japanese (ja)
Inventor
健一郎 志村
Kenichiro Shimura
健一郎 志村
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.)
Exa Corp
Original Assignee
Exa Corp
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 Exa Corp filed Critical Exa Corp
Priority to JP2013134137A priority Critical patent/JP2015011396A/en
Publication of JP2015011396A publication Critical patent/JP2015011396A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a regression test support system capable of inspecting degrade of a non-functional requirement.SOLUTION: The regression test support system for performing a regression test of an application comprises a test execution device 100 including: execution storage means 140 for recording data obtained by executing the regression test; and execution processing means 110 for executing and processing a program included in the application, recording the data related to a non-functional requirement other than a function achieved by the application to the execution storage means 140, and performing processing for recording data of a dump list related to the execution result.

Description

本発明はリグレッションテストの支援を行うシステムに関するものである。   The present invention relates to a system for supporting a regression test.

例えば、Webページをインタフェースとしてサービスを提供するWebアプリケーション等の開発においてはリグレッションテストが行われる。リグレッションテストとは、デバッグ、仕様変更等によりプログラムを変更した場合、変更対象のプログラム以外のプログラムにおける機能に想定しない変化が発生していないか等を確認するテストである。例えばWebアプリケーションのリグレッションテストでは、Webアプリケーション又はWebアプリケーションを構成するプログラムを変更した後で、Webページの遷移順、Webページの表示内容等の機能が、想定した結果のデータと一致するかどうかを比較し、妥当性を検証する(例えば、特許文献1参照)。   For example, a regression test is performed in the development of a web application that provides a service using a web page as an interface. The regression test is a test for confirming whether an unexpected change has occurred in a function in a program other than the program to be changed when the program is changed by debugging, specification change, or the like. For example, in a regression test of a web application, after changing a web application or a program that configures the web application, whether or not functions such as the transition order of the web page and the display content of the web page match expected data. Compare and verify the validity (see, for example, Patent Document 1).

特開2003−248597号公報JP 2003-248597 A

ここで、アプリケーション又はアプリケーションを構成するプログラム(以下、アプリケーションという)に対して変更を加えていくと、想定外の影響により品質が劣化(デグレード)することがある。デグレードの代表的な事象としては、例えば、機能要件について、アプリケーションを実行しても想定どおりの処理結果を出力しなくなることである。また、プログラム処理速度の性能劣化、(テスト)カバレッジ(機能実行網羅率)低下等、非機能要件に対してもデグレードが発生することがある。例えば、基幹システムにおいては、性能劣化はシステムの可用性を損なうため、システムのアプリケーションについては性能要件が厳しい。また、カバレッジが低いアプリケーションは、不要なプログラムがアプリケーション内に存在する可能性があり、このようなプログラムは影響調査の妨げとなり、システムの保守性に悪影響を与える。   Here, if an application or a program (hereinafter referred to as an application) constituting the application is changed, the quality may be deteriorated (degraded) due to an unexpected influence. A typical event of degradation is, for example, that a function result is not output as expected even if an application is executed. Degradation may occur even for non-functional requirements such as performance degradation of program processing speed and (test) coverage (function execution coverage rate) decrease. For example, in a mission critical system, performance degradation impairs system availability, so performance requirements are strict for system applications. In addition, an application with low coverage may have an unnecessary program in the application, and such a program hinders the impact investigation and adversely affects the maintainability of the system.

デグレードの確認にはリグレッションテストが有効であり、従来よりリグレッションテストを自動化する等によって効率化が進んでいる。しかしながら、性能、カバレッジ等のデグレードの検証を行うことは困難であった。   A regression test is effective in confirming the degradation, and efficiency has been improved by automating the regression test. However, it has been difficult to verify degradation such as performance and coverage.

これは、観点毎に検証のための記述を、プログラムに記載(埋め込む)等する必要があったためである。埋め込みはプログラム内容を変更して行うため、プログラムを壊す等のリスクが伴っていた。また、埋め込みにともなう手間により効率が妨げられていた。   This is because it is necessary to write (embed) a description for verification in the program for each viewpoint. Since embedding is performed by changing the program contents, there is a risk of breaking the program. In addition, the efficiency was hindered by the effort involved in embedding.

そこで、非機能要件のデグレードを検証することができるようなリグレッションテスト支援システムの実現が求められてきた。   Therefore, it has been required to realize a regression test support system that can verify the degradation of non-functional requirements.

そこで、本発明に係るリグレッションテスト支援システムは、アプリケーションのリグレッションテストを行うリグレッションテスト支援システムにおいて、リグレッションテストを行ってできるデータを記録する実行記憶手段と、テストデータに基づいて、アプリケーション内に含まれるプログラムを実行処理し、アプリケーションが実現する機能以外の非機能要件に係るデータを実行記憶手段に記録し、実行結果に係るダンプリストのデータを記録する処理を行う実行処理手段とを備えるテスト実行装置を有するものである。   Therefore, the regression test support system according to the present invention is included in the application based on the test storage and execution storage means for recording data obtained by performing the regression test in the regression test support system for performing the regression test of the application. A test execution apparatus comprising: an execution processing unit that executes a program, records data related to non-functional requirements other than functions realized by the application in an execution storage unit, and records data of a dump list related to the execution result It is what has.

本発明によれば、リグレッションテストを行ったときに、非機能要件に係るデータを記録するようにしたので、デグレードを効率的に確認することができる。このとき、アスペクト指向プログラムにより記述されたアスペクトをアプリケーションのソースコードに織り込んだテスト用アプリケーションを作成し、リグレッションテストを行うようにしたので、テスト時だけに必要な機能を含まないアプリケーションを作成した上で、より高度な検証が可能なリグレッションテストを行うことができる。また、アプリケーションの安全、保護をはかることができる。   According to the present invention, since the data related to the non-functional requirements is recorded when the regression test is performed, the degradation can be efficiently confirmed. At this time, we created a test application that incorporated the aspect described in the aspect-oriented program into the source code of the application and performed a regression test. Therefore, after creating an application that did not include the functions necessary only for testing With this, it is possible to perform a regression test that allows more advanced verification. In addition, the application can be secured and protected.

本発明の実施の形態1に係るリグレッションテスト支援システムの構成を示す図である。It is a figure which shows the structure of the regression test assistance system which concerns on Embodiment 1 of this invention. 本発明の実施の形態1に係るテスト実行装置100の構成を示す図である。It is a figure which shows the structure of the test execution apparatus 100 which concerns on Embodiment 1 of this invention. 本発明の実施の形態1に係るテスト用アプリケーションについて説明する図である。It is a figure explaining the application for a test concerning Embodiment 1 of the present invention. 本発明の実施の形態1に係る比較検証装置200の構成を示す図である。It is a figure which shows the structure of the comparison verification apparatus 200 which concerns on Embodiment 1 of this invention. 本発明の実施の形態1に係るカバレッジ分析処理装置300の構成を示す図である。It is a figure which shows the structure of the coverage analysis processing apparatus 300 which concerns on Embodiment 1 of this invention. 本発明の実施の形態1に係るカバレッジ分析処理手段310が行う処理を説明するための図である。It is a figure for demonstrating the process which the coverage analysis process means 310 which concerns on Embodiment 1 of this invention performs. 本発明の実施の形態1に係る性能検証装置400の構成を示す図である。It is a figure which shows the structure of the performance verification apparatus 400 which concerns on Embodiment 1 of this invention. 本発明の実施の形態1に係る性能検証処理手段410が行う処理を説明するための図である。It is a figure for demonstrating the process which the performance verification process means 410 which concerns on Embodiment 1 of this invention performs.

実施の形態1.
図1は本発明の実施の形態1に係るリグレッションテスト支援システムの構成を示す図である。本実施の形態におけるシステムは、テスト実行装置100、比較検証装置200、カバレッジ分析処理装置300及び性能検証装置400を有している。
Embodiment 1 FIG.
FIG. 1 is a diagram showing a configuration of a regression test support system according to Embodiment 1 of the present invention. The system in the present embodiment includes a test execution device 100, a comparison verification device 200, a coverage analysis processing device 300, and a performance verification device 400.

テスト実行装置100は、テスト対象のアプリケーションのリグレッションテストを実行する装置である。ここで、本実施の形態のテスト実行装置100においては、アプリケーションにアスペクトを織り込んだテスト用アプリケーションを実行する。アスペクトの織り込みについては後述する。比較検証装置200は、テスト実行装置100の実行結果として出力したダンプリストと、前回に実行したリグレッションテストにおけるダンプリストとを比較処理等を行う。そして、想定した結果が得られているか等の検証処理を行う。   The test execution device 100 is a device that executes a regression test of an application to be tested. Here, in the test execution apparatus 100 according to the present embodiment, a test application in which an aspect is incorporated in the application is executed. Aspect weaving will be described later. The comparison verification device 200 compares the dump list output as the execution result of the test execution device 100 with the dump list in the regression test executed last time. And verification processing, such as whether the assumed result is obtained, is performed.

カバレッジ分析処理装置300は、テスト実行装置100がリグレッションテストを実行したときにダンプリストと共に出力するデータであるカバレッジログを分析処理する。性能検証装置400は、テスト実行装置100がリグレッションテストを実行したときにダンプリストと共に出力するデータである性能ログを検証処理する。ここで、性能とは、本実施の形態ではアプリケーションの実行に係る処理時間(パフォーマンス)であるものとする。検証処理においては、例えば前回のテスト実行に係る性能ログと今回のテスト実行に係る性能ログとを比較等する。このように、本実施の形態では、非機能要件のうち、カバレッジと処理時間とに係る分析、検証等について説明する。   The coverage analysis processing device 300 analyzes the coverage log, which is data output together with the dump list when the test execution device 100 executes the regression test. The performance verification device 400 performs a verification process on a performance log, which is data output together with a dump list when the test execution device 100 executes a regression test. Here, the performance is assumed to be processing time (performance) related to execution of an application in the present embodiment. In the verification process, for example, a performance log related to the previous test execution is compared with a performance log related to the current test execution. As described above, in the present embodiment, analysis, verification, and the like related to coverage and processing time among non-functional requirements will be described.

図2は本発明の実施の形態1に係るテスト実行装置100の構成を示す図である。図2において、テスト実行装置100は、実行処理手段110、実行入力手段120、実行表示手段130及び実行記憶手段140を有している。   FIG. 2 is a diagram showing a configuration of the test execution apparatus 100 according to Embodiment 1 of the present invention. 2, the test execution apparatus 100 includes an execution processing unit 110, an execution input unit 120, an execution display unit 130, and an execution storage unit 140.

実行処理手段110は、アプリケーション記憶部143が記憶する、テスト用アプリケーション(プログラム)を実行する。そして、入力データ記憶部141が記憶する入力データとテストデータ記憶部142が記憶するテストデータとに基づいて実行処理した結果であるダンプリストをダンプリスト記憶部144に記憶する。また、実行処理の際に、記録したカバレッジログ及び性能ログをカバレッジログ記憶部145及び性能ログ記憶部146に記憶する。また、実行入力手段120は、装置利用者の指示を入力する。実行表示手段130は、装置利用者に実行結果等の表示を行う。   The execution processing unit 110 executes a test application (program) stored in the application storage unit 143. Then, the dump list that is the result of execution processing based on the input data stored in the input data storage unit 141 and the test data stored in the test data storage unit 142 is stored in the dump list storage unit 144. In the execution process, the recorded coverage log and performance log are stored in the coverage log storage unit 145 and the performance log storage unit 146. Further, the execution input unit 120 inputs an instruction of the apparatus user. The execution display unit 130 displays an execution result or the like to the apparatus user.

実行記憶手段140は、実行処理手段110が行う実行処理に必要なデータ、実行処理した結果のデータ等を記憶する。入力データ記憶部141は入力データを記憶する。入力データとは、パラメータである。また、テストデータ記憶部142はテストデータを記憶する。テストデータとは、リグレッションテストを行う際のテストに係るデータである。アプリケーション記憶部143は、テスト対象のアプリケーションを記憶する。ダンプリスト記憶部144は、実行結果であるダンプリストをデータとして記憶する。カバレッジログ記憶部145は、アプリケーションを実行処理したときのカバレッジログをデータとして記憶する。性能ログ記憶部146は性能ログをデータとして記憶する。カバレッジログ及び性能ログについては後述する。   The execution storage unit 140 stores data necessary for the execution process performed by the execution processing unit 110, data obtained as a result of the execution process, and the like. The input data storage unit 141 stores input data. Input data is a parameter. The test data storage unit 142 stores test data. Test data is data related to a test when a regression test is performed. The application storage unit 143 stores the test target application. The dump list storage unit 144 stores a dump list as an execution result as data. The coverage log storage unit 145 stores the coverage log when the application is executed as data. The performance log storage unit 146 stores the performance log as data. The coverage log and performance log will be described later.

図3は本発明の実施の形態1に係るテスト用アプリケーションについて説明する図である。前述したように、本実施の形態では、アプリケーションからテスト用アプリケーションを作成してリグレッションテストを実行する。本実施の形態では、アプリケーションのソースファイルにアスペクトを織り込んでコンパイルしてテスト用アプリケーションを作成する。   FIG. 3 is a diagram illustrating the test application according to Embodiment 1 of the present invention. As described above, in this embodiment, a test application is created from an application and a regression test is executed. In the present embodiment, a test application is created by compiling an aspect into an application source file.

ここで、アスペクトとは、アスペクト指向という考えに基づいて記述されたプログラムのモジュールである。アスペクト指向プログラミングでは、アプリケーション(プログラム)内で、分散して行われる共通した処理をまとめてアスペクトとし、コンパイル又は実行の際に結合して(織り込んで)、アプリケーションを構築する。   Here, an aspect is a program module described based on the idea of aspect orientation. In aspect-oriented programming, common processes performed in a distributed manner in an application (program) are collectively used as an aspect and combined (woven) during compilation or execution to construct an application.

例えば、オブジェクト指向プログラミングは、関連するデータの集合とそれに対する手続き(メソッド)をひとつのまとまりとして、クラスという単位のモジュールとする。そして、複数のクラスを組み合わせてアプリケーション(プログラム)を構成する。このため、複数のクラスで共通する処理がある場合でも、各クラス(メソッド)に分散して記述等する必要がある。   For example, in object-oriented programming, a set of related data and a procedure (method) associated therewith are grouped into a module called a class. Then, an application (program) is configured by combining a plurality of classes. For this reason, even if there is a process common to a plurality of classes, it is necessary to describe in a distributed manner in each class (method).

一方、アスペクト指向プログラミングでは、共通する処理をアスペクトとして、クラスとは別に記述し、アスペクトの処理側からアスペクトの処理を織り込むクラス(メソッド)を指定する。これにより、共通処理について複数のクラスに記述する必要がなくなる。   On the other hand, in aspect-oriented programming, common processing is described as an aspect separately from a class, and a class (method) that interweaves aspect processing is specified from the aspect processing side. This eliminates the need to describe common processing in multiple classes.

例えば、本実施の形態では、各クラスにおいてメソッドの呼び出し時に記録する処理と、メソッド開始時刻及び終了時刻を記録する処理とを、アスペクト指向プログラムとして記述したアスペクトをアプリケーションのソースファイルとともにコンパイルすることで、テスト用アプリケーションを作成する。したがって、アプリケーションのソースファイルの内容を直接変更することなく、記録に係る処理を織り込んだテスト用アプリケーションを作成することができる。そして、リグレッションテストにおいて、記録に係る処理を実行させることができる。   For example, in this embodiment, by compiling an aspect described as an aspect-oriented program together with a source file of an application, a process that records when a method is called in each class and a process that records a method start time and an end time. Create a test application. Therefore, it is possible to create a test application that incorporates processing related to recording without directly changing the contents of the application source file. In the regression test, processing related to recording can be executed.

また、複数のクラスに共通する(横断的に要求される)処理(機能)をまとめる形で記述することができる。クラス毎に記述を行う必要がないため、記述漏れ、記述しすぎ、誤記述、アプリケーションの破壊等を防ぐことができる。そして、記録に係る処理は、リグレッションテスト時以外には実行しないため、実際のアプリケーションには、記録に係る処理の記述をしなくてすむため、プログラムの短縮をはかることができる。   In addition, processing (functions) common to a plurality of classes (required across the classes) can be described in a collective form. Since it is not necessary to describe for each class, it is possible to prevent omission of description, excessive description, erroneous description, application destruction, and the like. Since the process related to the recording is not executed except during the regression test, it is not necessary to describe the process related to the recording in the actual application, so that the program can be shortened.

さらに、記録内容に関する変更を容易に行うことができる。また、例えば本実施の形態では、時刻の記録を行うが、例えばJAVA(登録商標)では、ナノ秒オーダーでの記録が可能である。例えば、詳細な時間計測を必要とする場合に、アスペクトにおける記述をナノ秒オーダーで記録するように記述しておくことで、より有効に分析、検証等を容易に行うことができる。   Furthermore, it is possible to easily change the recorded contents. Further, for example, in this embodiment, time is recorded, but for example, JAVA (registered trademark) can be recorded in nanosecond order. For example, when detailed time measurement is required, by describing the description in the aspect so as to be recorded in the order of nanoseconds, analysis and verification can be performed more effectively and easily.

図4は本発明の実施の形態1に係る比較検証装置200の構成を示す図である。図4において、比較検証装置200は、比較処理手段210、比較入力手段220、比較表示手段230及び比較記憶手段240を有している。   FIG. 4 is a diagram showing a configuration of the comparison verification apparatus 200 according to Embodiment 1 of the present invention. 4, the comparison verification apparatus 200 includes a comparison processing unit 210, a comparison input unit 220, a comparison display unit 230, and a comparison storage unit 240.

比較入力手段220は、利用者の指示等を信号として比較処理手段210に送る。また、比較表示手段230は、比較処理手段210が処理した結果等を利用者に表示する。そして、比較記憶手段240は、比較処理手段210が処理を行うために必要なデータを一時的又は長期的に記憶する。   The comparison input unit 220 sends a user instruction or the like as a signal to the comparison processing unit 210. Further, the comparison display means 230 displays the results processed by the comparison processing means 210 to the user. The comparison storage unit 240 temporarily or long-term stores data necessary for the comparison processing unit 210 to perform processing.

ここで、本実施の形態の比較記憶手段240は、特に想定差分記憶部241を有しているものとする。想定差分記憶部241は、今回のリグレッションテストのダンプリストが、前回のリグレッションテストのダンプリストと違うと想定される事項(差分事項)について定義等したデータ(例えばテキストデータ等)を除外データとして記憶する。例えば、前回のリグレッションテストから、アプリケーション(プログラム)の内容等を変更すると、リグレッションテストを実行した結果が異なる場合がある。このような結果の違いは、あらかじめ想定された範囲内で起こる違いであり、テスト結果の妥当性検証には必要ない場合がある。そこで、ダンプリストの差分検出において、想定差分記憶部241に記憶された除外データについては、検出しないで除外するようにする(比較表示手段230には、差分として表示しないようにする)。このため、検出に係る差分の量が減る等して、検証の効率を向上させることができる。   Here, it is assumed that the comparison storage unit 240 of the present embodiment has an assumed difference storage unit 241 in particular. The assumed difference storage unit 241 stores, as excluded data, data (for example, text data) that defines items (difference items) that are assumed that the dump list of the current regression test is different from the dump list of the previous regression test. To do. For example, if the contents of the application (program) are changed from the previous regression test, the result of executing the regression test may be different. Such a difference in results is a difference that occurs within a range that is assumed in advance, and may not be necessary for the validity verification of the test results. Thus, in the difference detection of the dump list, the exclusion data stored in the assumed difference storage unit 241 is excluded without being detected (not displayed as a difference on the comparison display unit 230). For this reason, verification efficiency can be improved, for example, by reducing the amount of difference related to detection.

比較処理手段210は、前回のリグレッションテストにおけるダンプリストの内容と今回のリグレッションテストにおけるダンプリストの内容とを比較処理して差分を検出し、比較表示手段230に表示させる処理を行う。ここで、比較処理において、想定差分記憶部241に除外データとして記憶された差分については検出しないようにする。   The comparison processing unit 210 performs a process of comparing the contents of the dump list in the previous regression test with the contents of the dump list in the current regression test to detect a difference, and causing the comparison display unit 230 to display the difference. Here, in the comparison process, the difference stored as the excluded data in the assumed difference storage unit 241 is not detected.

図5は本発明の実施の形態1に係るカバレッジ分析処理装置300の構成を示す図である。図5において、カバレッジ分析処理装置300は、カバレッジ分析処理手段310、カバレッジ分析入力手段320、カバレッジ分析表示手段330及びカバレッジ分析記憶手段340を有している。   FIG. 5 is a diagram showing a configuration of the coverage analysis processing apparatus 300 according to Embodiment 1 of the present invention. In FIG. 5, the coverage analysis processing apparatus 300 includes a coverage analysis processing unit 310, a coverage analysis input unit 320, a coverage analysis display unit 330, and a coverage analysis storage unit 340.

カバレッジ分析入力手段320は、利用者の指示等を信号としてカバレッジ分析処理手段310に送る。また、カバレッジ分析表示手段330は、カバレッジ分析処理手段310が処理した結果等を利用者に表示する。そして、カバレッジ分析記憶手段340は、カバレッジ分析処理手段310が処理を行うために必要なデータを一時的又は長期的に記憶する。   The coverage analysis input unit 320 sends a user instruction or the like as a signal to the coverage analysis processing unit 310. Further, the coverage analysis display means 330 displays the results processed by the coverage analysis processing means 310 to the user. The coverage analysis storage unit 340 stores data necessary for the coverage analysis processing unit 310 to perform processing temporarily or in a long term.

図6は本発明の実施の形態1に係るカバレッジ分析処理手段310が行う処理を説明するための図である。カバレッジ分析処理手段310は、カバレッジログ等に基づいて分析処理を行う。ここで、カバレッジ分析処理手段310は、ソースファイル解析部311、カバレッジログ分析部312及びカバレッジ演算部313を有している。ここで、各部の機能をプログラムとして有するようにして、ハードウェアである処理手段が、プログラムを実行することにより、各部が行う機能を実現するようにしてもよい。   FIG. 6 is a diagram for explaining processing performed by the coverage analysis processing unit 310 according to Embodiment 1 of the present invention. The coverage analysis processing unit 310 performs an analysis process based on a coverage log or the like. Here, the coverage analysis processing unit 310 includes a source file analysis unit 311, a coverage log analysis unit 312, and a coverage calculation unit 313. Here, the function of each unit may be provided as a program, and the function performed by each unit may be realized by the processing means being hardware executing the program.

ソースファイル解析部311は、アプリケーションのソースファイルに基づいて、各クラスのメソッド数(実行可能なメソッド数)を数える処理を行う。また、カバレッジログ分析部312は、例えばテスト実行装置100のカバレッジログ記憶部145が記憶するカバレッジログに基づいて、各クラスの呼び出しに係るメソッド数(実際に呼び出して実行したメソッド数)を数える処理を行う。   The source file analysis unit 311 performs a process of counting the number of methods (number of executable methods) of each class based on the application source file. Further, the coverage log analysis unit 312 counts the number of methods related to the call of each class (the number of methods actually called and executed) based on, for example, the coverage log stored in the coverage log storage unit 145 of the test execution apparatus 100. I do.

カバレッジ演算部313は、テスト実行装置100が行ったリグレッションテストにおける各クラスのカバレッジを演算し、メソッド数等とともに、カバレッジ分析表示手段330に表示させる。ここで、本実施の形態では、カバレッジ演算部313はS1カバレッジを演算する。S1カバレッジは、次式(1)に示すように、実行可能なメソッド数に対する、実際に呼び出して実行したメソッド数の割合を百分率で表したものである。
S1カバレッジ=
実際に呼び出して実行したメソッド数/実行可能なメソッド数×100 …(1)
The coverage calculation unit 313 calculates the coverage of each class in the regression test performed by the test execution apparatus 100 and displays the coverage on the coverage analysis display unit 330 together with the number of methods. Here, in the present embodiment, the coverage calculation unit 313 calculates S1 coverage. As shown in the following equation (1), the S1 coverage is a percentage of the number of methods actually called and executed with respect to the number of executable methods.
S1 coverage =
Number of methods actually called and executed / number of executable methods × 100 (1)

以上のようにして、利用者は、リグレッションテストにおけるカバレッジを得ることができる。例えば、前回のリグレッションテストにおけるカバレッジよりも、今回のリグレッションテストにおけるカバレッジの方が著しく低い場合には、アプリケーションを変更したことにより、不要機能が潜在したか、想定外の影響が及んだ可能性について検討することができる。ここで、特に限定するものではないが、カバレッジに関する基準値(例えば98%等)をあらかじめ定めておき、カバレッジ分析処理手段310は、基準値を下回ったものと判断すると、利用者に報知等を行うようにしてもよい。   As described above, the user can obtain coverage in the regression test. For example, if the coverage in the current regression test is significantly lower than the coverage in the previous regression test, the possibility of unnecessary functions being latent or unexpected effects may have been caused by changing the application Can be considered. Here, although not particularly limited, a reference value related to coverage (for example, 98%) is determined in advance, and if the coverage analysis processing unit 310 determines that the reference value is below the reference value, the user is notified. You may make it perform.

図7は本発明の実施の形態1に係る性能検証装置400の構成を示す図である。図7において、性能検証装置400は、性能検証処理手段410、性能検証入力手段420、性能検証表示手段430及び性能検証記憶手段440を有している。   FIG. 7 is a diagram showing a configuration of the performance verification apparatus 400 according to Embodiment 1 of the present invention. 7, the performance verification apparatus 400 includes a performance verification processing unit 410, a performance verification input unit 420, a performance verification display unit 430, and a performance verification storage unit 440.

性能検証入力手段420は、利用者の指示等を信号として性能検証処理手段410に送る。また、性能検証表示手段430は、性能検証処理手段410が処理した結果等を利用者に表示する。そして、性能検証記憶手段440は、性能検証処理手段410が処理を行うために必要なデータを一時的又は長期的に記憶する。   The performance verification input unit 420 sends a user instruction or the like as a signal to the performance verification processing unit 410. Further, the performance verification display unit 430 displays the result processed by the performance verification processing unit 410 to the user. The performance verification storage unit 440 temporarily or long-term stores data necessary for the performance verification processing unit 410 to perform processing.

図8は本発明の実施の形態1に係る性能検証処理手段410が行う処理を説明するための図である。性能検証処理手段410は、時間演算処理部411及び時間比較処理部412を有している。ここで、各部の機能をプログラムとして有するようにして、ハードウェアである処理手段が、プログラムを実行することにより、各部が行う機能を実現するようにしてもよい。   FIG. 8 is a diagram for explaining processing performed by the performance verification processing unit 410 according to Embodiment 1 of the present invention. The performance verification processing unit 410 includes a time calculation processing unit 411 and a time comparison processing unit 412. Here, the function of each unit may be provided as a program, and the function performed by each unit may be realized by the processing means being hardware executing the program.

時間演算処理部411は、実行記憶手段140の性能ログ記憶部146に性能ログとして記録されたメソッドの開始時刻と終了時刻とに基づいて、処理時間をメソッド毎に演算する。ここで、時間演算処理部411は、今回のリグレッションテスト実行分と前回のリグレッションテスト実行分による処理時間を演算する。また、前述したように、処理時間はナノ秒オーダーで演算することができる。そして、時間比較処理部412は、時間演算処理部411が演算した処理時間に基づいて、今回のテスト実行分と前回のテスト実行分との処理時間との時間差をメソッド毎に演算し、性能検証表示手段430に表示させる。   The time calculation processing unit 411 calculates the processing time for each method based on the start time and end time of the method recorded as a performance log in the performance log storage unit 146 of the execution storage unit 140. Here, the time calculation processing unit 411 calculates the processing time for the current regression test execution and the previous regression test execution. Further, as described above, the processing time can be calculated on the order of nanoseconds. Then, the time comparison processing unit 412 calculates the time difference between the processing time of the current test execution and the previous test execution for each method based on the processing time calculated by the time calculation processing unit 411, and performs performance verification. It is displayed on the display means 430.

以上のように、本実施の形態のリグレッションテスト支援システムにおいては、テスト実行装置100においてリグレッションテストを実行したときに、非機能要件であるカバレッジログ及び性能ログを、それぞれカバレッジログ記憶部145と性能ログ記憶部146とに記録するようにしたので、デグレードを効率的に確認することができる。このとき、アスペクト指向プログラムにより記述されたアスペクトをアプリケーションのソースコードに織り込んだテスト用アプリケーションを作成し、リグレッションテストを実行するようにしたので、テスト時だけに必要な機能を含まないアプリケーションを作成した上で、より高度なリグレッションテストを行うことができる。   As described above, in the regression test support system according to the present embodiment, when the regression test is executed in the test execution device 100, the coverage log and the performance log, which are non-functional requirements, are respectively stored in the coverage log storage unit 145 and the performance log. Since it is recorded in the log storage unit 146, the degradation can be confirmed efficiently. At this time, we created a test application that incorporates the aspect described in the aspect-oriented program into the application source code and executed the regression test, so we created an application that does not include the functions required only for testing. Above, you can do a more advanced regression test.

また、カバレッジ分析処理装置300において、カバレッジログを分析処理してカバレッジを演算し、例えば前回のカバレッジと比較を行うようにしたので、アプリケーションにおけるプログラムの変更誤り、変更により不要となったプログラムの検出等を支援することができる。そして、性能検証装置400において、性能ログを検証処理して処理時間を演算し、例えば前回の処理時間との比較を行うようにしたので、性能劣化の支援を行うことができる。   In addition, since the coverage analysis processing device 300 analyzes the coverage log and calculates the coverage, for example, compares it with the previous coverage, detection of a program that has become unnecessary due to a program change error or change in the application Etc. can be supported. In the performance verification apparatus 400, the performance log is verified, the processing time is calculated, and, for example, compared with the previous processing time, performance degradation can be supported.

実施の形態2.
上述の実施の形態では、各装置に分かれているが、例えば1又は複数の装置を1つの装置で構成するようにしてもよい。
Embodiment 2. FIG.
In the above-described embodiment, each device is divided. However, for example, one or a plurality of devices may be configured by one device.

また、上述の実施の形態1では、非機能要件として、カバレッジ及び処理時間(パフォーマンス)について説明したが、これに限定するものではない。非機能要件としては、他にもキャパシティ(メモリ使用量)がある。メモリが適切に管理されていないプログラムを実行すると、メモリの解放がうまくなされないことがある。このため、メモリリークを起こすことがある。さらにプログラムを実行するために必要なメモリの量が不足すると、プログラムの実行が中断してしまう恐れがある。そこで、例えば、メモリリークの懸念がある命令を実行したときにメモリの使用に係るログを記録することで、検証を行うことができる。   In the first embodiment described above, coverage and processing time (performance) have been described as non-functional requirements. However, the present invention is not limited to this. Other non-functional requirements include capacity (memory usage). If a program whose memory is not properly managed is executed, the memory may not be released successfully. For this reason, a memory leak may occur. Furthermore, if the amount of memory required to execute the program is insufficient, the execution of the program may be interrupted. Therefore, for example, when an instruction that is likely to cause a memory leak is executed, a log relating to the use of the memory can be recorded for verification.

100 テスト実行装置
110 実行処理手段
120 実行入力手段
130 実行表示手段
140 実行記憶手段
141 入力データ記憶部
142 テストデータ記憶部
143 アプリケーション記憶部
144 ダンプリスト記憶部
145 カバレッジログ記憶部
146 性能ログ記憶部
200 比較検証装置
210 比較処理手段
220 比較入力手段
230 比較表示手段
240 比較記憶手段
241 想定差分記憶部
300 カバレッジ分析処理装置
310 カバレッジ分析処理手段
311 ソースファイル解析部
312 カバレッジログ分析部
313 カバレッジ演算部
320 カバレッジ分析入力手段
330 カバレッジ分析表示手段
340 カバレッジ分析記憶手段
400 性能検証装置
410 性能検証処理手段
411 時間演算処理部
412 時間比較処理部
420 性能検証入力手段
430 性能検証表示手段
440 性能検証記憶手段
100 Test Execution Device 110 Execution Processing Unit 120 Execution Input Unit 130 Execution Display Unit 140 Execution Storage Unit 141 Input Data Storage Unit 142 Test Data Storage Unit 143 Application Storage Unit 144 Dump List Storage Unit 145 Coverage Log Storage Unit 146 Performance Log Storage Unit 200 Comparison verification apparatus 210 Comparison processing means 220 Comparison input means 230 Comparison display means 240 Comparison storage means 241 Assumed difference storage section 300 Coverage analysis processing apparatus 310 Coverage analysis processing means 311 Source file analysis section 312 Coverage log analysis section 313 Coverage calculation section 320 Coverage Analysis input means 330 Coverage analysis display means 340 Coverage analysis storage means 400 Performance verification device 410 Performance verification processing means 411 Time calculation processing unit 412 Comparison processing unit 420 commissioning input means 430 commissioning display unit 440 commissioning storage means

Claims (7)

アプリケーションのリグレッションテストを行うリグレッションテスト支援システムにおいて、
前記リグレッションテストを行ってできるデータを記録する実行記憶手段と、
テストデータに基づいて、アプリケーション内に含まれるプログラムを実行処理し、前記アプリケーションが実現する機能以外の非機能要件に係るデータを前記実行記憶手段に記録し、実行結果に係るダンプリストのデータを記録する処理を行う実行処理手段と
を備えるテスト実行装置を有することを特徴とするリグレッションテスト支援システム。
In a regression test support system that performs application regression tests,
Execution storage means for recording data obtained by performing the regression test;
Based on the test data, the program included in the application is executed, data related to non-functional requirements other than the functions realized by the application is recorded in the execution storage means, and dump list data related to the execution result is recorded A regression test support system comprising: a test execution device including execution processing means for performing processing.
前記アプリケーションに基づいて、アスペクト指向プログラムにより前記非機能要件の記録を行う機能の実行について記述したアスペクトを織り込んだテスト用アプリケーションを作成し、前記テスト用アプリケーションにより前記リグレッションテストを行うことを特徴とする請求項1に記載のリグレッションテスト支援システム。   A test application incorporating an aspect describing execution of a function for recording the non-functional requirement by an aspect-oriented program is created based on the application, and the regression test is performed by the test application. The regression test support system according to claim 1. 前記非機能要件は、前記アプリケーションにおいて、実行したプログラム数であることを特徴とする請求項1又は2に記載のリグレッションテスト支援システム。   The regression test support system according to claim 1, wherein the non-functional requirement is the number of programs executed in the application. 前記アプリケーション内のプログラム数における前記実行したプログラム数の割合であるカバレッジを演算するカバレッジ分析処理手段と、
該カバレッジ分析処理手段が演算した前記カバレッジを表示するカバレッジ分析表示手段とを備えるカバレッジ分析処理装置をさらに有することを特徴とする請求項3に記載のリグレッションテスト支援システム。
Coverage analysis processing means for calculating a coverage which is a ratio of the number of executed programs to the number of programs in the application;
The regression test support system according to claim 3, further comprising a coverage analysis processing device including coverage analysis display means for displaying the coverage calculated by the coverage analysis processing means.
前記非機能要件は、前記アプリケーションにおける、前記プログラムの処理時間であることを特徴とする請求項1〜4のいずれか一項に記載のリグレッションテスト支援システム。   The regression test support system according to claim 1, wherein the non-functional requirement is a processing time of the program in the application. 前回のリグレッションテストにおける前記プログラムの処理時間と今回のリグレッションテストにおける前記プログラムの処理時間との時間差を演算する性能検証処理手段と、
該性能検証処理手段が演算した前記時間差を表示する性能検証表示手段とを備える性能検証装置をさらに有することを特徴とする請求項5に記載のリグレッションテスト支援システム。
Performance verification processing means for calculating a time difference between the processing time of the program in the previous regression test and the processing time of the program in the current regression test;
6. The regression test support system according to claim 5, further comprising a performance verification device including performance verification display means for displaying the time difference calculated by the performance verification processing means.
前回のリグレッションテストにおける前記ダンプリストのデータと今回のリグレッションテストにおける前記ダンプリストのデータとの差分を検出する比較処理手段と、
該比較処理手段が検出した前記差分を表示する比較表示手段と、
あらかじめ前記差分として想定される事項を除外データとして記憶する比較記憶手段とを備え、
前記比較処理手段は、前記除外データに基づく前記差分については検出しないように処理する比較検証装置をさらに有することを特徴とする請求項1〜6のいずれか一項に記載のリグレッションテスト支援システム。
Comparison processing means for detecting a difference between the data of the dump list in the previous regression test and the data of the dump list in the current regression test;
Comparison display means for displaying the difference detected by the comparison processing means;
Comparing storage means for storing in advance the items assumed as the difference as excluded data,
The regression test support system according to claim 1, wherein the comparison processing unit further includes a comparison verification device that performs processing so as not to detect the difference based on the exclusion data.
JP2013134137A 2013-06-26 2013-06-26 Regression test support system Pending JP2015011396A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013134137A JP2015011396A (en) 2013-06-26 2013-06-26 Regression test support system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013134137A JP2015011396A (en) 2013-06-26 2013-06-26 Regression test support system

Publications (1)

Publication Number Publication Date
JP2015011396A true JP2015011396A (en) 2015-01-19

Family

ID=52304536

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013134137A Pending JP2015011396A (en) 2013-06-26 2013-06-26 Regression test support system

Country Status (1)

Country Link
JP (1) JP2015011396A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017199517A1 (en) * 2016-05-19 2017-11-23 株式会社Nttドコモ Test selection device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0635754A (en) * 1992-07-13 1994-02-10 Hitachi Ltd Retesting method and device therefor
JP2008112300A (en) * 2006-10-30 2008-05-15 Fujitsu Ltd Web application inspection program, web application inspection apparatus, and web application inspection method
US20110041121A1 (en) * 2009-08-11 2011-02-17 Sap Ag Response time measurement system and method
JP2011113474A (en) * 2009-11-30 2011-06-09 Fujitsu Ltd Program, device and method for calculation of coverage information

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0635754A (en) * 1992-07-13 1994-02-10 Hitachi Ltd Retesting method and device therefor
JP2008112300A (en) * 2006-10-30 2008-05-15 Fujitsu Ltd Web application inspection program, web application inspection apparatus, and web application inspection method
US20110041121A1 (en) * 2009-08-11 2011-02-17 Sap Ag Response time measurement system and method
JP2011113474A (en) * 2009-11-30 2011-06-09 Fujitsu Ltd Program, device and method for calculation of coverage information

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
加藤 大受: "省ける手間を省くためのあの手,この手,奥の手 テストの自動化 自動化支援ツールの仕事を見極めろ!", ソフトウェア・テストPRESS VOL.3, vol. 第3巻, JPN6016046853, 25 August 2006 (2006-08-25), JP, pages 2 - 13, ISSN: 0003453582 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017199517A1 (en) * 2016-05-19 2017-11-23 株式会社Nttドコモ Test selection device
JPWO2017199517A1 (en) * 2016-05-19 2019-03-14 株式会社Nttドコモ Test selection device

Similar Documents

Publication Publication Date Title
US10586053B2 (en) Method for automatically detecting security vulnerability based on hybrid fuzzing, and apparatus thereof
US8510842B2 (en) Pinpointing security vulnerabilities in computer software applications
US11036507B2 (en) Processor testing using pairs of counter incrementing and branch instructions
US20170075795A1 (en) Identifying test gaps using code execution paths
US8990781B2 (en) Synchronization point visualization for modified program source code
US20140143749A1 (en) Affinity recommendation in software lifecycle management
CN105550104B (en) Application program capacity test method and device
US11042466B2 (en) Exception prediction before an actual exception during debugging
US20190171546A1 (en) Application screen mapping for mobile analytics
KR20180018722A (en) Method and apparatus for generating, capturing, storing and loading debug information for failed test scripts
US9983975B2 (en) Fixing anti-patterns in javascript
US20210406158A1 (en) Systems and methods for automated device testing
CN107102938B (en) Test script updating method and device
US10599554B2 (en) Dynamic instrumentation based on detected errors
JP2015011396A (en) Regression test support system
US8291389B2 (en) Automatically detecting non-modifying transforms when profiling source code
US9734458B2 (en) Predicting outcome based on input
US9165007B2 (en) Log message optimization to ignore or identify redundant log messages
US9940068B2 (en) Device and method for determining memory leaks
JP2015011661A (en) Influence range analysis system, influence range analysis method and influence range analysis program
KR101306656B1 (en) Apparatus and method for providing dynamic analysis information of malignant code
JP2012059202A (en) Test case generation device, test case generation method and test case generation program
CN117992350A (en) Method and device for monitoring code test coverage rate and electronic equipment
JP2013175072A (en) Test apparatus of program and test system of program
JP2016115124A (en) Stubbing method, program and device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161206

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170613