IEC61508、ISO26262、DO-178B /178C で求められるオブジェクトコードレベルの検証を支援

LDRA Testbed/TBrun/TBreq

テスト自動化ツール 静的解析、動的カバレッジ、テストドライバー生成、テストの資産化、リグレッションテスト、要求~テストに至るトレーサビリティ

| HOME | products | LDRA | LDRA オブジェクトコードレベルの検証 |

更新日 2012-01-28 | 作成日 2007-12-01

IEC61508、ISO26262、DO-178B、DO-178C で求められるオブジェクトコードレベルの検証を支援

オブジェクトコードベリフィケーション(Object Code Verification)とは何か? 以下 DO-178Bスタンダード(6.4.4.2 Structural Coverage Analysis)から:

ソフトウェアがLevel A対象ではなく、コンパイラがソースコード行へ直接辿れないようなオブジェクトコードを生成しない場合は、構造化カバレッジはソースコード上で実行される。そうでない場合、そのような生成されたシーケンスの正しさを証明する追加の検証がオブジェクトコードに対して行われるべき。コンパイラが生成するオブジェクトコード内の配列境界チェックは、ソースコードに直接辿れないオブジェクトコードの例

要するにオブジェクトコードベリフィケーションは、コンパ イラが生成するオブジェクトコードとその基であるアプリケーションソースコードとの、コントロールフロー構造の違いに対しての懸念。

ocvflowgraphthumb.gif そのような違いは様々な理由、例えばコンパイラによるインプリメンテーション、最適化、その他から生じる。しかしオブジェクトコードがプロセッサー上で実行されるのに対して、従来の構造化カバレッジ技術はソースコードレベルで実施される。これら2つのコントロールフロー構造の違いはテストプロセスの大きなギャップとなる。

DO -178Bの要求は Level-A(セーフティークリティカル)対象アプリケーションのそれら要素に対するオブジェクトコードベリフィケーションの実施を、スタンダード認証を目的とするアプリケーションの開発者によって行われること。概してこれらはアプリケーションのサブセットではあるものの、そのテストにはかなりの労力が必要となるので、相当な開発工数や費用を覚悟しなければならない。従って、コンパイラに依存しない、自動化されたプロセスの実施により、十分な余裕を持って総開発コストを軽減することが支援される。

LDRA による オブジェクトコードベリフィケーション

LDRA はオブジェクトコードベリフィケーションに対する様々な産業界からの要求増大を受けて、単体テストからシステム、統合レベルまで、ソースとオブジェクトコード両方に対する完全な構造化カバレッジ解析ソリューションを提供しています。

ocvdynamicthumb.gif それは LDRAツールスイートの高級言語版と、追加のオブジェクトレベル(アセンブラ)版(アプリケーション実行に必要なターゲットプロセッサーごと)の組合せを活用する。代用的な例は LDRAツールスイートの C/C++とTMS320C25x Assembler 対応版の組み合わせ。しかしその他多くの高級言語/アセンブラ言語の組合せがサポートされ、以下のカバレッジメトリクスを提供:

Statement
Branch
Test path
Procedure/Function Call
Boolean Expression Coverage

- Branch Decision Condition
– Branch Condition Combination
– Modified Condition/Decision (DO-178B)*  (*言語に依存)

単体テストレベルのオブジェクトコードベリフィケーション

単体テストの自動化をオブジェクトコードベリフィケーションにも活用できるように、TBrunに対し、LDRAは他のツールベンダーに比較して、この種の解析に必要となるツールサポートに特筆すべき進化を加えました。

それは LDRA の単体テストのオブジェクトコードベリフィケーション機能として知られている、”Object-box Mode”。 高級言語レベルで構造化カバレッジ用のテストケースを作成し、これらをオブジェクトコードの構造化カバレッジに適用することができる。

この機能でキーとなるのは、TBrunによって自動生成される高度なドライバープログラム。このドライバーは最初のテスト検証からそれ以降のリグレッション解析に亘って、テストケースを定義し・実行させて・モニターするといった全てのテスト環境をカプセル化します。”Object-box Mode” で、このドライバーは高級言語のソース単体、あるいは関連するオブジェクトコードのいずれかにリンクされる。そこでユーザは一様なテストプロセスを取ることが出来て、不一致や不足を解析するための比較ができる。

ocvslidelarge.jpg 構造化カバレッジ上の不一致や不足がオブジェクトレベルで識別されれば、そのギャップを埋める追加のテストケースを実施できるようになる。その効果は、開発早期段階で適切な対処ができることであり、検証が容易になり工数が削減できること。それはコードの品質やテストのプロセスを飛躍的に向上させることにもなる。統合やシステムレベルのテストなど後工程に大きく貢献することになり、また市場出荷後には欠陥率やメンテナンスコストを削減させるといったことにも貢献できる。

コードの開発中であっても、求められるオブジェクトコードベリフィケーションを高度に自動化されたコスト効率の良い手法で実施することで、LDRA ツールスイートによる洗練されたコードレビュー、デザインレビューなどの機能も同時に享受することができる。そしてそれらの結果はコードやデザイン上の欠陥の可能性を認識して修正すること、アプリケーションの品質改善を目的に開発チーム内にフィードバックされる。

まとめ

オブジェクトコードベリフィケーションは、それを要求されるソフトウェア開発プロジェクトに重要な課題であることに疑いはない。

しかしながら正しいツールと機能で課題の範囲は大幅に軽減され、開発担当者はそのような解析から得られる成果からコードの品質や信頼性を向上させることを享受できる。

LDRAによって提供されるオブジェクトコードベリフィケーション機能は、今日、市場で最も洗練された、費用効果の高いソリューションとなる。

 “LDRAの動的解析と高級言語ツールとの統合により、創造的(out of the box)なソリューションを LMCO と JSFプロジェクトのサブコントラクターが活用できるようになった“ - Mike Cottrill, シニアエンベッデッドソフトウエアエンジニア、 JSF SW Collaborative Environments, ロッキードマーチン

対応状況

LDRA のオブジェクトコードベリフィケーションは次の環境で使用可能です。

Intel アセンブラ
フリースケール アセンブラ
テキサスインスツルメンツ アセンブラ

これら以外の言語についても対応しています。詳しくは 富士設備までお問合せください。


LinkIconLDRA社 Object Code Verification ページ

LDRA_IEC61508.jpgLDRAの製品情報はこちら

 Email ニュースのご案内

 技術資料の公開情報、セミナーなどのイベント情報を、ご案内しています。ご興味いただける方は、メールにてご連絡先をお知らせ下さると幸いです。

お問合せメールはこちら