JP2001518662A - 自動化したコンピュータ・ソフトウェアの妥当性検査および検証 - Google Patents
自動化したコンピュータ・ソフトウェアの妥当性検査および検証Info
- Publication number
- JP2001518662A JP2001518662A JP2000514197A JP2000514197A JP2001518662A JP 2001518662 A JP2001518662 A JP 2001518662A JP 2000514197 A JP2000514197 A JP 2000514197A JP 2000514197 A JP2000514197 A JP 2000514197A JP 2001518662 A JP2001518662 A JP 2001518662A
- Authority
- JP
- Japan
- Prior art keywords
- address
- code
- map
- branch
- software
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
(57)【要約】
コンピュータ・ソフトウェアの妥当性検査および検証を自動化する方法および装置は、ソフトウェアの試験実行中に、コードの全てのラインが実行されたこと、およびソフトウェア中の全ての分岐が少なくとも一度は発生した、または一度も発生していないことを確認する。試験されるコンピュータ・ソフトウェアはコンパイルされ、リンク・マップが生成される。コードをコンパイルした後で、これを試験フィクスチャ中で実行し、全ての設計機能を試験する。この試験実行中に、コードのどのラインが実行されたか、また任意の分岐がいつ発生したかを記録する監視プロセスを実行する。どの命令分岐が発生し、どの命令分岐が発生しなかったかを示す2つのマップを生成する。次いで、最初に生成されたリンク・マップと、生成された2つの分岐マップとを比較して、コードのどのラインが実行されたかを決定し、各分岐が少なくとも一度は発生したかどうか、また分岐が発生しなかったかどうかを判定する。
Description
【0001】 (発明の分野) 本発明は、コンピュータ・ソフトウェアの妥当性検査および検証の自動化に関
する。
する。
【0002】 (発明の背景) 従来は、航空機の操縦翼面は、操縦士と制御設備の間の直接の機械的接続を介
して制御されていた。この制御は、ケーブルおよびプーリによって、または様々
な油圧系統を介してもたらされる。現代の航空機は、ますますコンピュータ援用
システムを介して操縦されるようになっている。フライバイワイヤ式システムで
は、フット・ペダルやヨークなどの制御器具を操縦士が動かすと、この動きが電
気信号に変換され、その後この信号が、制御設備を動かす電気的アクチュエータ
に伝送される。運動を電気信号に変換するこれらのブラック・ボックスは、航空
機の安全にとって重要なソフトウェアを有する。
して制御されていた。この制御は、ケーブルおよびプーリによって、または様々
な油圧系統を介してもたらされる。現代の航空機は、ますますコンピュータ援用
システムを介して操縦されるようになっている。フライバイワイヤ式システムで
は、フット・ペダルやヨークなどの制御器具を操縦士が動かすと、この動きが電
気信号に変換され、その後この信号が、制御設備を動かす電気的アクチュエータ
に伝送される。運動を電気信号に変換するこれらのブラック・ボックスは、航空
機の安全にとって重要なソフトウェアを有する。
【0003】 こうした新しいコンピュータ・システムが航空機上で適切に動作することを保
証するために、連邦航空局(FAA)は、重要なシステム中で使用される全ての
ソフトウェアをFAA公認とすることを要求している。FAAの認証を得るため
に、ソフトウェアは、A、B、C、D、またはEの5つのレベルのうちの1つに
従って開発され、試験される。レベルDおよびEは、非常にわずかな分析しか必
要とせず、準拠していることを示すためにそれほど多くの分析を必要としない。
レベルCの認証はこれより若干難しくなる。この開発レベルでは、ソフトウェア
から要件および試験手続きをたどることができなければならず、試験結果はシス
テム要件と相関していなければならない。このレベルは、主にソフトウェアの開
発方法に関連するものである。
証するために、連邦航空局(FAA)は、重要なシステム中で使用される全ての
ソフトウェアをFAA公認とすることを要求している。FAAの認証を得るため
に、ソフトウェアは、A、B、C、D、またはEの5つのレベルのうちの1つに
従って開発され、試験される。レベルDおよびEは、非常にわずかな分析しか必
要とせず、準拠していることを示すためにそれほど多くの分析を必要としない。
レベルCの認証はこれより若干難しくなる。この開発レベルでは、ソフトウェア
から要件および試験手続きをたどることができなければならず、試験結果はシス
テム要件と相関していなければならない。このレベルは、主にソフトウェアの開
発方法に関連するものである。
【0004】 レベルbeの認証では、システム中にデッド・コード(試験プロセス中に到達
不可能または実行不可能なコード)が存在しないことを示すことができるように
、ソフトウェアと実装のデモンストレーションが行われなけれならない。デッド
・コードの検査はソース・コードについて実行され、試験結果は、実行可能なコ
ードの各ソース・ラインに試験中に到達したことを示す必要がある。
不可能または実行不可能なコード)が存在しないことを示すことができるように
、ソフトウェアと実装のデモンストレーションが行われなけれならない。デッド
・コードの検査はソース・コードについて実行され、試験結果は、実行可能なコ
ードの各ソース・ラインに試験中に到達したことを示す必要がある。
【0005】 レベルAの認証はレベルBをベースとし、埋込型コンピュータ・システム中で
実行されるソフトウェアの経路範囲試験(path coverage testing)に追加要件 を課すものである。レベルBの試験では、あらゆるソース・ラインが実行され、
あらゆる論理経路が採用されたことを示すだけでよいが、レベルAの試験では、
オブジェクト・コード中のあらゆる機械命令が実行されることを証明しなければ
ならない。さらに、そのソフトウェアを介したあらゆる論理経路決定が試験中に
網羅的に行われたことも示さなければならない。
実行されるソフトウェアの経路範囲試験(path coverage testing)に追加要件 を課すものである。レベルBの試験では、あらゆるソース・ラインが実行され、
あらゆる論理経路が採用されたことを示すだけでよいが、レベルAの試験では、
オブジェクト・コード中のあらゆる機械命令が実行されることを証明しなければ
ならない。さらに、そのソフトウェアを介したあらゆる論理経路決定が試験中に
網羅的に行われたことも示さなければならない。
【0006】 レベルBの試験とレベルAの試験の差は、以下の例で最も明らかである。 001−IF(A.and.B).OR)(C.and.D)) 002−THEN set E to X 003−set E to Y
【0007】 レベルBの試験では、2つの結果、すなわち1)ライン001、002、およ
び003が実行されること、ならびに2)ライン001および003は実行され
たが、ライン002は実行されなかったことを示す必要がある。レベルAの試験
では、ライン001の条件を真または偽にする可能な組合せそれぞれを示す必要
がある。レベルBの試験は、ソース・コード・レベルで実行することができる。
レベルAは、機械コード・レベルで実行しなければならない。
び003が実行されること、ならびに2)ライン001および003は実行され
たが、ライン002は実行されなかったことを示す必要がある。レベルAの試験
では、ライン001の条件を真または偽にする可能な組合せそれぞれを示す必要
がある。レベルBの試験は、ソース・コード・レベルで実行することができる。
レベルAは、機械コード・レベルで実行しなければならない。
【0008】 実行可能なコードの各ソース・ラインは、コンパイラおよびリンカによって1
つまたは複数の機械命令に翻訳されるので、各機械命令の条件付き分岐が少なく
とも一度分岐すること、および一度も分岐しないことを検証することができる実
行時ツールが、レベルAの認証試験を自動化する上で重要な役割を果たすことに
なる。
つまたは複数の機械命令に翻訳されるので、各機械命令の条件付き分岐が少なく
とも一度分岐すること、および一度も分岐しないことを検証することができる実
行時ツールが、レベルAの認証試験を自動化する上で重要な役割を果たすことに
なる。
【0009】 現在は、レベルAの試験は、実行されたコードの各ラインを示すコンピュータ
・プログラムのテスト・ランの結果と、ソース・コードがコンパイルされた時点
で生成されたリンク・マップとを人間が比較することによって、航空機に重要な
コンピュータ・ソフトウェアに関して実行している。コードを分析する人間は、
最初に、コードのあらゆるラインが実行されたかどうか、また各分岐がある一点
で発生したかどうか、次いでそれが発生しなかったかどうかを判定しなければな
らない。個人またはグループがコンピュータ・コードを分析するのにかかる時間
の長さから、特に航空機システムがより大規模かつ高度になるときには、このプ
ロセスを自動化することには大きな利点がある。
・プログラムのテスト・ランの結果と、ソース・コードがコンパイルされた時点
で生成されたリンク・マップとを人間が比較することによって、航空機に重要な
コンピュータ・ソフトウェアに関して実行している。コードを分析する人間は、
最初に、コードのあらゆるラインが実行されたかどうか、また各分岐がある一点
で発生したかどうか、次いでそれが発生しなかったかどうかを判定しなければな
らない。個人またはグループがコンピュータ・コードを分析するのにかかる時間
の長さから、特に航空機システムがより大規模かつ高度になるときには、このプ
ロセスを自動化することには大きな利点がある。
【0010】 (発明の概要) 本発明は、コンピュータ・ソフトウェアを自動的に妥当性検査および検証する
方法および装置を開示するものである。試験するソフトウェアを、最初にソフト
ウェア・ライブラリから取り出し、ソース・コードからオブジェクト・コードに
コンパイルし、ソフトウェア・プログラム中のコードの全てのラインをリストす
るリンク・マップを生成する。次いで、オブジェクト・コードを、コンピュータ
・エレクトロニクス中に取り込む。試験フィクスチャ(test fixture)を用いて
、コンピュータ・エレクトロニクスを、それらが実行するように設計された全て
の機能について試験する。コンピュータ・エレクトロニクスの試験中には、オブ
ジェクト・コードの実行を監視する。この監視の主な目的は、実行されたオブジ
ェクト・コードのラインの履歴を与える2つの別個の命令アドレス・マップを作
成することである。
方法および装置を開示するものである。試験するソフトウェアを、最初にソフト
ウェア・ライブラリから取り出し、ソース・コードからオブジェクト・コードに
コンパイルし、ソフトウェア・プログラム中のコードの全てのラインをリストす
るリンク・マップを生成する。次いで、オブジェクト・コードを、コンピュータ
・エレクトロニクス中に取り込む。試験フィクスチャ(test fixture)を用いて
、コンピュータ・エレクトロニクスを、それらが実行するように設計された全て
の機能について試験する。コンピュータ・エレクトロニクスの試験中には、オブ
ジェクト・コードの実行を監視する。この監視の主な目的は、実行されたオブジ
ェクト・コードのラインの履歴を与える2つの別個の命令アドレス・マップを作
成することである。
【0011】 第1のマップは、ソフトウェア・コードが分岐せず、連続したアドレスでコー
ドのラインを実行した場合の、ソフトウェア・プログラムについての全ての命令
アドレスを含む。第2のアドレス・マップは、分岐が発生し、プログラム中のそ
の他の場所にあるコードのラインがその後に実行されるコードのラインについて
の全ての命令アドレスを含む。
ドのラインを実行した場合の、ソフトウェア・プログラムについての全ての命令
アドレスを含む。第2のアドレス・マップは、分岐が発生し、プログラム中のそ
の他の場所にあるコードのラインがその後に実行されるコードのラインについて
の全ての命令アドレスを含む。
【0012】 第1および第2のマップが生成された後で、これらを最初に作成されたリンク
・マップと比較し、プログラム中のコードのあらゆるラインが実行されたかどう
かをまず最初に判定する。クラスAの試験では、次いで、プログラム中のあらゆ
る分岐が少なくとも一度発生したかどうかについて判定を行い、次いで一度も発
生しなかったかどうかについて判定を行う。これらの結果は、その後システムか
ら出力されるリポートに与えられる。
・マップと比較し、プログラム中のコードのあらゆるラインが実行されたかどう
かをまず最初に判定する。クラスAの試験では、次いで、プログラム中のあらゆ
る分岐が少なくとも一度発生したかどうかについて判定を行い、次いで一度も発
生しなかったかどうかについて判定を行う。これらの結果は、その後システムか
ら出力されるリポートに与えられる。
【0013】 (好ましい実施形態の説明) 図1に示すのは、ソフトウェア装置の妥当性検査および検証を自動化するため
のシステム構成を示すブロック図である。試験するソフトウェアは、最初はソー
ス・コードおよびソフトウェア・ライブラリ12に格納されている。このソース
・コードは、コンパイル・リンク装置14によってソース・コードおよびソフト
ウェア・ライブラリ12から取り出される。この装置は、ソース・コードをコン
パイルして、アビオニクス・プロセッサ16にオブジェクト・コードを出力し、
かつソフトウェア中のコードの全てのライン、およびソフトウェアの一部となる
全てのループについてのリンクのリストを提供するリンク・マップも生成する。
のシステム構成を示すブロック図である。試験するソフトウェアは、最初はソー
ス・コードおよびソフトウェア・ライブラリ12に格納されている。このソース
・コードは、コンパイル・リンク装置14によってソース・コードおよびソフト
ウェア・ライブラリ12から取り出される。この装置は、ソース・コードをコン
パイルして、アビオニクス・プロセッサ16にオブジェクト・コードを出力し、
かつソフトウェア中のコードの全てのライン、およびソフトウェアの一部となる
全てのループについてのリンクのリストを提供するリンク・マップも生成する。
【0014】 アビオニクス・プロセッサ16は、航空機中に設置された、操縦桿および器具
上の操縦士の動きの変換を実現するブラック・ボックスであり、これらの動きを
、制御設備を動かす電子アクチュエータにその後与えられる電気信号に変換する
。当業者なら、この実施形態のアビオニクス・プロセッサを使用することは単な
る好ましい実施形態であり、本発明のシステムではコンピュータ・ソフトウェア
を利用した任意タイプのエレクトロニクスを試験することができることを理解す
るであろう。
上の操縦士の動きの変換を実現するブラック・ボックスであり、これらの動きを
、制御設備を動かす電子アクチュエータにその後与えられる電気信号に変換する
。当業者なら、この実施形態のアビオニクス・プロセッサを使用することは単な
る好ましい実施形態であり、本発明のシステムではコンピュータ・ソフトウェア
を利用した任意タイプのエレクトロニクスを試験することができることを理解す
るであろう。
【0015】 アビオニクス・プロセッサ16にオブジェクト・コードが取り込まれた後で、
試験サイト環境18は、このプロセッサをその全ての設計機能を介して動作させ
る。この試験の目的は、プロセッサが、想定されている全ての機能を実行できる
かどうかを判定することである。アビオニクス・プロセッサ16の試験中に、監
視装置20は、アビオニクス・プロセッサ中でのコードの各ラインの実行を追跡
し、2つのタイプの別個のアドレス・マップを生成する。一方のマップは分岐発
生アドレス・マップであり、もう一方のマップは分岐非発生アドレス・マップで
ある。これらのマップは、連続した命令を読み取るときに、オブジェクト・コー
ドのラインがプログラム中の他の場所で実行されたか、またはオブジェクト・コ
ードのラインが連続した順序で実行されたかのいずれかで実行された命令をリス
トするものである。監視装置の動作の詳細については、以下でより詳しく述べる
。
試験サイト環境18は、このプロセッサをその全ての設計機能を介して動作させ
る。この試験の目的は、プロセッサが、想定されている全ての機能を実行できる
かどうかを判定することである。アビオニクス・プロセッサ16の試験中に、監
視装置20は、アビオニクス・プロセッサ中でのコードの各ラインの実行を追跡
し、2つのタイプの別個のアドレス・マップを生成する。一方のマップは分岐発
生アドレス・マップであり、もう一方のマップは分岐非発生アドレス・マップで
ある。これらのマップは、連続した命令を読み取るときに、オブジェクト・コー
ドのラインがプログラム中の他の場所で実行されたか、またはオブジェクト・コ
ードのラインが連続した順序で実行されたかのいずれかで実行された命令をリス
トするものである。監視装置の動作の詳細については、以下でより詳しく述べる
。
【0016】 次いで、分岐発生アドレス・マップおよび分岐非発生アドレス・マップが両方
とも分析装置22に伝送される。分析装置22も、コンパイル・リンク装置14
によって最初に生成されたリンク・マップを取り出し、また、分岐発生マップお
よび分岐非発生マップの両方を用いた詳細な比較プロセスを通じて、アビオニク
ス・プロセッサ中でオブジェクト・コードがどのように実行されたかについての
詳細な分析を提供する。
とも分析装置22に伝送される。分析装置22も、コンパイル・リンク装置14
によって最初に生成されたリンク・マップを取り出し、また、分岐発生マップお
よび分岐非発生マップの両方を用いた詳細な比較プロセスを通じて、アビオニク
ス・プロセッサ中でオブジェクト・コードがどのように実行されたかについての
詳細な分析を提供する。
【0017】 本発明のシステムの目的は、連邦航空局(FAA)の規定の下で必要とされる
レベルAおよびレベルBのソフトウェアの試験を両方とも実施することである。
レベルBの認証では、システム中にデッド・コード(試験プロセス中に到達不可
能または実行不可能なコード)が存在しないことを示すことができるように、ソ
フトウェア実装のデモンストレーションを実施することが必要である。このデッ
ド・コードの検査はソース・コードについて実行され、試験結果は、実行可能な
コードの各ソース・ラインに試験中に到達したことを示す必要がある。
レベルAおよびレベルBのソフトウェアの試験を両方とも実施することである。
レベルBの認証では、システム中にデッド・コード(試験プロセス中に到達不可
能または実行不可能なコード)が存在しないことを示すことができるように、ソ
フトウェア実装のデモンストレーションを実施することが必要である。このデッ
ド・コードの検査はソース・コードについて実行され、試験結果は、実行可能な
コードの各ソース・ラインに試験中に到達したことを示す必要がある。
【0018】 レベルAの認証はレベルBをベースとし、埋込型システムで実行されるソフト
ウェアの経路範囲試験に追加要件を課すものである。レベルBの試験では、あら
ゆるソース・ラインが実行され、あらゆる論理経路が採用されたことを示すだけ
でよいが、レベルAの試験では、オブジェクト・コード中の各機械命令が実行さ
れることを証明しなければならない。さらに、ソフトウェアを介したあらゆる論
理経路決定が試験中に網羅的に行われたことも示さなければならない。これは、
次の命令に進むか、またはプログラム中のその他の場所に進むかについての決定
を必要とする命令を実行するときに、両選択肢がともに少なくとも一度は選択さ
れたことを示さなければならないことを意味する。図2は、監視装置20の動作
を説明する流れ図である。上述のように、監視装置は、分析装置22に与えられ
る分岐発生アドレス・マップおよび分岐非発生アドレス・マップを提供する。動
作中に、アビオニクス・プロセッサ16中でオブジェクト・コードが実行されて
いる間に、監視装置20は、ステップ40で、実行されているコードの各ライン
のアドレスを受信する。ステップ42でアドレスが受信された後で、この現在の
アドレスはメモリに記憶される。現在のアドレスは、アビオニクス・プロセッサ
16の動作が割り込まれた場合に使用される割込みアドレス・ハンドラにも記憶
され、監視装置は、その後アビオニクス・プロセッサが正常な動作を開始した後
で、同じ箇所から受信することができる。
ウェアの経路範囲試験に追加要件を課すものである。レベルBの試験では、あら
ゆるソース・ラインが実行され、あらゆる論理経路が採用されたことを示すだけ
でよいが、レベルAの試験では、オブジェクト・コード中の各機械命令が実行さ
れることを証明しなければならない。さらに、ソフトウェアを介したあらゆる論
理経路決定が試験中に網羅的に行われたことも示さなければならない。これは、
次の命令に進むか、またはプログラム中のその他の場所に進むかについての決定
を必要とする命令を実行するときに、両選択肢がともに少なくとも一度は選択さ
れたことを示さなければならないことを意味する。図2は、監視装置20の動作
を説明する流れ図である。上述のように、監視装置は、分析装置22に与えられ
る分岐発生アドレス・マップおよび分岐非発生アドレス・マップを提供する。動
作中に、アビオニクス・プロセッサ16中でオブジェクト・コードが実行されて
いる間に、監視装置20は、ステップ40で、実行されているコードの各ライン
のアドレスを受信する。ステップ42でアドレスが受信された後で、この現在の
アドレスはメモリに記憶される。現在のアドレスは、アビオニクス・プロセッサ
16の動作が割り込まれた場合に使用される割込みアドレス・ハンドラにも記憶
され、監視装置は、その後アビオニクス・プロセッサが正常な動作を開始した後
で、同じ箇所から受信することができる。
【0019】 次いでステップ146で、割込み信号が受信されているかどうかについての問
合せを行う。受信されていない場合には、ステップ48で、実行された以前の命
令のアドレスをメモリから取り出す。次いでステップ50で、アドレスの比較を
行い、現在のアドレスが以前のアドレスより2を超えて大きいかどうかについて
質問する。答えが2より大きい場合には、アドレス命令が連続して実行されてい
ないこと、以前のアドレスが決定命令であったこと、および以前の命令アドレス
とは遠隔の命令が実行されたことを示す。
合せを行う。受信されていない場合には、ステップ48で、実行された以前の命
令のアドレスをメモリから取り出す。次いでステップ50で、アドレスの比較を
行い、現在のアドレスが以前のアドレスより2を超えて大きいかどうかについて
質問する。答えが2より大きい場合には、アドレス命令が連続して実行されてい
ないこと、以前のアドレスが決定命令であったこと、および以前の命令アドレス
とは遠隔の命令が実行されたことを示す。
【0020】 現在のアドレスが以前のアドレスより2を超えて大きい場合には、ステップ5
6で、以前のアドレスについて分岐発生ビットがセットされ、次いで以前の命令
アドレスが分岐発生マップ中に置かれる。現在のアドレスが以前のアドレスより
2を超えて大きくない場合には、分岐が発生せず、命令が連続的に実行されたこ
とは明らかである。ステップ52で、以前のアドレスについて分岐非発生のビッ
トがセットされる。この時点で、命令アドレスは分岐非発生マップ中に置かれる
。ステップ60で、完成した分岐発生マップおよび分岐非発生マップが、分析装
置22に伝送される。
6で、以前のアドレスについて分岐発生ビットがセットされ、次いで以前の命令
アドレスが分岐発生マップ中に置かれる。現在のアドレスが以前のアドレスより
2を超えて大きくない場合には、分岐が発生せず、命令が連続的に実行されたこ
とは明らかである。ステップ52で、以前のアドレスについて分岐非発生のビッ
トがセットされる。この時点で、命令アドレスは分岐非発生マップ中に置かれる
。ステップ60で、完成した分岐発生マップおよび分岐非発生マップが、分析装
置22に伝送される。
【0021】 図3は、分析装置22の動作を説明する流れ図である。
【図1】 コンピュータ・ソフトウェア・システムの自動化した妥当性検査および検証を
示すブロック図である。
示すブロック図である。
【図2】 ソフトウェアの実行の監視を示す流れ図である。
【図3】 分岐発生アドレス・マップおよび分岐非発生アドレス・マップの、リンク・マ
ップとの比較を示す流れ図である。
ップとの比較を示す流れ図である。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成12年3月29日(2000.3.29)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正内容】
【発明の名称】 自動化したコンピュータ・ソフトウェアの妥当性検査および検
証
証
【特許請求の範囲】
【発明の詳細な説明】
【0001】 (発明の分野) 本発明は、コンピュータ・ソフトウェアの妥当性検査および検証の自動化に関
する。
する。
【0002】 (発明の背景) 従来は、航空機の操縦翼面は、操縦士と制御設備の間の直接の機械的接続を介
して制御されていた。この制御は、ケーブルおよびプーリによって、または様々
な油圧系統を介してもたらされる。現代の航空機は、ますますコンピュータ援用
システムを介して操縦されるようになっている。フライバイワイヤ式システムで
は、フット・ペダルやヨークなどの制御器具を操縦士が動かすと、この動きが電
気信号に変換され、その後この信号が、制御設備を動かす電気的アクチュエータ
に伝送される。運動を電気信号に変換するこれらのブラック・ボックスは、航空
機の安全にとって重要なソフトウェアを有する。
して制御されていた。この制御は、ケーブルおよびプーリによって、または様々
な油圧系統を介してもたらされる。現代の航空機は、ますますコンピュータ援用
システムを介して操縦されるようになっている。フライバイワイヤ式システムで
は、フット・ペダルやヨークなどの制御器具を操縦士が動かすと、この動きが電
気信号に変換され、その後この信号が、制御設備を動かす電気的アクチュエータ
に伝送される。運動を電気信号に変換するこれらのブラック・ボックスは、航空
機の安全にとって重要なソフトウェアを有する。
【0003】 こうした新しいコンピュータ・システムが航空機上で適切に動作することを保
証するために、連邦航空局(FAA)は、重要なシステム中で使用される全ての
ソフトウェアをFAA公認とすることを要求している。FAAの認証を得るため
に、ソフトウェアは、A、B、C、D、またはEの5つのレベルのうちの1つに
従って開発され、試験される。レベルDおよびEは、非常にわずかな分析しか必
要とせず、準拠していることを示すためにそれほど多くの分析を必要としない。
レベルCの認証はこれより若干難しくなる。この開発レベルでは、ソフトウェア
から要件および試験手続きをたどることができなければならず、試験結果はシス
テム要件と相関していなければならない。このレベルは、主にソフトウェアの開
発方法に関連するものである。
証するために、連邦航空局(FAA)は、重要なシステム中で使用される全ての
ソフトウェアをFAA公認とすることを要求している。FAAの認証を得るため
に、ソフトウェアは、A、B、C、D、またはEの5つのレベルのうちの1つに
従って開発され、試験される。レベルDおよびEは、非常にわずかな分析しか必
要とせず、準拠していることを示すためにそれほど多くの分析を必要としない。
レベルCの認証はこれより若干難しくなる。この開発レベルでは、ソフトウェア
から要件および試験手続きをたどることができなければならず、試験結果はシス
テム要件と相関していなければならない。このレベルは、主にソフトウェアの開
発方法に関連するものである。
【0004】 レベルBの認証では、システム中にデッド・コード(試験プロセス中に到達不
可能または実行不可能なコード)が存在しないことを示すことができるように、
ソフトウェアと実装のデモンストレーションが行われなければならない。デッド
・コードの検査はソース・コードについて実行され、試験結果は、実行可能なコ
ードの各ソース・ラインに試験中に到達したことを示す必要がある。
可能または実行不可能なコード)が存在しないことを示すことができるように、
ソフトウェアと実装のデモンストレーションが行われなければならない。デッド
・コードの検査はソース・コードについて実行され、試験結果は、実行可能なコ
ードの各ソース・ラインに試験中に到達したことを示す必要がある。
【0005】 レベルAの認証はレベルBをベースとし、埋込型コンピュータ・システム中で
実行されるソフトウェアの経路範囲試験(path coverage testing)に追加要件 を課すものである。レベルBの試験では、あらゆるソース・ラインが実行され、
あらゆる論理経路が採用されたことを示すだけでよいが、レベルAの試験では、
オブジェクト・コード中のあらゆる機械命令が実行されることを証明しなければ
ならない。さらに、そのソフトウェアを介したあらゆる論理経路決定が試験中に
網羅的に行われたことも示さなければならない。
実行されるソフトウェアの経路範囲試験(path coverage testing)に追加要件 を課すものである。レベルBの試験では、あらゆるソース・ラインが実行され、
あらゆる論理経路が採用されたことを示すだけでよいが、レベルAの試験では、
オブジェクト・コード中のあらゆる機械命令が実行されることを証明しなければ
ならない。さらに、そのソフトウェアを介したあらゆる論理経路決定が試験中に
網羅的に行われたことも示さなければならない。
【0006】 レベルBの試験とレベルAの試験の差は、以下の例で最も明らかである。 001−IF(A.and.B).OR)(C.and.D)) 002−THEN set E to X 003−set E to Y
【0007】 レベルBの試験では、2つの結果、すなわち1)ライン001、002、およ
び003が実行されること、ならびに2)ライン001および003は実行され
たが、ライン002は実行されなかったことを示す必要がある。レベルAの試験
では、ライン001の条件を真または偽にする可能な組合せそれぞれを示す必要
がある。レベルBの試験は、ソース・コード・レベルで実行することができる。
レベルAは、機械コード・レベルで実行しなければならない。
び003が実行されること、ならびに2)ライン001および003は実行され
たが、ライン002は実行されなかったことを示す必要がある。レベルAの試験
では、ライン001の条件を真または偽にする可能な組合せそれぞれを示す必要
がある。レベルBの試験は、ソース・コード・レベルで実行することができる。
レベルAは、機械コード・レベルで実行しなければならない。
【0008】 実行可能なコードの各ソース・ラインは、コンパイラおよびリンカによって1
つまたは複数の機械命令に翻訳されるので、各機械命令の条件付き分岐が少なく
とも一度分岐すること、および一度も分岐しないことを検証することができる実
行時ツールが、レベルAの認証試験を自動化する上で重要な役割を果たすことに
なる。
つまたは複数の機械命令に翻訳されるので、各機械命令の条件付き分岐が少なく
とも一度分岐すること、および一度も分岐しないことを検証することができる実
行時ツールが、レベルAの認証試験を自動化する上で重要な役割を果たすことに
なる。
【0009】 現在は、レベルAの試験は、実行されたコードの各ラインを示すコンピュータ
・プログラムのテスト・ランの結果と、ソース・コードがコンパイルされた時点
で生成されたリンク・マップとを人間が比較することによって、航空機に重要な
コンピュータ・ソフトウェアに関して実行している。コードを分析する人間は、
最初に、コードのあらゆるラインが実行されたかどうか、また各分岐がある一点
で発生したかどうか、次いでそれが発生しなかったかどうかを判定しなければな
らない。個人またはグループがコンピュータ・コードを分析するのにかかる時間
の長さから、特に航空機システムがより大規模かつ高度になるときには、このプ
ロセスを自動化することには大きな利点がある。
・プログラムのテスト・ランの結果と、ソース・コードがコンパイルされた時点
で生成されたリンク・マップとを人間が比較することによって、航空機に重要な
コンピュータ・ソフトウェアに関して実行している。コードを分析する人間は、
最初に、コードのあらゆるラインが実行されたかどうか、また各分岐がある一点
で発生したかどうか、次いでそれが発生しなかったかどうかを判定しなければな
らない。個人またはグループがコンピュータ・コードを分析するのにかかる時間
の長さから、特に航空機システムがより大規模かつ高度になるときには、このプ
ロセスを自動化することには大きな利点がある。
【0010】 (発明の概要) 本発明は、コンピュータ・ソフトウェアを自動的に妥当性検査および検証する
方法および装置を開示するものである。試験するソフトウェアを、最初にソフト
ウェア・ライブラリから取り出し、ソース・コードからオブジェクト・コードに
コンパイルし、ソフトウェア・プログラム中のコードの全てのラインをリストす
るリンク・マップを生成する。次いで、オブジェクト・コードを、コンピュータ
・エレクトロニクス中に取り込む。試験フィクスチャ(test fixture)を用いて
、コンピュータ・エレクトロニクスを、それらが実行するように設計された全て
の機能について試験する。コンピュータ・エレクトロニクスの試験中には、オブ
ジェクト・コードの実行を監視する。この監視の主な目的は、実行されたオブジ
ェクト・コードのラインの履歴を提供する2つの別個の命令アドレス・マップを
作成することである。第1のマップは、ソフトウェア・コードが分岐せず、連続
したアドレスでコードのラインを実行した場合の、ソフトウェア・プログラムに
ついての全ての命令アドレスを含む。第2のアドレス・マップは、分岐が発生し
、プログラム中のその他の場所にあるコードのラインがその後に実行されるコー
ドのラインについての全ての命令アドレスを含む。
方法および装置を開示するものである。試験するソフトウェアを、最初にソフト
ウェア・ライブラリから取り出し、ソース・コードからオブジェクト・コードに
コンパイルし、ソフトウェア・プログラム中のコードの全てのラインをリストす
るリンク・マップを生成する。次いで、オブジェクト・コードを、コンピュータ
・エレクトロニクス中に取り込む。試験フィクスチャ(test fixture)を用いて
、コンピュータ・エレクトロニクスを、それらが実行するように設計された全て
の機能について試験する。コンピュータ・エレクトロニクスの試験中には、オブ
ジェクト・コードの実行を監視する。この監視の主な目的は、実行されたオブジ
ェクト・コードのラインの履歴を提供する2つの別個の命令アドレス・マップを
作成することである。第1のマップは、ソフトウェア・コードが分岐せず、連続
したアドレスでコードのラインを実行した場合の、ソフトウェア・プログラムに
ついての全ての命令アドレスを含む。第2のアドレス・マップは、分岐が発生し
、プログラム中のその他の場所にあるコードのラインがその後に実行されるコー
ドのラインについての全ての命令アドレスを含む。
【0011】 第1および第2のマップが生成された後で、これらを最初に作成されたリンク
・マップと比較し、プログラム中のコードのあらゆるラインが実行されたかどう
かをまず最初に判定する。クラスAの試験では、次いで、プログラム中のあらゆ
る分岐が少なくとも一度発生したかどうかについて判定を行い、次いで一度も発
生しなかったかどうかについて判定を行う。これらの結果は、その後システムか
ら出力されるリポートに与えられる。
・マップと比較し、プログラム中のコードのあらゆるラインが実行されたかどう
かをまず最初に判定する。クラスAの試験では、次いで、プログラム中のあらゆ
る分岐が少なくとも一度発生したかどうかについて判定を行い、次いで一度も発
生しなかったかどうかについて判定を行う。これらの結果は、その後システムか
ら出力されるリポートに与えられる。
【0012】 (好ましい実施形態の説明) 図1に示すのは、ソフトウェア装置の妥当性検査および検証を自動化するため
のシステム構成を示すブロック図である。試験するソフトウェアは、最初はソー
ス・コードおよびソフトウェア・ライブラリ12に格納されている。このソース
・コードは、コンパイル・リンク装置14によってソース・コードおよびソフト
ウェア・ライブラリ12から取り出される。この装置は、ソース・コードをコン
パイルして、アビオニクス・プロセッサ16にオブジェクト・コードを出力し、
かつソフトウェア中のコードの全てのライン、およびソフトウェアの一部となる
全てのループについてのリンクのリストを提供するリンク・マップも生成する。
のシステム構成を示すブロック図である。試験するソフトウェアは、最初はソー
ス・コードおよびソフトウェア・ライブラリ12に格納されている。このソース
・コードは、コンパイル・リンク装置14によってソース・コードおよびソフト
ウェア・ライブラリ12から取り出される。この装置は、ソース・コードをコン
パイルして、アビオニクス・プロセッサ16にオブジェクト・コードを出力し、
かつソフトウェア中のコードの全てのライン、およびソフトウェアの一部となる
全てのループについてのリンクのリストを提供するリンク・マップも生成する。
【0013】 アビオニクス・プロセッサ16は、航空機中に設置された、操縦桿および器具
上の操縦士の動きの変換を実現するブラック・ボックスであり、これらの動きを
、制御設備を動かす電子アクチュエータにその後与えられる電気信号に変換する
。当業者なら、この実施形態のアビオニクス・プロセッサを使用することは単な
る好ましい実施形態であり、本発明のシステムではコンピュータ・ソフトウェア
を利用した任意タイプのエレクトロニクスを試験することができることを理解す
るであろう。
上の操縦士の動きの変換を実現するブラック・ボックスであり、これらの動きを
、制御設備を動かす電子アクチュエータにその後与えられる電気信号に変換する
。当業者なら、この実施形態のアビオニクス・プロセッサを使用することは単な
る好ましい実施形態であり、本発明のシステムではコンピュータ・ソフトウェア
を利用した任意タイプのエレクトロニクスを試験することができることを理解す
るであろう。
【0014】 アビオニクス・プロセッサ16にオブジェクト・コードが取り込まれた後で、
試験サイト環境18は、このプロセッサをその全ての設計機能を介して動作させ
る。この試験の目的は、プロセッサが、想定されている全ての機能を実行できる
かどうかを判定することである。アビオニクス・プロセッサ16の試験中に、監
視装置20は、アビオニクス・プロセッサ中でのコードの各ラインの実行を追跡
し、2つのタイプの別個のアドレス・マップを生成する。一方のマップは分岐発
生アドレス・マップであり、もう一方のマップは分岐非発生アドレス・マップで
ある。これらのマップは、連続した命令を読み取るときに、オブジェクト・コー
ドのラインがプログラム中の他の場所で実行されたか、またはオブジェクト・コ
ードのラインが連続した順序で実行されたかのいずれかで実行された命令をリス
トするものである。監視装置の動作の詳細については、以下でより詳しく述べる
。
試験サイト環境18は、このプロセッサをその全ての設計機能を介して動作させ
る。この試験の目的は、プロセッサが、想定されている全ての機能を実行できる
かどうかを判定することである。アビオニクス・プロセッサ16の試験中に、監
視装置20は、アビオニクス・プロセッサ中でのコードの各ラインの実行を追跡
し、2つのタイプの別個のアドレス・マップを生成する。一方のマップは分岐発
生アドレス・マップであり、もう一方のマップは分岐非発生アドレス・マップで
ある。これらのマップは、連続した命令を読み取るときに、オブジェクト・コー
ドのラインがプログラム中の他の場所で実行されたか、またはオブジェクト・コ
ードのラインが連続した順序で実行されたかのいずれかで実行された命令をリス
トするものである。監視装置の動作の詳細については、以下でより詳しく述べる
。
【0015】 次いで、分岐発生アドレス・マップおよび分岐非発生アドレス・マップが両方
とも分析装置22に伝送される。分析装置22も、コンパイル・リンク装置14
によって最初に生成されたリンク・マップを取り出し、また、分岐発生マップお
よび分岐非発生マップの両方を用いた詳細な比較プロセスを通じて、アビオニク
ス・プロセッサ中でオブジェクト・コードがどのように実行されたかについての
詳細な分析を提供する。
とも分析装置22に伝送される。分析装置22も、コンパイル・リンク装置14
によって最初に生成されたリンク・マップを取り出し、また、分岐発生マップお
よび分岐非発生マップの両方を用いた詳細な比較プロセスを通じて、アビオニク
ス・プロセッサ中でオブジェクト・コードがどのように実行されたかについての
詳細な分析を提供する。
【0016】 本発明のシステムの目的は、連邦航空局(FAA)の規定の下で必要とされる
レベルAおよびレベルBのソフトウェアの試験を両方とも実施することである。
レベルBの認証では、システム中にデッド・コード(試験プロセス中に到達不可
能または実行不可能なコード)が存在しないことを示すことができるように、ソ
フトウェア実装のデモンストレーションを実施することが必要である。このデッ
ド・コードの検査はソース・コードについて実行され、試験結果は、実行可能な
コードの各ソース・ラインに試験中に到達したことを示す必要がある。
レベルAおよびレベルBのソフトウェアの試験を両方とも実施することである。
レベルBの認証では、システム中にデッド・コード(試験プロセス中に到達不可
能または実行不可能なコード)が存在しないことを示すことができるように、ソ
フトウェア実装のデモンストレーションを実施することが必要である。このデッ
ド・コードの検査はソース・コードについて実行され、試験結果は、実行可能な
コードの各ソース・ラインに試験中に到達したことを示す必要がある。
【0017】 レベルAの認証はレベルBをベースとし、埋込型システムで実行されるソフト
ウェアの経路範囲試験に追加要件を課すものである。レベルBの試験では、あら
ゆるソース・ラインが実行され、あらゆる論理経路が採用されたことを示すだけ
でよいが、レベルAの試験では、オブジェクト・コード中の各機械命令が実行さ
れることを証明しなければならない。さらに、ソフトウェアを介したあらゆる論
理経路決定が試験中に網羅的に行われたことも示さなければならない。これは、
次の命令に進むか、またはプログラム中のその他の場所に進むかについての決定
を必要とする命令を実行するときに、両選択肢がともに少なくとも一度は選択さ
れたことを示さなければならないことを意味する。図2は、監視装置20の動作
を説明する流れ図である。上述のように、監視装置は、分析装置22に与えられ
る分岐発生アドレス・マップおよび分岐非発生アドレス・マップを提供する。動
作中に、アビオニクス・プロセッサ16中でオブジェクト・コードが実行されて
いる間に、監視装置20は、ステップ46で、実行されているコードの各ライン
のアドレスを受信する。ステップ46でアドレスが受信された後で、この現在の
アドレスはステップ54でメモリに記憶される。現在のアドレスは、アビオニク
ス・プロセッサ16の動作が割り込まれたステップ40の場合に使用される割込
みアドレス・ハンドラにもステップ54およびステップ56で記憶され、監視装
置は、その後アビオニクス・プロセッサが正常な動作を開始した後で、ステップ
42およびステップ58にて同じ箇所から受信することができる。
ウェアの経路範囲試験に追加要件を課すものである。レベルBの試験では、あら
ゆるソース・ラインが実行され、あらゆる論理経路が採用されたことを示すだけ
でよいが、レベルAの試験では、オブジェクト・コード中の各機械命令が実行さ
れることを証明しなければならない。さらに、ソフトウェアを介したあらゆる論
理経路決定が試験中に網羅的に行われたことも示さなければならない。これは、
次の命令に進むか、またはプログラム中のその他の場所に進むかについての決定
を必要とする命令を実行するときに、両選択肢がともに少なくとも一度は選択さ
れたことを示さなければならないことを意味する。図2は、監視装置20の動作
を説明する流れ図である。上述のように、監視装置は、分析装置22に与えられ
る分岐発生アドレス・マップおよび分岐非発生アドレス・マップを提供する。動
作中に、アビオニクス・プロセッサ16中でオブジェクト・コードが実行されて
いる間に、監視装置20は、ステップ46で、実行されているコードの各ライン
のアドレスを受信する。ステップ46でアドレスが受信された後で、この現在の
アドレスはステップ54でメモリに記憶される。現在のアドレスは、アビオニク
ス・プロセッサ16の動作が割り込まれたステップ40の場合に使用される割込
みアドレス・ハンドラにもステップ54およびステップ56で記憶され、監視装
置は、その後アビオニクス・プロセッサが正常な動作を開始した後で、ステップ
42およびステップ58にて同じ箇所から受信することができる。
【0018】 次いでステップ40で、割込み信号が受信されているかどうかについての問合
せを行う。受信されていない場合には、ステップ44で、実行された以前の命令
のアドレスをメモリから取り出す。次いでステップ48およびステップ49で、
アドレスの比較を行い、現在のアドレスが以前のアドレスより1を超えて大きい
かどうかについて質問する。答えが1より大きい場合には、アドレス命令が連続
して実行されていないこと、以前のアドレスが決定命令であったこと、および以
前の命令アドレスとは遠隔の命令が実行されたことを示す。
せを行う。受信されていない場合には、ステップ44で、実行された以前の命令
のアドレスをメモリから取り出す。次いでステップ48およびステップ49で、
アドレスの比較を行い、現在のアドレスが以前のアドレスより1を超えて大きい
かどうかについて質問する。答えが1より大きい場合には、アドレス命令が連続
して実行されていないこと、以前のアドレスが決定命令であったこと、および以
前の命令アドレスとは遠隔の命令が実行されたことを示す。
【0019】 ステップ50で現在のアドレスが以前のアドレスより1を超えて大きい場合に
は、ステップ56で、以前のアドレスについて分岐発生ビットがセットされ、次
いで以前の命令アドレスが分岐発生マップ中に置かれる。現在のアドレスが以前
のアドレスより1を超えて大きくない場合には、分岐が発生せず、命令が連続的
に実行されたことは明らかである。ステップ52で、以前のアドレスについて分
岐非発生のビットがセットされる。この時点で、命令アドレスは分岐非発生マッ
プ中に置かれる。この時点で、完成した分岐発生マップおよび分岐非発生マップ
が、分析装置22に伝送される。
は、ステップ56で、以前のアドレスについて分岐発生ビットがセットされ、次
いで以前の命令アドレスが分岐発生マップ中に置かれる。現在のアドレスが以前
のアドレスより1を超えて大きくない場合には、分岐が発生せず、命令が連続的
に実行されたことは明らかである。ステップ52で、以前のアドレスについて分
岐非発生のビットがセットされる。この時点で、命令アドレスは分岐非発生マッ
プ中に置かれる。この時点で、完成した分岐発生マップおよび分岐非発生マップ
が、分析装置22に伝送される。
【0020】 図4は、実行レコード・マップおよびリンク・マップの構造を示している。リ
ンク・マップは、1)プロセッサの機械コードを含むことができる、または2)
命令を表すニーモニックを含むことができるという、2つのかたちで構築するこ
とができる。その内容は、範囲分析装置22に、アビオニクス・プロセッサ16
が採用することができる潜在的な実行経路を提供する。実行レコード・マップは
、それぞれの命令のメモリ位置に関連づけられた単純な2フィールド・レコード
・テーブルである。分岐非発生フィールドおよび分岐発生フィールド中のデータ
は、監視装置20によって評価される真または偽の状態を表す。
ンク・マップは、1)プロセッサの機械コードを含むことができる、または2)
命令を表すニーモニックを含むことができるという、2つのかたちで構築するこ
とができる。その内容は、範囲分析装置22に、アビオニクス・プロセッサ16
が採用することができる潜在的な実行経路を提供する。実行レコード・マップは
、それぞれの命令のメモリ位置に関連づけられた単純な2フィールド・レコード
・テーブルである。分岐非発生フィールドおよび分岐発生フィールド中のデータ
は、監視装置20によって評価される真または偽の状態を表す。
【0021】 図3は、範囲分析装置22の動作を説明する流れ図である。範囲分析装置は、
実行レコード・マップの内容をコンパイルおよびリンク装置14によって生成さ
れたリンク・マップと突き合わせて比較することによって、実行レコード・マッ
プの後処理を実行する。アドレス0000から開始して、ステップ80で、リン
ク・マップ中の最初の命令を解釈する。次いでステップ81で、コードのこのラ
インが分岐命令であるかどうかについて問合せを行う。それが分岐命令でない場
合には、ステップ82で、このアドレスについて実行レコード・マップの分岐非
発生フィールドを調べる。この命令が見つかった場合(イエス)には、この命令
は試験中に実行されており、範囲分析プロセスはステップ80に戻り、リンク・
マップ中の次のアドレスが読み取られる。ステップ82で命令が見つからない場
合、これはその命令が実行されていないことを示し、これはソフトウェア中にデ
ッド・コードが存在するか、または試験中に欠陥が生じたことを意味する。ステ
ップ83で、この障害は試験範囲リポート26にロギングされ、プロセスはステ
ップ80に戻り、リンク・マップ中の次のアドレスが読み取られる。
実行レコード・マップの内容をコンパイルおよびリンク装置14によって生成さ
れたリンク・マップと突き合わせて比較することによって、実行レコード・マッ
プの後処理を実行する。アドレス0000から開始して、ステップ80で、リン
ク・マップ中の最初の命令を解釈する。次いでステップ81で、コードのこのラ
インが分岐命令であるかどうかについて問合せを行う。それが分岐命令でない場
合には、ステップ82で、このアドレスについて実行レコード・マップの分岐非
発生フィールドを調べる。この命令が見つかった場合(イエス)には、この命令
は試験中に実行されており、範囲分析プロセスはステップ80に戻り、リンク・
マップ中の次のアドレスが読み取られる。ステップ82で命令が見つからない場
合、これはその命令が実行されていないことを示し、これはソフトウェア中にデ
ッド・コードが存在するか、または試験中に欠陥が生じたことを意味する。ステ
ップ83で、この障害は試験範囲リポート26にロギングされ、プロセスはステ
ップ80に戻り、リンク・マップ中の次のアドレスが読み取られる。
【0022】 ステップ81で、コードのそのラインが分岐発生命令であると判定された場合
には、両方の実行レコード・フィールド(分岐発生フィールドおよび分岐非発生
フィールド)を調べなければならない。ステップ84で、分岐が発生したかどう
かについての問合せを行う。全ての分岐命令について、これを一度行わなければ
ならない。ステップ84の答えがイエスである場合には、ステップ88で、分岐
が発生しなかったかどうかについて、もう1つの問合せを行う。これも全ての分
岐命令について少なくとも一度は行わなければならない。ステップ88の答えが
イエスである場合には、プロセスはステップ80に戻り、リンク・マップ中の次
のアドレスが読み取られる。
には、両方の実行レコード・フィールド(分岐発生フィールドおよび分岐非発生
フィールド)を調べなければならない。ステップ84で、分岐が発生したかどう
かについての問合せを行う。全ての分岐命令について、これを一度行わなければ
ならない。ステップ84の答えがイエスである場合には、ステップ88で、分岐
が発生しなかったかどうかについて、もう1つの問合せを行う。これも全ての分
岐命令について少なくとも一度は行わなければならない。ステップ88の答えが
イエスである場合には、プロセスはステップ80に戻り、リンク・マップ中の次
のアドレスが読み取られる。
【0023】 ステップ84で答えがノーである場合には、これは分岐命令が分岐を引き起こ
さなかったことを意味する。これはコード中に障害があることを示し、ステップ
85で、分岐命令のアドレスがロギングされる。ステップ86で命令をさらに分
析し、分岐非発生フィールドが真にセットされるかどうかを判定する。その答え
がノーである場合には、コード中に障害があり、ステップ87で、その命令のア
ドレスが試験範囲リポートにロギングされる。次いで、プロセスはステップ80
に戻り、リンク・マップ中の次のアドレスが読み取られる。ステップ86の答え
がイエスである場合には、これは分岐がその時点で一度も発生していないことを
意味する。次いで、プロセスはステップ80に戻り、リンク・マップ中の次のア
ドレスが読み取られる。
さなかったことを意味する。これはコード中に障害があることを示し、ステップ
85で、分岐命令のアドレスがロギングされる。ステップ86で命令をさらに分
析し、分岐非発生フィールドが真にセットされるかどうかを判定する。その答え
がノーである場合には、コード中に障害があり、ステップ87で、その命令のア
ドレスが試験範囲リポートにロギングされる。次いで、プロセスはステップ80
に戻り、リンク・マップ中の次のアドレスが読み取られる。ステップ86の答え
がイエスである場合には、これは分岐がその時点で一度も発生していないことを
意味する。次いで、プロセスはステップ80に戻り、リンク・マップ中の次のア
ドレスが読み取られる。
【0024】 ステップ88で、分岐発生フィールドが真であったが分岐非発生フィールドが
偽である場合には、この試験によって与えられた刺激のみが分岐を引き起こす条
件をもたらし、インライン・コードは実行されなかったことになる。その分岐の
みが実行されたことを示す障害は、ステップ89で、このアドレスについての試
験範囲リポートにロギングされる。次いで、プロセスはステップ80に戻り、リ
ンク・マップ中の次のアドレスが読み取られる。
偽である場合には、この試験によって与えられた刺激のみが分岐を引き起こす条
件をもたらし、インライン・コードは実行されなかったことになる。その分岐の
みが実行されたことを示す障害は、ステップ89で、このアドレスについての試
験範囲リポートにロギングされる。次いで、プロセスはステップ80に戻り、リ
ンク・マップ中の次のアドレスが読み取られる。
【0025】 範囲分析はリンク・マップ全体について実行される。リンク・マップ中のあら
ゆるアドレスが生成された後で、試験範囲リポート26が生成される。このリポ
ートは、デッド・コードが存在するかどうか、また全ての分岐命令が適切に実行
されたかどうかを判定するために試験環境中で実行されたときのソフトウェアの
詳細な分析を提供することになる。
ゆるアドレスが生成された後で、試験範囲リポート26が生成される。このリポ
ートは、デッド・コードが存在するかどうか、また全ての分岐命令が適切に実行
されたかどうかを判定するために試験環境中で実行されたときのソフトウェアの
詳細な分析を提供することになる。
【図面の簡単な説明】
【図1】 コンピュータ・ソフトウェア・システムの自動化した妥当性検査および検証を
示すブロック図である。
示すブロック図である。
【図2】 ソフトウェアの実行の監視を示す流れ図である。
【図3】 分岐発生アドレス・マップおよび分岐非発生アドレス・マップの、リンク・マ
ップとの比較を示す流れ図である。
ップとの比較を示す流れ図である。
【図4】 範囲分析装置によってリンク・マップと比較される、監視装置によって作成さ
れた実行レコード・マップを示す図である。
れた実行レコード・マップを示す図である。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SZ,UG,ZW),EA(AM ,AZ,BY,KG,KZ,MD,RU,TJ,TM) ,AL,AM,AT,AU,AZ,BA,BB,BG, BR,BY,CA,CH,CN,CU,CZ,DE,D K,EE,ES,FI,GB,GE,GH,GM,HR ,HU,ID,IL,IS,JP,KE,KG,KP, KR,KZ,LC,LK,LR,LS,LT,LU,L V,MD,MG,MK,MN,MW,MX,NO,NZ ,PL,PT,RO,RU,SD,SE,SG,SI, SK,SL,TJ,TM,TR,TT,UA,UG,U Z,VN,YU,ZW (72)発明者 シーマ,デイビッド・ケイ アメリカ合衆国・52403・アイオワ州・サ ウス イースト シダー ラピッズ・イー ストランド ドライブ・341 (72)発明者 リピット,カール・イー アメリカ合衆国・39110・ミシシッピー 州・マディソン・デアフィールド ロー ド・27 Fターム(参考) 5B042 HH11 HH32 JJ01 JJ12
Claims (7)
- 【請求項1】 コンピュータ・ソフトウェアの妥当性検査および検証を自動
化するための方法であって、 ソフトウェア・プログラムをソース・コードの形態で提供し、ソース・コード
をオブジェクト・コードにコンパイルし、リンク・マップを生成するステップと
、 ソフトウェア・プログラムの全ての機能が実行されるようなかたちでオブジェ
クト・コードを実行するステップと、 オブジェクト・コードの実行を監視して、第1および第2のアドレス・マップ
を生成するステップであって、第1のマップは、分岐が発生しない場合のソフト
ウェア・プログラムの実行についての全ての命令アドレスを含み、第2のマップ
は、分岐が発生する場合のソフトウェア・プログラムの実行についての全ての命
令アドレスを含むステップと、 リンク・マップと第1および第2のアドレス・マップとを比較して、コードの
全てのラインが実行されたかどうかを判定し、実行されなかったコードのライン
を識別するステップと を含む方法。 - 【請求項2】 リンク・マップと第1および第2のアドレス・マップとを比
較するステップが、特定の命令アドレスについて、分岐が発生したかどうか、ま
た分岐が発生しなかったかどうかの両方を判定するステップをさらに含む請求項
1に記載のコンピュータ・ソフトウェアの妥当性検査および検証を自動化する方
法。 - 【請求項3】 実行中の現在の命令のアドレスと以前の命令のアドレスとを
比較するステップと、現在の命令が以前のアドレスより2アドレスを超えて大き
い場合に、以前のアドレスを第2の分岐マップ中に入れるステップと、現在のア
ドレスが以前のアドレスより2以下だけ大きい場合に、以前のアドレスを第1の
マップ中に入れるステップとをさらに含む請求項1に記載のコンピュータ・ソフ
トウェアの妥当性検査および検証を自動化する方法。 - 【請求項4】 オブジェクト・コードの実行中に非同期割込みが補償される
請求項1に記載のコンピュータ・ソフトウェアの妥当性検査および検証を自動化
する方法。 - 【請求項5】 コンピュータ・ソフトウェアの妥当性検査および検証を自動
化する装置であって、 ソフトウェア・プログラムをコンパイルし、リンク・マップを生成する手段と
、 ソフトウェア・プログラムの機能が完全に実行されるようにソフトウェア・プ
ログラムを実行する手段と、 ソフトウェア・プログラムの実行を監視し、第1および第2のアドレス・マッ
プを生成する手段であって、第1のアドレス・マップは、分岐が発生しないとき
のソフトウェア・プログラムの実行についての全ての命令アドレスを含み、第2
のアドレス・マップは、分岐が発生するときのソフトウェア・プログラムの実行
についての全ての命令アドレスを含む手段と、 リンクマップと第1および第2のアドレス・マップとを比較して、ソフトウェ
ア・コード中のコードの全てのラインが実行されているかどうか、全ての分岐が
コンピュータ・ソフトウェア中で少なくとも一度は発生しているかどうか、およ
び全ての分岐が一度も発生していないかどうかを判定する手段と を含む装置。 - 【請求項6】 ソフトウェア・プログラムを実行する手段が試験フィクスチ
ャである請求項1に記載のコンピュータ・ソフトウェアの妥当性検査および検証
を自動化する装置。 - 【請求項7】 コード実行中に非同期割込みを補償する手段をさらに含む請
求項5に記載のコンピュータ・ソフトウェアの妥当性検査および検証を自動化す
る装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/939,419 | 1997-09-29 | ||
US08/939,419 US6071316A (en) | 1997-09-29 | 1997-09-29 | Automated validation and verification of computer software |
PCT/US1998/020104 WO1999017199A1 (en) | 1997-09-29 | 1998-09-24 | Automated validation and verification of computer software |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001518662A true JP2001518662A (ja) | 2001-10-16 |
Family
ID=25473156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000514197A Pending JP2001518662A (ja) | 1997-09-29 | 1998-09-24 | 自動化したコンピュータ・ソフトウェアの妥当性検査および検証 |
Country Status (11)
Country | Link |
---|---|
US (1) | US6071316A (ja) |
EP (1) | EP1019818B1 (ja) |
JP (1) | JP2001518662A (ja) |
AU (1) | AU747937B2 (ja) |
CA (1) | CA2304314A1 (ja) |
DE (1) | DE69810795T2 (ja) |
DK (1) | DK1019818T3 (ja) |
IL (1) | IL135263A (ja) |
NO (1) | NO319540B1 (ja) |
NZ (1) | NZ503595A (ja) |
WO (1) | WO1999017199A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101476536B1 (ko) * | 2013-05-27 | 2014-12-24 | (주)스마일게이트엔터테인먼트 | 프로그램 검수 방법 및 시스템 |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6959431B1 (en) * | 1999-05-13 | 2005-10-25 | Compuware Corporation | System and method to measure and report on effectiveness of software program testing |
JP2000347900A (ja) * | 1999-06-02 | 2000-12-15 | Fujitsu Ltd | 入力パラメータ生成装置、その方法及び記録媒体 |
AU778165B2 (en) * | 1999-09-20 | 2004-11-18 | Paul H. Harkins | Real-time program audit software |
US6775827B1 (en) | 1999-09-20 | 2004-08-10 | Harkins Audit Software, Inc. | Real-time program audit software |
US6961930B1 (en) * | 1999-09-22 | 2005-11-01 | Hewlett-Packard Development Company, L.P. | Efficient, transparent and flexible latency sampling |
US6546547B1 (en) * | 1999-09-22 | 2003-04-08 | Cisco Technology, Inc. | Method and system for an automated net booting tool |
US6748584B1 (en) * | 1999-12-29 | 2004-06-08 | Veritas Operating Corporation | Method for determining the degree to which changed code has been exercised |
US6804814B1 (en) | 1999-12-29 | 2004-10-12 | Veritas Operating Corporation | Method for simulating back program execution from a traceback sequence |
US6745383B1 (en) | 1999-12-29 | 2004-06-01 | Veritas Operating Corporation | Early warning mechanism for enhancing enterprise availability |
US6693558B2 (en) * | 2001-06-18 | 2004-02-17 | Innovative Solutions & Support, Inc. | Aircraft flat panel display system |
CA2704252C (en) * | 2001-07-26 | 2011-09-27 | Irise | System and process for interacting with a user to define a behavior of a portion of an interactive presentation |
US7127641B1 (en) * | 2002-03-29 | 2006-10-24 | Cypress Semiconductor Corp. | System and method for software testing with extensible markup language and extensible stylesheet language |
US7080358B2 (en) * | 2002-04-10 | 2006-07-18 | Sun Microsystems, Inc. | Mechanism for generating an execution log and coverage data for a set of computer code |
SE0202019D0 (sv) | 2002-06-28 | 2002-06-28 | Abb As | Revalidation of a compiler for safety control |
US7334219B2 (en) * | 2002-09-30 | 2008-02-19 | Ensco, Inc. | Method and system for object level software testing |
SE524639C2 (sv) * | 2002-10-15 | 2004-09-07 | Abb As | Feldetektering i en industriell kontroller under säkerhetsrelaterad styrning |
US7114150B2 (en) * | 2003-02-13 | 2006-09-26 | International Business Machines Corporation | Apparatus and method for dynamic instrumenting of code to minimize system perturbation |
EP1498813A3 (en) * | 2003-03-06 | 2007-01-24 | Microsoft Corporation | Design time validation of systems |
US20050028146A1 (en) * | 2003-08-01 | 2005-02-03 | Quick Shawn G. | Systems and methods for software and firmware testing using checkpoint signatures |
US7624394B1 (en) * | 2003-11-18 | 2009-11-24 | Adobe Systems Incorporation | Software installation verification |
US20070074180A1 (en) * | 2003-12-22 | 2007-03-29 | Nasa Hq's | Systems, Methods and Apparatus for Procedure Development and Verification |
FR2871907B1 (fr) * | 2004-06-22 | 2006-09-08 | Thales Sa | Dispositif de controle de la couverture structurelle d'un logiciel et procede mettant en oeuvre le dispositif |
US7589735B2 (en) * | 2005-08-24 | 2009-09-15 | Innovative Solutions & Support (Iss) | Aircraft flat panel display system with graphical image integrity |
US7724259B2 (en) * | 2005-08-24 | 2010-05-25 | Innovative Solutions And Support, Inc. | Aircraft flat panel display system with improved information availability |
US7725922B2 (en) * | 2006-03-21 | 2010-05-25 | Novell, Inc. | System and method for using sandboxes in a managed shell |
US7743414B2 (en) * | 2006-05-26 | 2010-06-22 | Novell, Inc. | System and method for executing a permissions recorder analyzer |
US20080005619A1 (en) * | 2006-06-29 | 2008-01-03 | Tamarah Arons | Validation of software execution paths |
US7805707B2 (en) * | 2006-07-21 | 2010-09-28 | Novell, Inc. | System and method for preparing runtime checks |
US7739735B2 (en) * | 2006-07-26 | 2010-06-15 | Novell, Inc. | System and method for dynamic optimizations using security assertions |
US7856654B2 (en) * | 2006-08-11 | 2010-12-21 | Novell, Inc. | System and method for network permissions evaluation |
US7823186B2 (en) * | 2006-08-24 | 2010-10-26 | Novell, Inc. | System and method for applying security policies on multiple assembly caches |
US7793267B2 (en) | 2006-10-13 | 2010-09-07 | International Business Machines Corporation | Computer software test coverage analysis |
US7895576B2 (en) * | 2006-11-10 | 2011-02-22 | International Business Machines Corporation | Method for automating internationalization software testing |
FR2916546A1 (fr) * | 2007-05-24 | 2008-11-28 | Airbus France Sa | Procede de simulation d'un systeme embarque a bord d'un aeronef pour tester un logiciel de fonctionnement et dispositif pour la mise en oeuvre de ce procede |
US8689194B1 (en) | 2007-08-20 | 2014-04-01 | The Mathworks, Inc. | Optimization identification |
FR2937437B1 (fr) * | 2008-10-20 | 2011-09-16 | Airbus France | Procede de fonctionnement d'un equipement embarque, equipement associe et aeronef comprenant un tel equipement |
DE102009014698A1 (de) * | 2009-03-27 | 2010-10-07 | Abb Ag | System und Verfahren zur automatischen Prüfung eines Programms für sicherheitsgerichtete Automatisierungssysteme |
US8515658B1 (en) * | 2009-07-06 | 2013-08-20 | The Boeing Company | Managing navigational chart presentation |
US8954870B2 (en) | 2010-10-08 | 2015-02-10 | Irise | System and method for extending a visualization platform |
US9396094B2 (en) | 2011-07-21 | 2016-07-19 | International Business Machines Corporation | Software test automation systems and methods |
US8881126B2 (en) * | 2012-07-31 | 2014-11-04 | Oracle International Corporation | Systems and methods for testing a compiler through compile-time decision feedback |
US8935674B2 (en) * | 2012-08-15 | 2015-01-13 | International Business Machines Corporation | Determining correctness conditions for use in static analysis |
KR102013582B1 (ko) * | 2012-09-07 | 2019-08-23 | 삼성전자 주식회사 | 혼합 모드 프로그램의 소스 코드 오류 위치 검출 장치 및 방법 |
US9703959B2 (en) * | 2014-08-07 | 2017-07-11 | International Business Machines Corporation | Dynamic verification of a computer software application execution path |
US10042613B2 (en) * | 2016-08-19 | 2018-08-07 | International Business Machines Corporation | System, method, and recording medium for validating computer documentation |
US10127147B2 (en) * | 2016-12-23 | 2018-11-13 | Sap Se | Automated software compliance analysis |
US10628167B2 (en) | 2018-02-21 | 2020-04-21 | International Business Machines Corporation | Runtime detection of code modification |
US11307962B2 (en) | 2018-07-09 | 2022-04-19 | United States Of America As Represented By The Secretary Of The Navy | Method for semantic preserving transform mutation discovery and vetting |
US10613970B1 (en) * | 2018-08-31 | 2020-04-07 | Intuit Inc. | Method and system for managing deployment of software application components based on software performance data |
US11074160B2 (en) | 2018-12-10 | 2021-07-27 | International Business Machines Corporation | Automated test script generator |
US11138366B2 (en) | 2019-02-25 | 2021-10-05 | Allstate Insurance Company | Systems and methods for automated code validation |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3577760D1 (de) * | 1985-12-30 | 1990-06-21 | Ibm Deutschland | Verfahren und einrichtung zur analyse von steuerprogrammen. |
US4831517A (en) * | 1986-10-10 | 1989-05-16 | International Business Machines Corporation | Branch and return on address instruction and methods and apparatus for implementing same in a digital data processing system |
US4819233A (en) * | 1987-04-08 | 1989-04-04 | Westinghouse Electric Corp. | Verification of computer software |
US4864569A (en) * | 1987-11-25 | 1989-09-05 | Westinghouse Electric Corp. | Software verification and validation configuration management system |
US5079731A (en) * | 1989-10-17 | 1992-01-07 | Alcon Laboratories, Inc. | Method and apparatus for process control validation |
US5263162A (en) * | 1990-11-07 | 1993-11-16 | Hewlett-Packard Company | Method of validating a label translation configuration by parsing a real expression describing the translation configuration |
US5432795A (en) * | 1991-03-07 | 1995-07-11 | Digital Equipment Corporation | System for reporting errors of a translated program and using a boundry instruction bitmap to determine the corresponding instruction address in a source program |
AU5550194A (en) * | 1993-09-27 | 1995-04-18 | Giga Operations Corporation | Implementation of a selected instruction set cpu in programmable hardware |
US5559718A (en) * | 1994-04-28 | 1996-09-24 | Cadence Design Systems, Inc. | System and method for model-based verification of local design rules |
EP0703532B1 (en) * | 1994-09-22 | 2001-11-28 | Sun Microsystems, Inc. | Embedded program flow information for object code manipulation |
US5748964A (en) * | 1994-12-20 | 1998-05-05 | Sun Microsystems, Inc. | Bytecode program interpreter apparatus and method with pre-verification of data type restrictions |
US5721863A (en) * | 1996-01-29 | 1998-02-24 | International Business Machines Corporation | Method and structure for accessing semi-associative cache memory using multiple memories to store different components of the address |
US5963739A (en) * | 1996-04-26 | 1999-10-05 | Peter V. Homeier | Method for verifying the total correctness of a program with mutually recursive procedures |
US5822607A (en) * | 1997-06-09 | 1998-10-13 | Integrated Device Technology, Inc. | Method for fast validation checking for code and data segment descriptor loads |
-
1997
- 1997-09-29 US US08/939,419 patent/US6071316A/en not_active Expired - Lifetime
-
1998
- 1998-09-24 NZ NZ503595A patent/NZ503595A/xx unknown
- 1998-09-24 DK DK98951943T patent/DK1019818T3/da active
- 1998-09-24 IL IL13526398A patent/IL135263A/en not_active IP Right Cessation
- 1998-09-24 EP EP98951943A patent/EP1019818B1/en not_active Expired - Lifetime
- 1998-09-24 DE DE69810795T patent/DE69810795T2/de not_active Expired - Fee Related
- 1998-09-24 CA CA002304314A patent/CA2304314A1/en not_active Abandoned
- 1998-09-24 JP JP2000514197A patent/JP2001518662A/ja active Pending
- 1998-09-24 WO PCT/US1998/020104 patent/WO1999017199A1/en active IP Right Grant
- 1998-09-24 AU AU97766/98A patent/AU747937B2/en not_active Ceased
-
2000
- 2000-03-22 NO NO20001481A patent/NO319540B1/no unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101476536B1 (ko) * | 2013-05-27 | 2014-12-24 | (주)스마일게이트엔터테인먼트 | 프로그램 검수 방법 및 시스템 |
Also Published As
Publication number | Publication date |
---|---|
WO1999017199A1 (en) | 1999-04-08 |
NO20001481L (no) | 2000-05-26 |
DE69810795D1 (de) | 2003-02-20 |
DK1019818T3 (da) | 2003-03-31 |
CA2304314A1 (en) | 1999-04-08 |
IL135263A (en) | 2004-03-28 |
AU9776698A (en) | 1999-04-23 |
NO319540B1 (no) | 2005-08-29 |
EP1019818B1 (en) | 2003-01-15 |
US6071316A (en) | 2000-06-06 |
AU747937B2 (en) | 2002-05-30 |
NO20001481D0 (no) | 2000-03-22 |
NZ503595A (en) | 2002-10-25 |
EP1019818A1 (en) | 2000-07-19 |
IL135263A0 (en) | 2001-05-20 |
DE69810795T2 (de) | 2003-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2001518662A (ja) | 自動化したコンピュータ・ソフトウェアの妥当性検査および検証 | |
CN101802792B (zh) | 用于测试航空器上的系统的操作软件的有效性的自动脚本生成方法及用于实现该方法的设备 | |
US8464222B2 (en) | Method, apparatus or software for identifying dependencies between components for a given build of a componentised product | |
US7275184B2 (en) | Software verification method for control units and verification system | |
US11954015B2 (en) | Software environment for control engine debug, test, calibration and tuning | |
Hartman | Model based test generation tools | |
KR20100051080A (ko) | 자동차 오작동의 진단을 위한 방법 및 시스템 | |
Beine | A model-based reference workflow for the development of safety-critical software | |
Beringer et al. | Consistency Analysis of AUTOSAR Timing Requirements. | |
Gleirscher et al. | Sound development of safety supervisors | |
Erkkinen et al. | Verification, validation, and test with model-based design | |
Boehm et al. | Using empirical testbeds to accelerate technology maturity and transition: the SCRover experience | |
Yasmine et al. | Towards formal verification of autonomous driving supervisor functions | |
CN111752823A (zh) | 一种车载电源应用软件的测试方法、装置及设备 | |
Yang et al. | An effective model-based development process using simulink/stateflow for automotive body control electronics | |
Blackburn et al. | Interface-driven, model-based test automation | |
Britt | Case study: Applying formal methods to the traffic alert and collision avoidance system (TCAS) II | |
Hallerstede et al. | A Mechanized Semantics for Component-Based Systems in the HAMR AADL Runtime | |
Stockmann et al. | Debugging Models in the Context of Automotive Software Development. | |
Heckel et al. | Component integration testing by graph transformations | |
Stone et al. | Improved modeling and validation of command sequences using a checkable sequence language | |
CN116521274A (zh) | 业务运行结果确定方法及装置 | |
Fatih et al. | Improving the Continuous Integration Pro cess for the Vehicle Dynamics Software at VCC using Docker | |
Koch et al. | Generating EAST-ADL event chains from scenario-based requirements specifications | |
Kum et al. | Model-based automated validation techniques for automotive embedded systems |