(57)【要約】【課題】カバレッジに基づく設計モデル用自動テストケースの拡張。【解決手段】設計モデルとモデルベース開発ツールからのモデルカバレッジギャップ情報とを自動テストケース拡張システムにおいて受信し、モデルカバレッジギャップ情報を機械可読な数学的テスト目標式に翻訳し、機械可読な数学的テスト目標式を翻訳することによって一群のテスト目標演算子を作成し、特定されたカバレッジギャップに対する目的の演算子を設計モデル内に配置し、テストモデルを作成するためにテスト目標演算子を設計モデルの目的の演算子に紐付け、目的の演算子におけるテスト目標を設計モデルのテストノード演算子に伝達することによってテストモデルを拡張し、カバレッジギャップをカバーするテストケースとモデルカバレッジギャップの原因とを得るために拡張されたテストモデルをテストジェネレータによって実行する。【選択図】図１
2017138978.tif 000002
【特許請求の範囲】
【請求項１】
プログラム命令を実行するように構成された制御プロセッサ（１１０）を備えたコンピュータと、
前記制御プロセッサ（１１０）にリンクされたギャップ変換器（１４０）であって、設計モデル（１３０）の１つ以上のモデルカバレッジギャップ（１３５）を数学的テスト目標式に変換するように構成された、ギャップ変換器（１４０）と、
前記制御プロセッサ（１１０）にリンクされたテストジェネレータ（１６０）であって、テストモデル（１５６）内の前記テスト目標（１５２）から一群のテストケース（１５４）を作成するように構成された、テストジェネレータ（１６０）と、
を備え、
前記ギャップ変換器（１４０）は、前記数学的テスト目標式をテスト目標演算子に翻訳するとともに、前記テスト目標演算子を前記設計モデル（１３０）内の対応する演算子に紐付けすることによってテストモデル（１５６）を作成するようにさらに構成されている、
自動テストケース拡張のためのシステム（１００）。
【請求項２】
前記モデルカバレッジギャップ（１３５）をモデルベース開発ツールから受信するように構成された、請求項１に記載のシステム（１００）。
【請求項３】
前記テスト目標（１５２）は１つ以上の試験目的を定義する、請求項１に記載のシステム（１００）。
【請求項４】
前記テスト目標演算子は、前記設計モデル（１３０）に紐付けることができるテスト目標演算子である、請求項１に記載のシステム（１００）。
【請求項５】
テスト目標（１５２）、テストモデル（１５６）、およびカバレッジギャップ変換規則（１５８）を格納するデータ格納装置（１５０）を備えた、請求項１に記載のシステム（１００）
【請求項６】
前記制御プロセッサ（１１０）はプログラム命令を実行するようにさらに構成され、前記プログラム命令により、
前記制御プロセッサ（１１０）は、
前記目的の演算子におけるテスト目標（１５２）を前記設計モデル（１３０）の前記テストノード演算子に伝達する（ｐｒｏｐａｇａｔｅ）ことによって前記テストモデル（１５６）を拡張し、
前記カバレッジギャップをカバーする前記テストケース（１５４）と前記モデルカバレッジギャップ（１３５）の原因とを得るよう、前記拡張されたテストモデル（１５６）に対して前記テストジェネレータ（１６０）を実行する、
請求項１に記載のシステム（１００）。
【請求項７】
前記制御プロセッサ（１１０）はプログラム命令を実行するようにさらに構成され、前記プログラム命令により、
前記制御プロセッサ（１１０）は基準変換テーブルを用いることによってカバレッジ基準を翻訳する、請求項６に記載のシステム（１００）。
【請求項８】
前記制御プロセッサ（１１０）はプログラム命令を実行するようにさらに構成され、前記プログラム命令により、
前記制御プロセッサ（１１０）は前記モデルベース開発ツールから前記基準変換テーブルを得る、請求項７に記載のシステム（１００）。
【請求項９】
前記制御プロセッサ（１１０）はプログラム命令を実行するようにさらに構成され、前記プログラム命令により、
前記制御プロセッサ（１１０）は、
前記カバレッジ基準の分類および特定の少なくともいずれか一方と、
前記カバレッジ基準に対する１つ以上の変換規則（１５８）の生成と、
を行う、請求項６に記載のシステム（１００）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カバレッジに基づく設計モデル用自動テストケースの拡張のためのシステムおよび方法に関する。
【背景技術】
【０００２】
現在利用可能なモデルベース開発ツールは一部のモデル要素の到達不能性を示すことができる。一部のツールは、ユーザ定義によるテスト目標と要件のほか、標準的なカバレッジ目標を満足するテスト入力を生成することができる。このテスト入力を、測定データを用いて定義されるテストと組み合わせることにより、シミュレーションがモデルのカバレッジ、要件、および現実世界のシナリオに対してテストを行うようにすることもできる。
【０００３】
しかし、一部の重要なカバレッジ基準（例えば、マスキングＭＣ／ＤＣ（改良条件／判定カバレッジ）は現在利用可能なモデルベース開発ツールによってサポートされておらず、一部のカバレッジ基準を満たすために冗長なテストケースが生成される。さらに、従来の開発ツールのなかには、カバレッジ基準を満たすようにテストケースを拡張することができないものがある。
【０００４】
ソフトウェア認証規格（例えば、ＤＯ−１７８Ｃ）は、安全性が特に重要なソフトウェア（例えば、航空機ソフトウェア）を厳しいテストカバレッジ（ＭＣ／ＤＣを含む）で試験することを義務づけている。これらの規格は、判定に対して独立に影響を与えうる個々の条件について試験を行うように求めている場合がある。内部変数がある特定の値となるような入力列を特定する、モデルないしコードの手動検査は、とりわけ航空機ソフトウェアシステムが巨大で複雑である場合に、困難であると同時に時間がかかる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第８９２４９２３号明細書
【図面の簡単な説明】
【０００６】
【図１】諸実施形態に係る自動テストケース拡張システムを示す図である。
【図２】諸実施形態に係る、設計モデル用の自動テストケース拡張の処理フローチャートである。
【図３】諸実施形態に係る、モデルカバレッジギャップに基づくテストモデル作成の処理フローチャートである。
【図４】諸実施形態に係る、図１のシステムに対するユーザインタフェースを示す図である。
【図５】諸実施形態に係る、設計モデルとカバレッジの分析レポートを示す図である。
【発明を実施するための形態】
【０００７】
諸実施形態によると、システムおよび方法は、安全性が特に重要なソフトウェアの開発をモデルベース開発の環境においてサポートする。モデルテストカバレッジのギャップは、高位要件に基づくテストケースを設計モデルに対して実行してから、モデルベース開発環境のモデルカバレッジ分析ツールを用いることによって知ることができる。カバレッジギャップは、高位要件に基づくテストケースで利用されなかったテスト基準を示す。システムおよび方法を実施することで、カバレッジギャップをカバーするようにテストケースを自動的に拡張することができる。システムおよび方法の実施により、カバレッジギャップ情報が機械可読な数学的テスト目標に翻訳され、それにより、カバレッジギャップ情報が自動テストケース拡張のための設計モデルに紐付け可能になる。ここにおいて、設計モデルはモデルベース開発の言語で書かれている。
【０００８】
システムおよび方法はテストジェネレータを用いて実施する。テストジェネレータは、テスト目標が紐付けられた設計モデルに対してモデル検査、制約解決、および／または到達可能性分析（ｒｅａｃｈａｂｉｌｉｔｙ  ｒｅｓｏｌｕｔｉｏｎ）の技術を実施することができる。それにより、安全性が特に重要なソフトウェアの設計モデルに対するテストカバレッジギャップを自動的に特定して埋める。また、システムおよび方法の実施により、モデルの不備（例えば、デッドコード、想定されていない関数、起動されない関数、等）を特定することができる。システムおよび方法の実施により、カバレッジギャップをテスト目標に変換することができるカバレッジギャップ変換規則が実装できる。入力列がテスト目標を動作させられる場合、その入力列はカバレッジギャップを埋めることができる。テスト目標はテストジェネレータにおいて設計モデルとともに分析され、テストケースの生成が行われる。カバレッジギャップのパターンがいくつか特定され、それらの変換規則が定義される。従来のさまざまなモデルベース開発ツールにおいて開発された設計モデル用のモデルテストカバレッジギャップを、埋めることができる。
【０００９】
航空機ソフトウェア等、安全性が特に重要なソフトウェアは、厳しいテストカバレッジ（例えば、ＭＣ／ＤＣ（改良条件／判定カバレッジ））を用いて試験することが、ソフトウェア認証規格（例えば、ＤＯ−１７８Ｃ）によって義務づけられている。ＭＣ／ＤＣでは、個々の条件が判定に対して独立に影響を与えることが求められる。内部変数がある特定の値となるような入力列を特定する、モデルないしコードの手動検査は、とりわけ航空機ソフトウェアが巨大で、複雑さが増していく場合に、困難であると同時に時間がかかる。
【００１０】
カバレッジギャップ情報から機械可読な数学的テスト目標への、異なる基準の翻訳を可能にするため、１つ以上の変換規則が実装された異なるカバレッジ基準がサポートされる。その例として、ステートメントカバレッジ（命令網羅）、ディシジョンカバレッジ（判定網羅）、ＭＣ／ＤＣ、マスキングＭＣ／ＤＣ、ステートカバレッジ（状態網羅）、トランジションカバレッジ（状態遷移網羅）等が挙げられる。システムおよび方法の実施により、基準の認識、目的の設計ないしコードの配置（ｌｏｃａｔｅ）、テスト目標の翻訳と紐付け、設計アーキテクチャ全体にわたるテスト目標の伝達（ｐｒｏｐａｇａｔｅ）、テスト目標に基づくテストケースの生成、が可能になる。
【００１１】
図１に、諸実施形態に係る設計モデル用の自動テストケース拡張システム１００を示す。システム１００は、コンピュータ命令を実行してシステムおよびそのコンポーネントの動作を制御する制御プロセッサ１１０を備えている。制御プロセッサ１１０はコンピュータまたはサーバ内に置くことができ、通信リンク１２０を介してさまざまなコンポーネントと相互接続できる。通信リンク１２０は、内部バスまたは電子通信ネットワーク等とすることができる。
【００１２】
システム１００は、モデルカバレッジを満足するように拡張テストケースを生成することができる。この処理は、受信された、安全性が特に重要なソフトウェアの設計モデル１３０、ならびに受信されたモデルカバレッジギャップ１３５に基づいて行われる。設計モデルは、Ｓｉｍｕｌｉｎｋ／ＳｔａｔｅｆｌｏｗやＳＣＡＤＥ等、従来のモデルベース開発の言語で書くことができる。
【００１３】
ギャップ変換器１４０は、モデルカバレッジギャップをカバレッジギャップ変換規則１５８に基づいてテスト目標１５２に変換するように構成されている。カバレッジギャップ変換規則１５８は、データ格納装置１５０に格納することができる。テスト目標は、テストジェネレータ１６０のための目標を規定および／または設定する。次に、テストモデル１５６を生成するため、テスト目標が設計モデル内の対応する動作と紐付けられる。テストジェネレータ１６０はテストモデルを入力として適用し、それをもとに、テスト目標を達成する一群のテストケース１５４を作成する。
【００１４】
図２は、諸実施形態に係る設計モデル用の自動テストケース拡張のプロセス２００を示す。ステップ２１０では、モデルベース開発ツールのモデルカバレッジギャップ分析器１８０への呼び出しからモデルカバレッジギャップを得ることができる。ステップ２２０では、設計モデル１３０とモデルカバレッジギャップ１３５とに基づいてテストモデルが作成される。ステップ２３０ではテストモデルに対してテストジェネレータが実行され、モデルカバレッジギャップをカバーするように入力が処理される。ステップ２４０では、モデルカバレッジギャップの潜在的原因がテストジェネレータの実行結果に基づいて決定される。
【００１５】
図３は、諸実施形態に係る、モデルカバレッジギャップに基づくテストモデル作成（図２のステップ２２０）のプロセス３００を示す。テストモデルは、設計モデル１３０とモデルカバレッジギャップ１３５とに基づいて作成される。ステップ３０５において、カバレッジギャップ分析器１８０が設計モデルにおけるカバレッジギャップを特定する。ステップ３１０では、カバレッジギャップが分類され、その分類に基づいて機械可読な数学的テスト目標式に翻訳される。本実施態様によると、この変換は基準変換テーブルを用いて行うことができる。基準変換テーブルはカバレッジ基準の種類ごとに事前に作成される。表１に、諸実施形態に従ってカバレッジギャップからテスト目標式に変換する処理の一例を示す。
【００１６】
【表１】
2017138978.tif 000003
基準変換テーブルはカバレッジ基準パターンを分類し、基準パターンごとにテスト目標を定義する。カバレッジ基準の変換は、異なるカバレッジ基準をサポートできる。その例として、ステートメントカバレッジ（命令網羅）、ディシジョンカバレッジ（判定網羅）、ＭＣ／ＤＣ（改良条件／判定カバレッジ）、マスキングＭＣ／ＤＣ、ステートカバレッジ（状態網羅）、トランジションカバレッジ（状態遷移網羅）等が挙げられる。
【００１７】
次に、翻訳された数学的テスト目標式がステップ３１５において一群のテスト目標演算子に翻訳される。これは設計モデルに紐付けることができる。
【００１８】
テスト目標演算子が設計モデル内の目的の演算子に紐付けられる。ステップ３２０では、設計モデル内で特定されたカバレッジギャップに基づいて目的の演算子が配置される（ｌｏｃａｌｉｚｅｄ）。本実施態様によると、この配置を実現するため、カバレッジギャップ情報をパースすることによってカバレッジギャップに関する目的の演算子を得ることができる。カバレッジギャップ情報は、そのギャップの発生位置および満たされない基準が何であるかの情報を含むことができる。
【００１９】
さらに、テストモデル作成のために、テスト目標に対応する信号を目的の演算子に結びつけるよう、ステップ３２５においてテスト目標演算子が紐付けされる。ステップ３３０では、テスト目標が、あるテストノード演算子にまで伝達される。テストノード演算子はモデルの階層構造においてより上位にありうる。これにより、テスト目標がテストノード演算子の階層において見えるようにできる。テストジェネレータはテストモデルのテスト目標を認識し、テスト目標を動作させて対応するモデルカバレッジギャップをカバーする入力列を、テストノード演算子の階層において発見する。
【００２０】
システムおよびプロセスの実施により、カバレッジギャップの潜在的原因をテストジェネレータの結果に基づいて決定することができる。この決定は、何らかの設計情報とともに以下の条件に沿って行うことができる。
【００２１】
１）テスト目標が到達可能（すなわち、そのテスト目標を動作させる入力列が発見可能）であると判定され、かつ対応するカバレッジギャップが高位要件または派生要件に遡及しない場合、その対応するカバレッジギャップの原因は不十分な高位要件または派生要件にある。
【００２２】
２）テスト目標が到達可能であり、かつ高位要件に遡及する場合、高位要件に基づくテストが不十分であるために、対応するカバレッジが未達成である。
【００２３】
３）テスト目標が到達可能であり、かつソフトウェア設計者によって指定された派生要件に遡及する場合、対応するカバレッジはその派生要件ゆえに未達成である。
【００２４】
４）テスト目標が到達不能である（すなわち、そのテスト目標を動作させる可能な入力列を発見できないことが数学的に証明された）場合、設計モデルパラメータを設計モデルへの入力として含めることによってテストジェネレータを再度実行することができる。その場合、テストジェネレータは更新された設計モデルパラメータを生成することができる。更新された設計モデルパラメータには、入力された設計モデルパラメータに関連するカバレッジギャップを解決するための変更が含まれる。
【００２５】
４ａ）テスト目標が依然として到達不能であると判定される場合、カバレッジギャップは想定されていない関数またはデッドコードである。
【００２６】
４ｂ）カバレッジギャップが到達可能であると判定される場合、カバレッジギャップは起動されない関数である。カバレッジギャップを到達可能にする設計モデルパラメータ値を生成することができる。
【００２７】
図４は、諸実施形態に係るシステム１００のユーザインタフェース４００を示す。ユーザインタフェースは、複数のフレームを備えたインタラクティブなグラフィカルインタフェースとすることができる。「ＭＴＣレポートを開く」ボタンをクリックすると、ユーザはモデルカバレッジギャップを記載したレポートを選択することができる。未実施項目フレーム４１０には、選択したレポートにおける設計モデルカバレッジギャップの一覧が表示される。ユーザはいくつかのカバレッジギャップを選択してテストケースを生成することができる。テストケースフレーム４２０には、フレーム４１０で選択したカバレッジギャップを対象として、システム１００の結果である、生成されたテストケースが表示される。対応するカバレッジギャップが到達可能な場合は、生成されたテストケースのディレクトリが表示される。対応するカバレッジギャップが到達不能の場合は「到達不能」と表示される。状態フレーム４３０には、システム１００が設計モデルに対する自動テストケース拡張処理を実行したときの、システム１００によるステータスレポートが表示される。
【００２８】
システムおよび方法を実施することで、モデルベース開発ツールによるカバレッジギャップ分析器レポートが受信され、レポートに記載される特定されたモデルテストカバレッジのギャップが機械可読なテスト目標式に変換される。次に、このテスト目標式はテスト目標演算子に自動的に変換される。テスト目標演算子は設計モデル自体の適切な位置に紐付けされ、テストモデルが作成される。このテストモデルに対してテストジェネレータを使用することで、カバレッジギャップをカバーするとともに設計の不備を明らかにするようなテストケースが生成される。
【００２９】
図５は、諸実施形態に係る、設計モデルとカバレッジの分析レポート５００を示す。分析レポートには設計モデルの論理流れ図が含まれる。論理流れ図には自動テストケース拡張システム１００による注釈が示され、提示された論理フローに対してｔｒｕｅまたはｆａｌｓｅの値がテストされなかったテストカバレッジギャップ位置５１０、５２０、５３０が示されている。テストケース拡張システムの動作結果として、論理フローのいくつかの条件分岐がテストされなかったことを示す注釈も、分析レポートには示されている。例えば「ｅｌｓｅ」ブロック５４０はテストされなかったと表示されている。諸実施形態によると、カバレッジ分析レポートは表２に示すような表形式とすることができる。
【００３０】
【表２】
2017138978.tif 000004
諸実施形態によれば、マスキングＭＣ／ＤＣでは、基準が、ある演算子から始まり一連の演算子を経由してある演算子で終わるパスであるときに、規則に従うことができる。例えば、ローカル変数は、あるパスの終わりから別のパスの始まりまで複数のパスをつなぐことができる。また、テキスト表現を用いることにより、出力変数はあるパスの終わりから別のパスの始まりまで複数のパスをつなぐことができる。諸実施形態によれば、テストジェネレータ１６０はトラップ条件（テスト目標の否定）を受信して、トラップ条件に対する反例を探すことができる。反例が見つかる場合、その反例はテスト目標を満足するテストケースである。反例が見つからない場合、そのテスト目標は到達不能であり、対応するカバレッジギャップをカバーできるテストケースがないことを意味する。そのような場合はカバレッジ基準をテスト目標式に変換することができる。テスト目標式はモデルに紐付けされるトラップ条件ブロックに翻訳される。
【００３１】
いくつかの実施形態によると、不揮発性メモリ、コンピュータ可読媒体（例えば、レジスタメモリ、プロセッサキャッシュ、ＲＡＭ、ＲＯＭ、ハードドライブ、フラッシュメモリ、ＣＤ−ＲＯＭ、磁気媒体等）、および／または外部メモリ１５５に格納されるコンピュータプログラムアプリケーションは、実行されたときに、本明細書において論じた方法を上述のように実行するようにコントローラまたはプロセッサに命令する、かつ／またはコントローラまたはプロセッサに実行させる、コードもしくは実行可能命令を含みうる。上記方法の例として、安全性が特に重要なソフトウェアをモデルベース開発の環境で開発するための方法が挙げられる。
【００３２】
コンピュータ可読媒体は、あらゆる形態および種類のメモリならびにあらゆるコンピュータ可読媒体を含む、非一時的なコンピュータ可読媒体でありうる。ただし、一時的な伝播信号を除く。ひとつの実施態様において、上記の不揮発性メモリまたはコンピュータ可読媒体は外部メモリでありうる。
【００３３】
以上、具体的なハードウェアおよび方法について説明してきたが、本発明の諸実施形態による他の構成はいくつでも提供しうる。したがって、これまで本発明の根本的な新規の特徴について図示、説明、および指摘してきたが、本発明の主旨および範囲を逸脱することなく、これまで説明してきた実施形態の形態や詳細、ならびにその動作に対して当業者はさまざまな省略、置換、および変更を行いうることが理解されるだろう。ある実施形態の要素を別の実施形態のものに置き換えることもすべて想定および予想の範囲内である。本発明は、添付の特許請求の範囲ならびにその記載の均等物のみに関連して規定される。
【符号の説明】
【００３４】
１００  自動テストケース拡張システム
１１０  制御プロセッサ
１２０  通信リンク
１３０  設計モデル
１３５  モデルカバレッジギャップ
１４０  ギャップ変換器
１５０  データ格納装置
１５２  テスト目標
１５４  テストケース
１５５  外部メモリ
１５６  テストモデル
１５８  カバレッジギャップ変換規則
１６０  テストジェネレータ
１８０  カバレッジギャップ分析器
２００  プロセス
２１０  ステップ
２２０  ステップ
２３０  ステップ
２４０  ステップ
３００  プロセス
３０５  ステップ
３１０  ステップ
３１５  ステップ
３２０  ステップ
３２５  ステップ
３３０  ステップ
４００  ユーザインタフェース
４１０  未実施項目フレーム
４２０  テストケースフレーム
４３０  状態フレーム
５００  分析レポート
５１０  テストカバレッジギャップ位置
５２０  テストカバレッジギャップ位置
５３０  テストカバレッジギャップ位置
５４０  Ｅｌｓｅブロック
【図１】
2017138978.tif 000005
【図２】
2017138978.tif 000006
【図３】
2017138978.tif 000007
【図４】
2017138978.tif 000008
【図５】
2017138978.tif 000009
【外国語明細書】
2017138978000001.pdf