(57)【要約】【課題】単体テスト，機能テストの自動化を実現し、組み込みソフトウェアの信頼性および開発効率を向上することができる組み込みソフトウェアのテストシステムを提供する。【解決手段】中央制御装置（２０６）と、該中央制御装置に所望の処理を実行させるための組み込みソフトウエアを保有するメモリ（２１０）とを備えた電子機器装置（２００）における該組み込みソフトウエアをテストするために、テストソフトウエアは、組み込みソフトウエアとコンパイル−リンクされて該組み込みソフトウエア内に組み込まれており、テーブル（１０２）を参照してテスト関数（１０３）を呼び出すテスト実行部（１０７）と、複数のテスト関数の実行時間を計数する時間計測部（１０８）とを備え、実行したテスト関数に対応するテスト名称と実行時間とを対にした一覧表示データを通信機能部（１１５）に出力させる機能を備えている。【選択図】　　　図１
2004118777.tif 000002
【特許請求の範囲】
【請求項１】
中央制御装置と、該中央制御装置に所望の処理を実行させるための組み込みソフトウエアを保有するメモリとを備えた電子機器装置における該組み込みソフトウエアをテストするために、
前記組み込みソフトウエアをテストするためのテストソフトウエアは、テスト登録機能部と、テスト呼出し機能部と、出力機能部と、前記電子機器装置側の通信部と相互信号伝送をするための通信機能部とを備えて、該組み込みソフトウエアとコンパイル−リンクされて該組み込みソフトウエア内に組み込まれており、
前記テスト登録機能部は、複数のテスト関数と、該複数のテスト関数を登録したテーブルと、該複数のテスト関数に読み込まれるテスト入力データと、前記複数のテスト関数の出力と照合するためのテスト照合データとを保持し、
前記テスト呼出し機能は、前記テーブルを参照して前記テスト関数を呼び出すテスト実行部と、前記複数のテスト関数の実行時間を計数する時間計測部とを備え、
前記出力機能部は、前記通信機能部からコマンドを受信し、前記複数のテスト関数から該コマンドが指示する当該テスト関数を呼び出すように前記テスト呼出し機能を実行させ、その実行したテスト関数に対応するテスト名称と実行時間とを対にした一覧表示データを前記通信機能部に出力させる機能を備えた
ことを特徴とする組み込みソフトウエアのテスト装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、組み込み対象の電子機器の組み込みソフトウェアのテストシステムに関し、特に、ある電子機器に組み込まれるべきプログラム開発工程のテスト作業において個々のモジュールの単体テストおよび機能テストを行う際に使用するテストシステムに関するものである。
【０００２】
【従来の技術】
近年、組み込みソフトウェアの適用範囲はますます広がってきており、その勢いは留まることを知らない。これに伴い、ソフトウェアの開発量も増加しており、かつソフトウェアの信頼性への要求も高まっている。
特に、あるモジュールまたはタスク（プログラムの処理単位）に修正が加えられた場合に、その修正による影響範囲をすべてテストし直さなければならないが、その影響範囲の切り分けを明確に行うことが困難である場合も多く。また時間的制限及び人的資源の制限から、テストをすべてやり直すことが現実上困難な場合も多く、ソフトウェアの信頼性を低下させる要因となっている。
【０００３】
【発明が解決しようとする課題】
従来、パソコン上で動作するソフトウェアのテストシステムとしては、さまざまなツール等が開発されているが、これらは、外部に接続可能な端末等が制限される組み込みソフトウェアの分野への適用が考慮されているものではなかった。すなわち、従来の組み込みソフトウェアの単体テストでは、テスト仕様書を作成し、デバッガ等のツールを用いて、逐一テスト条件を人手により入力していた。
【０００４】
このため、テストの再現に時間がかかるという問題や、また人為的ミスが生じる恐れもあり、テストの信頼性に欠けるという問題があった。
また、外部端末でテスト装置を実現する場合には、ユーザインタフェースやテストファイル等を用意しなければならないため、ソフトウェア開発量の増加を招くほか、組み込みソフトウェアのバージョンとテストファイルのバージョンを別に管理しなければならず、バージョンの不一致等によるテストの失敗など本質的でない余計な問題が生じてしまい、開発効率の低下を招く恐れがある。
【０００５】
しかし、組み込みソフトウェアの開発においても、パソコン上で動作するソフトウェアと同様、修正時の影響範囲のテストを繰り返しやり直す必要があるため、テストの自動化が望まれている。
【０００６】
本発明の目的は、従来技術のこのような欠点を解消して、最小限の外部端末と最小限の開発量で、単体テスト，機能テストの自動化を実現し、組み込みソフトウェアの信頼性および開発効率を向上することができる組み込みソフトウェアのテストシステムを提供するものである。
【０００７】
【課題を解決するための手段】
この目的を解決するために、本発明による組み込みソフトウェアのテストシステムは、中央制御装置と、該中央制御装置に所望の処理を実行させるための組み込みソフトウエアを保有するメモリとを備えた電子機器装置における該組み込みソフトウエアをテストするために、
前記組み込みソフトウエアをテストするためのテストソフトウエアは、テスト登録機能部と、テスト呼出し機能部と、出力機能部と、前記電子機器装置側の通信部と相互信号伝送をするための通信機能部とを備えて、該組み込みソフトウエアとコンパイル−リンクされて該組み込みソフトウエア内に組み込まれており、
前記テスト登録機能部は、複数のテスト関数と、該複数のテスト関数を登録したテーブルと、該複数のテスト関数に読み込まれるテスト入力データと、前記複数のテスト関数の出力と照合するためのテスト照合データとを保持し、
前記テスト呼出し機能は、前記テーブルを参照して前記テスト関数を呼び出すテスト実行部と、前記複数のテスト関数の実行時間を計数する時間計測部とを備え、
前記出力機能部は、前記通信機能部からコマンドを受信し、前記複数のテスト関数から該コマンドが指示する当該テスト関数を呼び出すように前記テスト呼出し機能を実行させ、その実行したテスト関数に対応するテスト名称と実行時間とを対にした一覧表示データを前記通信機能部に出力させる機能を備えている。
【０００８】
【発明の実施の形態】
以下、プログラム言語はＣ言語を使用することを想定して本発明の実施例を説明するが、本発明はこの場合に限定されるものではない。
【０００９】
本発明の組み込みソフトウェアのテスト装置機能構成例を図１に示す。
本発明の組み込みソフトウェアのテストシステムのテストソフトウェアは、大別して、テスト登録機能部１０１、テスト呼出機能部１０６、出力機能部１１０から構成される。
【００１０】
テスト登録機能部１０１はテスト関数登録テーブル１０２、テスト関数群１０３、テスト入力データ１０４、テスト照合データ１０５で構成される。これらは、Ｃ言語により記述され、テスト対象の組み込みソフトウェアと共に、コンパイル、リンクされ、組み込みソフトウェア自身に組み込まれる。テスト項目追加時はこれらのプログラム又はテスタがＣ言語ファイルを編集することにより行う。テストの具体的処理はテスト関数群１０３に記述され、テスト関数群１０３はテスト入力データ１０４を読み込み、対象モジュール又はタスクを起動し、実行結果をテスト照合データ１０５と比較し、テスト結果を判定する処理を含む。また、時間計測を必要とする場合には時間計測部１０８より、時間を取得し時間計測を行う。さらに、テスト結果および時間計測結果等をテスト日時とともにテスト結果ファイル１１３に出力する処理を含む。
【００１１】
シリアル通信機能部１１５はシリアル受信部１０９、シリアル送信部１１４から構成される。シリアル受信部１０９は外部端末から文字列等を受信する機能を有し、シリアル送信部１１４は外部端末に文字列等を出力する機能を有する。
【００１２】
テスト呼出機能部１０６は、テスト実行部１０７、時間計測部１０８で構成される。シリアル受信部１０９は外部端末との接続機能を有し、キーボード等の外部端末からの文字列等を受信する。この外部端末からの文字列をコマンドとして認識し、これを契機にテスト実行部１０７は、個別テストおよび一括テストを開始する。テスト実行部１０７はテスト関数登録テーブル１０２を参照し、個別または一括でテスト関数を呼び出す。
【００１３】
出力機能部１１０は、テスト一覧出力部１１１、テスト結果出力部１１２、テスト結果ファイル１１３で構成される。シリアル受信部１０９は外部端末との接続機能を有し、外部端末からの文字列等を受信する。この外部端末からの文字列をコマンドとして認識し、これを契機に一覧表示部１１１または、テスト結果出力部１１２を起動する。テスト一覧表示部１１１はテスト関数登録テーブル１０２を読み込み、シリアル送信部１１４を介し、テスト一覧を外部端末に出力する。
【００１４】
次に本発明のテストシステムを含む電子機器装置の構成例について図２を用いて説明する。
図２において、２００は本発明システムのテスト対象であるプログラムが組み込まれた電子機器装置である。２０１，２０２，２０３は、本発明システムのテスト対象であるプログラムを構成するディジタル情報が記憶されるメモリ２００として搭載されたＲＯＭ，不揮発性メモリ及びＲＡＭであり、メモリ２１０を構成する。２０６は、このメモリ２００に収容されたプログラムにより制御されて制御対象である電子機器部２０９を動作させる制御をするＣＰＵ（中央制御装置）２０６である。２０４はクロック異常を検出するためのクロック検出部である。２０５は電子機器装置２００の電源、２０７は、ＣＰＵ２０６を制御する制御指令としての制御信号を送出し、必要な情報を表示する表示部等を備えた外部端末である。２０８は、ＣＰＵ２０６と外部端末との間で必要な情報の相互伝送を行う通信部である。この通信部２０７は、図１に示すシリアル通信機能部１１５の主要部を構成している。
【００１５】
本発明による組み込みソフトウェアのテストシステムの操作例について説明する。
例えば、テスト一覧出力部１１１から出力されて外部端末２０７に表示されたテスト項目のうちの一つである〔タスクＡ〕に含まれる〔テストＡ１〕を実行させようとする場合、その〔テストＡ１〕に対応するテスト関数を指定する制御指令を外部端末２０７のキーボード通信部２０８を介してＣＰＵ２０６に送出する。この制御指令は、テスト実行部１０７に伝達され、テスト実行部１０７はその制御指令に対応するテスト関数をテスト関数登録テーブル１０２を参照してテスト関数群１０３から読み出し、そのテスト関数による制御動作（タスク）を実行する。この場合の制御動作の実行結果は、テスト照合データ１０５と比較され、テスト結果の判定としてテスト結果出力部１１２から外部端末２０７に伝送される。この場合の〔テストＡ１〕の所要時間は、時間計測部１０８で計測されて、テスト結果出力部１１２から外部端末２０７に送出されて表示される。
【００１６】
図３にテスト項目一覧表示を、図４にテスト結果表示例を示す。テスト結果を示す図４では、判定結果で〔テストＡ１〕が不良（ＮＧ）であったことが示されており、〔タスクＡ〕の合格率が７５％であり、全体としての合格率は９３％として示されている。また、右端欄には、時間計測の結果が示されている。
図１および図２では外部端末として、シリアル通信端末を使用する場合を示しているが、本発明はこの場合に限定されるものではない。
【００１７】
【発明の効果】
以上詳細に説明したように、本発明により次の効果が得られる。
（１）各タスクの担当が別個にテストツールを開発する必要がない。
（２）単体テスト，機能テストの自動化による開発期間の短縮ができる。
（３）登録されているテストを常に一括実行できるため、修正時に必ず登録されているテストを一括実行し、１００％テストが完了することを確認することで修正時のデグレードを低減でき、組み込みソフトウェアの信頼性を向上できる。
（４）テスト装置に時間計測機能を有しているため、組み込みソフトウェア、特にリアルタイムシステムにおける時間性能の欠陥を検出することが可能となる。
（５）対象ソフトウェアとテスト装置を同じ組み込みソフトウェア上に実装することにより、テスト装置ファイルと対象ソフトウェアソースファイルの不一致が発生することを防止することができる。
【図面の簡単な説明】
【図１】本発明のテスト装置の機能構成例である。
【図２】本発明のテスト装置を含む装置の構成例図である。
【図３】本発明のテスト装置に接続される外部端末の表示例である。
【図４】本発明のテスト装置に接続される外部端末の表示例である。
【符号の説明】
１０１　テスト登録機能部
１０２　テスト関数登録テーブル
１０３　テスト関数群
１０４　テスト入力データ
１０５　テスト照合データ
１０６　テスト呼出機能部
１０７　テスト実行部
１０８　時計計測部
１０９　シリアル受信部
１１０　出力機能部
１１１　テスト一覧出力部
１１２　テスト結果出力部
１１３　テスト結果ファイル
１１４　シリアル送信部
１１５　シリアル通信機能部
２００　電子機器装置
２０１　ＲＯＭ
２０２　不揮発性メモリ
２０３　ＲＡＭ
２０４　クロック検出部
２０５　電源
２０６　ＣＰＵ
２０７　外部端末
２０８　通信部
２０９　電子機器部
２１０　メモリ
【図１】
2004118777.tif 000003
【図２】
2004118777.tif 000004
【図３】
2004118777.tif 000005
【図４】
2004118777.tif 000006