JP2011221803A - テストツール、テスト方法 - Google Patents

テストツール、テスト方法 Download PDF

Info

Publication number
JP2011221803A
JP2011221803A JP2010090566A JP2010090566A JP2011221803A JP 2011221803 A JP2011221803 A JP 2011221803A JP 2010090566 A JP2010090566 A JP 2010090566A JP 2010090566 A JP2010090566 A JP 2010090566A JP 2011221803 A JP2011221803 A JP 2011221803A
Authority
JP
Japan
Prior art keywords
test
api
combination
parameters
configuration
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.)
Pending
Application number
JP2010090566A
Other languages
English (en)
Inventor
Kazuhiro Kajio
和弘 梶尾
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.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
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 Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2010090566A priority Critical patent/JP2011221803A/ja
Publication of JP2011221803A publication Critical patent/JP2011221803A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】ハードウェアの仕様の違いに対応した基本ソフトウェアを効率的にテストする、テストツール及びテスト方法を提供することができる。
【解決手段】ハードウェアを抽象化した抽象化層37の環境を設定するコンフィグレーションパラメータ14と、APIパラメータ17と、網羅的にコンフィグレーションパラメータの組み合わせと、網羅的にAPIパラメータの組み合わせを、それぞれ抽出する組み合わせ抽出手段21と、処理シーケンスに含まれる処理に基づき、テストケースを生成するテストケース生成手段18と、抽象化層37のインタフェースをモデル化したインタフェースモデル42と、コンフィグレーションパラメータの組み合わせ、APIパラメータの組み合わせ、又は、テストケースを抽象化層37に適用して抽象化層をテストするテスト実行手段20と、を有することを特徴とする。
【選択図】図2

Description

本発明は、ソフトウェアをテストするテストツール等に関し、特に、ハードウェアに近いソフトウェアをテストするテストツール及びテスト方法に関する。
ソフトウェアの高機能化・複雑化が進み、ソフトウェアの検証やデバック作業のいっそうの効率化が求められるようになった。しかし、ソフトウェアのモジュール化が進んだため、ソフトウェア単体の検証だけでなく、種々のソフトウェアを組み合わせて検証することも必要になっている(例えば、特許文献1参照。)。
特許文献1では、プラグインモジュールからの情報を取得してテストケースを構築する検証方法が開示されている。これにより、機器に未知なる機能(プラグインモジュール)が搭載されても、動的にテストケースを構築できるので、ソフトウェアを組み合わせた検証が容易になるとしている。
特開2009−223700号公報
しかしながら、プラグインモジュールのように組み合わせの数が限定的なソフトウェアであれば、全組み合わせの検証も不可能でないが、ソフトウェアがハードウェアに近くなると組み合わせの数が膨大になるため、全組み合わせの検証が困難になってくる。
図10(a)は、ハードウェアとソフトウェアの関係を模式的に示す図の一例である。図10(a)では、ソフトウェアがハードウェアに依存した仕様(ハードウェアの凸部やその形状)を吸収することができることを示す。しかし、図10(a)のように、各ハードウェア毎に特定の仕様を吸収するソフトウェアを用意すると、ソフトウェアの再利用性が低下してしまう。
そこで、異なるハードウェアに依存した仕様を吸収するような基本ソフトウェアが開発されるようになった。図10(b)は、再利用可能な基本ソフトウェアの構造を模式的に示す図の一例である。図10(b)ではハードウェアは例えばマイコンであり、RTE(Runtime Environment)及びBSW(Basic Software)が基本ソフトウェアである。なお、BSWのみを基本ソフトウェアと呼ぶ分類方法もある。このような基本ソフトウェアでは、MCAL(マイクロコントローラ抽象化層)がハードウェアに依存した仕様を吸収するため、基本ソフトウェアをそのまま別のマイコン(自動車で言えば別のECU)に搭載することができる。
しかし、MCALは、コンフィグレーション(マイコンの環境設定)により異なるマイコンの仕様に対応する。多様なマイコンの仕様に対応するため、コンフィグレーションの種類や設定値の取り得る値の範囲は膨大であり、コンフィグレーションの設定の全てをテストしようとすると、検査工数が膨大になるという問題がある。
また、MCALは上位層からAPIを介して処理要求を受け付ける。ここでもMCALのハードウェア依存性を低減するため、膨大な数のAPIや、各APIで設定可能なパラメータ(引数)が設定されている。
このように、MCALのテストにおいて、コンフィグレーションとAPIの全ての組み合わせをテストしようとすると、検査工数が現実的でない数になってしまうという問題がある。
例えば、MCALのテスト項目を低減するだけでも、全体の検査工数は低減できる。しかし、MCALは、マイコンに特有の特殊レジスタを操作するため、むやみにMCALのコンフィグレーションをテスト対象から除外すると、ソフトウェアとハードウェアの検証が不十分となるおそれがある。
本発明は、上記課題に鑑み、ハードウェアの仕様の違いに対応した基本ソフトウェアを効率的にテストする、テストツール及びテスト方法を提供することを目的とする。
上記課題に鑑み、本発明は、ハードウェアを抽象化した抽象化層の環境を設定するコンフィグレーションパラメータの記憶部と、前記抽象化層を呼び出すAPIとAPI毎に設定可能引数が記述されたAPIパラメータの記憶部と、複数の前記コンフィグレーションパラメータから網羅的にコンフィグレーションパラメータの組み合わせを、複数の前記APIパラメータから網羅的にAPIパラメータの組み合わせを、それぞれ抽出する組み合わせ抽出手段と、前記抽象化層の処理シーケンスに含まれる処理に基づき、テストケースを生成するテストケース生成手段と、ハードウェアと前記抽象化層のインタフェースをモデル化したインタフェースモデルと、コンフィグレーションパラメータの組み合わせ、APIパラメータの組み合わせ、又は、テストケースを抽象化層に適用して抽象化層をテストするテスト実行手段と、を有することを特徴とする。
ハードウェアの仕様の違いに対応した基本ソフトウェアを効率的にテストする、テストツール及びテスト方法を提供することができる。
基本ソフトウェアの構造を模式的に説明する図の一例である。 自動テストツールの環境をフロー形式にて説明する図の一例である。 外部仕様書モジュール設計書からコンピュータ読み取り可能なフォーマットに変換されたConfiguration Descriptionの一例を示す図である。 コンフィグレーション拡張記述の一例を示す図である。 Configuration Descriptionの要素とXMLに記述される文の対応を説明する図の一例である。 APIパラメータの一例を示す図である。 MCALのシーケンス図の一部の一例を示す。 実行環境を説明する図の一例である。 市販されているマイコンの特殊レジスタの一例を示す図である。 ハードウェアとソフトウェアの関係を模式的に示す図の一例である。
以下、本発明を実施するための形態について図面を参照しながら説明する。
始めに、本実施形態のMCALモジュール自動テストツール(以下、自動テストツールという)の概略を説明する。自動テストツールはプログラムである。以下、特に断らなければ、自動テストツールが処理を行う。
(1)タグ言語で記述されたMCALのConfigurationパラメータを拡張記述する(以下、拡張記述したConfigurationパラメータを「Configuration拡張記述」という)。
(2)タグ言語で記述されたAPIパラメータを拡張記述する(以下、拡張記述したAPIパラメータを「APIパラメータ拡張記述」という)。
(3)Configuration拡張記述からオールペア法によりConfigurationパラメータの組み合わせを抽出する。この組み合わせからConfigurationパラメータに関するテストケースソースコード(TTCN−3)を生成する。
(4)APIパラメータ拡張記述からオールペア法によりAPIパラメータの組み合わせを抽出する。この組み合わせからAPIパラメータに関するテストケースソースコード(TTCN−3)を生成する。
(5)MCALのシーケンス図からテストケースの組み合わせを生成する。このテストケースからテストケースソースコード(TTCN−3)を生成する。
(6)マイコンのレジスタ(主に特殊レジスタ)をモデル化しておく(以下、テストスタブという)。
(7)テストケースソースコード、テスト対象であるMCAL、テストスタブ、及び、テストドライバ等をコンパイル・リンクして、テストを実行する。
以上のような手順によれば、オールペア法によりConfigurationパラメータの組み合わせとAPIパラメータの組み合わせを効率的に抽出でき、網羅性の高いパラメータによりマイコンの仕様をテストできる。また、テストスタブを生成しておくことで、マイコンに特有なハードウェアの仕様をテストすることができる。
〔基本ソフトウェアについて〕
図1は、基本ソフトウェアの構造を模式的に説明する図の一例である。上層から、アプリケーション層40、基本ソフトウェア層(BSW)46、そして、最下層はマイコン44である。また、BSW46内では、ハードウェアが階層的に抽象化されているという特徴がある。
このマイコン44は、ECU(electronic control unit)に搭載されるコンピュータである。また、BSW46としては、AUTOSAR(AUTomotive Open System Architecture)で標準化されている基本ソフトウェアを例にして説明するが、MCAL37と同等の機能を有する基本ソフトウェアであれば本実施形態の自動テストツールを適用できる。
BSW46は、RTE41、サービス層42、ECU抽象化層43、MCAL(マイクロコントローラ抽象化層)37、及び、複合ドライバ45によって構成される。最下層のMCAL37は、ECUのマイコン44の全ての機能と周辺機器を抽象化する層である。MCAL37より上位の階層はマイコン44から独立している。MCAL37は、例えば、マイクロコントローラドライバ、メモリドライバ、通信ドライバ及びI/Oドライバを有する。
ECU抽象化層43は、ECU の全ての基本コンポーネントを抽象化する。ECU抽象化層43は、例えば、搭載機器抽象化、メモリハードウェア抽象化、通信ハードウェア抽象化及びI/Oハードウェア抽象化を有する。
また、サービス層42は、ハードウェアから独立した、様々なサービスを提供する層であり、OS(例えば、OSEK(Open system together with interfaces for automotive electronics)やその他、組み込み用OS、リアルタイムOS等)、システムサービス(診断ソフト、メモリ管理ソフト等)、メモリサービス、通信サービス(車載LANの通信のためのネットワーク管理ソフト(CAN、FlexRay,LIN等))を有する。
RTE41は、サービス層42等に対しアプリケーション層40を抽象化し、BSW46とアプリケーション間のデータ通信を処理する。RTE41より上位のアプリケーションはハードウェアに依存せず、RTE41があることで、ECUにどのようなハードウェアが用いられるかという情報なしに開発者がアプリケーションを開発することを可能にする。なお、RTE41の種類には、AUTOSARインタフェース、標準AUTOSARインタフェース及び標準インタフェースがあるが、本実施形態では特に区別しない。
複合ドライバ45は、特殊なタイミングの制約を受けるセンサやアクチュエータをアプリケーションが直接制御することを可能にする。アプリケーション層40には、センサが検出した信号を処理するアプリケーション、モータの制御量を決定するアプリケーション、運転支援を行うアプリケーション等、様々なアプリケーションが搭載されうる。
〔自動テストツールの環境〕
図2は、自動テストツールの環境をフロー形式にて説明する図の一例である。これから説明する処理は、コンピュータ(パソコン、ワークステーション、サーバ等)100上で実行される。コンピュータ100はCPU、RAM、ROM、HDD(Hard Disk Drive)、入出力装置(キーボード、マウス)等を有し、HDDには自動テストツールのプログラムが記憶されている。自動テストツールは、このプログラムをCPUが実行することで実現される。したがって、コンピュータ100と自動テストツールは一体である。
<<テストスイート>>
<Configurationパラメータファイル22の生成>
まず、外部仕様書のモジュール設計書11は、MCAL37のConfigurationパラメータを自然言語や表形式で記述した電子ファイルである。外部仕様書のモジュール設計書11は、例えばHDDに記憶されている。Configuration Description13、コンフィグレーション拡張記述14、15、Vendor Specific Module Description16、APIパラメータ拡張記述17、Configurationパラメータファイル22,API定義ファイル23、テストケース組み合わせファイル24、外部仕様書のシーケンス図19についても同様にHDDに記憶されている。
MCAL37は、マイコン44の全ての機能と周辺機器を抽象化したものなので、具体的なECUの仕様に適合させるためパラメータを必要とする。例えば、マイコン44の通信デバイスの種類、通信チャネル、送信時の通信速度、受信時の通信速度等がパラメータとなる。AUTOSARでは一連のパラメータをConfigurationパラメータと呼ぶ。
多様なマイコン44に対応するため、Configurationパラメータの種類や設定可能な値は膨大な数にのぼる。この膨大な数のMCAL37のConfigurationパラメータが、外部仕様書のモジュール設計書11に記述されている。外部仕様書のモジュール設計書11は、自然言語で記述されていることが多いので、テスト担当者やマイコンメーカが、コンピュータ読み取り可能なフォーマットに変換しておく。外部仕様書のモジュール設計書11がコンピュータ読み取り可能なフォーマットで配布されるのであれば、変換作業は不要である。
図3は、外部仕様書のモジュール設計書11からコンピュータ読み取り可能なフォーマットに変換されたConfiguration Description13の一例を示す。コンピュータ読み取り可能なフィーマットは、例えばタグ言語(例えばXML)である。図3は表形式で記述されているが、表形式からXML形式への変換(又は、その逆の変換)は容易なので、図3の表形式は実質的にはXML形式である。自動テストツールはConfiguration Description13を容易に読み込むことができる。なお、XMLでなくCSV(Comma Separated Value)等のフォーマットを利用してもよい。
図3は、通信ドライバ(CANドライバ)のConfigurationパラメータの一例を示す図である。通信ドライバはさらに複数のモジュールに分けて抽象化されているが、図3ではMBOX(メールボックス)のConfiguration(SPF_CPU_CAND_CFG_ID_MB)パラメータを例に説明する(メールボックス毎のCAN ID)。
SPF_CPU_CAND_CFG_ID_MBのパラメータによれば、MBOXは「0〜31」番まで昇順に選択すべきであり、メールの番号(=CAN
ID)は「0〜2047」までランダムに設定する、ように規定されている。この、「0〜31」「0〜2047」がConfigurationパラメータである。図3に示しただけでも通信ドライバの他に多くのモジュールがあることがわかり、それぞれが「0〜31」「0〜2047」のようなConfigurationパラメータを取るので、全組み合わせのテストを行おうとすると膨大な数の組み合わせになってしまう。
次に、自動テストツールは、Configuration Description13から、タグ言語形式のコンフィグレーション拡張記述14を生成する。タグ言語は、例えばXML、HTML等である。
図4は、コンフィグレーション拡張記述14の一例を示す図である。自動テストツールは、Configuration Description13から要素を読み出し、予め定義しておいたタグ名<mstate><mPlaces><mMax><mMin><vState><vMax><vMin>等に対応づけてXML文書を生成する。Configuration Description13の要素に対応して、XMLに記述される文(タグに挟まれる記述)もあらかじめ決まっている。
図5は、Configuration Description13の要素とXMLに記述される文の対応を説明する図の一例である。例えば、Configuration Description13の要素が「マルチプル昇順」であればXMLに記述される文は「selectMultiplicityByOrder」であり、Configuration Description13の要素が「値ランダム」であればXMLに記述される文は「selectValueRandom」である。
図4の記述Aは「メールボックスは0〜31まで昇順に選択する」ことを、記述Bは「CAN IDは0〜2047からランダムに選択する」ことを、それぞれ意味する。したがって、自動テストツールは、コンフィグレーション拡張記述14から、Configurationパラメータに設定すべき値の範囲や、設定ルールを取得することができる。
なお、外部仕様書のモジュール設計書11、Configuration Description13、及び、コンフィグレーション拡張記述14は、マイコン44に共通(例えば、メーカの異なるマイコンでも)のConfigurationパラメータである。すなわち、各メーカは外部仕様書のモジュール設計書11に則るようにマイコン44を設計するので、コンフィグレーション拡張記述14も各マイコン44に共通になる。
図2に戻り、自動テストツールの組み合わせパラメータジェネレータ21は、コンフィグレーション拡張記述14から、オールペア法を用いてConfigurationパラメータファイル22を生成する。Configurationパラメータファイル22がTTCN-3という言語で記述されることが自動テストツールの特徴の1つである。
オールペア法は公知の技術なので簡単に説明する。図3のConfiguration Description13を例に、「Controller」「Channel」「Mbox」「Extend」の4つをオールペア法の因子A〜Dとする。説明のため、各因子A〜Dは1度にある項目しか取らないとし、各因子A〜Dが「Mbox」と同じ数のパラメータ(例えば、32×2048=65536個)を取ると仮定する。すなわち、因子A〜Dがそれぞれ65536個のパラメータを持つ。なお、この段階で、因子A〜Dのパラメータの数を制限してもよい。また、因子A〜Dと他の因子を組み合わせたり、因子A〜Dの一部を組み合わせから排除するなど、因子間の組み合わせの規則は予め定められている。
因子が4つの場合、オールペア法は、4つの因子のパラメータから抽出しうる2つのパラメータの組み合わせの全てを抽出し、2つのパラメータをなるべく重複しないように4つの因子にそれぞれ割り当てることで、4つの因子のパラメータの組み合わせを生成する。こうすることで、2因子については100%の組み合わせが得られる。また、オールペア法では、組み合わせのあり得ない禁則を容易に指定できるので、4つの因子のパラメータの組み合わせをさらに低減することもできる。
Configurationパラメータファイル22は、4つの因子のパラメータの組み合わせの1つ毎に生成される。1つのConfigurationパラメータファイル22は、例えば、「Controller」のパラメータ1(65536個の組み合わせのいずれか),「Channel」のパラメータ1,「Mbox」のパラメータ1,「Extend」のパラメータ1、の組を有する。
このようにして、自動テストツールは、MCAL37のConfigurationパラメータから、十分な組み合わせを網羅したConfigurationパラメータファイル22を生成できる。
・マイコン固有のConfigurationパラメータファイル22の生成
コンフィグレーション拡張記述14は、各マイコン44に共通のものであると説明したが、マイコン44に特有のConfigurationパラメータをテストするため、自動テストツールは、コンフィグレーション拡張記述15からもConfigurationパラメータファイル22を生成する。
外部仕様書のモジュール設計書11には、あるマイコン44のMCAL37に固有のConfigurationパラメータも自然言語や表形式で記述されている。マイコン44に固有のConfigurationパラメータとは、例えば、異なるメーカ間や同じメーカでも製品間で違いが生じうるConfigurationパラメータである。
マイコン44に固有のConfigurationパラメータには、例えば、マイコン44に固有の、通信チャネル、送信時の通信速度、受信時の通信速度等が規定されている。テスト担当者やマイコンメーカが、マイコン44に固有のConfigurationパラメータを、コンピュータ読み取り可能なフォーマットに変換しておく。こうすることで、Vendor Specific Module Description16が生成される。記述の形式は、Configuration Description13と同様、例えば表形式、XML形式、CSV形式である。
自動テストツールは、Vendor Specific Module Description16から、図4のようなコンフィグレーション拡張記述15を生成することができる。自動テストツールは、マイコン44に固有のコンフィグレーション拡張記述15からオールペア法を用いて、Configurationパラメータファイルを生成する。なお、出来上がったConfigurationパラメータファイル22が、マイコン44に共通か固有かは特に区別しなくてよい。
TTCN−3で記述された1つのConfigurationパラメータファイル22が、MCALをテストするための1つのテストケースとなる。
<API定義ファイル23の生成>
外部仕様書のモジュール設計書11には、MCAL37のAPIパラメータが自然言語や表形式で記述されている。このAPIは、例えば、ECU抽象化層43とMCAL37のAPIである。APIは関数形式で提供されている。したがって、典型的なAPIは各関数であり、APIパラメータは関数の引数である。外部仕様書のモジュール設計書11には、このようなMCAL37のAPIパラメータが記述されている。
図6は、APIパラメータの一例を示す図である。関数毎に、関数が持つ1以上の引数、その引数が取り得る値、及び、複数の値からの値選択方法が記述されている。テスト担当者やマイコンメーカは、外部仕様書のモジュール設計書11からコンピュータ読み取り可能なAPIパラメータ拡張記述17を生成する。Configurationパラメータと同様に、テスト担当者やマイコンメーカが、外部仕様書のモジュール設計書11をコンピュータ読み取り可能なフォーマットに変換しておくことが好ましい。
自動テストツールは、図6のようなAPIパラメータからAPIパラメータ拡張記述17を生成する。すなわち、APIパラメータから要素を読み出し、予め定義しておいたタグ名に対応づけてXML文書を生成する。タグ名に挟まれるXMLに記述される文は、APIパラメータの要素に対応して予め決まっている。
また、自動テストツールの組み合わせパラメータジェネレータ21は、APIパラメータ拡張記述17から、オールペア法を用いてAPI定義ファイル23を生成する。同様に、APIパラメータ定義ファイルはTTCN-3という言語で記述される。
図6のfunc1のように引数(引数a1,a2,a3)が3つの場合、引数を因子A〜Cとする。組み合わせパラメータジェネレータ21は、因子A〜Cのパラメーから、抽出しうる全ての2つのパラメータの組み合わせを抽出し、2つのパラメータをなるべく重複しないように3つの因子にそれぞれ割り当てることで、3つの因子のパラメータの組み合わせを生成する。因子A〜Cのパラメータの組み合わせのうち、引数の組み合わせとしてあり得ない組み合わせは、排除することができる。
TTCN−3で記述された1つのAPI定義ファイル23が、MCALをテストするための1つのテストケースとなる。
<テストケース組み合わせファイル24の生成>
外部仕様書のシーケンス図19には、例えばUML(Unified Modeling Language)で記述されたMCAL37のシーケンス図が記述されている。なお、UMLのクラス図を、シーケンス図の代わりに又はシーケンス図と共に利用することもできる。クラス図は、MCAL37のシステムを構成するクラス間の関連を表す。各クラスは、属性(変数)と操作を含むことができる。属性には、アクセスレベル、変数名、型等が記述され、操作には、関連づけされたクラスからの要求で起動することのできるサービスが記述されている。
図7はMCAL37のシーケンス図の一部の一例を示す。図7ではfunc1とCAN Driverがそれぞれ1つのクラスである。MCALの一般的な処理の手順を説明する。このシーケンス図では、例えば、ECU抽象化層43がAPIとしてのfunc1を呼び出す。呼び出す際、func1は引数a1〜a3を受け取る。func1は、引数a1〜a3と共にCAN Driverに送信要求を通知する。CAN Driverは、引数a1〜a3を用いて送信に必要な処理を行う。
CAN Driverは、マイクロコントローラに搭載されたCANコントローラを制御してメッセージを送信する。したがって、Configurationパラメータに誤った値が設定されれば、CANコントローラの仕様を満たさずに送信できないことになる。本実施例の自動テストツールはこのような不整合を検出することを可能にする。
CAN Driverは送信結果をfunc1に通知するように設計されていることが多い。よって、シーケンス図に従ったテストをした場合、CAN
Driverは、送信結果(エラーの有無、エラーの種類)をfunc1に通知する。したがって、func1は、送信結果をチェックして送信が無事に行われたか否か、無事に送信できない場合は、どのようなエラーが生じたかを判定することができる。したがって、自動テストツールがエラー内容をエコーすれば、テスト結果を記録することができる。
シーケンス図には、このように、一方のクラスが他方のクラスに要求する処理、及び、1つのクラス内で実行する処理等、が記述されている。
また、図7のシーケンス図とは逆に、CAN Driverがデータを受信して割り込みを発生させてAPIを呼び出す処理もMCAL37のシーケンス図には記述されている。
自動テストツールのテストケースジェネレータ18は、シーケンス図から処理手順を参照し、このようなテストケースの組み合わせを抽出する。好ましくは、全てのステップ及び分岐を一度は処理するように、1つのシーケンス図から複数のテストケースを抽出する。図7を例にすれば、ECU抽象化層43がfunc1を呼び出すための処理、func1がCAN
Driverを呼び出すための処理、CAN Driverがレジスタに値を設定するための処理、がテストケースとなる。なお、テストケースとは、一般に、テスト対象であるMCAL37に対して入力データとして与えるデータをいうが、本実施形態では、MCAL37に要求する処理をいう。
テストケースジェネレータ18は、テストケースの1つ1つを生成する。これらテストケースの集合がテストケース組み合わせファイル24である。テストケース組み合わせファイル24はTTCN-3という言語で記述される。
テストケースジェネレータ18は、TTCN−3により、ConfigurationパラメータやAPIパラメータが含まれるテストケース組み合わせファイル24を生成する。このテストケース組み合わせファイル24と、Configurationパラメータファイル22とAPI定義ファイル23が、MCALのテスト内容となる。
また、テストケースジェネレータ18は、生成したテストケースのConfigurationパラメータやAPIパラメータを、すでに求められているConfigurationパラメータファイル22やAPI定義ファイル23の各パラメータで置き換えて、1つのテストケースから網羅的にテストケースを生成することもできる。この場合、自動テストツールは、シーケンス図から求めた1つのテストケースについて、網羅性の高いConfigurationパラメータ及びAPIパラメータを使用して、テストを実行することができる。
なお、TTCN−3では、SUT(MCAL37)に対し、「port1.send(Stimulus)、Port2.Recieve(Response)」の手順でテストを実行する。「Stimulus」の具体的な記述が、Configurationパラメータファイル22、API定義ファイル23又はテストケース組み合わせファイル24から決定される。自動テストツールは、「Stimulus」として、ConfigurationパラメータやAPIパラメータを設定するTTCN−3の関数を含む記述、テストケースを実行するためTTCN−3の具体的な記述等、を生成する。TTCN−3は一例であって、U2TP等のテスト言語を採用してもよい。
<<テスト実行環境>>
テスト実行環境20もコンピュータ100内の環境であるが、別のコンピュータ上で構築してもよい。テスト実行環境20は、不図示のコンパイラ及びリンカを有し、自動テストツールから実行される。
テスト実行環境20は、例えば、C言語をベースとする。このため、自動テストツールは、TTCN−3により記述されたConfigurationパラメータファイル22、API定義ファイル23及びテストケース組み合わせファイル24をC言語にトランスレートする。これは、テスト対象であるMCAL37がC言語で記述されているためである。したがって、MCAL37がJava(登録商標)で記述されていればJava等にトランスレートしてもよいし、逆に、MCAL37をTTCN−3にトランスレートしてもよい。
TTCN−3とC言語の記述方法の対応は、不図示のテーブルに記述されており、自動テストツールがTTCN−3の記述を元にC言語に変換していく。例えば、TTCN−3の「integer」はC言語の「int」に、「signature」は「function」にそれぞれ変換される。
C言語に変換された、Configurationパラメータファイル22、API定義ファイル23又はテストケース組み合わせファイル24の1つのテストファイルが、テストケース実行部分(TE)31となる。全てのテストファイルが、C言語の例えばMain関数内に記述されることで、全てのテストケース実行部分31がMCAL37に適用され、網羅的かつ効率的にテストを実行することができる。
ここで、C言語によるテスト実行環境20では、MCAL37のヘッダファイルが必要であるため、例えば、組み合わせパラメータジェネレータ21は、MCAL37のヘッダファイル(コンフィグレーションファイル(*.h)27を生成する(予め生成されている)。
また、テスト実行環境20は、SA(SUT Adapter)29・33、TA(Target Adapter)35・38、PA(Platform Adapter)36・41、テストドライバ32、及び、テストスタブ42を有する。これらについては後述する。
自動テストツールは、テスト実行環境20の各ファイル(プログラム)をコンパイル及びリンクして、実行ファイルを生成し、実行する。実行結果は、コンピュータのハードディスク等に記憶されるので、テスト担当者はテスト結果を検証することができる。
例えば、送信時にエラーの起こりえないConfigurationパラメータの場合、エラーが検知されれば、テストにより不具合が検出されたことになる。このように、少なくとも、テストファイルと実行結果からテスト担当者が、正しい結果か否かを判定できるようになっている。なお、例えば、テストケース組み合わせファイル24に、期待値を含ませることもできる。
図8は、実行環境を説明する図の一例である。左のテストケース実行部分31Aがテストドライバ32と、右のテストケース実行部分31Bがテストスタブ42と、それぞれ接続されている。テストケース実行部分31Aは、ECU抽象化層43からMCAL37を使用する処理のテストケースの実行部である。
したがって、テストドライバ32はECU抽象化層43に対応し、MCAL37を呼び出すためのプログラムである。SA33は、テストケース実行部分31Aからテストドライバ32を介して要求される関数の呼び出しを受け付け、応答を返すアダプタ(プログラム)であり、TA35はSA33が受け付けた関数の実行をMCAL37に要求する。なお、PA36、41は、テストケース実行部分31A,31Bにタイマなどの実行環境のリソースを提供するモジュール(プログラム)である。
MCAL37は、TA35から要求された関数を実行するなどの処理を行い、処理結果をTA38に出力する。MCAL37はマイクロコントローラを抽象化したものなので、多くの場合、テストケースはマイクロコントローラを制御する。具体的には、汎用レジスタや特殊レジスタへの値の設定、割り込みの発生、スイッチのオン・オフ等を行う。
本実施形態では、特に、特殊レジスタを抽象化してテストスタブ42を生成したことが特徴の1つである。
図9は、市販されているマイコン44の特殊レジスタの一例を示す図である。特殊レジスタは、マイコン44の演算部がデータを自由に読み書きできる汎用レジスタと対比させたレジスタの呼称であり、マイコン44のモードを決定するレジスタ、設定できる値が決まっているレジスタ、値が設定できないレジスタ、ポインタ専用のレジスタ等である。
特殊レジスタは、マイコン44毎に一部又は全てが異なる可能性があるので、MCAL37が正確に作動するかをテストするためには、テストケースに応答してMCAL37が特殊レジスタを正常に操作できるか否かをテストすることが好ましい。本実施形態では、特殊レジスタをテストスタブ41にすることで、マイコン44に特有のハードウェアをテストすることができる。
図8に戻り、MCAL37は、TA38に対しテストスタブ42の呼び出しを通知し、TA38はSA39にテストスタブ42の呼び出しを通知する。SA39はMCAL37が要求した値をテストスタブ42に値を設定する。テストスタブ42は、設定した値や設定結果をSA39に返すなどして、最終的にテストケース実行部分31Aがテスト結果を取得する。テストケース実行部分31Aは、テストケース毎にテスト結果を記録する。
一方、テストケース実行部分31Bは、MCAL37が利用するテストスタブ42に、MCAL37を介することなく値を設定するなどの処理を施す。すなわち、直接的に特殊レジスタに値を設定することができる。このようなテストケースにより、例えばマイコン44に割り込みが生じた際の、MCAL37の応答をテストすることができる。同様に、テストケース実行部分31Bは、テストケース毎にテスト結果を記録する。
以上説明したように、本実施形態の自動テストツールは、Configurationパラメータの組み合わせとAPIパラメータの組み合わせを効率的かつ網羅的に抽出して、網羅性の高いパラメータによりマイコンの仕様をテストできる。また、マイコンに特有なハードウェアの仕様をテストすることもできる。
11 外部仕様書のモジュール設計書
13 Configuration Description
14、15コンフィグレーション拡張記述
16 Vendor Specific Module Description
17 APIパラメータ拡張記述
18 テストケースジェネレータ
19 外部仕様書のシーケンス図
20 実行環境
21 組み合わせパラメータジェネレータ
22 Configurationパラメータファイル
23 API定義ファイル
24 テストケース組み合わせファイル
37 MCAL
100 コンピュータ

Claims (9)

  1. ハードウェアを抽象化した抽象化層の環境を設定するコンフィグレーションパラメータと、
    前記抽象化層を呼び出すAPIとAPI毎に設定可能引数が記述されたAPIパラメータと、
    複数の前記コンフィグレーションパラメータから網羅的にコンフィグレーションパラメータの組み合わせを、複数の前記APIパラメータから網羅的にAPIパラメータの組み合わせを、それぞれ抽出する組み合わせ抽出手段と、
    前記抽象化層の処理シーケンスに含まれる処理に基づき、テストケースを生成するテストケース生成手段と、
    前記ハードウェアと前記抽象化層のインタフェースをモデル化したインタフェースモデルと、
    前記コンフィグレーションパラメータの組み合わせ、前記APIパラメータの組み合わせ、又は、前記テストケースを前記抽象化層に適用して前記抽象化層をテストするテスト実行手段と、
    を有することを特徴とするテストツール。
  2. 前記組み合わせ抽出手段は、オールペア法により前記コンフィグレーションパラメータの組み合わせ、及び、前記APIパラメータの組み合わせを抽出する、
    ことを特徴とする請求項1記載のテストツール。
  3. 前記インタフェースモデルは、マイコンの特殊レジスタをモデル化したものである、
    ことを特徴とする請求項1又は2記載のテストツール。
  4. 前記コンフィグレーションパラメータには、ハードウェアに固有の仕様が含まれる、
    ことを特徴とする請求項1〜3いずれか1項記載のテストツール。
  5. 前記コンフィグレーションパラメータ又は前記APIパラメータは、タグ言語で記述されている、
    ことを特徴とする請求項1〜4いずれか1項記載のテストツール。
  6. 前記コンフィグレーションパラメータ、前記APIパラメータ、及び、前記テストケースは、テスト用言語のTTCN−3を用いて記述されている、
    ことを特徴とする請求項1〜5いずれか1項記載のテストツール。
  7. 前記コンフィグレーションパラメータには、設定可能範囲から1つの値を選択する値選択方法が記述されており、
    前記APIパラメータには、設定可能範囲から1つの値を選択する値選択方法が記述されている、
    ことを特徴とする請求項1〜5いずれか1項記載のテストツール。
  8. 前記抽象化層は、マイコンの機能と周辺機器を抽象化した層である、
    ことを特徴とする請求項1〜7いずれか1項記載のテストツール。
  9. ハードウェアを抽象化した抽象化層をテストするテスト方法であって、
    前記抽象化層の環境を設定するコンフィグレーションパラメータから、網羅的にコンフィグレーションパラメータの組み合わせを抽出するステップと、
    前記抽象化層を呼び出すAPI毎に設定可能引数が記述されたAPIパラメータから、網羅的にAPIパラメータの組み合わせを抽出するステップと、
    前記抽象化層の処理シーケンスに含まれる処理に基づき、テストケースを生成するテストケース生成ステップと、
    前記コンフィグレーションパラメータの組み合わせ、前記APIパラメータの組み合わせ、又は、前記テストケースを、ハードウェアとのインタフェースがモデル化された前記抽象化層に適用して前記抽象化層をテストするテスト実行ステップと、
    を有することを特徴とするテスト方法。
JP2010090566A 2010-04-09 2010-04-09 テストツール、テスト方法 Pending JP2011221803A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010090566A JP2011221803A (ja) 2010-04-09 2010-04-09 テストツール、テスト方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010090566A JP2011221803A (ja) 2010-04-09 2010-04-09 テストツール、テスト方法

Publications (1)

Publication Number Publication Date
JP2011221803A true JP2011221803A (ja) 2011-11-04

Family

ID=45038713

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010090566A Pending JP2011221803A (ja) 2010-04-09 2010-04-09 テストツール、テスト方法

Country Status (1)

Country Link
JP (1) JP2011221803A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018036972A (ja) * 2016-09-01 2018-03-08 ポップコーンサー コー リミテッド ファイルフォーマット変換装置及びその変換方法
CN109843637A (zh) * 2016-10-13 2019-06-04 大众汽车有限公司 基于can的充电系统中的智能充电通信切换
KR20200011494A (ko) * 2017-06-30 2020-02-03 지티이 코포레이션 화이트 박스 광 전송 네트워크(otn) 하드웨어 디바이스를 구현하는 방법 및 장치, 저장 매체
CN113495162A (zh) * 2020-03-20 2021-10-12 竑腾科技股份有限公司 自动光学检测设备的控制系统
CN114936045A (zh) * 2021-02-04 2022-08-23 广汽埃安新能源汽车有限公司 Mcal的io驱动模块自动配置方法及系统、存储介质
CN116048049A (zh) * 2023-01-18 2023-05-02 重庆长安汽车股份有限公司 一种汽车ecu软件系统诊断优化方法、装置、设备及介质

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018036972A (ja) * 2016-09-01 2018-03-08 ポップコーンサー コー リミテッド ファイルフォーマット変換装置及びその変換方法
CN109843637A (zh) * 2016-10-13 2019-06-04 大众汽车有限公司 基于can的充电系统中的智能充电通信切换
JP2020501479A (ja) * 2016-10-13 2020-01-16 フォルクスヴァーゲン アクチエンゲゼルシャフトVolkswagen Aktiengesellschaft Canベースの充電システムにおけるインテリジェント充電通信切り替え装置
KR20200011494A (ko) * 2017-06-30 2020-02-03 지티이 코포레이션 화이트 박스 광 전송 네트워크(otn) 하드웨어 디바이스를 구현하는 방법 및 장치, 저장 매체
KR102328825B1 (ko) 2017-06-30 2021-11-22 지티이 코포레이션 화이트 박스 광 전송 네트워크(otn) 하드웨어 디바이스를 구현하는 방법 및 장치, 저장 매체
CN113495162A (zh) * 2020-03-20 2021-10-12 竑腾科技股份有限公司 自动光学检测设备的控制系统
CN114936045A (zh) * 2021-02-04 2022-08-23 广汽埃安新能源汽车有限公司 Mcal的io驱动模块自动配置方法及系统、存储介质
CN114936045B (zh) * 2021-02-04 2023-08-04 广汽埃安新能源汽车有限公司 Mcal的io驱动模块自动配置方法及系统、存储介质
CN116048049A (zh) * 2023-01-18 2023-05-02 重庆长安汽车股份有限公司 一种汽车ecu软件系统诊断优化方法、装置、设备及介质
CN116048049B (zh) * 2023-01-18 2024-05-14 重庆长安汽车股份有限公司 一种汽车ecu软件系统诊断优化方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
JP6607565B2 (ja) セーフティクリティカルソフトウェアのための統合された自動テストケース生成
EP2245532B1 (en) Method and apparatus for generating virtual software platform based on component model and validating software platform architecture using the platform
US9501269B2 (en) Automatic source code generation for accelerated function calls
US20100138825A1 (en) Computer System and Method for Configuring an Application Program in a Computer System
JP2009087354A (ja) ウェブアプリケーションの自動テスト生成システム及び方法
JP2011221803A (ja) テストツール、テスト方法
Mubeen et al. Provisioning of predictable embedded software in the vehicle industry: The rubus approach
US20130103379A1 (en) Apparatus and method for verifying interoperability between application software and autosar service
Sandmann et al. Autosar-compliant development workflows: From architecture to implementation-tool interoperability for round-trip engineering and verification and validation
CN117234926A (zh) 基于autosar架构的软件组件接口检查方法及装置
Li et al. Formalizing hardware/software interface specifications
Elmqvist et al. Safety-oriented design of component assemblies using safety interfaces
JP2009099111A (ja) 規則検査プログラム、規則検査方法および規則検査装置
Muli et al. Virtual validation-a new paradigm in controls engineering
Anssi et al. Completing EAST-ADL2 with MARTE for enabling scheduling analysis for automotive applications
KR20110067418A (ko) 자가치유 시스템의 모니터링 및 치유성능 평가를 위한 시스템 및 방법
Beringer et al. Verification of AUTOSAR software architectures with timed automata
Vuli et al. Maximizing test asset re-use across MIL, SIL, and HIL development platforms
Beringer et al. Consistency Analysis of AUTOSAR Timing Requirements.
Saadatmand et al. Testing of timing properties in real-time systems: Verifying clock constraints
Yang et al. Model-based design and verification of automotive electronics compliant with OSEK/VDX
Jaikamal et al. Advanced Techniques for Simulating ECU C-code on the PC
Jain et al. Implementing ATML into the Automatic Test System development and execution workflow
Chockler et al. Validation of evolving software
KR20240009757A (ko) 오토사 스택 가상화를 통한 윈도우 기반의 차량용 소프트웨어 시뮬레이션 장치 및 방법