テストに関するデータ高信頼性。ソフトウエアテスト自動化ツール
航空機業界で採用されるコーディング標準、ユニットテスト、モデル検証手法のご紹介• 企業はテストに75％もの時間を費やしている– テスト担当者によるテスト時間がその50%– 開発者の50%の時間がユニットテストに（全体の25%）• システムが複雑になるにつれ、欠陥の検出は一層困難に• テストの開発に相当な費用がかさんでいる– 良いテストをデザインするツールが少ない– テストそのものの開発や、そのテストにも時間が費やされる

Software Technology

We Cover All Boundaries（テスト期間の半分はテストスクリプトのデバッグ）

Copyright © 2005 Liverpool Data Research Associates Limited

LDRA Ltd

開発期間の２５％、テストの７５％を削減

Liverpool Data Research Associates

ソースコードの静的解析

Founded 1975

コーディングルールや複雑度の解析
可読性、メンテナンス、テストの容易性

Provider of test tools & solutions

テストハーネス、ドライバ、スタブ生成

Metrics Pioneer
Consultancy, support & training動的テストカバレッジ

LDRA on the 自動車

LDRA in the 航空

Click for customers

Click for customers

LDRA - ‘Helping to get throughthe Test’
Click for customers

Back

Back1

LDRA on 鉄道

LDRA in 通信機器

LDRA - ‘Testing along the rightlines’

LDRA - ‘Sound Testing Practice’
Back

Back

LDRA at 船舶

LDRA in the 金融システム

LDRA – ‘Testing to Bank on’
LDRA ‘Testing the Water’
Back

LDRA in 電力システム

Back

LDRA in 宇宙機器

LDRA ‘Power Tools’
Back

LDRA – ‘Expanding theFrontiers of Testing’
Back2

LDRA in 医療機器

LDRA Tool Suite Languages – LDRA Testbed

Languages:

Assemblers:

CC++
C#Ada 83 / Ada 95
Java
Visual Basic 6
Visual Basic.net
Cobol
Coral66
Fortran
PascalPL/Mx86
PL/1Algol‘Software health check’

Back

LDRA Tool Suite Host Platforms• Windows 9x/NT/2000/XP• HP OpenVMS (Alpha &IA-64 Itanium)• VAX VMS
• MVS
• z/OSLDRA Tool Suite for Embedded System Testing

Unix
LinuxSun Solaris
DigitalAIX
SGI IRIX
HP-UX

Unisys
A/ClearPath/MCP
os 2200

Customer Profile

Development Tools

Processors

Ashling Vitra, Pathfinder &asIDE
AONIX ObjectAda
ARM ARMulator / JumpstartCosmic ZAP
Green Hills MULTI &INTEGRITY
Hitex ICEIARKEIL
Lauterbach ICE
Metrowerks CodeWarrior
Microtec XRAY
Nohau Emulators
TASKINGTI CodeComposer
WIND RIVER Tornado & Diab

ARM
ARM7/ARM9Infineon
TriCoreIntel
8051, 80C196 & others
MIPS
SmartMIPS, HiPerSmart,
4K(x)Motorola
MC68K, MPC5xx & 6xx
TI
TMS320Cxx
PowerPC603, 603E, 604 & others& many more…

LDRAによるテストの自動化• Users include major national and multinational companies
and agencies of British, American and other governments:

開発期間の ８１％ をサポート

1 9%
コード生成

Power
Telecomms

Consulting

ドキュメント化
6%

Defense

テストとデバッグ

Automotive &TransportationRailways

28%
コードの解析

Medical

Space

47%

Figure 1: How Developers Spend Their Time
Source: Software Quality: Producing Practical, Consistent Software
Mordecai Ben- Menarche & Garry S. Marliss, Thomson Computer Press
1998

Finance
Aerospace3

LDRA 開発ライフサイクルにおける自動化促進

LDRA Test Manager adds TBreq
DOORSTM,
ReqPro, RTMTM,…

?

nsi g
De view
ReVVee TTees
rriiffii stt
ccaattiioonnZDSD
Platform

TBReq

Unit
Unit Test
Test

LDRA Platform Test Plan Support

Requirements Verification••••Black Box testing/Functional testing/High-Level Reqs
Conforms to DO-178B (Levels A, B & C)
Required for CMMI Level 3 and Above
Applicable to any customer requirements regime

YourZDSD
Test Plan

Path Testing (Design Verification)•••••

TESTEDAll feasible paths tested – utilizes TBrun automation
White Box/Structural testing/Low-Level Reqs
Conforms •toSafety
DO-178B(LevelsSoftware
A, B & C) Plan
CriticalBroad support
IEC 61508(SILSoftware
4 – 0)• Mission
CriticalPlan
Critical support for CMM Level 5• Name your plan!!!

静的解析 ：コードレビュー機能

Text Processing& Office filesstT e agernMaQuRe al ityview

CodeReview

LDRATBreqeXtreme
Testing™
Testing™

LDRA
TestbedCM Tools,
Bug tracking

LDRA
TBrun

多くのスタンダード、ガイドラインをサポート

DO-178B (Levels A, B & C)
DEF STAN 00-55 (Static & Dynamic)
MISRA C / MISRA-C:2004
DERA CBS 7925
IEC 61508 (SIL 4 – 1)
CENELEC 50128
BS EN ISO 9000 / 9001:2000
NUREG 6501

MISRA C / MISRA-C:2004 を完全に対応

MISRA C /MISRA-C:2004 スタンダード解析
プログラミングスタンダード

コードレビューのレポート

コード構成のグラフィカル表示– LDRAはMISRA C 委員会のキーメンバーであり、ソフトウエアテストとそのツールのエキスパートとして広く認知されている

Back4コールグラフによるコード構成のグラフィカル表示

フローグラフによるコントロールフローのグラフィカル表示プログラムブロックとコントロールフローのグラフィカル表示

アプリケーションとシステムファンクションの階層を表示

赤は、アプリケーション緑は、アプリにコールされるシステムファンクション
Back

各デシジョンノードごとのソースコード解析表示
データフロー解析

Back

クオリティーレビュー機能

スタンダード違反

複雑度解析
リファクタリングサポート
LCSAJs パス解析
品質レポートBack

複雑度解析 ：グラフ表示

複雑度解析 ：各種メトリクスの統計• より良く構造化されて、複雑すぎないか？

複雑度解析は、プロシジャーごとに解析され、その構造をレポートする• メンテナンスは容易であるか？

各種複雑度のメトリクスは、プロシジャー、ファイル、システム全体等に対して評価、解析される• 問題が起こり得そうな場所は？

.

直感的なグラフ表示で解析
Back

Back

5

SPV 本質的な複雑さを明示 リファクタリングを促進

LCSAJs パス解析

Structured Programming Verification (SPV) により、複雑度とノットメトリクスは適性に評価される
本質的に複雑である箇所の特定• LCSAJs 各コード行が持っている実行パスを解析• コードのメンテナンス性の重要なメトリクス

グラフィカルに解析• テスト不可能なパスも特定

本質的に複雑である箇所の特定をし、不適切に構造化された箇所のリファクタリングを促進• 最も包括的なパスカバレッジ（テストカバレッジとの融合）• Mandated for European safety
critical military avionics projects

Back

品質の概要表示 ：各メトリクス結果を統合してBack

品質の概要表示（各メトリクス結果を統合）
A representation of bounds tested quality metrics. Bounds
can be user defined or industry standard.

コードの読み易さ
コードの読み易さHowHow easy
easy isis youryoursystemsystem toto understand?
understand?

メンテナンスしやすさ
メンテナンスしやすさ

テストの容易さ
テストの容易さHow
How easy
easy isis itit totomaintain
maintain youryoursoftware?
software?

HowHow muchmuch effort
effort isisneededneeded toto test
test youryoursystem?
system?

Back

デザインレビュー

Back

Code Review – Code Visualisation – Static Callgraph

Requirements Traceability

Interface Analysis

Coupling Analysis

Hierarchal display ofapplication andsystem entities

Data Anomalies

Back6

Design Review – Requirements Traceability

Code Review – Code Visualisation – Static Flowgraph

A vitally important aspect of softwaredevelopment is that “the design be implemented
as required”- Requirements traceability must be verified

Graphical display ofcontrol flow acrossprogram blocks- TBreq offers LDRA / DOORS integration

TBReq can analyse interfaces and verify themagainst specifications
TBreq can also map requirements to file,procedure and statement block levels
Back

Design Review – Coupling Analysis

Back

Design Review – Data Anomalies I
Data flow anomalies are sequences of actions
related to a program variable which are suspected
to be erroneous.

• Nuclear Spider– Procedures that either callor are called from thenodeMessages produced by the
Data Flow Analysis report
detect different types ofdata flow anomalies.

• Extended Spider– Procedures that are either
the nodes ancestors ordescendants• Data Coupling

Data Flow Analysis isperformed across procedureboundaries in the source
file or system-wide.

– Parameter and variableusageBackBackUnit Test

ユニットテスト
SystemTest Environments

Host/Target Testing

Unit

Integration with Test
Verification

Stubs
Full Regression
Testing Support

Stubs

7

The Traditional Testing process

SourceCode
CodeTest
Test
DesignCase
DesignRequirements Validation Ecology

Test
ScriptTest
DesignScriptCreation

Test
Harness
Generation

Test
Execution
Test
Execution

Test Result
Analysis&Test Result
ReportingAnalysis &Source
CodeCodeReporting

Software

Test
DesignTestZDSD Script
Design Design
Review

SoftwareEngineer

SoftwareEngineerEngineerTBreq
Test
Specifications

Labour Intensive
Limited Analysis & Understanding
Effect Driven
Regression Challenges

ResultZDSDTest
Analysis &Test Reporting
Manager

Test
Execution

Need Stubs?

Test
Case
Generation

Test
Harness
Generation

Test
Execution

Test Cases

Back

Design Verification Ecology

Source
Code
Code

Test
DesignTest
ZDSD Script
Design Design
Review

SoftwareBack

Unit Test – Automated Testing on Target

ResultZDSDTest
Analysis &Test Reporting
Manager

Test
Execution

Need Stubs?

SourceCode
CodeTest
DesignResultZDSDTest
Analysis &Test Reporting
ManagerTestZDSD Script
Design Design
Review

Test
Execution

Software

SoftwareEngineerEngineer

SoftwareEngineerEngineereXtreme
Testing!

LDRA
TBrun

Test Result
Analysis &Reporting

Test
Case
Generation

Test
Harness
Generation

Test
Execution

Test Result
Analysis &Reporting

LDRA
LDRA
TBrun

TBrun

Test
Case
Generation

Test
Harness
Generation

Test
Execution

Test Result
Analysis &Reporting

Test Cases
User- configurable fordifferent target environments

Back

Unit Test – Integration with Test Verification

Back

ユニットテスト自動化機能 ：静的解析の情報を基にテストハーネス自動生成

SourceCode
CodeTest
DesignTest
ZDSD Script
Design Design
Review

Test Result

ResultZDSDTest
Analysis &Test Reporting
Manager

Test
Execution

SoftwareEngineer

スタブコードの自動生成

グローバル変数の解決
Test
Case
Generation

LDRA
TBrun

Instrumented
SourceCode

Test
Harness
Generation

Test
Execution

Test Result
Analysis &Reporting

ZDSD
Test
Verification

ソースの無いシステムコー
ルもプロトタイプ化できる
リグレッションテストをサポート

Back8

動的テストカバレッジ解析

コールグラフ と テストカバレッジの融合

カバレッジ解析
テストプランニング
ダイナミックコールグラフ
ハイパーリンクでフローグラフへ

ダイナミックフローグラフ
レポート表示
データセットプロファイル
プロシジャー/ファンク
ションコール間のテストカバレッジ

グラフィカルに表示
Back

フローグラフ と テストカバレッジの融合

ソースコード表示 によるテストの評価テストされていないコードを特定

各種レポートによる詳細情報

注釈による
分岐ポイントの明示

テストカバレッジのグラフィカル表示
青：未実行、赤：済み

Back

レポート機能 によるテストカバレッジの概要

Back

テスト管理機能

ソフトウエア変更箇所の検出

リグレッションテストの管理

テスト結果のドキュメント化

Back9

ソフトウエア変更箇所の検出

リグレッションテストの管理

静的解析からソースコードの変更箇所を見出し、テストへの影響を評価

テスト（スクリプト）とその結果は記録され、関連するコードやテスト
バージョンコントロールシステムと合わせて管理されるユニットのリグレッションテストは、ビルドとテストの繰り返しサイクルの一環として自動化される

Back

Back

静的解析のみ？？ ：従来のケース

テスト結果のドキュメント化
完全なドキュメントによるレポートで、開発者、テスト担当者、保守、QA担当者全てに監査の為のデータを提供

静的解析

ソースコードの品質を向上

レポートは、品質、メトリクスなどを高度に統合し概要を表示するが、各項目ごとへの詳細へ掘り下げた結果表示も可能

Back

静的解析,ユニットテスト,動カバレッジツールの融合

要求仕様、デザインモデル検証による自動テスト生成・実行ツール

静的解析

ソースコードの品質を向上

ユニットテスト
リグレッション等の自動化テスト結果のグラフィカル
解析

テスト
カバレッジ
結果

ソースコードに対するテストの深い洞察と、開発サイクルにわたるテスト自動化を促進、

We Cover All Boundaries
T-VEC Technologies, Inc.

10

ＴＡＦ：テスト自動化のフレームワーク
要求仕様とテストのリンク
DOORS
要求仕様書や、 T- VEC (TTM)
要件管理ツール
要求仕様を(DOORS など) 表でモデル表記

Simulink
Tester GUI• 要求仕様を表でモデル表記• 曖昧な要素を形式的モデルに変換
Requirements/Design Capture
Captured Model Translation• デザインモデル• シミュレーション• 自動コード生成

3

LDRA-T VEC Test Vector
Generation System

Simulink
Stateflow

Test Vectors• コードカバレッジ(MCDCなど)• 静的解析(MISRA など)• モデル検証• テストベクタ生成• モデルテストカバレッジ• テストドライバー生成• テスト結果解析

1
2

要求仕様～ Simulink モデル～テストへのトレーサビリティ－
ロッキードマーチン社によるJSF開発事例

TTM

モデルベース検証と自動テストの利点
Simulinkモデルとテストのリンク• Model-Based Verification–

モデル検証 :

モデル上の矛盾、不一致、ドメインエラー、ゼロ割りなどの欠陥を検出– モデルベーステスト： （モデル検証の副次的な利点）
テストベクタ生成、モデルテストカバレッジ、テストドライバー生成、テスト実行、テスト結果解析、テストレポート生成
・テストケース生成、期待出力値の判定等のマニュアル作業を排除
・テストスクリプト（ホスト上、ターゲット上）の記述を自動化
・要求仕様やモデルに対する、テストカバレッジの解析・モデルをバリデーションする為のシミュレーションデータの供給

Verification and Validation の自動化

• モデル検証
モデル上の欠陥や、入力値範囲の見込み違いを発見• モデル検証からテストを生成––モデル上の全論理パスに対してテスト入力と予測出力値のベクタ
テストシーケンスベクタは、マルチサイクルな実行にわたるテスト入力と予測出力値• テストドライバーを生成––––

テストベクタやシーケンスベクタを基にテストドライバの自動生成
ソースコードへのテストドライバーの実行により、モデル対アプリケーションの検証
モデルの実証および、モデルに対するテストベクタ生成を検証するための、MATLABシミュレーション用テストドライバー
テストドライバーは如何なる環境へも対応

テストベクタ生成• ユニット、インテグレーション、システムレベルテスト• テストベクタは、テスト入力・期待出力値、及びモデルへのトレーサビリティを含む• Simulinkモデルへの依存性なく、予測出力値が生成される• テストカバレッジ、～MCDCレベル–––

Default - covers explicit paths (if, switch)
Path - covers all paths (implicit and explicit)
Condition - covers all conditions (MC/DC)• モデル上の動的な振舞いの為の、テストシーケンスベクタ

11テストベクタ生成（続き）

テストドライバー生成• モデル上の全コントロールパスを認識• 各パスごとの収束条件が解析される• テストは収束される領域に沿って選択される• テストケースは入力領域に対するパス上の収束条件を加味して選択• 追加の収束条件は、更なる特性の解析、実証など

テストドライバー生成用テンプ
レートは、いかなる言語・スクリプト・実行環境に対応
また、コードカバレッジツールなど他のツールとも柔軟に統合

TestVectors

T-VEC
DriverGenerator• Included templates:– C test drivers for RTW GRT andERT code generator– Simulation scripts forSimulation
Matlab/Simulink

Early Defect Identification and Prevention

Rate of Discovery

Unique Defects

Old

Late Defect
Discovery Results inSignificant Rework

DefectPrevention

With -T VEC

TargetHost

Model-based Analysis Finds Hidden Defects• Finding and fixing defects early produces costs
savings
When defects arefound early,
budgets andschedules can stay intact

Test Driver
Templates

ModelAnalysis
Technique/ToolDefects

2527

62

Inspections

SCRtoolAnalysis

TAF 1.0/T-VEC

OffuttToolFGS CoRE
Text-based ModelFGS SCR
Model V1

1995

1997

33

TAF 2.0/T-VEC

Defects
Approx.
9 Revisions

Time
Requirements
Writing

Design &BuildReleaseto TestRelease
to Field

100X Decrease in Cost of Removing Defects

FGS Textual
Requirements

FGS SCR
Model V91998

1999

2001

Rockwell Collins Pilot: Flight Guidance System (FGS)- Flight Critical Embedded System

Source: Ed Safford, Lockheed Martin, Software Technology Conference, 2000.

General Approach

火星探査機に於ける事例
Mars Lander Descent Path
5 KM
TDM_started = TRUE

火星探査機(Mars Polar Lander)の欠陥を24時間以内に検出($160,000,000 program failed
due to software bug)
Executive• Smart Card Verification Process Overview

Touchdown Monitor (TDM)
Textual Requirements

CMD_disable_enable
TDM_started
TDM
Module40 Meters
CMD_disable_enable = enable

Mars Surface

Sensor Valuefor Each of Three
Legs
LegSensors

T-VEC

1.
2.
3.
4.
5.
6.

Building a SCR model specification for the PIV using TTM
Translating the TTM model into T-VEC specifications
Generating the test vectors from the T-VEC specifications
Generating test drivers to execute the test vectors against an implementation of the PIV
Execute the test driver (carried out by the PIV Tester)
Evaluating test results and produce test results report (carried out by the PIV Tester)12追加： LDRA社解析ツール

まとめ

ＴＴＭ 要求モデル
Simulink モデル

Simulinkモデルや要求仕様モデルとは独立してモデル上の欠陥を解析し、テストベクタ 及びシーケンスベクタを自動生成。 生成されるテストドライ
バーはモデルが正しくコード化されたかの検証。 テストベクタはモデル上の各要素の検証、テストシーケンスベクタはモデル上の動的特性の検証に使用されうる。

- VEC
Tモデル
変換

モデル検証
テストベクタ生成
テストドライバー
生成、実行
自動生成されたコード

LDRA
Testbed

要求仕様書と要求モデル

要求エンジニア

デザイン、コーディングシステム

Simulink
デザインモデルInterfaces

テスト結果

マニュアル生成されたコード
解析データ

LDRA
Testbed

動的テストカバレッジ

テスト
実行環境

動的テストカバレッジ
静的解析(e.g. MISRA) (e.g. MC/DC stats)

静的解析

テスト結果

TAFTTM

テストエンジニアによる要求のモデル化

モデル検証

T-VEC
テストベクタ
テストドライバー

要求仕様－モデル－テストのトレーサビリティを実現

ありがとうございました

Software Technology

We Cover All Boundaries

富士設備工業株式会社 電子機器事業部
http://www.fuji-setsu.co.jp
E-Mail： info@fuji-setsu.co.jp

13