JP2015162191A - Software testing apparatus and software testing program - Google Patents
Software testing apparatus and software testing program Download PDFInfo
- 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
Links
Images
Abstract
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
コードカバレッジを利用した従来の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
この発明は、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の構成]
図1は、システムシミュレータ10(ソフトウェア試験装置)の構成図である。図1を参照してシステムシミュレータ10の構成を説明する。システムシミュレータ10は、命令セットシミュレータ(Instruction Set Simulator)100、コピー漏れ検出部200(エラー検出部)、メモリモデル300(メモリ模擬部)を備える。図2でシステムシミュレータ10の動作を後述する。
[Configuration of System Simulator 10]
FIG. 1 is a configuration diagram of a system simulator 10 (software test apparatus). The configuration of the
(命令セットシミュレータ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
(メモリモデル300)
メモリモデル300は、システムに実装されるメモリの動作を模擬する機能を有する。システムシミュレータ10では、データのコピー元となるSourceメモリと、データのコピー先となるDestinationメモリの2種類を想定する。この2種類のメモリは同一メモリでもよいし、または独立した2枚のメモリを用いて構成される。メモリの動作を正しく模擬できるのであれば、システムシミュレータ10に適用するためのメモリモデルの実装方法は特に制限されない。
(Memory model 300)
The
(メモリマップ400)
メモリマップ400は、SourceメモリのR/Wトリガ設定、Sourceメモリのアドレスと、Destinationメモリのアドレスのペアを定義したファイルである。
図5は、メモリマップ400のイメージを示す。
(Memory map 400)
The
FIG. 5 shows an image of the
(コピー漏れ検出結果500)
コピー漏れ検出結果500は、コピー漏れ検出部200が検出したコピー漏れに関する詳細情報の出力である。
図6は、コピー漏れ検出結果の出力イメージを示す。
図7は、検出可能なエラーのリストを示す。
(Copy leak detection result 500)
The copy
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
(1) In S10, the instruction set
(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
(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
(メモリマップテーブル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
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
(メモリマップレコード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
In the source memory R / W trigger setting 212, the
(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
(4) The
(5)
(6) The
(7) The
(テーブル初期化部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
(メモリアクセス監視部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
(エラー検出部240)
エラー検出部240は、メモリアクセス監視部230からのエラー通知、またはシミュレーション終了のタイミングで動作する。エラー検出部240は、各メモリマップレコード211の状態を基に、コピー漏れの原因を検出し、コピー漏れ検出結果500に検出結果を出力する。エラー検出部240の動作は、図13で後述する。
(Error detection unit 240)
The
[コピー漏れ検出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
(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
[テーブル初期化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
(1) In S1100, the
(2) In S1101, the
(3) In S1102, the
(4) In S1103, the
(5) In S1104, the process branches depending on whether all data in the
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
(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
(4) In S11163, the memory access monitoring unit 230 invalidates the Source memory PUSH flag 213 and validates the Source
(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
(7) In S11166, the memory access monitoring unit 230 branches the process depending on whether the Destination memory data and the
(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
(1) In S1140, the
(2) In S1141, the
(3) In S1142, the
(4) In S1143, the
(5) In S1144, the
(6) In S1145, the
(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
実施の形態2.
図14、図15を参照して実施の形態2のシステムシミュレータ20を説明する。実施の形態1のシステムシミュレータ10はコピー漏れ検出部200を備えるが、実施の形態2のシステムシミュレータ20は、コピー漏れ検出部200に加え、コードカバレッジ測定部600を備える。以下の説明では、実施の形態1と異なる部分についてのみ説明する。
Embodiment 2. FIG.
The
図14は、システムシミュレータ20の構成図である。図14を参照してシステムシミュレータ20の全体構成について説明する。システムシミュレータ20は、システムシミュレータ10に対して、さらにコードカバレッジ測定部600を備える。命令セットシミュレータ100、コピー漏れ検出部200、メモリモデル300、メモリマップ400、コピー漏れ検出結果500等は実施の形態1と同様である。
FIG. 14 is a configuration diagram of the
(コードカバレッジ測定部600)
コードカバレッジ測定部600は、命令セットシミュレータ100から出力される実行命令アドレスを基に、命令網羅率を測定する機能を有数する。コードカバレッジ測定部600による測定結果は、コードカバレッジ測定結果700に出力される。コードカバレッジを正しく測定できるのであれば、本システムに適用するためのコードカバレッジ測定部600の実装方法は特に制限されない。コードカバレッジ測定結果700は、コードカバレッジ測定部600が計測したコードカバレッジに関する詳細情報の出力である。
(Code coverage measurement unit 600)
The code
図15は、システムシミュレータ20の全体動作を示すフローチャートである。図15を参照してシステムシミュレータ20の動作について説明する。コードカバレッジ測定、コピー漏れ検出の2フェーズで構成されている。
FIG. 15 is a flowchart showing the overall operation of the
<フェーズ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に進む。
<
(1) In S20, the
(2) In S21, the code
(3) In S22, the code
(3) In S23, for example, the person in charge evaluates the code
<フェーズ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
(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
(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
<
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
ハードウェア資源を示す図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
RAM952は、揮発性メモリの一例である。ROM951、CDD957、磁気ディスク装置960等の記録媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部、格納部、バッファの一例である。通信ボード956、キーボード954などは、入力部、入力装置の一例である。また、通信ボード956、表示装置953などは、出力部、出力装置の一例である。通信ボード956は、ネットワークに接続されている。
The
磁気ディスク装置960には、オペレーティングシステム961(OS)、プログラム群962、ファイル群963が記憶されている。プログラム群962のプログラムは、CPU950、オペレーティングシステム961により実行される。
The
上記プログラム群962には、以上の実施の形態の説明において「〜部」として説明した機能を実行するプログラムが記憶されている。プログラムは、CPU950により読み出され実行される。
The
ファイル群963には、以上の実施の形態の説明において、「〜の判定結果」、「〜の算出結果」、「〜の抽出結果」、「〜の生成結果」、「〜の処理結果」として説明した情報や、データや信号値や変数値やパラメータなどが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。また、ディスクやメモリなどの記録媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU950によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
In the description of the above embodiment, the
また、以上に述べた実施の形態の説明において、データや信号値は、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
また、以上の実施の形態の説明において、「〜部」、「命令セットシミュレータ」及び「メモリモデル」として説明したものは、「〜手段」、であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明したものは、ソフトウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、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
以上の実施の形態では、システムシミュレータ10を説明したが、この動作は、プログラムとしても把握できることは以上の説明から当然である。また、システムシミュレータ10の各「〜部」の動作は方法としても把握できることは以上の説明により明らかである。
In the above embodiment, the
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.
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)
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)
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)
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 |
-
2014
- 2014-02-28 JP JP2014038474A patent/JP6246022B2/en active Active
Patent Citations (4)
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)
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 |