ガイオ・テクノロジー プレゼン資料

JaSST’15

Tokyo

テスト自動化によるエンジニアのしあわせのかたち〜ガイオのツールから〜
2015年2月21日
ガイオ・テクノロジー株式会社
⼤⻄ 建児

Copyright © 2015 GAIO TECHNOLOGY Kenji Onishi ALL RIGHTS RESERVED.

1

ガイオ・テクノロジー プレゼン資料

事例 ガイオのV&Vに対応するツールより
設計・実装 ステージ
要求定義

製品テスト

基本設計

仮想システムテスト 統合テスト

実装

詳細設計

構造検証

単体テスト

記述検証

検証ステージNo1 S.S.

マイコンの制御するハードウェアモデルを仮想モデルとして提供し、HW/SW統合評価が可能。

CP2

モジュール構造図、共有変数により、ソフト部品の構造検証のための情報を提供。

MC-Checker

モデルとコード（オブジェクト）の一致性確認（B2B)が一つのツールで実⾏可能。

カバレッジマスター

参照・更新変数を基にした関数の評価環境を提供。
カバレッジ測定やテストデータ生成も可能。

Copyright © 2015 GAIO TECHNOLOGY Kenji Onishi ALL RIGHTS RESERVED.

CP2MISRA-Cのガイド
ラインチェックが可能。

2

ガイオ・テクノロジー プレゼン資料

テスト設計とテストツールの関係
仕様ベース

構造ベース

テスト観点
仕様とソースの一致性
仕様の複雑性に依存

ブラックBOX
仕様不一致

想定外の動作テスト観点
コード網羅性プログラム構造に依存

ホワイトBOX
コーディング初歩的ミス
デッドコードNULLポインタ

メモリリーク/不正アクセス

ゼロ割

オーバ、アンダーフロー

キャスト

Copyright © 2015 GAIO TECHNOLOGY Kenji Onishi ALL RIGHTS RESERVED.

3

ガイオ・テクノロジー プレゼン資料

組込み分野での単体テスト

手作業とツールの違い■ ICEを使⽤し１関数６０分で単体テストを⾏っている場合．．．
• 作業時間の内訳は・・– ソース解析＆テストデータ作成： ３０分– ICEによる手作業でのテスト実⾏： ３０分■ カバレッジマスターの導入により、初回のテストにおいては・・– ソース解析＆テストデータ作成：– カバレッジマスターで⾃動実⾏：■ ２回目以降の反復テストでは３０分 ←同じ時間がかかる
数秒 ←テスト⾃動化により工数はゼロ– ソース解析＆テストデータ作成、テスト実⾏の作業工数もゼロになる

ICEによる手作業

カバレッジマスター導入の初回

テストデータ作成
３０分

テストデータ作成
３０分

３０分

６０分
ICEによるテスト実⾏
３０分

テスト実⾏は数秒（ほぼゼロ）

５０％削減

導入後の反復テストでは・・
既存のテストデータを使⽤するためデータ作成工数はない

テスト実⾏は数秒（ほぼゼロ）

Copyright © 2015 GAIO TECHNOLOGY Kenji Onishi ALL RIGHTS RESERVED.

作業工数はゼロ4

ガイオ・テクノロジー プレゼン資料

ガイオ単体テストツールの⾃動化スコープ■ 構造カバレッジ関数を選択するだけで、テスト設計からカバレッジ結果出⼒までを⾃動化− 単体テストの工数となる作業を⾃動化••••

CSV形式のテストファイルフォーマットを⾃動作成
関数の入出⼒変数を⾃動抽出、⾃動設定構造カバレッジを満たす C1、MC/DCテストデータ⾃動生成
単体テストの⾃動実⾏ （入出⼒テスト、カバレッジ計測） 関数を選ぶだけでテスト対象関数を選択

関数入出⼒変数の自動設定
テストファイル
自動作成＜自動化される工程＞

構造カバレッジテスト
C1、MC/DC
テストデータ自動生成

直ぐに構造カバレッジ結果が確認できる

単体テストの自動実⾏と結果出⼒

Copyright © 2015 GAIO TECHNOLOGY Kenji Onishi ALL RIGHTS RESERVED.

5ガイオ・テクノロジー プレゼン資料

サーバー駆動によるリグレッションテスト⾃動化■ バッチファイルよるテスト⾃動実⾏• テスト実⾏時にソース、テストリソースをサーバーからチェックアウト―ターゲットコードのビルド―MC/DC測定⽤埋め込みコード生成、ビルド―テストCSVファイルを指定してテスト実⾏

新規関数のテスト設計

ソース修正/マイコン変更 に伴う⾃動テスト

各テスト設計者 テスト設計

テストケース確認

カバレッジマスターＵＩ

テスト設計者
テスト管理者> sstmanager

テストケーススタブ関数などテストリソース

ＣＬＩによるバッチ
テスト⾃動実⾏

CLI機能

テスト結果、カバレッジ結果

Copyright © 2015 GAIO TECHNOLOGY Kenji Onishi ALL RIGHTS RESERVED.

6

ガイオ・テクノロジー プレゼン資料

単体テスト設計プロセスをツール機能に実装■ ガイオ単体テスト受託サービスの手法、ノウハウをツールに実装• 単体テストの品質向上と、テスト設計の平準化、標準化、効率化を図る機能• 独⾃の分析表により、テスト設計のレビュー、クロスチェックを容易にする

テスト設計のテスト設計のレビュー、クロスチェックが容易

ユニットテストデータ分析機能

組合せ生成

入力データ分析表

出力データ分析表

テストケース表要求仕様の確認に必要な単体テスト入力条件を単体テスト入力条件分析/設定/レビュー

要求仕様の確認に必要な単体テスト
単体テスト出力値
テスト出力値を出力値分析/設定/レビュー

入力データ分析表から生成したテストケース（期待値を設定）

設計したテストが十分かどうかを評価設計したテストが十分かどうかを評価

カバレッジ
マスター用
CSVファイル
出力

生成した組合せが十分かを評価

Copyright © 2015 GAIO TECHNOLOGY Kenji Onishi ALL RIGHTS RESERVED.

7

ガイオ・テクノロジー プレゼン資料

ユニットテストデータ分析機能■ 入⼒データ分析表を短時間で効率的に作成• 最も工数のかかるテストデータ設計⽤の分析表をツール機能で⾃動作成• 静的解析機能により、コード構造に基づいた「テスト項目」を⾃動作成• コード構造と要求仕様を照らし合わせながら効率的に仕様確認/テスト設計■ テスト設計の粒度を標準化するための 設計ルールを指定可能• 境界値、最⼤/最小値、同値分割による代表値などを漏れなく設定要求仕様とコード構造の対応を確認しテストデータを設定

要求仕様とコード構造が確認された要求仕様とコード構造が確認されたテストケース

ユーザー
要求仕様書

組合せ生成
組合せ生成

func(){コード構造情報}
テスト対象関数

コード構造を自動解析しテスト項目の枠組みを自動設定

テストデータ分析エディタ
Copyright © 2015 GAIO TECHNOLOGY Kenji Onishi ALL RIGHTS RESERVED.

8ガイオ・テクノロジー プレゼン資料

ブラックボックステストで⾃動化できること■ ユニットテストデータ分析：単体テストの品質向上と効率化に向けブラックボックスでのテスト設計を支援
単体テストを標準化させるプロセス

テスト基準

構造ベーステスト
分析

ユニットテスト
データ分析

テストベクター
作成

レポート

ツール化

ユニットテストデータ分析機能

入⼒データ分析表

出⼒データ分析表

テストケース表

カバレッジ
マスター⽤
テストファイルレビュー（クロスチェック）が容易
Copyright © 2015 GAIO TECHNOLOGY Kenji Onishi ALL RIGHTS RESERVED.

9