JP6246022B2 - ソフトウェア試験装置及びソフトウェア試験プログラム - Google Patents
ソフトウェア試験装置及びソフトウェア試験プログラム Download PDFInfo
- Publication number
- JP6246022B2 JP6246022B2 JP2014038474A JP2014038474A JP6246022B2 JP 6246022 B2 JP6246022 B2 JP 6246022B2 JP 2014038474 A JP2014038474 A JP 2014038474A JP 2014038474 A JP2014038474 A JP 2014038474A JP 6246022 B2 JP6246022 B2 JP 6246022B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- software
- copy
- error
- data
- 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.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
ソフトウェアを実行して前記ソフトウェアを模擬するソフトウェア模擬部と、
前記ソフトウェア模擬部が模擬する前記ソフトウェアによってアクセスされるメモリの動作を模擬するメモリ模擬部と、
前記ソフトウェアによる前記メモリ模擬部へのアクセスを監視し、監視したアクセス監視結果を記録し、記録した前記アクセス監視結果に基づいて、前記ソフトウェアによる処理であってコピー元となるコピー元メモリのデータを読み出してコピー先となるコピー先メモリへ書き込む処理であるデータコピー処理に、予め定義されたエラーが発生したかどうかを検出するエラー検出部と
を備えたことを特徴とする。
[システムシミュレータ10の構成]
図1は、システムシミュレータ10(ソフトウェア試験装置)の構成図である。図1を参照してシステムシミュレータ10の構成を説明する。システムシミュレータ10は、命令セットシミュレータ(Instruction Set Simulator)100、コピー漏れ検出部200(エラー検出部)、メモリモデル300(メモリ模擬部)を備える。図2でシステムシミュレータ10の動作を後述する。
命令セットシミュレータ100(ソフトウェア模擬部)は、S/Wとテストパタンを読み込み、命令処理、メモリアクセス、及びプログラムカウンタの動作をシミュレーション(模擬)する機能を有する。
コピー漏れ検出部200は、S/Wによるメモリモデル300へのアクセスを監視し、監視したアクセス監視結果を後述のメモリマップレコード211に記録し、メモリマップレコード211に基づいて、模擬されているS/Wによるデータコピー処理に、予め定義されたエラーが発生したかどうかを検出する。なおデータコピー処理とは、S/Wによる処理であり、コピー元となるSourceメモリのデータを読み出して、コピー先となるDestinationメモリへ書き込む処理である。具体的には、コピー漏れ検出部200は、命令セットシミュレータ100から出力される実行命令アドレス、メモリモデルへのR/W(リード・ライト)リクエスト、アドレス、データ、及びメモリマップ400を基にコピー漏れ検出を行う。検出結果はコピー漏れ検出結果500に出力される。図3、図4で、コピー漏れ検出部200の内部構成及び動作を後述する。
メモリモデル300は、システムに実装されるメモリの動作を模擬する機能を有する。システムシミュレータ10では、データのコピー元となるSourceメモリと、データのコピー先となるDestinationメモリの2種類を想定する。この2種類のメモリは同一メモリでもよいし、または独立した2枚のメモリを用いて構成される。メモリの動作を正しく模擬できるのであれば、システムシミュレータ10に適用するためのメモリモデルの実装方法は特に制限されない。
メモリマップ400は、SourceメモリのR/Wトリガ設定、Sourceメモリのアドレスと、Destinationメモリのアドレスのペアを定義したファイルである。
図5は、メモリマップ400のイメージを示す。
コピー漏れ検出結果500は、コピー漏れ検出部200が検出したコピー漏れに関する詳細情報の出力である。
図6は、コピー漏れ検出結果の出力イメージを示す。
図7は、検出可能なエラーのリストを示す。
図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と判断されるまで実行する。
図3は、コピー漏れ検出部200の構成図である。図3を参照してコピー漏れ検出部200の内部構成について説明する。コピー漏れ検出部200は、メモリマップテーブル210、テーブル初期化部220、メモリアクセス監視部230、エラー検出部240を備える。
メモリマップテーブル210は、メモリマップレコード211(メモリマップ情報)をSourceメモリアドレスとDestinationメモリアドレスの組み合わせ数分保持する。SourceメモリアドレスとDestinationメモリアドレスの組み合わせは、メモリマップ400で定義される。メモリマップレコード211は、Sourceメモリアドレス、またはDestinationメモリアドレスをキーとして検索できるように、登録される。
なおメモリマップテーブル210はシステムシミュレータ10のハードウェア構成を示す実施の形態3における磁気ディスク装置960(メモリマップ情報格納部の一例)あるいはRAM952(メモリマップ情報格納部の一例)に格納される。
メモリマップレコード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)のように、メモリアクセスの監視結果に応じて記録される。
(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メモリから読みだされたデータを表す。
テーブル初期化部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で後述する。
メモリアクセス監視部230は、メモリR/Wリクエストの発生をトリガとしてメモリマップテーブル210上を検索する。メモリアドレスをキーとしてメモリマップテーブル210の検索を行い、ヒットするレコードが存在すれば、データの登録・削除を行う。シミュレーションの途中でコピー漏れが発生した場合は、メモリアクセス監視部230は、エラー検出部240に通知し、コピー漏れ検出結果500に検出結果を出力させる。メモリアクセス監視部230の動作は、図9、図10、図11、図12の説明で後述する。
エラー検出部240は、メモリアクセス監視部230からのエラー通知、またはシミュレーション終了のタイミングで動作する。エラー検出部240は、各メモリマップレコード211の状態を基に、コピー漏れの原因を検出し、コピー漏れ検出結果500に検出結果を出力する。エラー検出部240の動作は、図13で後述する。
図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で後述する。
図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に戻る。
図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で後述する。
図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」の各エラーは、エラーとして検出するために、「予め定義されたエラー」である。
図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メモリへの書込みを行ったことを示す。
図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メモリに書込みをおこなったことを示す。
図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に戻る。
図14、図15を参照して実施の形態2のシステムシミュレータ20を説明する。実施の形態1のシステムシミュレータ10はコピー漏れ検出部200を備えるが、実施の形態2のシステムシミュレータ20は、コピー漏れ検出部200に加え、コードカバレッジ測定部600を備える。以下の説明では、実施の形態1と異なる部分についてのみ説明する。
コードカバレッジ測定部600は、命令セットシミュレータ100から出力される実行命令アドレスを基に、命令網羅率を測定する機能を有数する。コードカバレッジ測定部600による測定結果は、コードカバレッジ測定結果700に出力される。コードカバレッジを正しく測定できるのであれば、本システムに適用するためのコードカバレッジ測定部600の実装方法は特に制限されない。コードカバレッジ測定結果700は、コードカバレッジ測定部600が計測したコードカバレッジに関する詳細情報の出力である。
(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に進む。
フェーズ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と判断されるまで実行する。
<フェーズ1>
コードカバレッジ計測の結果が100%になるまで、テストパタンの修正を行う。本フェーズでテストパタンの妥当性を保証することができる。
<フェーズ2>
コピー漏れが0になるまで、ソースコードのコピー漏れ原因箇所の修正を行う。本フェーズでコピー処理の正確性を保証することができる。
図16は、システムシミュレータ10、20のハードウェア構成の一例を示す図である。図16を参照して実施の形態4を説明する。実施の形態4は、コンピュータであるシステムシミュレータ10、20のハードウェア構成を説明する。システムシミュレータ10、20のハードウェア構成は同様であるので、システムシミュレータ10について説明する。
Claims (7)
- ソフトウェアを実行して前記ソフトウェアを模擬するソフトウェア模擬部と、
前記ソフトウェア模擬部が模擬する前記ソフトウェアによってアクセスされるメモリの動作を模擬するメモリ模擬部と、
前記ソフトウェアによる前記メモリ模擬部へのアクセスを監視し、監視したアクセス監視結果を記録し、記録した前記アクセス監視結果に基づいて、前記ソフトウェアによる処理であってコピー元となるコピー元メモリのデータを読み出してコピー先となるコピー先メモリへ書き込む処理であるデータコピー処理に、予め定義されたエラーが発生したかどうかを検出するエラー検出部と
を備えたことを特徴とするソフトウェア試験装置。 - 前記ソフトウェア試験装置は、
前記データコピー処理において前記コピー元メモリのアドレスと、前記コピー先メモリのアドレスとの組を含むメモリマップ情報が予め格納されたメモリマップ情報格納部を備え、
前記エラー検出部は、
前記アクセス監視結果を前記メモリマップ情報に記録し、前記アクセス監視結果が記録された前記メモリマップ情報に基づいて、前記エラーを検出することを特徴とする請求項1記載のソフトウェア試験装置。 - 前記メモリマップ情報格納部が格納する前記メモリマップ情報は、
有効と無効との2つの状態のいずれにあるかを示す第1のフラグを含み、
前記エラー検出部は、
前記ソフトウェアによって前記メモリ模擬部へ前記コピー元メモリへのデータの書き込み指示が送信されたか監視し、前記コピー元メモリへのデータの書き込み指示の検出に基づき前記第1のフラグを有効にすると共に、前記第1のフラグの状態に基づいて、前記エラーを検出することを特徴とする請求項2記載のソフトウェア試験装置。 - 前記メモリマップ情報格納部が格納する前記メモリマップ情報は、
有効と無効との2つの状態のいずれにあるかを示す第2のフラグを含み、
前記エラー検出部は、
前記ソフトウェアによって前記メモリ模擬部へ前記コピー先メモリへのデータの書き込み指示が送信されたかどうかを監視し、前記コピー先メモリへのデータの書き込み指示の検出に基づき前記第2のフラグの状態を有効にすると共に、前記第1のフラグと前記第2のフラグとの状態に基づいて、前記エラーを検出することを特徴とする請求項3記載のソフトウェア試験装置。 - 前記ソフトウェア試験装置は、さらに、
前記ソフトウェアを模擬するソフトウェア模擬部から出力される実行命令アドレスに基づいて、命令網羅率を示すコードカバレッジを測定するコードカバレッジ測定部を備えたことを特徴とする請求項1〜4のいずれかに記載のソフトウェア試験装置。 - 前記エラー検出部は、
前記コードカバレッジ測定部による前記コードカバレッジの測定結果が予め設定された閾値を超える場合に、前記アクセス監視結果に基づいて、前記予め定義されたエラーが発生したかどうかを検出することを特徴とする請求項5記載のソフトウェア試験装置。 - コンピュータに、
ソフトウェアを実行して前記ソフトウェアを模擬する処理、
模擬される前記ソフトウェアによってアクセスされるメモリの動作を模擬する処理、
模擬される前記ソフトウェアによるメモリアクセス処理を監視し、監視したアクセス監視結果を記録し、記録した前記アクセス監視結果に基づいて、前記ソフトウェアによる処理であってコピー元となるコピー元メモリのデータを読み出してコピー先となるコピー先メモリへ書き込む処理であるデータコピー処理に、予め定義されたエラーが発生したかどうかを検出する処理
を実行させるためのソフトウェア試験プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014038474A JP6246022B2 (ja) | 2014-02-28 | 2014-02-28 | ソフトウェア試験装置及びソフトウェア試験プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014038474A JP6246022B2 (ja) | 2014-02-28 | 2014-02-28 | ソフトウェア試験装置及びソフトウェア試験プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015162191A JP2015162191A (ja) | 2015-09-07 |
JP6246022B2 true JP6246022B2 (ja) | 2017-12-13 |
Family
ID=54185222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014038474A Active JP6246022B2 (ja) | 2014-02-28 | 2014-02-28 | ソフトウェア試験装置及びソフトウェア試験プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6246022B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7052096B2 (ja) | 2014-10-19 | 2022-04-11 | イートン コーポレーション | 振動伝達が高められたゴルフグリップ |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116028338A (zh) * | 2021-10-26 | 2023-04-28 | 上海华为技术有限公司 | 一种不友好访存检测方法及相关设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3848171B2 (ja) * | 2002-02-01 | 2006-11-22 | 富士通株式会社 | 計算機シミュレーションプログラム、プロセッサのモデルの検証方法、及び計算機シミュレーション方法 |
JP2005338892A (ja) * | 2004-05-24 | 2005-12-08 | Toshiba Corp | メモリ異常使用検知装置 |
JP2007272303A (ja) * | 2006-03-30 | 2007-10-18 | Matsushita Electric Ind Co Ltd | メモリ破壊検出機能付きシミュレータ |
US7836435B2 (en) * | 2006-03-31 | 2010-11-16 | Intel Corporation | Checking for memory access collisions in a multi-processor architecture |
-
2014
- 2014-02-28 JP JP2014038474A patent/JP6246022B2/ja active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7052096B2 (ja) | 2014-10-19 | 2022-04-11 | イートン コーポレーション | 振動伝達が高められたゴルフグリップ |
Also Published As
Publication number | Publication date |
---|---|
JP2015162191A (ja) | 2015-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8001432B2 (en) | Uninitialized memory detection using error correction codes and built-in self test | |
US10761963B2 (en) | Object monitoring in code debugging | |
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 | |
US10049031B2 (en) | Correlation of violating change sets in regression testing of computer software | |
US9292652B2 (en) | Generic design rule checking (DRC) test case extraction | |
US20100180263A1 (en) | Apparatus and method for detecting software error | |
CN103150506A (zh) | 一种恶意程序检测的方法和装置 | |
JP5692414B2 (ja) | 検知装置、検知プログラムおよび検知方法 | |
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 (ja) | ソフトウェア試験装置及びソフトウェア試験プログラム | |
WO2019182803A1 (en) | Testing kernel mode computer code by executing the computer code in user mode | |
US8739091B1 (en) | Techniques for segmenting of hardware trace and verification of individual trace segments | |
WO2023273637A1 (zh) | 一种故障检测方法及装置 | |
CN114625663A (zh) | 一种测试方法、装置、计算机设备以及存储介质 | |
JPWO2012137323A1 (ja) | 情報処理装置及び疑似障害発生方法 | |
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 (zh) | 测试用例回归方法、装置、设备和存储介质 | |
CN107766221B (zh) | 一种读时延测试方法、系统、设备及计算机存储介质 | |
JP6234640B2 (ja) | シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム | |
JP6331400B2 (ja) | 検証方法、検証装置および検証プログラム |
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 |