JP2011113474A - カバレッジ情報算出プログラム、カバレッジ情報算出装置およびカバレッジ情報算出方法 - Google Patents
カバレッジ情報算出プログラム、カバレッジ情報算出装置およびカバレッジ情報算出方法 Download PDFInfo
- Publication number
- JP2011113474A JP2011113474A JP2009271669A JP2009271669A JP2011113474A JP 2011113474 A JP2011113474 A JP 2011113474A JP 2009271669 A JP2009271669 A JP 2009271669A JP 2009271669 A JP2009271669 A JP 2009271669A JP 2011113474 A JP2011113474 A JP 2011113474A
- Authority
- JP
- Japan
- Prior art keywords
- program
- coverage information
- counter
- framework
- information calculation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【解決手段】カバレッジ情報算出装置は、カバレッジ情報の算出対象であるプログラムを実行する前に、該プログラムに含まれるコードの枠組み毎にカウンタをメモリなどに設けておく。そして、カバレッジ情報算出装置は、プログラムを実行し、メモリなどに設けられた枠組みごとのカウンタを用いて、抽出された枠組みが実行された回数を計数する。その後、カバレッジ情報算出装置は、抽出された枠組みの数と、計数された枠組みごとの実行回数とから、カバレッジ情報としてプログラムの実行網羅率などを算出する。
【選択図】図1
Description
まず、図2を用いて、様々な制御部を有するカバレッジ情報算出装置の構成について説明する。図2は、実施例2に係るカバレッジ情報算出装置の構成を示すブロック図である。図2に示すように、カバレッジ情報算出装置10は、通信制御I/F部11と、入力部12と、表示部13と、記憶部15と、制御部20とを有している。
次に、図9を用いて、実施例2に係るカバレッジ情報算出装置における処理の流れを説明する。図9は、実施例2に係るカバレッジ情報算出装置における処理の流れを示すフローチャートである。
このように、実施例2に係るカバレッジ情報算出装置10は、プログラム実行前の枠組みを用いて、関数などのコードの枠組みごとに実行回数を計数するので、実行ログを生成する必要も無く、実行ログから枠組みごとの実行回数を生成する必要もない。この結果、カバレッジ情報算出装置10は、カバレッジ情報の算出対象となるプログラムに関係なく、カバレッジ情報を効率的に算出することが可能である。また、例えば、メモリなどの記憶領域に、実行ログを出力する領域を設ける必要も無いので、記憶領域を圧迫することもなく、記憶領域の無駄な使用を防止することができる。
例えば、本願が開示するカバレッジ情報算出装置は、実施例1や2で説明したようなプログラム全体に対してカバレッジ情報を算出する以外にも、プログラムの所定範囲内だけを対象として、カバレッジ情報を算出することができる。例えば、枠組み抽出部21は、カバレッジ情報の算出対象とする場合には、入力部12を介して、対象プログラムの関数Aのみや関数Aから関数Cまでなど範囲の指定を受け付けて、受け付けた範囲についてのみ、枠組みを抽出する。そして、枠組み抽出部21は、抽出した枠組みと指定された範囲とをカウンタ生成部22に出力する。
また、実施例1や2に係るカバレッジ情報算出装置は、カバレッジ情報算出対象プログラムとして、C言語やJava(登録商標)で記述されたプログラムを例示したが、本願はこれに限定されるものではない。例えば、カバレッジ情報算出装置は、手続き型言語で記述されたプログラムであれば、実施例1や2と同様に処理することができる。また、本願が開示するカバレッジ情報算出装置は、ソースプログラムからだけでなく、例えば、コンパイル後のモジュールから枠組みを抽出することができる。
また、実施例2に係るカバレッジ情報算出装置は、プログラムの枠組みとカウンタとを対応付けて、実行された枠組みの情報をプログラムから受信することで、枠組み毎の実行回数を計数する例について説明したが、本願はこれに限定されるものではない。例えば、カバレッジ情報算出装置は、コンパイラ後のモジュールから枠組み毎のカウンタを作成した場合には、コンパイラ後のモジュールとカウンタとを対応付ける。そして、カバレッジ情報算出装置は、実行したモジュールを監視し、実行された枠組みを計数する。なお、実行された枠組みを検知する手法は、実施例2で説明した手法以外の様々な技術を用いることができる。
また、実施例1や2に係るカバレッジ情報算出装置は、カバレッジ情報として行カバレッジにおける実行網羅率、つまり、実際にどのくらいの行が実行されたかを示す実行網羅率を算出する例について説明したが、本願はこれに限定されるものではない。例えば、実施例1や2で用いたプログラムの行に注目した行カバレッジ以外にも、クラスに注目したクラスカバレッジ、メソッドに注目したメソッドカバレッジ、関数に注目した関数カバレッジなど、コードにおける任意の単位で実行網羅率を算出することができる。
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、例えば図3〜図6等に示した各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
前記カウンタが設けられた枠組みの数と、前記回数計数手順によって実行回数が計数された枠組みの数とから、カバレッジ情報を算出するカバレッジ情報算出手順と
をコンピュータに実行させることを特徴とするカバレッジ情報算出プログラム。
前記枠組み抽出手順によって抽出された枠組み毎に、該枠組みが実行された回数を計数するカウンタを生成するカウンタ生成手順とをさらにコンピュータに実行させることを特徴とする付記1に記載のカバレッジ情報算出プログラム。
前記カウンタ記憶部に記憶される枠組み毎のカウンタを用いて、前記プログラムを実行した場合に該枠組みが実行された回数を計数する回数計数部と、
前記カウンタ記憶部に記憶されるカウンタが設けられた枠組みの数と、前記回数計数部によって実行回数が計数された枠組みの数とから、カバレッジ情報を算出するカバレッジ情報算出部と
を有することを特徴とするカバレッジ情報算出装置。
前記枠組み抽出部によって抽出された枠組み毎に、前記カウンタを生成して前記カウンタ記憶部に格納するカウンタ生成部とをさらにコンピュータに実行させることを特徴とする付記4に記載のカバレッジ情報算出装置。
前記カウンタが設けられた枠組みの数と、前記回数計数工程によって実行回数が計数された枠組みの数とから、カバレッジ情報を算出するカバレッジ情報算出工程と
を含んだことを特徴とするカバレッジ情報算出方法。
前記枠組み抽出工程によって抽出された枠組み毎に、前記カウンタを生成するカウンタ生成工程とをさらにコンピュータに実行させることを特徴とする付記7に記載のカバレッジ情報算出方法。
1a 回数計数部
1b カバレッジ情報算出部
2 プログラムソースコード
3 カバレッジ情報
10 カバレッジ情報算出装置
11 通信制御I/F部
12 入力部
13 表示部
15 記憶部
16 プログラムDB
17 枠組みカウンタDB
18 カバレッジ情報DB
20 制御部
21 枠組み抽出部
22 カウンタ生成部
23 回数計数部
24 カバレッジ情報算出部
Claims (5)
- カバレッジ情報の算出対象であるプログラムに含まれるコードの枠組み毎に設けられたカウンタを用いて、該プログラムを実行した場合に該枠組みが実行された回数を計数する回数計数手順と、
前記カウンタが設けられた枠組みの数と、前記回数計数手順によって実行回数が計数された枠組みの数とから、カバレッジ情報を算出するカバレッジ情報算出手順と
をコンピュータに実行させることを特徴とするカバレッジ情報算出プログラム。 - 前記プログラムを実行する前に、前記プログラムに含まれるコードの枠組みを抽出する枠組み抽出手順と、
前記枠組み抽出手順によって抽出された枠組み毎に、前記カウンタを生成するカウンタ生成手順とをさらにコンピュータに実行させることを特徴とする請求項1に記載のカバレッジ情報算出プログラム。 - 前記カバレッジ情報算出手順は、前記枠組み抽出手順によって抽出された枠組みの数における前記回数計数手順によって実行回数が計数された枠組みの数の割合を示すプログラムの実行網羅率を、前記カバレッジ情報として算出することを特徴とする請求項2に記載のカバレッジ情報算出プログラム。
- カバレッジ情報の算出対象であるプログラムに含まれるコードの枠組み毎のカウンタを記憶するカウンタ記憶部と、
前記カウンタ記憶部に記憶される枠組み毎のカウンタを用いて、前記プログラムを実行した場合に該枠組みが実行された回数を計数する回数計数部と、
前記カウンタ記憶部に記憶されるカウンタが設けられた枠組みの数と、前記回数計数部によって実行回数が計数された枠組みの数とから、カバレッジ情報を算出するカバレッジ情報算出部と
を有することを特徴とするカバレッジ情報算出装置。 - カバレッジ情報の算出対象であるプログラムに含まれるコードの枠組み毎に設けられたカウンタを用いて、該プログラムを実行した場合に該枠組みが実行された回数を計数する回数計数工程と、
前記カウンタが設けられた枠組みの数と、前記回数計数工程によって実行回数が計数された枠組みの数とから、カバレッジ情報を算出するカバレッジ情報算出工程と
を含んだことを特徴とするカバレッジ情報算出方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009271669A JP5682109B2 (ja) | 2009-11-30 | 2009-11-30 | カバレッジ情報生成プログラム、カバレッジ情報生成装置およびカバレッジ情報生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009271669A JP5682109B2 (ja) | 2009-11-30 | 2009-11-30 | カバレッジ情報生成プログラム、カバレッジ情報生成装置およびカバレッジ情報生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011113474A true JP2011113474A (ja) | 2011-06-09 |
JP5682109B2 JP5682109B2 (ja) | 2015-03-11 |
Family
ID=44235731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009271669A Expired - Fee Related JP5682109B2 (ja) | 2009-11-30 | 2009-11-30 | カバレッジ情報生成プログラム、カバレッジ情報生成装置およびカバレッジ情報生成方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5682109B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015011396A (ja) * | 2013-06-26 | 2015-01-19 | 株式会社エクサ | リグレッションテスト支援システム |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62200437A (ja) * | 1986-02-28 | 1987-09-04 | Mitsubishi Electric Corp | 網羅度測定装置 |
JPH0452835A (ja) * | 1990-06-15 | 1992-02-20 | Hitachi Ltd | プログラムテスト評価方式 |
JPH04148347A (ja) * | 1990-10-11 | 1992-05-21 | Nec Corp | Fortranソースプログラムの単体テスト方式 |
JP2002342119A (ja) * | 2001-03-15 | 2002-11-29 | Ricoh Co Ltd | 画像形成装置用プログラム生成方法、画像形成装置用カバレージ測定方法、これらの方法をコンピュータに実行させるプログラム、カバレージ測定装置、カバレージ測定プログラムおよび情報記録媒体 |
JP2004102742A (ja) * | 2002-09-11 | 2004-04-02 | Hitachi Ltd | プログラムテストデバッグ装置 |
-
2009
- 2009-11-30 JP JP2009271669A patent/JP5682109B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62200437A (ja) * | 1986-02-28 | 1987-09-04 | Mitsubishi Electric Corp | 網羅度測定装置 |
JPH0452835A (ja) * | 1990-06-15 | 1992-02-20 | Hitachi Ltd | プログラムテスト評価方式 |
JPH04148347A (ja) * | 1990-10-11 | 1992-05-21 | Nec Corp | Fortranソースプログラムの単体テスト方式 |
JP2002342119A (ja) * | 2001-03-15 | 2002-11-29 | Ricoh Co Ltd | 画像形成装置用プログラム生成方法、画像形成装置用カバレージ測定方法、これらの方法をコンピュータに実行させるプログラム、カバレージ測定装置、カバレージ測定プログラムおよび情報記録媒体 |
JP2004102742A (ja) * | 2002-09-11 | 2004-04-02 | Hitachi Ltd | プログラムテストデバッグ装置 |
Non-Patent Citations (3)
Title |
---|
CSND199900719001; 石川 和則: 'ソフトウエア品質向上のための:デバッグ/チューニング/テスト/構成管理ツール特集' 日経ソフトウエア 第2巻 第4号, 19990324, p.45, 日経BP社 * |
JPN6014012517; 石川 和則: 'ソフトウエア品質向上のための:デバッグ/チューニング/テスト/構成管理ツール特集' 日経ソフトウエア 第2巻 第4号, 19990324, p.45, 日経BP社 * |
JPN6014012519; Andrew Glover: コード品質を追求する: カバレッジ・レポートに騙されないために , 20060131, IBM * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015011396A (ja) * | 2013-06-26 | 2015-01-19 | 株式会社エクサ | リグレッションテスト支援システム |
Also Published As
Publication number | Publication date |
---|---|
JP5682109B2 (ja) | 2015-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9454467B2 (en) | Method and apparatus for mining test coverage data | |
US20060143596A1 (en) | Program analyzing apparatus and testing apparatus, and analyzing method and program therefor | |
JP2006244195A (ja) | プログラムテスト支援装置およびその方法 | |
Roehm et al. | Monitoring user interactions for supporting failure reproduction | |
JP5450840B2 (ja) | プログラムの実行性能評価のためのテストデータ生成方法 | |
Cao et al. | Symcrash: Selective recording for reproducing crashes | |
US20180173610A1 (en) | Method for performing cared-zone code coverage evaluation with no source code modification | |
Sottile et al. | Semi-automatic extraction of software skeletons for benchmarking large-scale parallel applications | |
JP5545761B2 (ja) | 障害解析支援システム、障害解析支援方法、および障害解析支援プログラム | |
Kwon et al. | Mantis: Efficient predictions of execution time, energy usage, memory usage and network usage on smart mobile devices | |
Jin et al. | Combining phase identification and statistic modeling for automated parallel benchmark generation | |
JP2010102620A (ja) | ユーザ操作シナリオ生成装置、方法およびプログラム | |
US10579761B1 (en) | Method and system for reconstructing a graph presentation of a previously executed verification test | |
JP5682109B2 (ja) | カバレッジ情報生成プログラム、カバレッジ情報生成装置およびカバレッジ情報生成方法 | |
JP7070328B2 (ja) | テストデータ生成装置、テストデータ生成方法及びプログラム | |
Wang et al. | Fast reproducing web application errors | |
Mahmud et al. | Acid: an api compatibility issue detector for android apps | |
Weyprecht et al. | Model-driven development of simulation solution based on SysML starting with the simulation core. | |
Köckerbauer et al. | Scalable parallel debugging with g-Eclipse | |
Béziers la Fosse et al. | Injecting execution traces into a model-driven framework for program analysis | |
Wagner et al. | Performance optimization for the trinity RNA-Seq assembler | |
KR101160482B1 (ko) | 테스트 스윗 생성 장치 및 방법 | |
Barakhshan et al. | CaRV--Accelerating Program Optimization through Capture, Replay, Validate | |
US11055092B1 (en) | Correlating contextual information of invoking code in a programming language with contextual information of at least one invoked code in a different programming language | |
JP2014106770A (ja) | 型チェック装置、型チェック方法および型チェックプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120815 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130827 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130910 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131111 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131217 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140217 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140325 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140526 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140624 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140924 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20141001 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20141216 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141229 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5682109 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |