JP2003228494A - プログラムシミュレータ及びプログラムシミュレーション方法 - Google Patents
プログラムシミュレータ及びプログラムシミュレーション方法Info
- Publication number
- JP2003228494A JP2003228494A JP2002026912A JP2002026912A JP2003228494A JP 2003228494 A JP2003228494 A JP 2003228494A JP 2002026912 A JP2002026912 A JP 2002026912A JP 2002026912 A JP2002026912 A JP 2002026912A JP 2003228494 A JP2003228494 A JP 2003228494A
- Authority
- JP
- Japan
- Prior art keywords
- value
- program
- input variable
- input
- file
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
動的に試験することを可能とするプログラムシミュレー
タを提供する。 【解決手段】 プログラムで使用する各入力変数に割り
当てられたビット数より、各入力変数の最小値、最大値
及び中央値を求める手段と、各入力変数の最小値、最大
値及び中央値を各入力変数のテスト値として入力ファイ
ルに格納する手段と、プログラムで使用する各入力変数
と比較される値を検出する検出手段と、プログラムで使
用する各入力変数と比較される値を各入力変数の追加の
テスト値として入力ファイルに格納する手段と、入力フ
ァイルに格納された各入力変数の各テスト値を用いてプ
ログラムを実行して、プログラムの実行時の出力を出力
ファイルに格納する手段と、を備える。
Description
機等のCPUが実行するプログラムをシミュレーション
するプログラムシミュレータ及びプログラムシミュレー
ション方法に関する。
内容から、プログラム内のINPUT・OUTPUTの
組み合わせを考え、最小の試験時間でプログラム誤りを
検出出来るよう組み合わせケースを絞って試験を実施し
ていた。
気付かなかった組み合わせや競合・複合条件が、運用場
面で出てくると、プログラマが設計しなかったルートを
通り、プログラム誤りになる場合があった。
化では、特開平6−131215号公報のソフトウェア
開発支援方法(プログラムとハードウェアの入出力を事
前に登録し期待通りの値かを確認する。一度登録すれば
何度も同一試験が出来る。)や、特開平9−25900
6号公報のプログラム評価システム(プログラムとハー
ドウェアの入出力を登録し期待通りの値かを確認する
が、入手が容易なICEを使って自動試験系を実現す
る)などがある。
るプログラム内のINPUT・OUTPUTの最小値、
最大値、中央値とその組み合わせ、INPUT・OUT
PUTの競合・複合条件出しが自動化されていない。こ
のため一度試験したことと同じ結果になるかを試験する
程度のメリットしかなかった。
UTPUTの最小値、最大値、中央値を、コンパイル・
リンクした後に生成されるニーモニックレベルで自動的
に作成し、メインルーチンから子関数、孫関数…のコー
ルツリーの順番で、自動的にルートチェックを行い、結
果として、組み合わせ・競合・複合条件の全パタンを自
動的に試験することを可能とするプログラムシミュレー
タ及びプログラムシミュレーション方法を提供すること
を目的とする。
れば、プログラムで使用する各入力変数に割り当てられ
たビット数より、各入力変数の最小値、最大値及び中央
値を求める手段と、各入力変数の最小値、最大値及び中
央値を各入力変数のテスト値として入力ファイルに格納
する手段と、前記プログラムで使用する各入力変数と比
較される値を検出する検出手段と、前記プログラムで使
用する各入力変数と比較される値を各入力変数の追加の
テスト値として前記入力ファイルに格納する手段と、前
記入力ファイルに格納された各入力変数の各テスト値を
用いて前記プログラムを実行して、前記プログラムの実
行時の出力を出力ファイルに格納する手段と、を備える
ことを特徴とするプログラムシミュレータが提供され
る。
前記検出手段は、インサーキットエミュレータ上のCP
Uと前記インサーキットエミュレータ上のエミュレーシ
ョンメモリとの間のアドレスバス、データバス及び制御
線に現れる信号を基に前記プログラムで使用する各入力
変数と比較される値を検出してもよい。
変数の前記中央値と1異なった値及び−1異なった値を
各入力変数の追加のテスト値として前記入力ファイルに
格納する手段を更に備えてもよい。
で使用する各入力変数に割り当てられたビット数より、
各入力変数の最小値、最大値及び中央値を求めるステッ
プと、各入力変数の最小値、最大値及び中央値を各入力
変数のテスト値として入力ファイルに格納するステップ
と、前記プログラムで使用する各入力変数と比較される
値を検出する検出ステップと、前記プログラムで使用す
る各入力変数と比較される値を各入力変数の追加のテス
ト値として前記入力ファイルに格納するステップと、前
記入力ファイルに格納された各入力変数の各テスト値を
用いて前記プログラムを実行して、前記プログラムの実
行時の出力を出力ファイルに格納するステップと、を備
えることを特徴とするプログラムシミュレーション方法
が提供される。
おいて、前記検出ステップでは、インサーキットエミュ
レータ上のCPUと前記インサーキットエミュレータ上
のエミュレーションメモリとの間のアドレスバス、デー
タバス及び制御線に現れる信号を基に前記プログラムで
使用する各入力変数と比較される値を検出してもよい。
は、各入力変数の前記中央値と1異なった値及び−1異
なった値を各入力変数の追加のテスト値として前記入力
ファイルに格納するステップを更に備えてもよい。
ム構造である、多数の事象発生毎に優先順位毎に処理順
番を決めて実行するリアルタイムモニタによって制御す
るプログラムの開発場面でプログラマが試験で使用する
以下の特徴を持ったプログラムシミュレータである。
プログラムシミュレータは、プログラムを作成する段階
においてコンパイル・リンクした後に生成されるニーモ
ニックと、コンパイル時に指定した変数の型宣言を基
に、プログラム内の全ての入力変数の最小値、最大値、
中央値を自動的に仮に求めて、求めたそれらの値を入力
変数のテスト値とする。その後、メインルーチンから子
関数、孫関数…の順番で自動的に全ルートを実行しなが
ら各入力変数のテスト値を追加する。
は、各入力変数の試験すべきテスト値を求め、全入力変
数にわたるテスト値の全ての組み合わせを実行し、組み
合わせ・競合・複合条件の全パタンを試験する。これに
よりプログラマの負担は軽減される。
パイラ・リンカがソースプログラムをコンパイル・リン
クするときにオブジェクトプログラムと同時に生成する
マップファイルに記述のある各入力変数のビット数又は
バイト数を基に、個々の関数内で参照する発行パラメー
タの値と、その関数内で使用する入力変数の最小値、最
大値、中央値の3つのテスト値を機械的に算出する。
力変数のうちの、ある1つの入力変数が2バイトで宣言
された変数である場合には、その入力変数の最大値は0
xffffであり、最小値は0x0000であり、中央
値は0x07ffであることが機械的に算出される。
し方を工夫する。
夫)本実施形態では、試験対象のプログラムをリセット
スタートし、プログラム中の全ての関数を実行する。な
お、ここでいう関数とはC言語における関数であり、こ
れにはメインプログラム及びサブルーチンも含まれる。
験対象プログラム内で値を設定していないままこの入力
変数が参照されているのであれば、その入力変数の取り
うる値は、前述の最大値、最小値であると仮に決められ
る。
をある値と比較している箇所があれば、その変数と比較
される値は試験すべき値であるので、その比較される値
をその入力変数のテスト値として追加していく。
いるか否かを判断している箇所があれば、その範囲の最
大値と最小値を、その入力変数のテスト値として追加す
る。
判断している箇所があれば、CASE文やIF文で判断
している値もその入力変数のテスト値として追加する。
だけでなく、設計者が意図しない値であった場合でも試
験したい場合がある。この場合は最小値+1、最小値−
1、最大値+1、最大値−1、中央値+1、中央値−1
を求め、これらをテスト値として追加する。
を求める。
象プログラムを実行していくと各関数単位で、変数更新
や外部ブロックへのタスク間通信、関数発行などのOU
TPUTが発生する。
NPUTファイル3に格納し、実行した各関数名、各関
数内の変数更新や外部ユニットへのタスク間通信、関数
発行などのOUTPUTをOUTPUTファイル4に格
納し、それらのファイルをシミュレーション結果として
残す。
ュレータの全体の構成を示すブロック図であり、図2
は、図1に示すINPUTアクセス監視部2の構成を示
すブロック図である。
ア制御プログラム、マンマシンインタフェースプログラ
ム、シーケンスプログラム、全体監視プログラムなどの
複数のブロックにより構成されるが、開発時において
は、プログラムを小ブロックに分けて開発している。
小ブロックである。その小ブロックは、他のブロックや
ハードウェアが無い状態でシミュレーションされる。そ
の小ブロックをシミュレーションするために、擬似プロ
グラムを作成し、小ブロックと擬似プログラムをリンク
して、実行可能なロードモジュールを作成する。
使用しているCPUのインサーキットエミュレータ(以
下「ICE」という。)1上で動作させる。
ウェアとは切り離されており、CPU1−1とプログラ
ムやデータを格納するエミュレーションメモリ1−2を
備えている。エミュレーションメモリ1−2には前述し
たロードモジュールを格納されている。ICE1のCP
Uをリセットスタートするとロードモジュールは実行さ
れる。
CE1のCPU1−1とICEエミュレーションメモリ
1−2の間のアドレスバス、データバス及び制御線を監
視する。
視部2は、アドレスバスパターンマッチ検出部2−1、
データバスパターンマッチ検出部2−2及びメモリリー
ド・ライト検出部2−3を備え、これらが、各々、アド
レスバス、データバス及び制御線を監視し、ICEのC
PU1−1が機械語命令をする度に、INPUTアクセ
ス監視部2に接続されたパーソナルコンピュータ5に割
込みをかける。
UTの最小値、最大値、中央値等のテスト値は、プログ
ラム実行に従ってパーソナルコンピュータ5で求める。
図1のINPUTファイル3は、パーソナルコンピュー
タ5により求められたテスト値を格納するためのファイ
ルである。
UTファイル3に格納されているテスト値を用いて試験
対象プログラムを実行した時に、試験対象プログラムが
出力するデータを格納するファイルである。ここで、試
験対象プログラムが出力するデータとは、実行した各関
数、各出力変数の値、タスク間通信で用いたデータであ
る。
チャート、図4の状態遷移図を参照して本実施形態の動
作を説明する。
グラムをコンパイル・リンクするとき、コンパイラ及び
リンカが生成するマップファイルに記述されている変数
の名称、アドレス及びビット数又はバイト数、並びにビ
ット数又はバイト数から求められるその変数の最小値、
最大値、中央値が格納される。
ットスタートする。
−1のアドレスバス、データバス及び制御線を監視して
おり、CPU1−1が機械語命令を実行するとパーソナ
ルコンピュータ5に割込みをかける。
けると、図3のフローチャートに示す処理を実行する。
が実行されたのであれば(ステップS101でYE
S)、その変数の値が直接その機械語命令の中で何等か
の値と比較されたのかを確認する(ステップS10
2)。あるいは、読み込まれた変数が一旦レジスタや他
のメモリに格納され、格納先で何等かの値と比較された
のかが明らかとなるまで機械語命令を実行し監視する
(ステップS102、S104)。変数と比較された値
は、INPUTファイルに格納される(ステップS10
3)。監視している最中、リターン命令が有り、関数の
終りになれば、その変数の監視は終了する(ステップS
104でYES)。ステップS101〜S104の処理
は、メモリから読み込まれた全ての変数について並列に
行われる。
である。
ときに、変数のメモリからの読込みが実行されれば「変
数値を条件判断する命令の実行を待つ状態」S112に
遷移する。状態S112にあるときに、変数値を条件判
断する命令が実行されれば、条件判断に用いられた値を
INPUTファイルに格納し(アクションA101)、
状態S111に遷移する。状態S112にあるときに、
変数値を他のメモリ又はレジスタに格納する命令が実行
されれば、「変数値を間接条件判断する命令の実行を待
つ状態」S113に遷移する。状態112にあるときに
リターン命令が実行されれば、状態S111に遷移す
る。状態S113にあるときに、変数値を間接条件判断
する命令が実行されれば、間接条件判断に用いられた値
をINPUTファイルに格納し(アクションA10
1)、状態S111に遷移する。状態S113にあると
きに、リターン命令が実行されれば、状態S111に遷
移する。図4の処理は、メモリから読み込まれた全ての
変数について並列に行われる。
に指示することにより、各テスト値+1の値及び各テス
ト値−1の値も追加のテスト値としてINPUTファイ
ル3に格納させるようにしても良い。
ら終りまで1回通して実行しINPUTファイルが作成
できたならば、次に、全ての入力変数の組み合わせにつ
いて、試験対象プログラムを繰り返し実行して、OUT
PUTファイル4を生成する。全ての入力変数の組み合
わせの数は膨大になるため、試験対象プログラムを小ブ
ロックに区切り、少ない数の組み合わせについて試験対
象プログラムを実行するのが実際的である。
入力変数のテストするべき値が自動的に生成されるの
で、試験対象プログラムの予期せぬ誤動作を確実に検出
することが可能となる。
タの全体の構成を示すブロック図である。
示すブロック図である。
ャートである。
図である。
Claims (6)
- 【請求項1】 プログラムで使用する各入力変数に割り
当てられたビット数より、各入力変数の最小値、最大値
及び中央値を求める手段と、 各入力変数の最小値、最大値及び中央値を各入力変数の
テスト値として入力ファイルに格納する手段と、 前記プログラムで使用する各入力変数と比較される値を
検出する検出手段と、 前記プログラムで使用する各入力変数と比較される値を
各入力変数の追加のテスト値として前記入力ファイルに
格納する手段と、 前記入力ファイルに格納された各入力変数の各テスト値
を用いて前記プログラムを実行して、前記プログラムの
実行時の出力を出力ファイルに格納する手段と、 を備えることを特徴とするプログラムシミュレータ。 - 【請求項2】 請求項1に記載のプログラムシミュレー
タにおいて、前記検出手段は、インサーキットエミュレ
ータ上のCPUと前記インサーキットエミュレータ上の
エミュレーションメモリとの間のアドレスバス、データ
バス及び制御線に現れる信号を基に前記プログラムで使
用する各入力変数と比較される値を検出することを特徴
とするプログラムシミュレータ。 - 【請求項3】 請求項1に記載のプログラムシミュレー
タにおいて、 各入力変数の前記中央値と1異なった値及び−1異なっ
た値を各入力変数の追加のテスト値として前記入力ファ
イルに格納する手段を更に備えることを特徴とするプロ
グラムシミュレータ。 - 【請求項4】 プログラムで使用する各入力変数に割り
当てられたビット数より、各入力変数の最小値、最大値
及び中央値を求めるステップと、 各入力変数の最小値、最大値及び中央値を各入力変数の
テスト値として入力ファイルに格納するステップと、 前記プログラムで使用する各入力変数と比較される値を
検出する検出ステップと、 前記プログラムで使用する各入力変数と比較される値を
各入力変数の追加のテスト値として前記入力ファイルに
格納するステップと、 前記入力ファイルに格納された各入力変数の各テスト値
を用いて前記プログラムを実行して、前記プログラムの
実行時の出力を出力ファイルに格納するステップと、 を備えることを特徴とするプログラムシミュレーション
方法。 - 【請求項5】 請求項4に記載のプログラムシミュレー
ション方法において、前記検出ステップでは、インサー
キットエミュレータ上のCPUと前記インサーキットエ
ミュレータ上のエミュレーションメモリとの間のアドレ
スバス、データバス及び制御線に現れる信号を基に前記
プログラムで使用する各入力変数と比較される値を検出
することを特徴とするプログラムシミュレーション方
法。 - 【請求項6】 請求項4に記載のプログラムシミュレー
ション方法において、 各入力変数の前記中央値と1異なった値及び−1異なっ
た値を各入力変数の追加のテスト値として前記入力ファ
イルに格納するステップを更に備えることを特徴とする
プログラムシミュレーション方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002026912A JP3704503B2 (ja) | 2002-02-04 | 2002-02-04 | プログラムシミュレータ及びプログラムシミュレーション方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002026912A JP3704503B2 (ja) | 2002-02-04 | 2002-02-04 | プログラムシミュレータ及びプログラムシミュレーション方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003228494A true JP2003228494A (ja) | 2003-08-15 |
JP3704503B2 JP3704503B2 (ja) | 2005-10-12 |
Family
ID=27748596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002026912A Expired - Fee Related JP3704503B2 (ja) | 2002-02-04 | 2002-02-04 | プログラムシミュレータ及びプログラムシミュレーション方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3704503B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113238491A (zh) * | 2021-04-12 | 2021-08-10 | 湖南三一智能控制设备有限公司 | 执行机构的仿真测试方法、装置、智能臂架及工程车辆 |
-
2002
- 2002-02-04 JP JP2002026912A patent/JP3704503B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113238491A (zh) * | 2021-04-12 | 2021-08-10 | 湖南三一智能控制设备有限公司 | 执行机构的仿真测试方法、装置、智能臂架及工程车辆 |
CN113238491B (zh) * | 2021-04-12 | 2023-05-05 | 湖南三一智能控制设备有限公司 | 执行机构的仿真测试方法、装置、智能臂架及工程车辆 |
Also Published As
Publication number | Publication date |
---|---|
JP3704503B2 (ja) | 2005-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9411559B2 (en) | Resolution of textual code in a graphical hierarchical model of a technical computing environment | |
US8407679B2 (en) | Source code processing method, system and program | |
JP4931978B2 (ja) | 並列化処理方法、システム、及びプログラム | |
US20130080993A1 (en) | Embedded system performance | |
CN107480327B (zh) | 一种仿真验证方法、装置和电子设备 | |
JPH11513512A (ja) | ディジタル信号プロセッサの製造方法 | |
US20110067017A1 (en) | Non-blocking semantics for modeling systems | |
JP2011096107A (ja) | 並列化方法、システム、及びプログラム | |
US20060026584A1 (en) | Explicit linking of dynamic link libraries | |
CN112882718A (zh) | 编译处理方法、装置、设备及存储介质 | |
CN115390809A (zh) | 一种仿真调度方法及*** | |
CN113283203A (zh) | 用于仿真逻辑***设计的方法、电子设备及存储介质 | |
JP5504960B2 (ja) | シミュレーション装置及びシミュレーション方法 | |
EP1394677A2 (en) | Generation of compiled code for speeding up a simulator | |
US9710360B2 (en) | Optimizing error parsing in an integrated development environment | |
KR20080013422A (ko) | 소프트웨어 프로젝트 빌드 방법 | |
JP2003228494A (ja) | プログラムシミュレータ及びプログラムシミュレーション方法 | |
CN116107625A (zh) | 流程设计方法、装置、设备、存储介质及程序产品 | |
Samara | A practical approach for detecting logical error in object oriented environment | |
Gilles et al. | Applying WCET analysis at architectural level | |
CN112527571A (zh) | 一种cpu指令集覆盖率计算方法及装置 | |
CN117422047B (zh) | 一种cpu与gpu异构平台的电路仿真方法与自动化仿真方法 | |
CN115629928B (zh) | 一种面向类脑处理器的软硬协同验证方法及*** | |
CN111566625A (zh) | 测试用例生成装置、测试用例生成方法和测试用例生成程序 | |
CN117785160B (zh) | 一种低代码应用的行为逻辑开发调试方法、***及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20040512 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050418 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050420 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050610 |
|
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: 20050704 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050725 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313117 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090729 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100729 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110729 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |