Reactis for C

Reactis for C は、スタンドアロンの C プログラム(モデルには含まれないコード)の テストスイート生成、シミュレーション、そして検証作業をサポートします。 Reactis for C を構成する3つのメインコンポーネントは: Reactis Tester, Reactis Simulator, そして Reactis Validator です。

Reactis Tester

テストデータの自動生成

予期せぬ入力でランタイムエラーが発生する?

自分のコードのどれだけの部分が本当にテストできている?

Reactis Tester は、guided simulation と呼ばれる特許技術に基づく テストスイート生成コンポーネントです。ツールは、様々なカバレッジメトリクスを データ生成と同時に計測し、未到達のターゲットを使って、以降のテストの生成を誘導します。 カバレッジメトリクスには、ステートメント、デシジョン、コンディション、 Modified Condition/Decision Coverage (MC/DC)、Function、Function Call 等があります。 MC/DC とは?

C コードからテストを生成

Reactis Tester は、テストを生成する際に、C コードのランタイムエラーを検出するための 様々なチェックを行います。メモリーエラーは C では特に発生しやすく、デバッグは非常に 難しいと言えます。メモリーエラーとは、プログラムが不正なアドレスから読み出し、 又は不正なアドレスへ書き込みを行う場合に発生するエラーです。C 言語ではプログラマが プログラムのメモリーに直接アクセスできる為、パフォーマンスは向上しますが、 ソフトウェアの欠陥によって任意のメモリー位置にアクセスされる可能性があり、 メモリーエラーは C プログラムで特に一般的なエラーです。

Reactis により検出されるエラーには、配列の範囲外インデックス、 バッファオーバーラン、解放済みのヒープ領域を指すポインター(メモリー領域の解放後に その領域を参照)、無効な stack pointer(関数の処理終了後に、その関数の ローカル変数へのポインターにアクセス)、そして不正な数値からキャストされた ポインターの使用があります。Reactis Tester は、これらのエラーを検出するだけでなく、 エラーの根本原因を特定するために Reactis Simulator で実行できるテストも ユーザにフィードバックします。

Reactis Simulator

シミュレートとデバッグ

バグを理解し、影響分析、修正するためには?


  • 一つのステートメントを実行; ステップイン、オーバー、関数を抜ける; 全てのステップを実行、複数のステップのみ実行。
  • リバース実行。
  • データの値は、マウスによるホバー、スコープを開く、変数をウォッチに追加して確認。
  • 未実行のコードは赤でハイライト。
  • 詳細なカバレッジレポートを生成。
  • ブレークポイント設定。
C コードのデバッグ

Reactis Validator

要求事項のチェック

ブレーキは常にクルーズコントロールを解除する?

Validator は、テストスイートを使用し C コードの検証を行います。ユーザは、 まず初めにコードを監視するための条件(式)を装着します。 Validator は、次にテストスイート生成コンポーネントの Tester を使いデータを生成し、 違反を引き起こすデータが無いか確認します。このテストは、検出された異常動作の 原因を診断するためにも利用できます。

C コードの検証

ランタイムエラーの排除は重要です。しかし高品質のソフトウェアへの 一歩に過ぎません。クラッシュはしないが、誤った動作をするプログラムも 見過ごす事は出来ません。Reactis Validator は、あなたのプログラムが 適切に動作するか検証する為の定式化とチェックを提供します。 チェックは、C のアサート機構と同様に定式化されます。

Reactis for C はISO 26262認証を取得しています

TÜV SÜDにより、Reactis for CはASIL Dまでの ISO 26262に準拠した 安全関連ソフトウェアの開発に適格であると認証されています。 ISO 26262への適合について詳しく →
ISO 26262 ソフトウェアテスト Q&A →

TÜV SÜDのロゴ