特許第6973846号(P6973846)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ゼネラル・エレクトリック・カンパニイの特許一覧

特許6973846カバレッジに基づく設計モデル用自動テストケース拡張のためのシステムおよび方法
<>
  • 特許6973846-カバレッジに基づく設計モデル用自動テストケース拡張のためのシステムおよび方法 図000004
  • 特許6973846-カバレッジに基づく設計モデル用自動テストケース拡張のためのシステムおよび方法 図000005
  • 特許6973846-カバレッジに基づく設計モデル用自動テストケース拡張のためのシステムおよび方法 図000006
  • 特許6973846-カバレッジに基づく設計モデル用自動テストケース拡張のためのシステムおよび方法 図000007
  • 特許6973846-カバレッジに基づく設計モデル用自動テストケース拡張のためのシステムおよび方法 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6973846
(24)【登録日】2021年11月8日
(45)【発行日】2021年12月1日
(54)【発明の名称】カバレッジに基づく設計モデル用自動テストケース拡張のためのシステムおよび方法
(51)【国際特許分類】
   G06F 11/36 20060101AFI20211118BHJP
【FI】
   G06F11/36 184
   G06F11/36 108
【請求項の数】6
【外国語出願】
【全頁数】11
(21)【出願番号】特願2017-12598(P2017-12598)
(22)【出願日】2017年1月27日
(65)【公開番号】特開2017-138978(P2017-138978A)
(43)【公開日】2017年8月10日
【審査請求日】2020年1月23日
(31)【優先権主張番号】15/013,391
(32)【優先日】2016年2月2日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】390041542
【氏名又は名称】ゼネラル・エレクトリック・カンパニイ
(74)【代理人】
【識別番号】100188558
【弁理士】
【氏名又は名称】飯田 雅人
(74)【代理人】
【識別番号】100154922
【弁理士】
【氏名又は名称】崔 允辰
(74)【代理人】
【識別番号】100207158
【弁理士】
【氏名又は名称】田中 研二
(74)【代理人】
【識別番号】100137545
【弁理士】
【氏名又は名称】荒川 聡志
(74)【代理人】
【識別番号】100105588
【弁理士】
【氏名又は名称】小倉 博
(74)【代理人】
【識別番号】100129779
【弁理士】
【氏名又は名称】黒川 俊久
(74)【代理人】
【識別番号】100113974
【弁理士】
【氏名又は名称】田中 拓人
(72)【発明者】
【氏名】メン・リ
(72)【発明者】
【氏名】マイケル・リチャード・ダーリン
(72)【発明者】
【氏名】チャン・ダイ
(72)【発明者】
【氏名】スコット・アラン・ステイシー
【審査官】 多胡 滋
(56)【参考文献】
【文献】 特開2012−226652(JP,A)
【文献】 特開2014−191652(JP,A)
【文献】 特開2012−221394(JP,A)
【文献】 米国特許出願公開第2013/0085741(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/36
(57)【特許請求の範囲】
【請求項1】
自動テストケース拡張のためのシステム(100)であって、プログラム命令を実行するように構成された制御プロセッサ(110)を備えたコンピュータを備え前記プログラム命令により、前記制御プロセッサ(110)は、
モデルベース開発ツールから、設計モデル(130)、および高位要件に基づくテストケースで利用されなかったテスト基準を示すモデルカバレッジギャップ(135)を受信し(210)、
基準変換テーブルを用いて前記モデルカバレッジギャップ(135)を機械可読な数学的テスト目標式に翻訳し(310)、
前記機械可読な数学的テスト目標式を翻訳する(315)ことによって一群のテスト目標演算子を作成し、
前記設計モデル内で特定されたカバレッジギャップに関する目的の演算子を配置し(320)、
テストモデルを作成するために、前記テスト目標演算子を前記設計モデルの目的の演算子に紐付け(325)、
前記目的の演算子におけるテスト目標を前記設計モデルのテストノード演算子に伝達する(330)ことによって前記テストモデルを拡張し、
テストジェネレータ(160)によって、前記拡張されたテストモデルを実行して、前記カバレッジギャップをカバーするテストケースと前記モデルカバレッジギャップの原因とを得る、システム(100)。
【請求項2】
前記テスト目標(152)は1つ以上の試験目的を定義する、請求項1に記載のシステム(100)。
【請求項3】
テスト目標(152)、テストモデル(156)、およびカバレッジギャップ変換規則(158)を格納するデータ格納装置(150)を備えた、請求項1に記載のシステム(100)。
【請求項4】
前記制御プロセッサ(110)はプログラム命令を実行するようにさらに構成され、前記プログラム命令により、
前記制御プロセッサ(110)は前記基準変換テーブルを用いることによってカバレッジ基準を翻訳する、請求項に記載のシステム(100)。
【請求項5】
前記制御プロセッサ(110)はプログラム命令を実行するようにさらに構成され、前記プログラム命令により、
前記制御プロセッサ(110)は前記モデルベース開発ツールから前記基準変換テーブルを得る、請求項に記載のシステム(100)。
【請求項6】
前記制御プロセッサ(110)はプログラム命令を実行するようにさらに構成され、前記プログラム命令により、
前記制御プロセッサ(110)は、
前記カバレッジ基準の分類および特定の少なくともいずれか一方と、
前記カバレッジ基準に対する1つ以上の変換規則(158)の生成と、
を行う、請求項に記載のシステム(100)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、カバレッジに基づく設計モデル用自動テストケースの拡張のためのシステムおよび方法に関する。
【背景技術】
【0002】
現在利用可能なモデルベース開発ツールは一部のモデル要素の到達不能性を示すことができる。一部のツールは、ユーザ定義によるテスト目標と要件のほか、標準的なカバレッジ目標を満足するテスト入力を生成することができる。このテスト入力を、測定データを用いて定義されるテストと組み合わせることにより、シミュレーションがモデルのカバレッジ、要件、および現実世界のシナリオに対してテストを行うようにすることもできる。
【0003】
しかし、一部の重要なカバレッジ基準(例えば、マスキングMC/DC(改良条件/判定カバレッジ)は現在利用可能なモデルベース開発ツールによってサポートされておらず、一部のカバレッジ基準を満たすために冗長なテストケースが生成される。さらに、従来の開発ツールのなかには、カバレッジ基準を満たすようにテストケースを拡張することができないものがある。
【0004】
ソフトウェア認証規格(例えば、DO−178C)は、安全性が特に重要なソフトウェア(例えば、航空機ソフトウェア)を厳しいテストカバレッジ(MC/DCを含む)で試験することを義務づけている。これらの規格は、判定に対して独立に影響を与えうる個々の条件について試験を行うように求めている場合がある。内部変数がある特定の値となるような入力列を特定する、モデルないしコードの手動検査は、とりわけ航空機ソフトウェアシステムが巨大で複雑である場合に、困難であると同時に時間がかかる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】米国特許第8924923号明細書
【図面の簡単な説明】
【0006】
図1】諸実施形態に係る自動テストケース拡張システムを示す図である。
図2】諸実施形態に係る、設計モデル用の自動テストケース拡張の処理フローチャートである。
図3】諸実施形態に係る、モデルカバレッジギャップに基づくテストモデル作成の処理フローチャートである。
図4】諸実施形態に係る、図1のシステムに対するユーザインタフェースを示す図である。
図5】諸実施形態に係る、設計モデルとカバレッジの分析レポートを示す図である。
【発明を実施するための形態】
【0007】
諸実施形態によると、システムおよび方法は、安全性が特に重要なソフトウェアの開発をモデルベース開発の環境においてサポートする。モデルテストカバレッジのギャップは、高位要件に基づくテストケースを設計モデルに対して実行してから、モデルベース開発環境のモデルカバレッジ分析ツールを用いることによって知ることができる。カバレッジギャップは、高位要件に基づくテストケースで利用されなかったテスト基準を示す。システムおよび方法を実施することで、カバレッジギャップをカバーするようにテストケースを自動的に拡張することができる。システムおよび方法の実施により、カバレッジギャップ情報が機械可読な数学的テスト目標に翻訳され、それにより、カバレッジギャップ情報が自動テストケース拡張のための設計モデルに紐付け可能になる。ここにおいて、設計モデルはモデルベース開発の言語で書かれている。
【0008】
システムおよび方法はテストジェネレータを用いて実施する。テストジェネレータは、テスト目標が紐付けられた設計モデルに対してモデル検査、制約解決、および/または到達可能性分析(reachability resolution)の技術を実施することができる。それにより、安全性が特に重要なソフトウェアの設計モデルに対するテストカバレッジギャップを自動的に特定して埋める。また、システムおよび方法の実施により、モデルの不備(例えば、デッドコード、想定されていない関数、起動されない関数、等)を特定することができる。システムおよび方法の実施により、カバレッジギャップをテスト目標に変換することができるカバレッジギャップ変換規則が実装できる。入力列がテスト目標を動作させられる場合、その入力列はカバレッジギャップを埋めることができる。テスト目標はテストジェネレータにおいて設計モデルとともに分析され、テストケースの生成が行われる。カバレッジギャップのパターンがいくつか特定され、それらの変換規則が定義される。従来のさまざまなモデルベース開発ツールにおいて開発された設計モデル用のモデルテストカバレッジギャップを、埋めることができる。
【0009】
航空機ソフトウェア等、安全性が特に重要なソフトウェアは、厳しいテストカバレッジ(例えば、MC/DC(改良条件/判定カバレッジ))を用いて試験することが、ソフトウェア認証規格(例えば、DO−178C)によって義務づけられている。MC/DCでは、個々の条件が判定に対して独立に影響を与えることが求められる。内部変数がある特定の値となるような入力列を特定する、モデルないしコードの手動検査は、とりわけ航空機ソフトウェアが巨大で、複雑さが増していく場合に、困難であると同時に時間がかかる。
【0010】
カバレッジギャップ情報から機械可読な数学的テスト目標への、異なる基準の翻訳を可能にするため、1つ以上の変換規則が実装された異なるカバレッジ基準がサポートされる。その例として、ステートメントカバレッジ(命令網羅)、ディシジョンカバレッジ(判定網羅)、MC/DC、マスキングMC/DC、ステートカバレッジ(状態網羅)、トランジションカバレッジ(状態遷移網羅)等が挙げられる。システムおよび方法の実施により、基準の認識、目的の設計ないしコードの配置(locate)、テスト目標の翻訳と紐付け、設計アーキテクチャ全体にわたるテスト目標の伝達(propagate)、テスト目標に基づくテストケースの生成、が可能になる。
【0011】
図1に、諸実施形態に係る設計モデル用の自動テストケース拡張システム100を示す。システム100は、コンピュータ命令を実行してシステムおよびそのコンポーネントの動作を制御する制御プロセッサ110を備えている。制御プロセッサ110はコンピュータまたはサーバ内に置くことができ、通信リンク120を介してさまざまなコンポーネントと相互接続できる。通信リンク120は、内部バスまたは電子通信ネットワーク等とすることができる。
【0012】
システム100は、モデルカバレッジを満足するように拡張テストケースを生成することができる。この処理は、受信された、安全性が特に重要なソフトウェアの設計モデル130、ならびに受信されたモデルカバレッジギャップ135に基づいて行われる。設計モデルは、Simulink/StateflowやSCADE等、従来のモデルベース開発の言語で書くことができる。
【0013】
ギャップ変換器140は、モデルカバレッジギャップをカバレッジギャップ変換規則158に基づいてテスト目標152に変換するように構成されている。カバレッジギャップ変換規則158は、データ格納装置150に格納することができる。テスト目標は、テストジェネレータ160のための目標を規定および/または設定する。次に、テストモデル156を生成するため、テスト目標が設計モデル内の対応する動作と紐付けられる。テストジェネレータ160はテストモデルを入力として適用し、それをもとに、テスト目標を達成する一群のテストケース154を作成する。
【0014】
図2は、諸実施形態に係る設計モデル用の自動テストケース拡張のプロセス200を示す。ステップ210では、モデルベース開発ツールのモデルカバレッジギャップ分析器180への呼び出しからモデルカバレッジギャップを得ることができる。ステップ220では、設計モデル130とモデルカバレッジギャップ135とに基づいてテストモデルが作成される。ステップ230ではテストモデルに対してテストジェネレータが実行され、モデルカバレッジギャップをカバーするように入力が処理される。ステップ240では、モデルカバレッジギャップの潜在的原因がテストジェネレータの実行結果に基づいて決定される。
【0015】
図3は、諸実施形態に係る、モデルカバレッジギャップに基づくテストモデル作成(図2のステップ220)のプロセス300を示す。テストモデルは、設計モデル130とモデルカバレッジギャップ135とに基づいて作成される。ステップ305において、カバレッジギャップ分析器180が設計モデルにおけるカバレッジギャップを特定する。ステップ310では、カバレッジギャップが分類され、その分類に基づいて機械可読な数学的テスト目標式に翻訳される。本実施態様によると、この変換は基準変換テーブルを用いて行うことができる。基準変換テーブルはカバレッジ基準の種類ごとに事前に作成される。表1に、諸実施形態に従ってカバレッジギャップからテスト目標式に変換する処理の一例を示す。
【0016】
【表1】
基準変換テーブルはカバレッジ基準パターンを分類し、基準パターンごとにテスト目標を定義する。カバレッジ基準の変換は、異なるカバレッジ基準をサポートできる。その例として、ステートメントカバレッジ(命令網羅)、ディシジョンカバレッジ(判定網羅)、MC/DC(改良条件/判定カバレッジ)、マスキングMC/DC、ステートカバレッジ(状態網羅)、トランジションカバレッジ(状態遷移網羅)等が挙げられる。
【0017】
次に、翻訳された数学的テスト目標式がステップ315において一群のテスト目標演算子に翻訳される。これは設計モデルに紐付けることができる。
【0018】
テスト目標演算子が設計モデル内の目的の演算子に紐付けられる。ステップ320では、設計モデル内で特定されたカバレッジギャップに基づいて目的の演算子が配置される(localized)。本実施態様によると、この配置を実現するため、カバレッジギャップ情報をパースすることによってカバレッジギャップに関する目的の演算子を得ることができる。カバレッジギャップ情報は、そのギャップの発生位置および満たされない基準が何であるかの情報を含むことができる。
【0019】
さらに、テストモデル作成のために、テスト目標に対応する信号を目的の演算子に結びつけるよう、ステップ325においてテスト目標演算子が紐付けされる。ステップ330では、テスト目標が、あるテストノード演算子にまで伝達される。テストノード演算子はモデルの階層構造においてより上位にありうる。これにより、テスト目標がテストノード演算子の階層において見えるようにできる。テストジェネレータはテストモデルのテスト目標を認識し、テスト目標を動作させて対応するモデルカバレッジギャップをカバーする入力列を、テストノード演算子の階層において発見する。
【0020】
システムおよびプロセスの実施により、カバレッジギャップの潜在的原因をテストジェネレータの結果に基づいて決定することができる。この決定は、何らかの設計情報とともに以下の条件に沿って行うことができる。
【0021】
1)テスト目標が到達可能(すなわち、そのテスト目標を動作させる入力列が発見可能)であると判定され、かつ対応するカバレッジギャップが高位要件または派生要件に遡及しない場合、その対応するカバレッジギャップの原因は不十分な高位要件または派生要件にある。
【0022】
2)テスト目標が到達可能であり、かつ高位要件に遡及する場合、高位要件に基づくテストが不十分であるために、対応するカバレッジが未達成である。
【0023】
3)テスト目標が到達可能であり、かつソフトウェア設計者によって指定された派生要件に遡及する場合、対応するカバレッジはその派生要件ゆえに未達成である。
【0024】
4)テスト目標が到達不能である(すなわち、そのテスト目標を動作させる可能な入力列を発見できないことが数学的に証明された)場合、設計モデルパラメータを設計モデルへの入力として含めることによってテストジェネレータを再度実行することができる。その場合、テストジェネレータは更新された設計モデルパラメータを生成することができる。更新された設計モデルパラメータには、入力された設計モデルパラメータに関連するカバレッジギャップを解決するための変更が含まれる。
【0025】
4a)テスト目標が依然として到達不能であると判定される場合、カバレッジギャップは想定されていない関数またはデッドコードである。
【0026】
4b)カバレッジギャップが到達可能であると判定される場合、カバレッジギャップは起動されない関数である。カバレッジギャップを到達可能にする設計モデルパラメータ値を生成することができる。
【0027】
図4は、諸実施形態に係るシステム100のユーザインタフェース400を示す。ユーザインタフェースは、複数のフレームを備えたインタラクティブなグラフィカルインタフェースとすることができる。「MTCレポートを開く」ボタンをクリックすると、ユーザはモデルカバレッジギャップを記載したレポートを選択することができる。未実施項目フレーム410には、選択したレポートにおける設計モデルカバレッジギャップの一覧が表示される。ユーザはいくつかのカバレッジギャップを選択してテストケースを生成することができる。テストケースフレーム420には、フレーム410で選択したカバレッジギャップを対象として、システム100の結果である、生成されたテストケースが表示される。対応するカバレッジギャップが到達可能な場合は、生成されたテストケースのディレクトリが表示される。対応するカバレッジギャップが到達不能の場合は「到達不能」と表示される。状態フレーム430には、システム100が設計モデルに対する自動テストケース拡張処理を実行したときの、システム100によるステータスレポートが表示される。
【0028】
システムおよび方法を実施することで、モデルベース開発ツールによるカバレッジギャップ分析器レポートが受信され、レポートに記載される特定されたモデルテストカバレッジのギャップが機械可読なテスト目標式に変換される。次に、このテスト目標式はテスト目標演算子に自動的に変換される。テスト目標演算子は設計モデル自体の適切な位置に紐付けされ、テストモデルが作成される。このテストモデルに対してテストジェネレータを使用することで、カバレッジギャップをカバーするとともに設計の不備を明らかにするようなテストケースが生成される。
【0029】
図5は、諸実施形態に係る、設計モデルとカバレッジの分析レポート500を示す。分析レポートには設計モデルの論理流れ図が含まれる。論理流れ図には自動テストケース拡張システム100による注釈が示され、提示された論理フローに対してtrueまたはfalseの値がテストされなかったテストカバレッジギャップ位置510、520、530が示されている。テストケース拡張システムの動作結果として、論理フローのいくつかの条件分岐がテストされなかったことを示す注釈も、分析レポートには示されている。例えば「else」ブロック540はテストされなかったと表示されている。諸実施形態によると、カバレッジ分析レポートは表2に示すような表形式とすることができる。
【0030】
【表2】
諸実施形態によれば、マスキングMC/DCでは、基準が、ある演算子から始まり一連の演算子を経由してある演算子で終わるパスであるときに、規則に従うことができる。例えば、ローカル変数は、あるパスの終わりから別のパスの始まりまで複数のパスをつなぐことができる。また、テキスト表現を用いることにより、出力変数はあるパスの終わりから別のパスの始まりまで複数のパスをつなぐことができる。諸実施形態によれば、テストジェネレータ160はトラップ条件(テスト目標の否定)を受信して、トラップ条件に対する反例を探すことができる。反例が見つかる場合、その反例はテスト目標を満足するテストケースである。反例が見つからない場合、そのテスト目標は到達不能であり、対応するカバレッジギャップをカバーできるテストケースがないことを意味する。そのような場合はカバレッジ基準をテスト目標式に変換することができる。テスト目標式はモデルに紐付けされるトラップ条件ブロックに翻訳される。
【0031】
いくつかの実施形態によると、不揮発性メモリ、コンピュータ可読媒体(例えば、レジスタメモリ、プロセッサキャッシュ、RAM、ROM、ハードドライブ、フラッシュメモリ、CD−ROM、磁気媒体等)、および/または外部メモリ155に格納されるコンピュータプログラムアプリケーションは、実行されたときに、本明細書において論じた方法を上述のように実行するようにコントローラまたはプロセッサに命令する、かつ/またはコントローラまたはプロセッサに実行させる、コードもしくは実行可能命令を含みうる。上記方法の例として、安全性が特に重要なソフトウェアをモデルベース開発の環境で開発するための方法が挙げられる。
【0032】
コンピュータ可読媒体は、あらゆる形態および種類のメモリならびにあらゆるコンピュータ可読媒体を含む、非一時的なコンピュータ可読媒体でありうる。ただし、一時的な伝播信号を除く。ひとつの実施態様において、上記の不揮発性メモリまたはコンピュータ可読媒体は外部メモリでありうる。
【0033】
以上、具体的なハードウェアおよび方法について説明してきたが、本発明の諸実施形態による他の構成はいくつでも提供しうる。したがって、これまで本発明の根本的な新規の特徴について図示、説明、および指摘してきたが、本発明の主旨および範囲を逸脱することなく、これまで説明してきた実施形態の形態や詳細、ならびにその動作に対して当業者はさまざまな省略、置換、および変更を行いうることが理解されるだろう。ある実施形態の要素を別の実施形態のものに置き換えることもすべて想定および予想の範囲内である。本発明は、添付の特許請求の範囲ならびにその記載の均等物のみに関連して規定される。
【符号の説明】
【0034】
100 自動テストケース拡張システム
110 制御プロセッサ
120 通信リンク
130 設計モデル
135 モデルカバレッジギャップ
140 ギャップ変換器
150 データ格納装置
152 テスト目標
154 テストケース
155 外部メモリ
156 テストモデル
158 カバレッジギャップ変換規則
160 テストジェネレータ
180 カバレッジギャップ分析器
200 プロセス
210 ステップ
220 ステップ
230 ステップ
240 ステップ
300 プロセス
305 ステップ
310 ステップ
315 ステップ
320 ステップ
325 ステップ
330 ステップ
400 ユーザインタフェース
410 未実施項目フレーム
420 テストケースフレーム
430 状態フレーム
500 分析レポート
510 テストカバレッジギャップ位置
520 テストカバレッジギャップ位置
530 テストカバレッジギャップ位置
540 Elseブロック
図1
図2
図3
図4
図5