JP5764521B2 - カバレージ情報取得方法 - Google Patents

カバレージ情報取得方法 Download PDF

Info

Publication number
JP5764521B2
JP5764521B2 JP2012093483A JP2012093483A JP5764521B2 JP 5764521 B2 JP5764521 B2 JP 5764521B2 JP 2012093483 A JP2012093483 A JP 2012093483A JP 2012093483 A JP2012093483 A JP 2012093483A JP 5764521 B2 JP5764521 B2 JP 5764521B2
Authority
JP
Japan
Prior art keywords
coverage
test
coverage information
program
passing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012093483A
Other languages
English (en)
Other versions
JP2013222312A (ja
Inventor
桂佑 重永
桂佑 重永
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2012093483A priority Critical patent/JP5764521B2/ja
Publication of JP2013222312A publication Critical patent/JP2013222312A/ja
Application granted granted Critical
Publication of JP5764521B2 publication Critical patent/JP5764521B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、ソフトウエア開発のテストにおいて、カバレージ情報を取得するための技術に関する。
ソフトウエアの開発においては、開発されたものをテストすることが通常行われている。このテストにおいては、ソフトウエア(プログラム)のテストがどれだけ網羅されているかを示す指標として、カバレージ情報が用いられている。つまり、テストの抜けがないかを、カバレージ情報を用いて把握することが一般的になされている。
このテスト全体の効率化を目的とする従来技術として、特許文献1がある。特許文献1では、マーキングされたソースコードを次のコンパイルにそのまま利用し、テストカバレージ処理の効率向上が可能なテストカバレージマーク技術が開示されている。より詳細には、ソースプログラム10から、対象プロセッサ2により、通過情報が取得され共有メモリ3に格納され、通過情報読出プロセッサ5により、読み出される通過情報は、クライアント端末器6に転送され、クライアント端末器6により、ファイル名が検出された全ソースコードが外部メモリ7に格納され、行毎に検出された通過情報に対応するソースコード行上のセミコロンが検索され、セミコロンの後に通過回数のデータがマーキングされ、ソースプログラムの加工なしに、テストの実行、デバッグ、テストカバレージ計測を一貫して行い、マーキングされたソースコードを次のコンパイルにそのまま利用し、テストカバレージ計測を効率的に行い、計測状態の履歴累積した適確な把握が可能になる。
特開2002−91797号公報
ここで、ソフトウエアのテストにおいては、単にテストしただけでは不十分であり、その詳細を確認する必要がある。つまり、どのようなテストが行われたかを確認、把握できないと、十分なテストがされているかが不明である。
上記の課題を解決するために、本発明では、テスト対象のソフトウエア(プログラム)について、その通過情報を取得し、その内容を出力するものである。より詳細には、被テストソフトウエア(プログラム)に対して、カバレージ取得機能を埋め込んだソースコードを生成し、テストデータを読み込んでテストを実行する際に、そのカバレージ取得機能を機能させるものである。
本発明によれば、テスト対象の通過情報を入手することが可能になる。
本発明の一実施例における計算機を示す図。 本発明の一実施例における処理概要を示す図。 本発明の一実施例で用いるテスト対象プログラム格納ファイルを示す図。 本発明の一実施例の処理内容を示すフローチャート。 本発明の一実施例で用いるカバレージ情報蓄積ファイルの内容を示す図。 本発明の一実施例で用いる取得対象変数格納ファイルの内容を示す図。 本発明の一実施例で用いるテストデータの内容を示す図。 本発明の一実施例で用いるテスト対象プログラム格納ファイルに格納されたソースプログラムの内容を示す図。 本発明の一実施例で用いるカバレージ通過関数とともに格納された変換後ソースの内容を示す図。 本発明の一実施例で用いる解析処理を実行した結果生成されたカバレージ情報蓄積ファイルの内容を示す図。 本発明の一実施例で用いるカバレージ用データ取得処理を実行した結果としてのカバレージ情報蓄積ファイルの内容を示す図。
以下、本発明の一実施例を図面を用いて、詳細に説明する。
図1は本実施例を実施する計算機の機器構成図であり、CPU101,メモリ102,外部記憶装置103,入力装置104,表示装置105,プリンタ106から構成されている。
図2は、本実施例の処理内容の概要図である。202は、図3の説明として後述するテスト対象プログラム格納ファイルに格納されている、テスト対象である既存の完成又は半完成プログラムであるソースプログラム201を参照し、ソースプログラム201の内容を複写する。複写したソースプログラムに対して分析を行い、「命令文」単位に図4にて後述するプログラム行番号を付加し、また図6にて後述する取得対象変数格納ファイルに格納されている変数名を取得・保持し、プログラム行番号ごとに、該コンパイラが解釈できる形式でカバレージ通過関数を生成し、変換後ソース203にプログラムの一部として追記する。さらに分析結果として上記処理にて取得できる各情報をカバレージ情報蓄積ファイル207に格納する図4にて後述する機能「カバレージ通過情報取得処理」を追記する。このソースプログラムをテストプログラム203とする。
そして、この一連の処理202を解析処理とする。204はオブジェクトモジュール生成手順を示す。ここではテストプログラム203を参照して、コンパイラを使ってオブジェクトモジュール205を生成している。コンパイラを使用してオブジェクトモジュールを生成する方法は当業者には周知であるため、煩雑をさけるために説明を省略するがここではコンパイル処理と呼ぶ。
206は、テスト実行手順である。生成されたオブジェクトモジュール205をテストケースに対応する環境とリンクしてオブジェクトモジュール205を実行する手順である。テストケースに対応する環境作成は当業者には容易であると考えられるためここでの説明は省略する。
206は、変換後ソース203に追記された上記及び図9の説明として後述するカバレージ通過関数が実行されることにより、図9の説明として後述するカバレージ通過記号を上記及び図4の説明として後述する該プログラム行番号対応に上記および後述のカバレージ通過記号および通過時保持変数名、通過時保持変数値とカバレージ通過関数の実行結果を関連付けてカバレージ情報蓄積ファイル207に記録する処理である。ここでは206をカバレージ用データ取得処理と呼ぶことにする。
図3は、ソースプログラムを格納するファイルであるテスト対象プログラム格納ファイルを示す図で、301はテスト対象プログラム格納ファイルを示し、302は図2の201として示したテスト対象である既存の完成または半完成プログラムであるソースプログラムを示す。
図4は、図2の202を実施するための処理手順を示すフローチャートであり、以下説明していく。
401は、テスト対象プログラム格納ファイルに格納されたソースプログラム201を複写し、変換後ソース203に格納する処理を示す。この処理方法は当業者に自明である。この処理を命令文複写処理と呼ぶ。
402は、変換後ソース203に格納された既存の完成又は半完成プログラムから「命令文」の終わりを示す”;”などの記号をキーとして「命令文」単位に取り出し、「命令文」単位にプログラム行番号を付加する処理を示す。この処理をプログラム行番号付加処理と呼ぶ。
403は、402ステップにおいて「命令文」単位に取り出し、プログラム行番号を付加した「命令文」に対し、図6にて後述する取得対象変数名602を用いた「命令文」、つまり「命令文」内に取得対象変数名602が含まれているかを判定し、含まれていれば以降のプログラム行番号を付加した「命令文」に対し、404にて後述するカバレージ通過関数を生成する際に、図5にて後述する通過時保持変数名504及び通過時保持変数値505を併せて記録するカバレージ通過関数を生成するためにプログラム行番号と取得対象変数名602の情報を内部に保持する。ここで述べた仕様を提示すれば当業者ならば容易に該カバレージ通過関数をプログラムできると考えられる。403を取得対象変数判定処理と呼ぶ。
404は、変換後ソース203に格納された既存の完成又は半完成プログラムに、「命令文」に付加されたプログラム行番号対応に、「該プログラム行番号情報を内部に持ち、実行時に前述のカバレージ情報蓄積ファイル207に対し、内部のプログラム行番号対応に一致する、(以下カバレージ通過記号と呼ぶ一つの記号)および前述した取得対象変数判定処理403で得た図5にて後述する通過時保持変数名504及び通過時保持変数値505を併せて記録する機能を持ち、前述のコンパイラ等に解釈可能な形式で存在する」カバレージ通過関数を生成して追記する処理である。ここで述べた仕様を提示すれば当業者ならば容易に該カバレージ通過関数をプログラムできると考えられる。404をカバレージ通過関数追記処理と呼ぶ。
405は、解析完了判定を行う。テスト対象プログラム格納ファイルに格納されたソースプログラム201の数と変換後ソース203に格納された既存の完成又は半完成プログラムの数を比較し、数が一致すればすべてのソースプログラム201に対して401、402、403、404を実施したと判断して終了し、一致していなければ401から繰り返し処理を行う。405を解析完了判定処理と呼ぶ。
図5に、本実施例のカバレージ情報蓄積ファイル207の構造を示す。カバレージ情報蓄積ファイル501はプログラム行番号502、カバレージ通過記号503、通過時保持変数名504、通過時保持変数値505の4つの項目より構成されている。
プログラム行番号502には、変換後ソース203に格納された既存の完成又は半完成プログラムにおける、「命令文」単位に対し付加したプログラム行番号を格納する。
カバレージ通過記号503には変換後ソース203に埋め込まれたカバレージ通過関数がテスト実行時に前述のカバレージ通過記号を記入する。
通過時保持変数名504は、プログラム行番号502に対応した前述のカバレージ通過関数にて出力される、図6にて後述する取得対象変数名602を取得し格納する。
通過時保持変数名505は、通過時保持変数名504の値(以下、通過時保持変数値と呼ぶ)を格納する。
図6は、通過時保持変数名504に格納する取得対象変数名を格納するファイルを示す図で、601は取得対象変数格納ファイルを示し、602は通過時保持変数名504に格納する取得対象変数名を示す。602の格納方法については、当業者には自明である。
図7に、変換後ソース203を206のカバレージ用データ取得処理を行う際に用いるテストデータを示す。変数名701はテストデータとして用いる変数の名称が格納されている。テストデータ702は、変数名701に対応したテストデータとして用いる変数に代入する値である。
図8に、テスト対象プログラム格納ファイルに格納されたソースプログラムの一例を示す。図9に、図8の一例を含んだテスト対象プログラム格納ファイルに格納されたソースプログラムを複写し、カバレージ通過関数とともに格納された変換後ソースの図8に相当する部分の一例を示す。太字になっている部分は、カバレージ通過関数を示す。カバレージ通過関数はプログラム行番号対応に、「該プログラム行番号情報を内部に持ち、実行時に前述のカバレージ情報蓄積ファイル207に対し内部のプログラム行番号対応を参照してカバレージ通過記号と呼ぶ1つの記号および通過時保持変数名、通過時保持変数値を記録する機能を持ち、前述のコンパイラ等に解釈可能な形式」で存在している。
図10は、図8に示したテスト対象プログラム格納ファイルに格納されたソースプログラムの一例に対し、202で示した解析処理を実行した結果生成されたカバレージ情報蓄積ファイル207の一例である。ここでは1002プログラム行番号にデータ1,2,3,4,5,6が生成される。カバレージ通過記号1003、通過時保持変数名1004、通過時保持変数値1005には解析処理実施段階ではデータは入力されていない。
図11は、図7のテストデータを用いて206で示したカバレージ用データ取得処理を実行した結果としてのカバレージ情報蓄積ファイル207の一例である。
図11には、206で示したテストの実行結果が記録されている。1102のプログラム行番号、1103のカバレージ通過記号、1104の通過時保持変数名、1105の通過時保持変数値が格納されている。ここで、プログラム行番号に対応する通過時保持変数名および通過時保持変数値を確認することで、該命令文を通過した際に保持していた変数名およびその変数の値を確認することができる。
101…CPU、102…メモリ、103…外部記憶装置、104…入力装置、105…表示装置、106…プリンタ

Claims (3)

  1. ソフトウエアの開発におけるテストにおけるカバレージ情報取得方法において、
    前記ソフトウエアに対して、テストデータを読み込ませることで、テストを実行し、
    前記テストの際に、前記ソフトウエアの所定箇所毎に、通過情報であるカバレージ情報を取得し、当該カバレージ情報として、前記テストデータとして用いる変数の名称である通過保持変数名および当該変数名に対応したテストデータとして用いる変数に代入する値である通過時保持変数値を取得し、
    取得されたカバレージ情報を、前記所定箇所毎に出力することでどのテストデータを用いて当該所定箇所を通過したかを確認可能であることを特徴とするカバレージ情報取得方法。
  2. 請求項1に記載のカバレージ情報取得方法において、
    前記カバレージ情報の取得は、前記ソフトウエアのソースコードに埋め込まれたカバレージ取得機能により実行することで実現することを特徴とするカバレージ情報取得方法。
  3. 請求項1または2のいずれかに記載のカバレージ情報取得方法において、
    前記カバレージ情報の出力は、前記所定箇所の内容を示すソースコードと対応付けて出力することを特徴とするカバレージ情報取得方法。
JP2012093483A 2012-04-17 2012-04-17 カバレージ情報取得方法 Expired - Fee Related JP5764521B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012093483A JP5764521B2 (ja) 2012-04-17 2012-04-17 カバレージ情報取得方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012093483A JP5764521B2 (ja) 2012-04-17 2012-04-17 カバレージ情報取得方法

Publications (2)

Publication Number Publication Date
JP2013222312A JP2013222312A (ja) 2013-10-28
JP5764521B2 true JP5764521B2 (ja) 2015-08-19

Family

ID=49593228

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012093483A Expired - Fee Related JP5764521B2 (ja) 2012-04-17 2012-04-17 カバレージ情報取得方法

Country Status (1)

Country Link
JP (1) JP5764521B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160122074A (ko) * 2015-04-13 2016-10-21 메르크 파텐트 게엠베하 액정 매질 및 이를 포함하는 액정 디스플레이

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6536036B1 (en) * 1998-08-20 2003-03-18 International Business Machines Corporation Method and apparatus for managing code test coverage data
JP4483163B2 (ja) * 2002-09-11 2010-06-16 株式会社日立製作所 プログラムテストデバッグ装置
JP2008047083A (ja) * 2006-08-18 2008-02-28 Hiroki Goto プログラム作成支援装置、およびプログラム作成支援プログラム

Also Published As

Publication number Publication date
JP2013222312A (ja) 2013-10-28

Similar Documents

Publication Publication Date Title
US10372594B2 (en) Method and device for retrieving test case based on code coverage
US8397104B2 (en) Creation of test plans
BR102016018127A2 (pt) método para projeto com base em modelo de software de segurança crítica
US8683282B2 (en) Automatic identification of information useful for generation-based functional verification
US8972938B2 (en) Determining functional design/requirements coverage of a computer code
US20130067436A1 (en) Enhancing functional tests coverage using traceability and static analysis
JP5208635B2 (ja) プログラミングを支援するための情報処理装置、情報処理システム、プログラミング支援方法およびプログラム
US20120185669A1 (en) Program inspection method and non-transitory, computer readable storage medium storing inspection program
US20130339798A1 (en) Methods for automated software testing and devices thereof
Velicheti et al. Towards modeling the behavior of static code analysis tools
Mendonça et al. Test2feature: Feature-based test traceability tool for highly configurable software
JP5764521B2 (ja) カバレージ情報取得方法
CN111274120A (zh) 一种接口文档的验证方法和装置
JP4874277B2 (ja) 自動テスト実行システム
JP2013218492A (ja) ソフトウェアテスト自動評価装置および方法
JP2013171350A (ja) 図式プログラムのテスト網羅性測定装置およびその方法、並びにプログラム
JP5811978B2 (ja) モデルベースの制御装置用のテストケース生成装置およびテストケース生成方法
JP6812637B2 (ja) プログラマブルコントローラシステム、その開発支援装置、ターゲット装置
JP2009087353A (ja) 公開異種分散型アプリケーションから非公開同種非分散型アプリケーションを生成するシステム及び方法
JPWO2012049816A1 (ja) モデル検査装置、方法及びプログラム
JP5371122B2 (ja) ログ情報漏洩防止方法およびログ情報漏洩防止装置
JP4483163B2 (ja) プログラムテストデバッグ装置
CN108446120A (zh) 一种sdk接入安装包的检测方法、装置及终端设备
CN112148581A (zh) 代码规范检查方法、装置、系统及存储介质
JP2008176520A (ja) タグ変換装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140825

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150303

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150427

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: 20150519

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150615

LAPS Cancellation because of no payment of annual fees