JPH07129430A - プログラムの試験方法 - Google Patents

プログラムの試験方法

Info

Publication number
JPH07129430A
JPH07129430A JP5297286A JP29728693A JPH07129430A JP H07129430 A JPH07129430 A JP H07129430A JP 5297286 A JP5297286 A JP 5297286A JP 29728693 A JP29728693 A JP 29728693A JP H07129430 A JPH07129430 A JP H07129430A
Authority
JP
Japan
Prior art keywords
program
task
state transition
state
transition
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.)
Withdrawn
Application number
JP5297286A
Other languages
English (en)
Inventor
Koji Yano
浩司 矢野
Masashi Sakai
正志 酒井
Hiromoto Sato
広基 佐藤
Katsuhiko Warashina
克彦 藁科
Yuji Shiraishi
裕二 白石
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP5297286A priority Critical patent/JPH07129430A/ja
Publication of JPH07129430A publication Critical patent/JPH07129430A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 ソフトウェア開発において、開発したプログ
ラムの状態遷移を図形的に認識しつつデバックや性能評
価等の試験を行うことができるプログラムの試験方法に
関し、プログラムのデバッグや性能評価等の試験を状態
遷移図に対応した視覚認識により簡単に行うことができ
るようにする。 【構成】 複数のタスクから成るプログラムの試験を行
う方法であって、該プログラムの設計段階で作成した状
態遷移図に対応した状態遷移対応図を画面表示し、プロ
グラムの実行により順次に起動されるタスクについて、
その起動されたタスクの番号とそのタスクの状態とを検
出し、その検出情報に基づいてプログラムの状態遷移の
様子を該状態遷移対応図上に視覚表示するようにした。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ソフトウェア開発にお
いて、開発したプログラムの状態遷移を図形的に認識し
つつプログラムのデバックや性能評価等の試験を行うこ
とができるプログラムの試験方法に関する。
【0002】近年、ソフトウェア開発はプログラム規模
が増大する傾向にあり、これに伴いプログラムを複数の
グループで分割して開発することが必要となってきてい
る。このため、プログラムを機能単位に分割してそれぞ
れをタスクとして開発し、それぞれに開発したタスクを
最終的に結合して目的とするプログラムを作成する手法
がとられている。この手法はプログラムの流用や部品化
を行う上で非常に有効であるが、このようにして作成し
たプログラムのデバッグや評価等を容易に行えることが
必要とされる。
【0003】
【従来の技術】上述のようにプログラムを機能単位に分
割してタスクとして開発した場合、開発した個々のタス
クについてそれぞれ所要の機能を果たすか否かの試験を
行っている。しかし、それら個々のタスクを部品として
用いてシステムのプログラムを組み立てて動作させた場
合、必要な項目が抜けていたり、予期しないデータが入
力されたりすると、個々のタクスの設計段階で予想でき
なかった不都合な動作をしてしまうことがある。
【0004】かかるシステム全体の動作の検査として
は、その入力と出力の関係だけをチェックするという方
法もあるが、このような入力・出力の関係だけでは、異
常が発生した場合にどのような過程でその異常が発生し
たかの原因解析が困難である。
【0005】そこで、従来のデバック手法としては、プ
ログラムの実行に伴ってタスクが状態遷移する度に、そ
のタスク番号とタスク状態を時系列にメモリまたは外部
の測定器等に記録し、それらの記録に基づいて動作の確
認を行っていた。
【0006】
【発明が解決しようとする課題】ところが、異常原因の
解析にあたってこれらのデータを単にハードコピー等に
出力するだけでは、単なるデータの羅列となってしま
い、その量も膨大となるため、動作を追跡調査して異常
原因を解析することは容易でない。
【0007】また、メモリに記憶した情報を見るために
は、オンラインデバッガ等を利用して端末に表示しなけ
ればならないため、タスクの状態遷移をリアルタイムで
確認することが困難である。また、多くの状態遷移を記
録するためにはメモリを多量に必要とする。
【0008】通常、上述のような異常原因の解析には、
プログラムの設計段階で作成した状態遷移図を参照する
ことが有効である。また、状態遷移の様子については単
にデータを並べるだけより、それらを視覚的に認識し易
い図形表示的な形にした方が解析が容易であることが経
験的に知られている。
【0009】本発明はかかる事情に鑑みてなされたもの
であり、その目的とするところは、プログラムのデバッ
グや性能評価等の試験を状態遷移図に対応した視覚認識
により簡単に行うことができるようにすることにある。
【0010】
【課題を解決するための手段】図1は本発明に係る原理
説明図である。上述の課題を解決するために、本発明に
おいては、一つの形態として、複数のタスクから成るプ
ログラムの試験を行う方法であって、該プログラムの設
計段階で作成した状態遷移図に対応した状態遷移対応図
を画面表示し、プログラムの実行により順次に起動され
るタスクについて、その起動されたタスクの番号とその
タスクの状態とを検出し、その検出情報に基づいてプロ
グラムの状態遷移の様子を該状態遷移対応図上に視覚表
示するようにしたプログラムの試験方法が提供される。
また本発明においては、他の形態として、上述のプログ
ラムの試験方法において、状態遷移図の特定の遷移箇所
を予め入力し、プログラムの実行に伴い、その遷移箇所
を通過したか否かを該状態遷移対応図上で確認できるよ
う表示したことを特徴とするプログラムの試験方法が提
供される。
【0011】また本発明においては、また他の形態とし
て、上述のプログラムの試験方法において、状態遷移図
の複数の遷移箇所を予め入力し、プログラムの実行に伴
い、その複数の遷移箇所を通過したか否かを該状態遷移
対応図上で確認できるよう表示したことを特徴とするプ
ログラムの試験方法が提供される。
【0012】また本発明においては、また他の形態とし
て、上述のプログラムの試験方法において、状態遷移図
の遷移順序を予め入力し、プログラムの実行に伴い、そ
の遷移順序で正しく遷移が行われたか否かを該状態遷移
対応図上で確認できるよう表示したことを特徴とするプ
ログラムの試験方法が提供される。
【0013】また本発明においては、また他の形態とし
て、上述のプログラムの試験方法において、状態遷移の
種々のパターンを予めデータベース化しておき、実行し
たプログラムについてその状態遷移を該データベースを
参照してパターン認識することで、プログラムの異常を
検出することを特徴とするプログラムの試験方法が提供
される。
【0014】
【作用】プログラムは複数のタクスから成り、各タスク
は個々のアドレスを持っているので、個々のタスクの先
頭アドレスにトリガをかけてプログラムの動きをトレー
スすることによって、どのタスクが起動されたかが分か
り、その情報を記録することでタスクの起動順次を解析
できる。また従来から、タスクの起動時にそのタスクが
どのような状態にあるかをメモリ等を読み書きすること
で解析することができる。
【0015】プログラムのデバッグや異常原因の解析に
は、プログラムの設計段階で作成した状態遷移図を参照
することが有効であるので、この状態遷移図に対応した
図を図形表示し、上述のタスクの起動順序とタクス状態
の関係を図形処理によりこの対応図上に表示するように
する。これにより、試験者は、タスクの起動の順番や個
々のタスクの遷移している状態を、状態遷移図を参照し
ていると同じにして視覚的に、その処理の順序に違反が
あるか否かなどを確認することができる。
【0016】表示の仕方は、例えば、状態遷移図上の特
定の遷移箇所、あるいは複数の遷移箇所、あるいは遷移
順序を予め特定トリガとして設定しておき、それらを通
過したかが確認できるよう表示する。
【0017】
【実施例】以下、図面を参照して本発明の実施例を説明
する。図2には本発明の一実施例としてのプログラムの
試験方法を行うハードウェア環境が示される。図2にお
いて、1はターゲットCPU盤であり、このターゲット
CPU盤1は試験対象とするプログラムを実行する。こ
のプログラムは複数のタクスの結合から成るタスク構造
となっており、図4の「プログラム構造」に示すよう
に、各タスク1、2、3、4・・・は先頭アドレスA
0、B0、C0、D0・・・がタスク起動アドレスとな
っている。
【0018】2は検出部であり、この検出部2には各タ
スクの先頭アドレスが設定されており、この先頭アドレ
スにトリガをかけることでターゲットCPU盤1でタス
クが起動されたことを検出すると共に、そのタスクがど
ういうタスク状態にあるかを検出する。ここでいうタス
ク状態は、例えば現在正常に通信している状態、相手が
故障している状態、ある情報を受け取って内部処理して
いる状態などの状態をいい、それぞれのタスク状態に応
じてそのタスクが以降に行う処理が異なってくる。この
タクス状態の検出は、タスクの先頭部分にメモリ等に対
してタスク状態を読み書きするためのタスク情報検出ル
ーチン(数ステップのトレースを行うソフトウェア)を
用意し、タクスの起動時にその先頭アドレスを検出した
後に、当該ルーチンを起動することによって検出するこ
とができる。
【0019】3はデータ送信部であり、このデータ伝送
部3は検出部2で検出したタスク起動順序情報と起動さ
れたタクスの状態情報を外部装置に伝送できるフォーマ
ットに変換する。
【0020】4はパーソナルコンピュータであり、処理
部41、表示部42、デバッグデータ蓄積部43などで
構成される。このパソコン4では、受信したタスクの起
動順序情報と状態情報を処理部4に入力し、それに基づ
いてタスクの状態遷移を表示部5に表示する。この処理
のために処理部4には状態遷移図データが入力されてい
る。この状態遷移図データは、試験対象のプログラムを
設計する段階で作成した状態遷移図のデータであり、こ
の状態遷移図データに対応して表示部42には例えば図
3に示すような状態遷移対応図が表示される。この図3
では、横方向にタスク番号、縦方向にタスクの状態をと
り、個々のタスクについて各状態で実行する処理を一つ
の枠で囲こんである。
【0021】この実施例システムの動作を以下に説明す
る。通常、システム全体のプログラムは、個々が特定の
アドレスを持つタスクと呼ばれる機能別のプログラム単
位の結合で構成されている。よって個々のタスクの先頭
アドレスにトリガをかけプログラムの実行に伴ってタス
クの先頭アドレスを通過したことを検出しその検出した
アドレスを順に記録することで、どのタスクがどの順序
で起動されたかを知ることができ、プログラムの動きを
トレースすることができる。
【0022】また、各タスクの処理はそのタスクが現在
どのようなタスク状態にあるかによって以降の処理が異
なるので、プログラムの動きをトレースする上ではタス
クが起動された際のタスク状態も知ることが必要であ
る。個々のタスクがどういう状態にあるかを知る方法と
して、タクス起動時のレジスタや特定のメモリの内容を
参照することによって知る方法があり、タスク起動時に
その先頭アドレスを検出したことをトリガとして所定の
タスク情報検出ルーチンを実行して、起動要因(どのタ
スクからどのタスクを起動したか、どのタスクから起動
を受けたかなど)、タスク状態、その他のタスク情報を
検出する。
【0023】図4にはプログラム実行時のトレース例が
示されており、この例では、タスク1→タスク3→タス
ク2→タスク1→タスク4→タスク1→タスク3・・・
の順でタスクが起動され、各タスクの先頭部分で起動要
因、タスク状態、その他の情報が検出されている。
【0024】検出部2はこれらのタスク起動情報とタス
ク状態等の情報を得て、データ送信部3はこれらの情報
をパーソナルコンピュータ4に伝送する。
【0025】パーソナルコンピュータ4では、検出部2
が検出したデータをもとに、タスクの起動の順番や個々
のタスクの遷移している状態を表示部42に図形的に表
示する。この表示は、プログラムの設計時に作成した状
態遷移図に基づいてその状態遷移が図形的に分かり易く
認識できるような図形(状態遷移対応図)に図形処理し
たものである。
【0026】いま、各タスクが各状態で行う処理を図5
の(ア)に示す。このような処理別にトレースした結果
の一例が(イ)であり、処理1−1、処理1−2、処理
3−2、処理2−2、処理2−3、処理2−1に処理が
進行した場合を示している。
【0027】この処理別トレースの結果を図形処理して
表示した表示例が図3に示される。この表示例では、プ
ログラムの処理が、タスク1の状態1(枠=処理1−
1)→タスク1の状態2(枠=処理1−2)→タスク
3の状態2(枠=処理3−2)→タスク2の状態2
(枠=処理2−2)→タスク2の状態3(枠=処理
2−3)→タスク2の状態1(枠=処理2−1)と進
行したことを、各枠間を結ぶ矢印でそれらがどのような
処理順序で遷移したかその様子が分かるようにしてい
る。
【0028】プログラム中のどの部分の遷移状態をパソ
コン画面に表示するかについては、種々の方法が可能で
あるが、例えば、状態遷移図におけるチェックしたい特
定の遷移箇所を予め入力しておき、プログラムがその遷
移箇所を通過したら、それ以降の遷移状態をある長さに
わたって表示するようにしてもよい。
【0029】表示の態様としても種々の方法が可能であ
り、例えば、状態遷移図におけるチェックしたい複数の
遷移箇所を予め入力し、プログラムがそれらの箇所を通
過したことを図形的に認識できるよう表示を行ってもよ
い。また、状態遷移図における遷移順序を予め入力し、
プログラムがその遷移順序通りに正しく遷移したことを
図形的に認識できるよう表示を行ってもよい。
【0030】このように、個々のタクスはその状態に応
じて種々の処理を行うが、その処理の流れを図3の表示
例のように図形的に表示することによって、試験者は状
態遷移図を見ると同等にして処理の順序を理解し、その
処理の流れに、設計時に予定したものからの違反がない
か判断することができる。
【0031】この表示方法によれば、ソフトウェアの動
きがタスク単位で、個々の状態における処理別に一つの
図形となり、個々の処理順序や、ある特定の処理から次
の処理へ遷移する状態を目で図形的に確認することがで
きる。また、障害切分けや複雑なシーケンスにおいて、
プログラム全体のなかで個々の処理順序や状態の遷移す
る様子が一目で分かるため、デバッグに有効である。ま
た障害切分けの際には、異常処理シーケンスが正しくリ
カバリーできているかを状態遷移の図形的表示によって
簡単に確認することができる。
【0032】また、このような表示方法によれば、状態
の遷移が画面上で簡単に確認できるため、反対に、遷移
しない箇所(例えば図3中のタスク1の状態1、あるい
はタスク3の状態1と状態3)を一目で確認することが
できるので、状態遷移図の全ての事象を発生させて試験
しようとする場合に、その全ての事象が発生したかどう
かを検出することで、試験項目が十分であったか、ある
いは不足していて遷移しない事象が生じたかなどを簡単
に知ることができる。
【0033】本発明の実施にあたっては種々の変形形態
が可能である。例えば上述の実施例ではプログラムの状
態遷移をパソコンの画面上で図形的に表示しているが、
本発明はこれに限られるものではなく、プログラムの大
きさや構造によっては、状態遷移の変化を、装置に組み
込んだLED等で表示して確認するようにしてもよい。
【0034】また、各タスクの状態遷移を認識し処理す
る部分は、ターゲット装置とは別の外部装置(例えば実
施例のパーソナルコンピュータ)によってもよいが、タ
ーゲット装置内の内部処理により行うものであってもよ
い。
【0035】また、開発の終了したソフトウェアにおい
て、状態遷移のパターンをデータベース化して、正常に
起動されない状態遷移が発生した場合に、パターン認識
によりソフトウェアまたはプログラムを含む装置の故障
を検出することも可能である。
【0036】
【発明の効果】このように、本発明では、ソフトウェア
の設計時に作成する状態遷移図を試験データとしても用
い、デバッグ時に状態遷移図を見ると同等にして、状態
遷移が正しく行われているか、処理が正しく行われてい
るか等を確認することができるので、デバッグの効率が
向上し、ソフトウェアの品質向上に寄与できる。また、
故障判定機能として用いれば、ソフトウェアの異常状態
遷移を検出することができる。
【0037】特に、各タスクの処理におけるあらゆる変
化のパターンを試験項目で表現することは実質的に困難
であるので、本発明のように状態遷移図で個々の事象か
ら遷移する様子を図で表し、試験することによってソフ
トウェアの品質が向上する。
【0038】また、特定のパターンや状態の遷移によっ
て発生するバグや障害については、調査が困難な場合が
あるが、本発明では状態遷移図上で遷移順序を解析する
ことができるので、それらのバグや障害等を容易に発見
することが可能になる。
【0039】さらに、通常の運用状態におけるソフトウ
ェアが、どのような状態遷移を行うかを図形的表示によ
り確認することによって、特定タスクの処理能力の評価
や過負荷状態で処理能力の不足するタスクの評価等も可
能となる。
【図面の簡単な説明】
【図1】本発明に係る原理説明図である。
【図2】本発明の一実施例としてのプログラムの試験方
法を行うハードウェア環境を示す図である。
【図3】本発明の実施例における表示部での状態遷移の
表示例を示す図である。
【図4】本発明の実施例におけるプログラム実行時のタ
スクのトレース例を示す図である。
【図5】本発明の実施例における状態遷移図との比較と
処理別トレースの例を示す図である。
【符号の説明】
1 ターゲットCPU盤 2 検出部 3 データ送信部 4 パーソナルコンピュータ 41 処理部 42 表示部 43 デバッグデータ蓄積部
フロントページの続き (72)発明者 佐藤 広基 宮城県仙台市青葉区一番町1丁目2番25番 富士通東北ディジタル・テクノロジ株式 会社内 (72)発明者 藁科 克彦 栃木県小山市城東3丁目28番1番 富士通 ディジタル・テクノロジ株式会社内 (72)発明者 白石 裕二 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 複数のタスクから成るプログラムの試験
    を行う方法であって、 該プログラムの設計段階で作成した状態遷移図に対応し
    た状態遷移対応図を画面表示し、 プログラムの実行により順次に起動されるタスクについ
    て、その起動されたタスクの番号とそのタスクの状態と
    を検出し、その検出情報に基づいてプログラムの状態遷
    移の様子を該状態遷移対応図上に視覚表示するようにし
    たプログラムの試験方法。
  2. 【請求項2】 状態遷移図の特定の遷移箇所を予め入力
    し、プログラムの実行に伴い、その遷移箇所を通過した
    か否かを該状態遷移対応図上で確認できるよう表示した
    ことを特徴とする請求項1記載のプログラムの試験方
    法。
  3. 【請求項3】 状態遷移図の複数の遷移箇所を予め入力
    し、プログラムの実行に伴い、その複数の遷移箇所を通
    過したか否かを該状態遷移対応図上で確認できるよう表
    示したことを特徴とする請求項1記載のプログラムの試
    験方法。
  4. 【請求項4】 状態遷移図の遷移順序を予め入力し、プ
    ログラムの実行に伴い、その遷移順序で正しく遷移が行
    われたか否かを該状態遷移対応図上で確認できるよう表
    示したことを特徴とする請求項1記載のプログラムの試
    験方法。
  5. 【請求項5】 状態遷移の種々のパターンを予めデータ
    ベース化しておき、実行したプログラムについてその状
    態遷移を該データベースを参照してパターン認識するこ
    とで、プログラムの異常を検出することを特徴とする請
    求項1記載のプログラムの試験方法。
JP5297286A 1993-11-02 1993-11-02 プログラムの試験方法 Withdrawn JPH07129430A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5297286A JPH07129430A (ja) 1993-11-02 1993-11-02 プログラムの試験方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5297286A JPH07129430A (ja) 1993-11-02 1993-11-02 プログラムの試験方法

Publications (1)

Publication Number Publication Date
JPH07129430A true JPH07129430A (ja) 1995-05-19

Family

ID=17844556

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5297286A Withdrawn JPH07129430A (ja) 1993-11-02 1993-11-02 プログラムの試験方法

Country Status (1)

Country Link
JP (1) JPH07129430A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007109028A (ja) * 2005-10-14 2007-04-26 Mitsubishi Electric Corp データ処理装置及びデータ処理方法
JP2008077317A (ja) * 2006-09-20 2008-04-03 I L C:Kk 検証装置、検証プログラム、および検証方法
WO2008056419A1 (fr) * 2006-11-09 2008-05-15 Panasonic Corporation Dispositif de vérification de logiciel et procédé d'évaluation d'interface api
JP2016105281A (ja) * 2015-12-04 2016-06-09 株式会社日立製作所 解析システム、計算機システム及び解析方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007109028A (ja) * 2005-10-14 2007-04-26 Mitsubishi Electric Corp データ処理装置及びデータ処理方法
JP2008077317A (ja) * 2006-09-20 2008-04-03 I L C:Kk 検証装置、検証プログラム、および検証方法
JP4747060B2 (ja) * 2006-09-20 2011-08-10 株式会社アイ・エル・シー 検証装置、検証プログラム、および検証方法
WO2008056419A1 (fr) * 2006-11-09 2008-05-15 Panasonic Corporation Dispositif de vérification de logiciel et procédé d'évaluation d'interface api
JP2016105281A (ja) * 2015-12-04 2016-06-09 株式会社日立製作所 解析システム、計算機システム及び解析方法

Similar Documents

Publication Publication Date Title
US7353505B2 (en) Tracing the execution path of a computer program
US20150234730A1 (en) Systems and methods for performing software debugging
US8924912B2 (en) Method of recording and replaying call frames for a test bench
CN1959653B (zh) 调试计算机程序的装置与方法
US7849364B2 (en) Kernel-mode in-flight recorder tracing mechanism
US5748878A (en) Method and apparatus for analyzing software executed in embedded systems
JP5430570B2 (ja) システムコールカバレッジ基準による試験スイート削減のための方法
US5134701A (en) Test apparatus performing runtime replacement of program instructions with breakpoint instructions for processor having multiple instruction fetch capabilities
US5845064A (en) Method for testing and verification of a CPU using a reference model
US20110055815A1 (en) Incremental Runtime Compliance Validation of Renderable Objects
GB2317247A (en) Displaying buffer accesses
US20100180245A1 (en) Methods and products for determining and visualizin ic behavior
US20070283330A1 (en) Method and System for Performing Thread-Specific Display of Breakpoints
US20030233601A1 (en) Non-intrusive signal observation techniques usable for real-time internal signal capture for an electronic module or integrated circuit
WO2020163119A1 (en) Using historic execution data to visualize tracepoints
US20080184150A1 (en) Electronic circuit design analysis tool for multi-processor environments
JPH07129430A (ja) プログラムの試験方法
US10579761B1 (en) Method and system for reconstructing a graph presentation of a previously executed verification test
CN100403275C (zh) 应用于固件程序除错的微处理器与方法
KR100428712B1 (ko) 멀티 태스크 프로그램의 논스톱 디버깅을 위한트레이스포인트 설정 방법
Kranzlmüller et al. Debugging massively parallel programs with ATEMPT
El-Kharashy et al. A novel assertions-based code coverage automatic cad tool
JP5937530B2 (ja) ソフトエラー解析装置、エラー情報作成装置
JP2915944B2 (ja) カバレージ測定方法及びマイクロコンピュータ
JP3068578B2 (ja) インサーキットエミュレータおよび飽和演算処理方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20010130