JP2015162191A - Software testing apparatus and software testing program - Google Patents

Software testing apparatus and software testing program Download PDF

Info

Publication number
JP2015162191A
JP2015162191A JP2014038474A JP2014038474A JP2015162191A JP 2015162191 A JP2015162191 A JP 2015162191A JP 2014038474 A JP2014038474 A JP 2014038474A JP 2014038474 A JP2014038474 A JP 2014038474A JP 2015162191 A JP2015162191 A JP 2015162191A
Authority
JP
Japan
Prior art keywords
memory
software
copy
data
error
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
Application number
JP2014038474A
Other languages
Japanese (ja)
Other versions
JP6246022B2 (en
Inventor
孝祐 水野
Kosuke Mizuno
孝祐 水野
佳奈子 行田
Kanako Gyoda
佳奈子 行田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2014038474A priority Critical patent/JP6246022B2/en
Publication of JP2015162191A publication Critical patent/JP2015162191A/en
Application granted granted Critical
Publication of JP6246022B2 publication Critical patent/JP6246022B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide means for ensuring the accuracy of data copying processing in software quality evaluation.SOLUTION: A system simulator 10 comprises: an instruction set simulator 100 executing software and simulating the software; a memory model 200 simulating operation performed by a memory accessed by the software simulated by the instruction set simulator 100; and a copy omission detector 200 monitoring an access to the memory model 200 from the software, recording a monitoring result of the monitored access, and detecting whether a pre-defined error occurs to data copying processing on the basis of the recorded access monitoring result, the data copying processing being processing performed by the software for reading data on a copy source memory serving as a copy source and writing the data to a copy destination memory serving as a copy destination.

Description

この発明は、ソフトウェアの品質を試験するソフトウェア試験プログラムに関する。   The present invention relates to a software test program for testing software quality.

組込みソフトウェア試験(以下、ソフトウェアはS/Wと記す)では一般的に、コードカバレッジなどのテストカバレッジを利用することによって、S/W品質評価が行われる。例えば特許文献1では、複数のモジュールで構成されたコンピュータシステムが組み込まれた組込みシステムの保守支援装置において、クラスタのテストを行ない、その結果に対して評価指標となるテスト網羅率を示すテストカバレッジを表示する技術が提案されている。特許文献2では、新たなコードカバレッジを用いて、コード間の一致と不一致とを明確に区別することができる一致性検査方法などが提案されている。特許文献3では、デバイスAPI呼び出しカバレッジを計算することにより、テストシナリオを評価する技術が提案されている。   In an embedded software test (hereinafter, software is referred to as S / W), S / W quality evaluation is generally performed by using test coverage such as code coverage. For example, in Patent Document 1, in a maintenance support device for an embedded system in which a computer system composed of a plurality of modules is installed, a test of a cluster is performed, and a test coverage indicating a test coverage rate as an evaluation index for the result is obtained. Display techniques have been proposed. Patent Document 2 proposes a consistency check method that can clearly distinguish between match and mismatch between codes using new code coverage. Patent Document 3 proposes a technique for evaluating a test scenario by calculating device API call coverage.

特開2012−073692号公報JP2012-073692A 特開2009−163636号公報JP 2009-163636 A 特開2012−103745号公報JP 2012-103745 A

コードカバレッジを利用した従来のS/W品質評価では、多様な条件で発生するデータコピー漏れを検出できないという課題があった。特許文献1〜3はコードカバレッジを利用しているため、データコピー処理が適切に実装されていない場合においても、誤って品質に問題が無いと判断してしまう。なぜなら、コードカバレッジはソースコードにおいて、通り得る論理パスの網羅率を示す指標であり、一つ一つの命令の正誤までは判断しないからである。   In conventional S / W quality evaluation using code coverage, there is a problem that data copy omissions occurring under various conditions cannot be detected. Since Patent Documents 1 to 3 use code coverage, even if data copy processing is not properly implemented, it is erroneously determined that there is no problem in quality. This is because code coverage is an index indicating the coverage rate of the logical paths that can be passed in the source code, and does not determine whether each instruction is correct or incorrect.

この発明は、S/W品質評価におけるデータコピー処理の正確性を保証することを目的とする。   An object of the present invention is to guarantee the accuracy of data copy processing in S / W quality evaluation.

この発明のソフトウェア試験装置は、
ソフトウェアを実行して前記ソフトウェアを模擬するソフトウェア模擬部と、
前記ソフトウェア模擬部が模擬する前記ソフトウェアによってアクセスされるメモリの動作を模擬するメモリ模擬部と、
前記ソフトウェアによる前記メモリ模擬部へのアクセスを監視し、監視したアクセス監視結果を記録し、記録した前記アクセス監視結果に基づいて、前記ソフトウェアによる処理であってコピー元となるコピー元メモリのデータを読み出してコピー先となるコピー先メモリへ書き込む処理であるデータコピー処理に、予め定義されたエラーが発生したかどうかを検出するエラー検出部と
を備えたことを特徴とする。
The software testing apparatus of the present invention
A software simulation unit that executes software to simulate the software;
A memory simulator for simulating the operation of a memory accessed by the software simulated by the software simulator;
The access to the memory simulation unit by the software is monitored, and the monitored access monitoring result is recorded. Based on the recorded access monitoring result, the data of the copy source memory that is a process of the software and serves as a copy source is recorded. The data copy process, which is a process of reading and writing to a copy destination memory as a copy destination, includes an error detection unit that detects whether or not a predefined error has occurred.

この発明によれば、S/W品質評価におけるデータコピー処理の正確性を保証することができる。   According to the present invention, it is possible to guarantee the accuracy of the data copy process in the S / W quality evaluation.

実施の形態1の図で、システムシミュレータ10の構成図。FIG. 3 is a diagram of the first embodiment and is a configuration diagram of a system simulator 10. 実施の形態1の図で、システムシミュレータ10を用いた際の、コピー漏れ検出手順を示すフローチャート。FIG. 5 is a flowchart of a copy leakage detection procedure when the system simulator 10 is used in the diagram of the first embodiment. 実施の形態1の図で、コピー漏れ検出部200の構成図。FIG. 3 is a diagram of the first embodiment, and is a configuration diagram of a copy leakage detection unit 200. 図2のコピー漏れ検出S11の内容を示す詳細フローチャート。3 is a detailed flowchart showing the contents of copy omission detection S11 in FIG. 実施の形態1の図で、メモリマップ400を示す図。FIG. 3 is a diagram of the first embodiment and shows a memory map 400; 実施の形態1の図で、コピー漏れ検出結果500を示す図。FIG. 4 is a diagram of the first embodiment, showing a copy leak detection result 500; 実施の形態1の図で、コピー漏エラーリストを示す図。FIG. 3 is a diagram illustrating a copy leakage error list according to the first embodiment. 図4のテーブル初期化S110の内容を示す詳細フローチャート。5 is a detailed flowchart showing the contents of table initialization S110 in FIG. 図4のメモリアクセス監視S111の内容を示す詳細フローチャート。5 is a detailed flowchart showing the contents of memory access monitoring S111 in FIG. 図9のS1112の内容を示す詳細フローチャート。The detailed flowchart which shows the content of S1112 of FIG. 図9のS1114の内容を示す詳細フローチャート。The detailed flowchart which shows the content of S1114 of FIG. 図9のS1116の内容を示す詳細フローチャート。The detailed flowchart which shows the content of S1116 of FIG. 図4のエラー検出S114の内容を示す詳細フローチャート。5 is a detailed flowchart showing details of error detection S114 in FIG. 実施の形態2のシステムシミュレータ20の構成図。FIG. 3 is a configuration diagram of a system simulator 20 of a second embodiment. 実施の形態2の図で、システムシミュレータ20を用いた際の、コピー漏れ検出手順を示すフローチャート。FIG. 9 is a flowchart of a copy leakage detection procedure when the system simulator 20 is used in the diagram of the second embodiment. 実施の形態2の図で、システムシミュレータ10,20のハードウェア構成の一例を示す図。FIG. 4 is a diagram of the second embodiment, and illustrates an example of a hardware configuration of system simulators 10 and 20.

実施の形態1.
[システムシミュレータ10の構成]
図1は、システムシミュレータ10(ソフトウェア試験装置)の構成図である。図1を参照してシステムシミュレータ10の構成を説明する。システムシミュレータ10は、命令セットシミュレータ(Instruction Set Simulator)100、コピー漏れ検出部200(エラー検出部)、メモリモデル300(メモリ模擬部)を備える。図2でシステムシミュレータ10の動作を後述する。
Embodiment 1 FIG.
[Configuration of System Simulator 10]
FIG. 1 is a configuration diagram of a system simulator 10 (software test apparatus). The configuration of the system simulator 10 will be described with reference to FIG. The system simulator 10 includes an instruction set simulator (Instruction Set Simulator) 100, a copy omission detection unit 200 (error detection unit), and a memory model 300 (memory simulation unit). The operation of the system simulator 10 will be described later with reference to FIG.

(命令セットシミュレータ100)
命令セットシミュレータ100(ソフトウェア模擬部)は、S/Wとテストパタンを読み込み、命令処理、メモリアクセス、及びプログラムカウンタの動作をシミュレーション(模擬)する機能を有する。
(Instruction Set Simulator 100)
The instruction set simulator 100 (software simulation unit) has a function of reading S / W and test patterns and simulating (simulating) instruction processing, memory access, and program counter operations.

(コピー漏れ検出部200)
コピー漏れ検出部200は、S/Wによるメモリモデル300へのアクセスを監視し、監視したアクセス監視結果を後述のメモリマップレコード211に記録し、メモリマップレコード211に基づいて、模擬されているS/Wによるデータコピー処理に、予め定義されたエラーが発生したかどうかを検出する。なおデータコピー処理とは、S/Wによる処理であり、コピー元となるSourceメモリのデータを読み出して、コピー先となるDestinationメモリへ書き込む処理である。具体的には、コピー漏れ検出部200は、命令セットシミュレータ100から出力される実行命令アドレス、メモリモデルへのR/W(リード・ライト)リクエスト、アドレス、データ、及びメモリマップ400を基にコピー漏れ検出を行う。検出結果はコピー漏れ検出結果500に出力される。図3、図4で、コピー漏れ検出部200の内部構成及び動作を後述する。
(Copy leakage detection unit 200)
The copy leak detection unit 200 monitors the access to the memory model 300 by S / W, records the monitored access monitoring result in a memory map record 211 described later, and is simulated based on the memory map record 211. It is detected whether or not a predefined error has occurred in the data copy processing by / W. The data copy process is a process based on S / W, and is a process of reading data from a source memory as a copy source and writing it into a destination memory as a copy destination. Specifically, the copy omission detection unit 200 performs copying based on the execution instruction address output from the instruction set simulator 100, the R / W (read / write) request to the memory model, the address, data, and the memory map 400. Perform leak detection. The detection result is output as a copy leak detection result 500. The internal configuration and operation of the copy leakage detection unit 200 will be described later with reference to FIGS.

(メモリモデル300)
メモリモデル300は、システムに実装されるメモリの動作を模擬する機能を有する。システムシミュレータ10では、データのコピー元となるSourceメモリと、データのコピー先となるDestinationメモリの2種類を想定する。この2種類のメモリは同一メモリでもよいし、または独立した2枚のメモリを用いて構成される。メモリの動作を正しく模擬できるのであれば、システムシミュレータ10に適用するためのメモリモデルの実装方法は特に制限されない。
(Memory model 300)
The memory model 300 has a function of simulating the operation of a memory mounted on the system. The system simulator 10 assumes two types: a source memory that is a data copy source and a destination memory that is a data copy destination. The two types of memories may be the same memory, or are configured using two independent memories. As long as the memory operation can be simulated correctly, the memory model mounting method for application to the system simulator 10 is not particularly limited.

(メモリマップ400)
メモリマップ400は、SourceメモリのR/Wトリガ設定、Sourceメモリのアドレスと、Destinationメモリのアドレスのペアを定義したファイルである。
図5は、メモリマップ400のイメージを示す。
(Memory map 400)
The memory map 400 is a file that defines a source memory R / W trigger setting, a source memory address, and a destination memory address pair.
FIG. 5 shows an image of the memory map 400.

(コピー漏れ検出結果500)
コピー漏れ検出結果500は、コピー漏れ検出部200が検出したコピー漏れに関する詳細情報の出力である。
図6は、コピー漏れ検出結果の出力イメージを示す。
図7は、検出可能なエラーのリストを示す。
(Copy leak detection result 500)
The copy leakage detection result 500 is an output of detailed information regarding copy leakage detected by the copy leakage detection unit 200.
FIG. 6 shows an output image of the copy leak detection result.
FIG. 7 shows a list of detectable errors.

[システムシミュレータ10の全体動作フローチャート]
図2は、システムシミュレータ10を用いた際の、コピー漏れ検出手順を示すフローチャートである。図2を参照してシステムシミュレータ10の動作を説明する。
(1)S10では、命令セットシミュレータ100がS/Wシミュレーションを実行する。
(2)S11では、コピー漏れの検出を行う。コピー漏れの検出の詳細フローは、図4、図8、図9、図10、図11、図12、図13で説明する。図2のS11の詳細が図4である。図4はさらに、図8、図9、図13で詳しく説明(後述)する。図4のS110、S111、S114の詳細が、それぞれ図8、図9、図13である。また、図9のS1112、S1114、S1116の詳細が、それぞれ図10〜図12である(後述)。
(3)S12では、コピー漏れが0かどうか(コピー漏れが無いかどうか)の判断を行う。S12が真である(コピー漏れが無い)場合、テストを終了する。S12が偽である(コピー漏れがある)場合、S13に分岐する。
(4)S13では、例えば担当者が、コピー漏れ検出結果500を評価し、コピー漏れ原因箇所を特定する。
(5)S14では、例えば担当者が、コピー漏れ原因箇所を修正する。修正後、再びS10を実行する。
(6)以上のプロセスをS12において、コピー漏れが0と判断されるまで実行する。
[Overall Operation Flowchart of System Simulator 10]
FIG. 2 is a flowchart showing a copy leakage detection procedure when the system simulator 10 is used. The operation of the system simulator 10 will be described with reference to FIG.
(1) In S10, the instruction set simulator 100 executes S / W simulation.
(2) In S11, copy leakage is detected. A detailed flow for detecting copy leakage will be described with reference to FIGS. 4, 8, 9, 10, 11, 12, and 13. Details of S11 in FIG. 2 are shown in FIG. 4 will be further described in detail with reference to FIGS. 8, 9, and 13 (described later). Details of S110, S111, and S114 of FIG. 4 are FIGS. 8, 9, and 13, respectively. Details of S1112, S1114, and S1116 in FIG. 9 are shown in FIGS. 10 to 12 (described later).
(3) In S12, it is determined whether or not copy leakage is 0 (whether there is no copy leakage). If S12 is true (no copy omission), the test is terminated. If S12 is false (there is a copy omission), the process branches to S13.
(4) In S13, for example, the person in charge evaluates the copy leakage detection result 500 and identifies the cause of the copy leakage.
(5) In S14, for example, the person in charge corrects the copy omission cause location. After correction, S10 is executed again.
(6) The above process is executed until it is determined in S12 that copy leakage is zero.

[コピー漏れ検出部200の構成]
図3は、コピー漏れ検出部200の構成図である。図3を参照してコピー漏れ検出部200の内部構成について説明する。コピー漏れ検出部200は、メモリマップテーブル210、テーブル初期化部220、メモリアクセス監視部230、エラー検出部240を備える。
[Configuration of Copy Leakage Detection Unit 200]
FIG. 3 is a configuration diagram of the copy leak detection unit 200. The internal configuration of the copy leak detection unit 200 will be described with reference to FIG. The copy omission detection unit 200 includes a memory map table 210, a table initialization unit 220, a memory access monitoring unit 230, and an error detection unit 240.

(メモリマップテーブル210)
メモリマップテーブル210は、メモリマップレコード211(メモリマップ情報)をSourceメモリアドレスとDestinationメモリアドレスの組み合わせ数分保持する。SourceメモリアドレスとDestinationメモリアドレスの組み合わせは、メモリマップ400で定義される。メモリマップレコード211は、Sourceメモリアドレス、またはDestinationメモリアドレスをキーとして検索できるように、登録される。
なおメモリマップテーブル210はシステムシミュレータ10のハードウェア構成を示す実施の形態3における磁気ディスク装置960(メモリマップ情報格納部の一例)あるいはRAM952(メモリマップ情報格納部の一例)に格納される。
(Memory map table 210)
The memory map table 210 holds memory map records 211 (memory map information) for the number of combinations of the source memory address and the destination memory address. A combination of the source memory address and the destination memory address is defined in the memory map 400. The memory map record 211 is registered so that it can be searched using the source memory address or the destination memory address as a key.
The memory map table 210 is stored in the magnetic disk device 960 (an example of the memory map information storage unit) or the RAM 952 (an example of the memory map information storage unit) in the third embodiment showing the hardware configuration of the system simulator 10.

(メモリマップレコード211)
メモリマップレコード211は、SourceメモリR/Wトリガ設定212、SourceメモリPUSHフラグ213(第1のフラグ)、SourceメモリPOPフラグ214(第2のフラグ)、Sourceメモリアドレス215、Destinationメモリアドレス216、実行命令アドレス217、及びメモリデータ218から構成される。
SourceメモリR/Wトリガ設定212、Sourceメモリアドレス215、Destinationメモリアドレス216は、後述(テーブル初期化処理)のようにそれぞれメモリマップ400の値が記載される。SourceメモリPUSHフラグ213、SourceメモリPOPフラグ214、実行命令アドレス217、及びメモリデータ218等は、後述(S11142,S11163)のように、メモリアクセスの監視結果に応じて記録される。
(Memory map record 211)
The memory map record 211 includes a source memory R / W trigger setting 212, a source memory push flag 213 (first flag), a source memory POP flag 214 (second flag), a source memory address 215, a destination memory address 216, and execution. It consists of an instruction address 217 and memory data 218.
In the source memory R / W trigger setting 212, the source memory address 215, and the destination memory address 216, the values of the memory map 400 are described as described later (table initialization process). The source memory PUSH flag 213, the source memory POP flag 214, the execution instruction address 217, the memory data 218, and the like are recorded according to the memory access monitoring result as described later (S11142, S11163).

(1)SourceメモリR/Wトリガ設定212は、Sourceメモリのリードとライトどちらの発生タイミングでデータを登録するのかを表す。
(2)SourceメモリPUSHフラグ213は、Sourceメモリのデータがテーブルに登録された状態かどうかを表す。
(3)SourceメモリPOPフラグ214は、Sourceメモリのデータがテーブルから削除された状態かどうかを表す。
(4)Sourceメモリアドレス215は、Sourceメモリのアドレスを表す。
(5)Destinationメモリアドレス216は、Destinationメモリのアドレスを表す。
(6)実行命令アドレス217は、Sourceメモリにアクセスをおこなった命令のアドレスを表す。
(7)メモリデータ218は、Sourceメモリに書き込まれたデータ、またはSourceメモリから読みだされたデータを表す。
(1) The source memory R / W trigger setting 212 indicates whether data is registered at the read or write timing of the source memory.
(2) The source memory PUSH flag 213 indicates whether or not the source memory data is registered in the table.
(3) The Source memory POP flag 214 indicates whether or not the source memory data has been deleted from the table.
(4) The source memory address 215 represents an address of the source memory.
(5) Destination memory address 216 represents the address of the destination memory.
(6) The execution instruction address 217 represents the address of the instruction that accessed the source memory.
(7) The memory data 218 represents data written to the source memory or data read from the source memory.

(テーブル初期化部220)
テーブル初期化部220は、メモリアクセス監視部230がメモリマップテーブル210上をSourceメモリアドレス、またはDestinationメモリアドレスをキーとして検索を行えるように、メモリマップテーブル210を初期化する。初期化はS/Wシミュレーション開始時に実行される。テーブル初期化部220は、メモリマップ400に記述されたSourceメモリアドレスとDestinationメモリアドレスを1セットとして、1つのレコードのSourceメモリアドレス215とDestinationメモリアドレス216に値を設定する。またテーブル初期化部220は、メモリマップ400に記述されたSourceメモリR/Wトリガ設定をSourceメモリR/Wトリガ設定212に設定する。テーブル初期化部220は、SourceメモリPUSHフラグ213、SourceメモリPOPフラグ214、実行命令アドレス217、及びメモリデータ218は、0に設定する。データの設定完了後、テーブル初期化部220は、メモリマップテーブル210にメモリマップレコード211を登録する。テーブル初期化部220の動作のフローチャートは、図8で後述する。
(Table initialization unit 220)
The table initialization unit 220 initializes the memory map table 210 so that the memory access monitoring unit 230 can search the memory map table 210 using the source memory address or the destination memory address as a key. Initialization is executed at the start of the S / W simulation. The table initialization unit 220 sets the source memory address and the destination memory address described in the memory map 400 as one set, and sets values in the source memory address 215 and the destination memory address 216 of one record. Further, the table initialization unit 220 sets the source memory R / W trigger setting described in the memory map 400 to the source memory R / W trigger setting 212. The table initialization unit 220 sets the source memory PUSH flag 213, the source memory POP flag 214, the execution instruction address 217, and the memory data 218 to zero. After completing the data setting, the table initialization unit 220 registers the memory map record 211 in the memory map table 210. A flowchart of the operation of the table initialization unit 220 will be described later with reference to FIG.

(メモリアクセス監視部230)
メモリアクセス監視部230は、メモリR/Wリクエストの発生をトリガとしてメモリマップテーブル210上を検索する。メモリアドレスをキーとしてメモリマップテーブル210の検索を行い、ヒットするレコードが存在すれば、データの登録・削除を行う。シミュレーションの途中でコピー漏れが発生した場合は、メモリアクセス監視部230は、エラー検出部240に通知し、コピー漏れ検出結果500に検出結果を出力させる。メモリアクセス監視部230の動作は、図9、図10、図11、図12の説明で後述する。
(Memory access monitoring unit 230)
The memory access monitoring unit 230 searches the memory map table 210 with the occurrence of a memory R / W request as a trigger. The memory map table 210 is searched using the memory address as a key, and if there is a hit record, data registration / deletion is performed. If a copy leak occurs during the simulation, the memory access monitoring unit 230 notifies the error detection unit 240 and causes the copy leak detection result 500 to output the detection result. The operation of the memory access monitoring unit 230 will be described later with reference to FIGS. 9, 10, 11, and 12.

(エラー検出部240)
エラー検出部240は、メモリアクセス監視部230からのエラー通知、またはシミュレーション終了のタイミングで動作する。エラー検出部240は、各メモリマップレコード211の状態を基に、コピー漏れの原因を検出し、コピー漏れ検出結果500に検出結果を出力する。エラー検出部240の動作は、図13で後述する。
(Error detection unit 240)
The error detection unit 240 operates at the timing of error notification from the memory access monitoring unit 230 or the end of simulation. The error detection unit 240 detects the cause of copy leakage based on the state of each memory map record 211 and outputs the detection result to the copy leakage detection result 500. The operation of the error detection unit 240 will be described later with reference to FIG.

[コピー漏れ検出S11の詳細動作]
図4はコピー漏れ検出S11の詳細フローチャートである。図4を参照してコピー漏れ検出S11の詳細動作を説明する。
(1)S110では、テーブル初期化部220がテーブルの初期化を行う。このテーブル初期化部220の動作詳細は図8で後述する。
(2)S111では、メモリアクセス監視部230が、ソフトウェアのメモリアクセスを監視し、アクセスがあればメモリマップテーブル210の検索・更新を行う。メモリアクセス監視部230の動作詳細は図9、図10、図11、図12で後述する。
(3)S112では、メモリアクセス監視部230が、エラーが起こったかどうかを判定し、S111でエラーが起こったかどうかで分岐する。S112が真(エラーが発生)の場合、S114へ進む。S112が偽である(エラーが発生していない)場合、S113へ進む。
(4)S113では、シミュレーションが終了したかどうかで分岐する。S113が真である(シミュレーション終了)場合、S114へ進む。S113が偽である(シミュレーションが終了していない)場合、S111に戻る。
(5)S114では、メモリアクセス監視部230によるメモリアクセス監視(S111)でエラーが発生した場合に、エラー検出部240が、詳細情報をコピー漏れ検出結果500に出力する。また、エラー検出部240は、シミュレーション終了後に、メモリマップテーブル210中の各メモリマップレコード211のフラグをチェックし、エラーが発生していないかどうかチェックする。この詳細は図13で後述する。
[Detailed Operation of Copy Leakage Detection S11]
FIG. 4 is a detailed flowchart of copy leakage detection S11. The detailed operation of the copy omission detection S11 will be described with reference to FIG.
(1) In S110, the table initialization unit 220 initializes the table. Details of the operation of the table initialization unit 220 will be described later with reference to FIG.
(2) In S111, the memory access monitoring unit 230 monitors the memory access of the software, and if there is access, searches and updates the memory map table 210. Details of the operation of the memory access monitoring unit 230 will be described later with reference to FIGS. 9, 10, 11, and 12.
(3) In S112, the memory access monitoring unit 230 determines whether an error has occurred, and branches depending on whether an error has occurred in S111. If S112 is true (an error has occurred), the process proceeds to S114. If S112 is false (no error has occurred), the process proceeds to S113.
(4) In S113, the process branches depending on whether the simulation is completed. If S113 is true (simulation end), the process proceeds to S114. When S113 is false (simulation has not ended), the process returns to S111.
(5) In S114, when an error occurs in the memory access monitoring (S111) by the memory access monitoring unit 230, the error detection unit 240 outputs detailed information to the copy omission detection result 500. Further, after the simulation is completed, the error detection unit 240 checks the flag of each memory map record 211 in the memory map table 210 to check whether an error has occurred. Details of this will be described later with reference to FIG.

[テーブル初期化S110の詳細動作]
図8は、テーブル初期化部220が実行するテーブル初期化(S110)の詳細フローチャートである。図を参照してテーブル初期化部220によるテーブル初期化S110の動作について説明する。図8の動作主体はテーブル初期化部220である。
(1)S1100では、テーブル初期化部220は、メモリマップ400からメモリマップデータを読み出す。
(2)S1101では、テーブル初期化部220は、メモリマップレコード211を生成し、全ての設定(212)、フラグ(213、214)、アドレス(215〜217)、データ(218)を0にクリアする。
(3)S1102では、テーブル初期化部220は、S11001で生成したメモリマップレコード211の各項目(212,215,216)に、S1100で読み出したSourceメモリR/Wトリガ設定、Sourceメモリアドレス、Destinationメモリアドレスを設定する。
(4)S1103では、テーブル初期化部220は、S1101で生成したメモリマップレコード211をメモリマップテーブル210に登録する。
(5)S1104では、メモリマップ400の全データを読み出したかどうかで分岐する。
S1104が真(読出し完了)であれば、終了する。S1104が偽(読出し未完了)であれば、S1100に戻る。
[Detailed Operation of Table Initialization S110]
FIG. 8 is a detailed flowchart of table initialization (S110) executed by the table initialization unit 220. The operation of the table initialization S110 by the table initialization unit 220 will be described with reference to the drawing. The operation subject in FIG. 8 is the table initialization unit 220.
(1) In S1100, the table initialization unit 220 reads memory map data from the memory map 400.
(2) In S1101, the table initialization unit 220 generates a memory map record 211, and clears all settings (212), flags (213, 214), addresses (215-217), and data (218) to 0. To do.
(3) In S1102, the table initialization unit 220 adds, to each item (212, 215, 216) of the memory map record 211 generated in S11001, the Source memory R / W trigger setting, Source memory address, and Destination read in S1100. Set the memory address.
(4) In S1103, the table initialization unit 220 registers the memory map record 211 generated in S1101 in the memory map table 210.
(5) In S1104, the process branches depending on whether all data in the memory map 400 has been read.
If S1104 is true (reading complete), the process ends. If S1104 is false (reading is incomplete), the process returns to S1100.

[メモリアクセス監視S111の詳細動作]
図9は、メモリアクセス監視部230によるメモリアクセス監視S111の詳細フローチャートであり、動作主体はメモリアクセス監視部230である。図9を参照してメモリアクセス監視部230が行うメモリアクセス監視S111の詳細動作を説明する。図9におけるS1111,S1113、S1115等の判断は、メモリアクセス監視部230が、図3のメモリR/Wリクエスト、メモリアドレス等の入力されるデータをメモリマップテーブル210で参照することで判断できる。
(1)S1110では、メモリアクセスがあるかどうか判断する。エラー検出部240は図2においてメモリR/Wリクエスト等が入力されたかどうかで判断可能である。S1110が真(メモリアクセスあり)であれば、S1111へ分岐する。S1110が偽(メモリアクセスなし)であれば、終了する。
(2)S1111では、メモリアクセス監視部230は、Destinationメモリからの読出しかどうか判断する。S1111が真(Destinationメモリからの読出しである)であれば、S1112に分岐する。S1111が偽(Destinationメモリからの読出しではない)であれば、S1113に分岐する。
(3)S1112では、メモリアクセス監視部230はDestinationメモリ読出し時の処理を行う。詳細は図10で後述する。
(4)S1113では、メモリアクセス監視部230は、Sourceメモリへの書込みかどうか判断する。S1113が真(Sourceメモリへの書込みである)であれば、S1114に分岐する。S1113が偽(Sourceメモリへの書込みではない)であれば、S1115に分岐する。
(5)S1114では、メモリアクセス監視部230は、Sourceメモリ書込み時の処理を行う。詳細動作は図11で後述する。
(6)S1115では、メモリアクセス監視部230は、Destinationメモリへの書込みかどうか判断する。S1115が真(Destinationメモリへの書込みである)であれば、S1116に分岐する。S1115が偽(Destinationメモリへの書込みではない)であれば、終了する。
(7)S1116では、メモリアクセス監視部230は、Destinationメモリ書込み時の処理を行う。詳細は図12で後述する。
[Detailed Operation of Memory Access Monitoring S111]
FIG. 9 is a detailed flowchart of the memory access monitoring S111 performed by the memory access monitoring unit 230. The operating subject is the memory access monitoring unit 230. A detailed operation of the memory access monitoring S111 performed by the memory access monitoring unit 230 will be described with reference to FIG. The determination of S1111, S1113, S1115, etc. in FIG. 9 can be made by the memory access monitoring unit 230 referring to the input data such as the memory R / W request, memory address, etc. of FIG.
(1) In S1110, it is determined whether there is a memory access. The error detection unit 240 can determine whether or not a memory R / W request or the like is input in FIG. If S1110 is true (with memory access), the process branches to S1111. If S1110 is false (no memory access), the process ends.
(2) In S1111, the memory access monitoring unit 230 determines whether to read from the destination memory. If S1111 is true (reading from the Destination memory), the process branches to S1112. If S1111 is false (not reading from the Destination memory), the process branches to S1113.
(3) In S1112, the memory access monitoring unit 230 performs processing at the time of reading the destination memory. Details will be described later with reference to FIG.
(4) In S1113, the memory access monitoring unit 230 determines whether or not to write to the source memory. If S1113 is true (write to the source memory), the process branches to S1114. If S1113 is false (not writing to the source memory), the process branches to S1115.
(5) In S1114, the memory access monitoring unit 230 performs processing at the time of writing to the source memory. Detailed operation will be described later with reference to FIG.
(6) In S1115, the memory access monitoring unit 230 determines whether to write to the destination memory. If S1115 is true (write to the Destination memory), the process branches to S1116. If S1115 is false (not writing to the Destination memory), the process ends.
(7) In S1116, the memory access monitoring unit 230 performs processing at the time of writing to the destination memory. Details will be described later with reference to FIG.

[Destinationメモリ読出し時の処理S1112の詳細]
図10は、Destinationメモリ読出し時の処理S1112の詳細フローチャートである。動作主体はメモリアクセス監視部230である。図10を参照して、メモリアクセス監視部230による、Destinationメモリ読出し時の処理S1112の詳細内容を説明する。
(1)S11120では、メモリアクセス監視部230は、メモリマップテーブル210に、入力されたメモリアドレスに対してヒットするメモリマップレコードが存在するかどうか検索する。S11120が真(該当レコードが存在する)であれば、処理はS11121に分岐する。S11120が偽(該当レコードが存在しない)であれば、処理は終了する。
(2)S11121では、メモリアクセス監視部230は、SourceメモリPUSHフラグ213が無効かどうかで処理を分岐する。S11121が真(SourceメモリPUSHフラグ213が無効)であれば、終了する。S11121が偽(SourceメモリPUSHフラグ213が有効)であれば、S11122に分岐する。なおSourceメモリPUSHフラグ213は、図11のS11142で有効にされる。
(3)S11122では、読出しタイミングエラーを発生する。読出しタイミングエラーは、割り込みや外部からの非同期の読出しによって、SourceメモリへのデータをDestinationメモリにコピーする前に、誤ってDestinationメモリが読み出されたことを示す。つまりS11121でS11121が偽(SourceメモリPUSHフラグ213が有効)とは、メモリマップテーブル210にSourceメモリのデータが登録状態(図12のS1113の処理を経ていない)にあることを示す。なお図10〜図13では、メモリアクセス監視部230は,エラー発生の場合(S11122,S11143、S11164,S11167,S11168、S11169、S11143)、エラー検出リクエストを、エラー検出部240に送信する(図2、図3)が、「S11122,S11143、S11164,S11167,S11168、S11169、S11143」の各エラーは、エラーとして検出するために、「予め定義されたエラー」である。
[Details of Processing S1112 when Reading Destination Memory]
FIG. 10 is a detailed flowchart of the processing S1112 in reading the Destination memory. The operation subject is the memory access monitoring unit 230. With reference to FIG. 10, the detailed content of processing S1112 at the time of reading the Destination memory by the memory access monitoring unit 230 will be described.
(1) In S11120, the memory access monitoring unit 230 searches the memory map table 210 for a memory map record that hits the input memory address. If S11120 is true (the corresponding record exists), the process branches to S11121. If S11120 is false (the corresponding record does not exist), the process ends.
(2) In S11121, the memory access monitoring unit 230 branches the process depending on whether the Source memory PUSH flag 213 is invalid. If S11121 is true (Source memory PUSH flag 213 is invalid), the process ends. If S11121 is false (Source memory PUSH flag 213 is valid), the process branches to S11122. Note that the Source memory PUSH flag 213 is enabled in S11142 of FIG.
(3) In S11122, a read timing error is generated. The read timing error indicates that the destination memory is erroneously read before copying the data to the source memory to the destination memory by an interrupt or asynchronous read from the outside. That is, S11121 is false in S11121 (the Source memory PUSH flag 213 is valid) indicates that the data in the source memory is registered in the memory map table 210 (the process of S1113 in FIG. 12 has not been performed). 10 to 13, when an error occurs (S1112, S11143, S11164, S11167, S11168, S11169, S11143), the memory access monitoring unit 230 transmits an error detection request to the error detection unit 240 (FIG. 2). FIG. 3) shows “S1112, S11143, S11164, S11167, S11168, S11169, and S11143” as “errors defined in advance” in order to detect them as errors.

[Sourceメモリ書込み時の処理S1114の詳細]
図11を参照して、Sourceメモリ書込み時の処理S1114の詳細を説明する。図11は、Sourceメモリ書込み時の処理S1114の詳細フローチャートである。図11の動作主体はメモリアクセス監視部230である。
(1)S11140では、メモリアクセス監視部230は、メモリマップテーブル210に、入力されたメモリアドレスにヒットするレコードが存在するかどうか検索する。S11140が真(該当レコードが存在する)であれば、S11141に分岐する。S11140が偽(該当レコードが存在しない)であれば、終了する。
(2)S11141では、メモリアクセス監視部230は、SourceメモリPUSHフラグ213が無効かどうかで分岐する。S11141が真(SourceメモリPUSHフラグ213が無効)であれば、S11142に分岐する。S11141が偽(SourceメモリPUSHフラグ213が有効)であれば、S11143に分岐する。
(3)S11142では、メモリアクセス監視部230は、入力されたSourceメモリデータ、入力された実行命令アドレスを登録し、SourceメモリPUSHフラグ213を有効にする。
(4)S11143では、メモリアクセス監視部230は、コピー漏れエラーを出力する。コピー漏れエラーは、Sourceメモリの有効データをDestinationメモリにコピーする前に、Sourceメモリへの書込みを行ったことを示す。
[Details of processing S1114 when writing to the source memory]
Details of the processing S1114 at the time of writing to the source memory will be described with reference to FIG. FIG. 11 is a detailed flowchart of the processing S1114 at the time of writing to the source memory. 11 is the memory access monitoring unit 230.
(1) In S11140, the memory access monitoring unit 230 searches the memory map table 210 for a record that hits the input memory address. If S11140 is true (the corresponding record exists), the process branches to S11141. If S11140 is false (the record does not exist), the process ends.
(2) In S11141, the memory access monitoring unit 230 branches depending on whether the Source memory PUSH flag 213 is invalid. If S11141 is true (Source memory PUSH flag 213 is invalid), the process branches to S11142. If S11141 is false (Source memory PUSH flag 213 is valid), the process branches to S11143.
(3) In S11142, the memory access monitoring unit 230 registers the input source memory data and the input execution instruction address, and validates the source memory PUSH flag 213.
(4) In S11143, the memory access monitoring unit 230 outputs a copy leakage error. The copy omission error indicates that writing to the source memory was performed before valid data in the source memory was copied to the destination memory.

[Destinationメモリ書込み時の処理S1116の詳細]
図12は、Destinationメモリ書込み時の処理S1116の詳細フローチャートである。動作主体はメモリアクセス監視部230である。図12を参照してDestinationメモリ書込み時の処理S1116の動作について説明する。
(1)S11160では、メモリアクセス監視部230は、メモリマップテーブル210に入力されたメモリアドレスにヒットするレコードが存在するかどうか検索する。S11160が真(該当レコードが存在する)であれば、S11161に分岐する。S11160が偽(該当レコードが存在しない)であれば、終了する。
(2)S11161では、メモリアクセス監視部230はSourceメモリPUSHフラグ213が有効かどうかで処理を分岐する。S11161が真(SourceメモリPUSHフラグ213が有効)であれば、S11162に分岐する。S11161が偽(SourceメモリPUSHフラグ213が無効)であれば、S11165に分岐する。
(3)S11162では、メモリアクセス監視部230は、メモリマップレコードのDestinationメモリデータと、入力されたSourceメモリデータとが一致するかどうかで分岐する。S11162が真(DestinationメモリデータとSourceメモリデータ218が一致する)であれば、S11163に分岐する。S11162が偽(DestinationメモリデータとSourceメモリデータ218が一致しない)であれば、S11164に分岐する。
(4)S11163では、メモリアクセス監視部230はSourceメモリPUSHフラグ213を無効、SourceメモリPOPフラグ214を有効にする。S11163ではエラーは発生しないが、これは、メモリマップレコード211が存在し、SourceメモリデータPUSHフラグが有効(Sourceメモリにはデータが格納済み)であり、Destinationメモリデータ(図3左側の、入力されたデータ)とSourceメモリデータ(メモリマップレコード211のDestinationメモリアドレス216の値)とが同一のためである。
(5)S11164では、メモリアクセス監視部230は、Destinationメモリデータエラーを出力する。Destinationメモリデータエラーは、Destinationメモリへの書込みにおいて、コピー元のSourceメモリデータと異なるデータの書込みが行われたことを示す。
(6)S11165では、メモリアクセス監視部230はSourceメモリPOPフラグ214が有効かどうかで処理を分岐する。S11165が真(SourceメモリPOPフラグ214が有効)であれば、S11166に分岐する。S11165が偽(SourceメモリPOPフラグ214が無効)であれば、S11169に分岐する。
(7)S11166では、メモリアクセス監視部230は、DestinationメモリデータとSourceメモリデータ218が一致するかどうかで処理を分岐する。S11166が真(DestinationメモリデータとSourceメモリデータ218が一致する)であれば、S11167に分岐する。S11166が偽(DestinationメモリデータとSourceメモリデータ218が一致しない)であれば、S11168に分岐する。
(8)S11167では、メモリアクセス監視部230は、Destinationメモリ多重書込みエラーを出力する。Destinationメモリ多重書込みエラーは、Destinationメモリへの書き込みにおいて、既にコピーされているDestinationメモリアドレスへ、再度書込みをおこなったことを示す。
(9)S11168では、メモリアクセス監視部230は、コピー順序エラーを出力する。コピー順序エラーはSourceメモリにデータが格納される前に、Destinationメモリに書込みをおこなったことを示す。
(10)S11169では、メモリアクセス監視部230は、コピー順序エラーを出力する。コピー順序エラーはSourceメモリにデータが格納される前に、Destinationメモリに書込みをおこなったことを示す。
[Details of Processing S1116 when Writing to Destination Memory]
FIG. 12 is a detailed flowchart of the processing S1116 at the time of writing to the destination memory. The operation subject is the memory access monitoring unit 230. With reference to FIG. 12, the operation of processing S1116 at the time of writing to the destination memory will be described.
(1) In S11160, the memory access monitoring unit 230 searches for a record that hits the memory address input to the memory map table 210. If S11160 is true (the corresponding record exists), the process branches to S11161. If S11160 is false (the record does not exist), the process ends.
(2) In S11161, the memory access monitoring unit 230 branches the process depending on whether the Source memory PUSH flag 213 is valid. If S11161 is true (Source memory PUSH flag 213 is valid), the process branches to S11162. If S11161 is false (Source memory PUSH flag 213 is invalid), the process branches to S11165.
(3) In S11162, the memory access monitoring unit 230 branches depending on whether the Destination memory data of the memory map record matches the input Source memory data. If S11162 is true (Destination memory data and Source memory data 218 match), the process branches to S11163. If S11162 is false (Destination memory data and Source memory data 218 do not match), the process branches to S11164.
(4) In S11163, the memory access monitoring unit 230 invalidates the Source memory PUSH flag 213 and validates the Source memory POP flag 214. An error does not occur in S11163, but this is because the memory map record 211 exists, the Source memory data PUSH flag is valid (the data is already stored in the Source memory), and the Destination memory data (the left side of FIG. 3 is input). This is because the source memory data (the value of the destination memory address 216 of the memory map record 211) is the same.
(5) In S11164, the memory access monitoring unit 230 outputs a Destination memory data error. The Destination memory data error indicates that data different from the copy source Source memory data has been written in the Destination memory.
(6) In S11165, the memory access monitoring unit 230 branches the process depending on whether the Source memory POP flag 214 is valid. If S11165 is true (the Source memory POP flag 214 is valid), the process branches to S11166. If S11165 is false (Source memory POP flag 214 is invalid), the process branches to S11169.
(7) In S11166, the memory access monitoring unit 230 branches the process depending on whether the Destination memory data and the Source memory data 218 match. If S11166 is true (Destination memory data and Source memory data 218 match), the process branches to S11167. If S11166 is false (Destination memory data and Source memory data 218 do not match), the process branches to S11168.
(8) In S11167, the memory access monitoring unit 230 outputs a Destination memory multiple write error. The Destination memory multiple write error indicates that writing to the Destination memory has been performed again to the Destination memory address that has already been copied.
(9) In S11168, the memory access monitoring unit 230 outputs a copy order error. The copy order error indicates that data has been written to the destination memory before data is stored in the source memory.
(10) In S11169, the memory access monitoring unit 230 outputs a copy order error. The copy order error indicates that data has been written to the destination memory before data is stored in the source memory.

[エラー検出S114の詳細]
図13は、エラー検出部240が行う、エラー検出S114の詳細フローチャートである。図13の動作主体はエラー検出部240である。図13を参照してエラー検出S114の動作について説明する。
(1)S1140では、エラー検出部240は、メモリアクセス監視でエラーが発生したかどうかで分岐する。上記のように(図3、図4)、メモリアクセス監視部230はエラーを検出すると、エラー検出部240にエラー出力として、エラー検出リクエストを送信する。S1140が真であれば、S1141に分岐する。S1140が偽であれば、S1142に分岐する。
(2)S1141では、エラー検出部240は、コピー漏れ検出結果500にエラーの詳細を出力する。
(3)S1142では、エラー検出部240は、メモリマップテーブル210からメモリマップレコード211の取得を行う(図2)。
(4)S1143では、エラー検出部240はSourceメモリPUSHフラグ213が有効かどうか判断する。S1143が真であれば、S1144に分岐する。S1143が偽であれば、S1145に進む。
(5)S1144では、エラー検出部240はコピー未実行エラーを出力する。コピー未実行エラーはコピー記述漏れ、コピー記述のアドレス指定ミス等の理由により、正常なコピーが行われなかったことを表す。
(6)S1145でエラー検出部240はコピー漏れ検出結果500にエラーの詳細を出力する。
(7)S1146ではメモリマップテーブル210に含まれる全レコードのチェックが完了したかどうかで分岐する。S1146が真であれば、終了する。S1146が偽であれば、S1142に戻る。
[Details of error detection S114]
FIG. 13 is a detailed flowchart of error detection S114 performed by the error detection unit 240. The operation subject in FIG. 13 is the error detection unit 240. The operation of error detection S114 will be described with reference to FIG.
(1) In S1140, the error detection unit 240 branches depending on whether an error has occurred in the memory access monitoring. As described above (FIGS. 3 and 4), when the memory access monitoring unit 230 detects an error, the memory access monitoring unit 230 transmits an error detection request to the error detection unit 240 as an error output. If S1140 is true, the process branches to S1141. If S1140 is false, the process branches to S1142.
(2) In S1141, the error detection unit 240 outputs details of the error in the copy leakage detection result 500.
(3) In S1142, the error detection unit 240 acquires the memory map record 211 from the memory map table 210 (FIG. 2).
(4) In S1143, the error detection unit 240 determines whether or not the source memory PUSH flag 213 is valid. If S1143 is true, the process branches to S1144. If S1143 is false, the process proceeds to S1145.
(5) In S1144, the error detection unit 240 outputs a copy non-execution error. A copy non-execution error indicates that a normal copy was not performed due to a copy description omission, an address specification error in the copy description, or the like.
(6) In S1145, the error detection unit 240 outputs details of the error to the copy leakage detection result 500.
(7) In S1146, the process branches depending on whether all the records included in the memory map table 210 have been checked. If S1146 is true, the process ends. If S1146 is false, the process returns to S1142.

以上のように、システムシミュレータ10はコピー漏れ検出部200を備えたので、さまざまな要因、及びタイミングで発生するコピー漏れを検出することが可能となる。またシステムシミュレータ10によれば、多様な条件で発生するデータコピー漏れが検出可能となり、S/W品質評価におけるデータコピー処理の正確性を保証する手段を提供できる。   As described above, since the system simulator 10 includes the copy leak detection unit 200, it is possible to detect copy leaks that occur at various factors and timings. Further, according to the system simulator 10, it is possible to detect data copy omissions that occur under various conditions, and it is possible to provide means for assuring the accuracy of data copy processing in S / W quality evaluation.

実施の形態2.
図14、図15を参照して実施の形態2のシステムシミュレータ20を説明する。実施の形態1のシステムシミュレータ10はコピー漏れ検出部200を備えるが、実施の形態2のシステムシミュレータ20は、コピー漏れ検出部200に加え、コードカバレッジ測定部600を備える。以下の説明では、実施の形態1と異なる部分についてのみ説明する。
Embodiment 2. FIG.
The system simulator 20 according to the second embodiment will be described with reference to FIGS. 14 and 15. The system simulator 10 according to the first embodiment includes a copy leakage detection unit 200, but the system simulator 20 according to the second embodiment includes a code coverage measurement unit 600 in addition to the copy leakage detection unit 200. In the following description, only parts different from the first embodiment will be described.

図14は、システムシミュレータ20の構成図である。図14を参照してシステムシミュレータ20の全体構成について説明する。システムシミュレータ20は、システムシミュレータ10に対して、さらにコードカバレッジ測定部600を備える。命令セットシミュレータ100、コピー漏れ検出部200、メモリモデル300、メモリマップ400、コピー漏れ検出結果500等は実施の形態1と同様である。   FIG. 14 is a configuration diagram of the system simulator 20. The overall configuration of the system simulator 20 will be described with reference to FIG. The system simulator 20 further includes a code coverage measurement unit 600 with respect to the system simulator 10. The instruction set simulator 100, the copy omission detection unit 200, the memory model 300, the memory map 400, the copy omission detection result 500, and the like are the same as those in the first embodiment.

(コードカバレッジ測定部600)
コードカバレッジ測定部600は、命令セットシミュレータ100から出力される実行命令アドレスを基に、命令網羅率を測定する機能を有数する。コードカバレッジ測定部600による測定結果は、コードカバレッジ測定結果700に出力される。コードカバレッジを正しく測定できるのであれば、本システムに適用するためのコードカバレッジ測定部600の実装方法は特に制限されない。コードカバレッジ測定結果700は、コードカバレッジ測定部600が計測したコードカバレッジに関する詳細情報の出力である。
(Code coverage measurement unit 600)
The code coverage measurement unit 600 has a function of measuring the instruction coverage rate based on the execution instruction address output from the instruction set simulator 100. The measurement result by the code coverage measurement unit 600 is output to the code coverage measurement result 700. As long as the code coverage can be measured correctly, the implementation method of the code coverage measurement unit 600 for application to the present system is not particularly limited. The code coverage measurement result 700 is an output of detailed information regarding the code coverage measured by the code coverage measurement unit 600.

図15は、システムシミュレータ20の全体動作を示すフローチャートである。図15を参照してシステムシミュレータ20の動作について説明する。コードカバレッジ測定、コピー漏れ検出の2フェーズで構成されている。   FIG. 15 is a flowchart showing the overall operation of the system simulator 20. The operation of the system simulator 20 will be described with reference to FIG. It consists of two phases: code coverage measurement and copy leak detection.

<フェーズ1>
(1)S20で命令セットシミュレータ100がS/Wシミュレーションを実行する。
(2)S21で、コードカバレッジ測定部600がコードカバレッジの測定を行う。
(3)S22で、コードカバレッジ測定部600は、コードカバレッジが100%(閾値の一例)かどうかの判断を行う。S22が真である(カバレッジが100%である)場合、S25に進む。なおコードカバレッジが100%は一例であり、90%以上でもよいし80%以上でも構わない。閾値としてのコードカバレッジの値は自由に設定すればよい。S22が偽である(カバレッジが100%ではない)場合、S23に分岐する。
(3)S23で例えば担当者が、コードカバレッジ測定結果700を評価する。S24で、例えば担当者が、該当箇所を修正する。修正後、再びS20を実行する。以上のプロセスをS22において、カバレッジが100%と判断されるまで実行する。カバレッジが100%と判断されれば、処理は、フェーズ2に進む。
<Phase 1>
(1) In S20, the instruction set simulator 100 executes S / W simulation.
(2) In S21, the code coverage measurement unit 600 measures code coverage.
(3) In S22, the code coverage measurement unit 600 determines whether the code coverage is 100% (an example of a threshold). When S22 is true (the coverage is 100%), the process proceeds to S25. The code coverage of 100% is an example, and it may be 90% or more or 80% or more. The code coverage value as the threshold may be set freely. If S22 is false (the coverage is not 100%), the process branches to S23.
(3) In S23, for example, the person in charge evaluates the code coverage measurement result 700. In S24, for example, the person in charge corrects the corresponding part. After correction, S20 is executed again. The above process is executed in S22 until it is determined that the coverage is 100%. If the coverage is determined to be 100%, the process proceeds to phase 2.

<フェーズ2>
フェーズ2は実施の形態1の図2と同様である。
(1)S25で命令セットシミュレータ100がS/Wシミュレーションを実行する。
(2)S26でコピー漏れの検出を行う。
(3)S27でコピー漏れが0かどうか(コピー漏れが無いかどうか)の判断を行う。S27が真である(コピー漏れなし)場合、終了する。S27が偽である(コピー漏れがある)場合、S28に分岐する。
(4)S28で例えば担当者がコピー漏れ検出結果500を評価し、コピー漏れ原因箇所を特定する。
(5)S29で、例えば担当者がコピー漏れ原因箇所を修正する。修正後、再びS25を実行する。
(6)以上のプロセスをS27において、コピー漏れが0と判断されるまで実行する。
<Phase 2>
Phase 2 is the same as FIG. 2 of the first embodiment.
(1) In S25, the instruction set simulator 100 executes S / W simulation.
(2) In S26, copy leakage is detected.
(3) In S27, it is determined whether copy leakage is 0 (whether there is no copy leakage). If S27 is true (no copy omission), the process ends. If S27 is false (there is a copy omission), the process branches to S28.
(4) In S28, for example, the person in charge evaluates the copy omission detection result 500 and specifies the copy omission cause location.
(5) In S29, for example, the person in charge corrects the copy omission cause location. After the correction, S25 is executed again.
(6) The above process is executed until it is determined in S27 that copy leakage is zero.

実施の形態2のシステムシミュレータ20は、コピー漏れ検出部とコードカバレッジ計測部とを備えたので、以下のような2つのフェーズの検証が可能となり、S/W品質を保証することができる。
<フェーズ1>
コードカバレッジ計測の結果が100%になるまで、テストパタンの修正を行う。本フェーズでテストパタンの妥当性を保証することができる。
<フェーズ2>
コピー漏れが0になるまで、ソースコードのコピー漏れ原因箇所の修正を行う。本フェーズでコピー処理の正確性を保証することができる。
Since the system simulator 20 according to the second embodiment includes the copy leakage detection unit and the code coverage measurement unit, the following two phases can be verified and S / W quality can be guaranteed.
<Phase 1>
The test pattern is corrected until the code coverage measurement result is 100%. In this phase, the validity of the test pattern can be guaranteed.
<Phase 2>
Until the copy omission becomes 0, the cause of the copy omission in the source code is corrected. In this phase, the accuracy of copy processing can be guaranteed.

実施の形態3.
図16は、システムシミュレータ10、20のハードウェア構成の一例を示す図である。図16を参照して実施の形態4を説明する。実施の形態4は、コンピュータであるシステムシミュレータ10、20のハードウェア構成を説明する。システムシミュレータ10、20のハードウェア構成は同様であるので、システムシミュレータ10について説明する。
Embodiment 3 FIG.
FIG. 16 is a diagram illustrating an example of a hardware configuration of the system simulators 10 and 20. The fourth embodiment will be described with reference to FIG. In the fourth embodiment, a hardware configuration of system simulators 10 and 20 which are computers will be described. Since the hardware configurations of the system simulators 10 and 20 are the same, the system simulator 10 will be described.

ハードウェア資源を示す図16において、コンピュータであるシステムシミュレータ10は、プログラムを実行するCPU950(Central Processing Unit)を備えている。CPU950は、バス958を介してROM(Read Only Memory)951、RAM(Random Access Memory)952、表示装置953、キーボード954、マウス955、通信ボード956、CDD957、磁気ディスク装置960と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置960の代わりに、光ディスク装置、フラッシュメモリなどの記憶装置でもよい。   In FIG. 16 showing hardware resources, a system simulator 10 that is a computer includes a CPU 950 (Central Processing Unit) that executes a program. The CPU 950 is connected to a ROM (Read Only Memory) 951, a RAM (Random Access Memory) 952, a display device 953, a keyboard 954, a mouse 955, a communication board 956, a CDD 957, and a magnetic disk device 960 via a bus 958. Control hardware devices. Instead of the magnetic disk device 960, a storage device such as an optical disk device or a flash memory may be used.

RAM952は、揮発性メモリの一例である。ROM951、CDD957、磁気ディスク装置960等の記録媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部、格納部、バッファの一例である。通信ボード956、キーボード954などは、入力部、入力装置の一例である。また、通信ボード956、表示装置953などは、出力部、出力装置の一例である。通信ボード956は、ネットワークに接続されている。   The RAM 952 is an example of a volatile memory. Recording media such as the ROM 951, the CDD 957, and the magnetic disk device 960 are examples of nonvolatile memories. These are examples of a storage device or a storage unit, a storage unit, and a buffer. The communication board 956, the keyboard 954, and the like are examples of an input unit and an input device. The communication board 956, the display device 953, and the like are examples of an output unit and an output device. The communication board 956 is connected to the network.

磁気ディスク装置960には、オペレーティングシステム961(OS)、プログラム群962、ファイル群963が記憶されている。プログラム群962のプログラムは、CPU950、オペレーティングシステム961により実行される。   The magnetic disk device 960 stores an operating system 961 (OS), a program group 962, and a file group 963. The programs in the program group 962 are executed by the CPU 950 and the operating system 961.

上記プログラム群962には、以上の実施の形態の説明において「〜部」として説明した機能を実行するプログラムが記憶されている。プログラムは、CPU950により読み出され実行される。   The program group 962 stores a program for executing the function described as “˜unit” in the description of the above embodiment. The program is read and executed by the CPU 950.

ファイル群963には、以上の実施の形態の説明において、「〜の判定結果」、「〜の算出結果」、「〜の抽出結果」、「〜の生成結果」、「〜の処理結果」として説明した情報や、データや信号値や変数値やパラメータなどが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。また、ディスクやメモリなどの記録媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU950によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。   In the description of the above embodiment, the file group 963 includes “determination result”, “calculation result”, “extraction result”, “generation result”, and “processing result”. The described information, data, signal values, variable values, parameters, and the like are stored as items of “˜file” and “˜database”. The “˜file” and “˜database” are stored in a recording medium such as a disk or a memory. In addition, information, data, signal values, variable values, and parameters stored in a recording medium such as a disk or memory are read out to the main memory or cache memory by the CPU 950 via a read / write circuit, and extracted, searched, referenced, and compared. Used for CPU operations such as calculation, calculation, processing, output, printing, display, etc. Information, data, signal values, variable values, and parameters are temporarily stored in the main memory, cache memory, and buffer memory during CPU operations such as extraction, search, reference, comparison, operation, calculation, processing, output, printing, and display. Memorized.

また、以上に述べた実施の形態の説明において、データや信号値は、RAM952のメモリ、CDD957のコンパクトディスク、磁気ディスク装置960の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital Versatile Disk)等の記録媒体に記録される。また、データや信号は、バス958や信号線やケーブルその他の伝送媒体によりオンライン伝送される。   In the description of the embodiment described above, data and signal values are stored in the memory of the RAM 952, the compact disk of the CDD 957, the magnetic disk of the magnetic disk device 960, other optical disks, mini disks, DVDs (Digital Versatile Disk), and the like. Recorded on a recording medium. Data and signals are transmitted online via a bus 958, signal lines, cables, or other transmission media.

また、以上の実施の形態の説明において、「〜部」、「命令セットシミュレータ」及び「メモリモデル」として説明したものは、「〜手段」、であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明したものは、ソフトウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU950により読み出され、CPU950により実行される。すなわち、プログラムは、以上に述べた「〜部」としてコンピュータを機能させるものである。あるいは、以上に述べた「〜部」の手順や方法をコンピュータに実行させるものである。   In the above description of the embodiment, what has been described as “to part”, “instruction set simulator” and “memory model” may be “to means”, and “to step”, It may be “˜procedure” or “˜processing”. That is, what has been described as “˜unit” may be implemented by software alone, a combination of software and hardware, or a combination of firmware. Firmware and software are stored as programs in a recording medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a mini disk, and a DVD. The program is read by the CPU 950 and executed by the CPU 950. That is, the program causes the computer to function as the “˜unit” described above. Alternatively, the computer executes the procedure and method of “to part” described above.

以上の実施の形態では、システムシミュレータ10を説明したが、この動作は、プログラムとしても把握できることは以上の説明から当然である。また、システムシミュレータ10の各「〜部」の動作は方法としても把握できることは以上の説明により明らかである。   In the above embodiment, the system simulator 10 has been described, but it is obvious from the above description that this operation can also be grasped as a program. Moreover, it is clear from the above description that the operation of each “˜unit” of the system simulator 10 can be grasped as a method.

10,20 システムシミュレータ、100 命令セットシミュレータ、200 コピー漏れ検出部、210 メモリマップテーブル、211 メモリマップレコード、212 SourceメモリR/Wトリガ設定、213 SourceメモリPUSHフラグ、214 SourceメモリPOPフラグ、215 Sourceメモリアドレス、216 Destinationメモリアドレス、217 実行命令アドレス、218 メモリデータ、220 テーブル初期化部、230 メモリアクセス監視部、240 エラー検出部、300 メモリモデル、400 メモリマップ、500 コピー漏れ検出結果、600 コードカバレッジ測定部、700 コードカバレッジ測定結果。   10, 20 System simulator, 100 Instruction set simulator, 200 Copy omission detection unit, 210 Memory map table, 211 Memory map record, 212 Source memory R / W trigger setting, 213 Source memory PUSH flag, 214 Source memory POP flag, 215 Source Memory address, 216 Destination memory address, 217 Execution instruction address, 218 Memory data, 220 Table initialization unit, 230 Memory access monitoring unit, 240 Error detection unit, 300 Memory model, 400 Memory map, 500 Copy leak detection result, 600 code Coverage measurement unit, 700 code coverage measurement result.

Claims (7)

ソフトウェアを実行して前記ソフトウェアを模擬するソフトウェア模擬部と、
前記ソフトウェア模擬部が模擬する前記ソフトウェアによってアクセスされるメモリの動作を模擬するメモリ模擬部と、
前記ソフトウェアによる前記メモリ模擬部へのアクセスを監視し、監視したアクセス監視結果を記録し、記録した前記アクセス監視結果に基づいて、前記ソフトウェアによる処理であってコピー元となるコピー元メモリのデータを読み出してコピー先となるコピー先メモリへ書き込む処理であるデータコピー処理に、予め定義されたエラーが発生したかどうかを検出するエラー検出部と
を備えたことを特徴とするソフトウェア試験装置。
A software simulation unit that executes software to simulate the software;
A memory simulator for simulating the operation of a memory accessed by the software simulated by the software simulator;
The access to the memory simulation unit by the software is monitored, and the monitored access monitoring result is recorded. Based on the recorded access monitoring result, the data of the copy source memory that is a process of the software and serves as a copy source is recorded. A software test apparatus comprising: an error detection unit configured to detect whether or not a predefined error has occurred in data copy processing, which is processing for reading and writing to a copy destination memory.
前記ソフトウェア試験装置は、
前記データコピー処理において前記コピー元メモリのアドレスと、前記コピー先メモリのアドレスとの組を含むメモリマップ情報が予め格納されたメモリマップ情報格納部を備え、
前記エラー検出部は、
前記アクセス監視結果を前記メモリマップ情報に記録し、前記アクセス監視結果が記録された前記メモリマップ情報に基づいて、前記エラーを検出することを特徴とする請求項1記載のソフトウェア試験装置。
The software testing device is:
A memory map information storage unit in which memory map information including a set of an address of the copy source memory and an address of the copy destination memory is stored in advance in the data copy process;
The error detection unit
The software test apparatus according to claim 1, wherein the access monitoring result is recorded in the memory map information, and the error is detected based on the memory map information in which the access monitoring result is recorded.
前記メモリマップ情報格納部が格納する前記メモリマップ情報は、
有効と無効との2つの状態のいずれにあるかを示す第1のフラグを含み、
前記エラー検出部は、
前記ソフトウェアによって前記メモリ模擬部へ前記コピー元メモリへのデータの書き込み指示が送信されたか監視し、前記コピー元メモリへのデータの書き込み指示の検出に基づき前記第1のフラグを有効にすると共に、前記第1のフラグの状態に基づいて、前記エラーを検出することを特徴とする請求項2記載のソフトウェア試験装置。
The memory map information stored in the memory map information storage unit is:
Including a first flag indicating which of the two states, valid and invalid,
The error detection unit
Monitoring whether or not an instruction to write data to the copy source memory is transmitted to the memory simulation unit by the software, and enabling the first flag based on detection of an instruction to write data to the copy source memory; The software test apparatus according to claim 2, wherein the error is detected based on a state of the first flag.
前記メモリマップ情報格納部が格納する前記メモリマップ情報は、
有効と無効との2つの状態のいずれにあるかを示す第2のフラグを含み、
前記エラー検出部は、
前記ソフトウェアによって前記メモリ模擬部へ前記コピー先メモリへのデータの書き込み指示が送信されたかどうかを監視し、前記コピー先メモリへのデータの書き込み指示の検出に基づき前記第2のフラグの状態を有効にすると共に、前記第1のフラグと前記第2のフラグとの状態に基づいて、前記エラーを検出することを特徴とする請求項3記載のソフトウェア試験装置。
The memory map information stored in the memory map information storage unit is:
Including a second flag indicating which of the two states, valid and invalid,
The error detection unit
The software monitors whether or not an instruction to write data to the copy destination memory is transmitted to the memory simulation unit, and validates the state of the second flag based on detection of an instruction to write data to the copy destination memory. The software test apparatus according to claim 3, wherein the error is detected based on states of the first flag and the second flag.
前記ソフトウェア試験装置は、さらに、
前記ソフトウェアを模擬するソフトウェア模擬部から出力される実行命令アドレスに基づいて、命令網羅率を示すコードカバレッジを測定するコードカバレッジ測定部を備えたことを特徴とする請求項1〜4のいずれかに記載のソフトウェア試験装置。
The software test apparatus further includes:
The code coverage measurement part which measures the code coverage which shows an instruction coverage based on the execution instruction address output from the software simulation part which simulates the said software is provided in any one of Claims 1-4 characterized by the above-mentioned. The software testing device described.
前記エラー検出部は、
前記コードカバレッジ測定部による前記コードカバレッジの測定結果が予め設定された閾値を超える場合に、前記アクセス監視結果に基づいて、前記予め定義されたエラーが発生したかどうかを検出することを特徴とする請求項5記載のソフトウェア試験装置。
The error detection unit
When the code coverage measurement result by the code coverage measurement unit exceeds a preset threshold, it is detected whether the predefined error has occurred based on the access monitoring result. The software test apparatus according to claim 5.
コンピュータに、
ソフトウェアを実行して前記ソフトウェアを模擬する処理、
模擬される前記ソフトウェアによってアクセスされるメモリの動作を模擬する処理、
模擬される前記ソフトウェアによるメモリアクセス処理を監視し、監視したアクセス監視結果を記録し、記録した前記アクセス監視結果に基づいて、前記ソフトウェアによる処理であってコピー元となるコピー元メモリのデータを読み出してコピー先となるコピー先メモリへ書き込む処理であるデータコピー処理に、予め定義されたエラーが発生したかどうかを検出する処理
を実行させるためのソフトウェア試験プログラム。
On the computer,
A process of executing software to simulate the software;
A process for simulating the operation of a memory accessed by the software to be simulated;
Monitors the memory access process by the software to be simulated, records the monitored access monitoring result, and reads the data of the copy source memory that is the process of the software and is the copy source based on the recorded access monitoring result A software test program for executing a process of detecting whether or not a predefined error has occurred in a data copy process that is a process of writing to a copy destination memory as a copy destination.
JP2014038474A 2014-02-28 2014-02-28 Software test apparatus and software test program Active JP6246022B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014038474A JP6246022B2 (en) 2014-02-28 2014-02-28 Software test apparatus and software test program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014038474A JP6246022B2 (en) 2014-02-28 2014-02-28 Software test apparatus and software test program

Publications (2)

Publication Number Publication Date
JP2015162191A true JP2015162191A (en) 2015-09-07
JP6246022B2 JP6246022B2 (en) 2017-12-13

Family

ID=54185222

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014038474A Active JP6246022B2 (en) 2014-02-28 2014-02-28 Software test apparatus and software test program

Country Status (1)

Country Link
JP (1) JP6246022B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023071611A1 (en) * 2021-10-26 2023-05-04 华为技术有限公司 Hostile memory access detection method and related device

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9533203B2 (en) 2014-10-19 2017-01-03 Eaton Corporation Golf grip with enhanced vibration transmission

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003228492A (en) * 2002-02-01 2003-08-15 Fujitsu Ltd Computer simulation program, verification method for model of processor, and computer simulation method
JP2005338892A (en) * 2004-05-24 2005-12-08 Toshiba Corp Memory abnormal usage detecting device
US20070234310A1 (en) * 2006-03-31 2007-10-04 Wenjie Zhang Checking for memory access collisions in a multi-processor architecture
JP2007272303A (en) * 2006-03-30 2007-10-18 Matsushita Electric Ind Co Ltd Simulator with memory breakage detecting function

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003228492A (en) * 2002-02-01 2003-08-15 Fujitsu Ltd Computer simulation program, verification method for model of processor, and computer simulation method
JP2005338892A (en) * 2004-05-24 2005-12-08 Toshiba Corp Memory abnormal usage detecting device
JP2007272303A (en) * 2006-03-30 2007-10-18 Matsushita Electric Ind Co Ltd Simulator with memory breakage detecting function
US20070234310A1 (en) * 2006-03-31 2007-10-04 Wenjie Zhang Checking for memory access collisions in a multi-processor architecture

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023071611A1 (en) * 2021-10-26 2023-05-04 华为技术有限公司 Hostile memory access detection method and related device

Also Published As

Publication number Publication date
JP6246022B2 (en) 2017-12-13

Similar Documents

Publication Publication Date Title
US10761963B2 (en) Object monitoring in code debugging
CN101964036B (en) Leak detection method and device
US9804948B2 (en) System, method, and computer program product for simulating at least one of a virtual environment and a debugging environment to prevent unwanted code from executing
US9990458B2 (en) Generic design rule checking (DRC) test case extraction
US9690946B2 (en) Security analysis using relational abstraction of data structures
US10049031B2 (en) Correlation of violating change sets in regression testing of computer software
JP5692414B2 (en) Detection device, detection program, and detection method
CN103150506A (en) Method and device for detecting rogue program
US11003817B2 (en) Hard error simulation and usage thereof
CA2811617C (en) Commit sensitive tests
US20150143342A1 (en) Functional validation of software
US20160292307A1 (en) Temporal logic robustness guided testing for cyber-physical systems
JP6246022B2 (en) Software test apparatus and software test program
EP3769222B1 (en) Testing kernel mode computer code by executing the computer code in user mode
CN112241370B (en) API interface class checking method, system and device
US8739091B1 (en) Techniques for segmenting of hardware trace and verification of individual trace segments
CN114625663A (en) Test method, test device, computer equipment and storage medium
JPWO2012137323A1 (en) Information processing apparatus and pseudo fault generation method
US10372589B2 (en) Multi environment aware debugger
EP3553681A1 (en) Method and apparatus for error test coverage determination for a circuit by simulation
US10228995B2 (en) Last writers of datasets in storage array errors
CN112380127B (en) Test case regression method, device, equipment and storage medium
CN107766221B (en) Read time delay test method, system, equipment and computer storage medium
US10261925B2 (en) Enhanced techniques for detecting programming errors in device drivers
WO2015080715A1 (en) Meta data and data verification

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161128

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170915

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171114

R150 Certificate of patent or registration of utility model

Ref document number: 6246022

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250