AUTOSAR OSに対するテストケースおよびテストプログラムの自動生成

Similar documents
名古屋 学組込みシステム研究センター (NCES) の AUTOSAR に対する取り組み 2013 年 8 23 ( ) 名古屋 学鴫原 1

個人依存開発から組織的開発への移行事例 ~ 要求モデル定義と開発プロセスの形式化 による高生産性 / 高信頼性化 ~ 三菱電機メカトロニクスソフトウエア ( 株 ) 和歌山支所岩橋正実 1

SpeC記述のC記述への変換 (SpecCによるソフトウェア記述の実装記述への変換)

アジェンダ Renesas Synergy TM プラットフォーム構成 ThreadX とは ThreadX の状態遷移 ThreadX とμITRONの機能比較 まとめ ページ 2

D5-2_S _003.pptx

PowerPoint プレゼンテーション

機能安全に必要なトレーサビリティとは

トレースログ可視化ツールTraceLogVisualizer(TLV)の一般公開について

スライド 1

1 現コンフィギュレータの問題点 1.1 独自言語 TOPPERS カーネル開発者 ( 特に TOPPERS カーネルのポーティングを行う者 ) は 現コンフィギュレータが提供する tf を使用する必要がある しかし tf は TOPPERS の独自言語であり 初めて TOPPERS カーネルを開発

Microsoft PowerPoint - 教材サンプル1&2.ppt

Microsoft PowerPoint - A1-2_株式会社ネクスト_藤澤正通_S _005.pptx

Sol-005 可視化とRCSA _ppt [互換モード]

ソフト活用事例③自動Rawデータ管理システム

NEXCESS基礎コース01 組込みソフトウェア開発技術の基礎 ソフトウェア開発プロセス編

スライド 1

Oracle SQL Developer Data Modeler

スライド 1

OSSTechプレゼンテーション

AUTOSAR OS仕様とTOPPERS/ATK2の使い方

セキュリティテスト手法 ファジング による脆弱性低減を! ~ 外部からの脅威に対し 製品出荷前に対策強化するために ~ 2016 年 5 月 12 日独立行政法人情報処理推進機構技術本部セキュリティセンター情報セキュリティ技術ラボラトリー鹿野一人 1

PowerPoint プレゼンテーション

効率の良いテストシナリオ? テストの進め方 テストプロセス テストの設計 より少ないテストケースで より多くのバグを見つける Mercury Interactive Japan KK all rights reserved. 2

PowerPoint プレゼンテーション

<4D F736F F F696E74202D DD8D8782ED82B98B5A8F7082F B582BD835C F E707074>

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ

Microsoft PowerPoint - 【最終提出版】 MATLAB_EXPO2014講演資料_ルネサス菅原.pptx

使用する前に

外部からの脅威に対し ファジング の導入を! ~ さらなる脆弱性発見のためのセキュリティテスト ~ 2017 年 5 月 10 日独立行政法人情報処理推進機構技術本部セキュリティセンター小林桂 1

press-1005.OHP

システム操作インターフェイス最適化によるテスト自動化ROI向上

智美塾 ゆもつよメソッドのアーキテクチャ

変更の影響範囲を特定するための 「標準調査プロセス」の提案 2014年ソフトウェア品質管理研究会(30SQiP-A)

6 2. AUTOSAR 2.1 AUTOSAR AUTOSAR ECU OSEK/VDX 3) OSEK/VDX OS AUTOSAR AUTOSAR ECU AUTOSAR 1 AUTOSAR BSW (Basic Software) (Runtime Environment) Applicat

TOPPERS プロジェクトとは? TOPPERS の概要と最近の取り組み ITRON 仕様の技術開発成果を出発点として, 組込みシステム構築の基盤となる各種の高品質なオープンソースソフトウェアを開発するとともに, その利用技術を提供 組込みシステム分野において,Linuxのように広く使われるオープ

Copyright 2014 NTT DATA Corporation 2 INDEX 1. 一括請求 Assist とは 1-1. でんさいに係るサービスの関係性 1-2. 一括請求 Assist の必要性 1-3. 一括請求 Assist の特長 2. 機能紹介 2-1. 一括請求 Assist

Using VectorCAST/C++ with Test Driven Development

なぜバグ曲線は収束するのか

スキル領域 職種 : ソフトウェアデベロップメント スキル領域と SWD 経済産業省, 独立行政法人情報処理推進機構

PowerPoint プレゼンテーション

Rational Roseモデルの移行 マニュアル

背景 1 / Reprinted with permission from paper c 2013 SAE International.

機能検証トレーニング コース一覧


PGRelief C/C++ 強化ポイント説明書

15288解説_D.pptx

PowerPoint プレゼンテーション

テスト設計スキル評価方法の提案と実践事例

クラス図とシーケンス図の整合性確保 マニュアル

スライド 1

CodeRecorderでカバレッジ

はじめに 本ドキュメントは Redmine を使用して稼働する定量的プロジェクト管理ツール ( 以下 IPF と略します ) のヘルプです IPF の操作に関わる機能を解説しており Redmine 及び構成管理ツール (Subversion Git) の標準機能については 本ヘルプの記載対象外として

各種パスワードについて マイナンバー管理票では 3 種のパスワードを使用します (1) 読み取りパスワード Excel 機能の読み取りパスワードです 任意に設定可能です (2) 管理者パスワード マイナンバー管理表 の管理者のパスワードです 管理者パスワード はパスワードの流出を防ぐ目的で この操作

CANapeを用いたラピッドコントロールプロトタイピングのバイパス手法による制御モデル開発

システム操作インターフェイス最適化によるテスト自動化ROI向上

Microsoft Office Visioによる 施設管理について

PowerPoint Presentation

障害管理テンプレート仕様書

テスト設計コンテスト

JBoss と Arquillian で実現する 究極のテスト環境 レッドハット株式会社 JBoss サービス事業部 コンサルタント 山 田義和

ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spar

お客様からの依頼内容とその現状

Microsoft PowerPoint - Session4古賀様.ppt

Microsoft Word - ModelAnalys操作マニュアル_

040402.ユニットテスト

PARTⅢ 検証事例 2. トレーサビリティ管理の自動化に踏み切った理由や経緯 (1) 国際スタンダード認証に関する課題 ISO DO-178B/C IEC などの国際スタンダードでは 開発工程全般にわたって要件が満たされていること ( システムの正しい要件が 正しい方法で

CW6_A1441_15_D06.indd

i コンピテンシ ディクショナリ を 活用した品質エンジニアの育成 その 2 独立行政法人情報処理推進機構 HRD イニシアティブセンター 奥村有紀子

第 3 回 TERAS 成果報告会 TERAS V3 紹介と今後の展開 Tool Environment for Reliable and Accountable Software 一般社団法人 TERAS 理事開発委員長渡辺政彦 2014 年 3 月 12 日

Simulinkモデル開発における工夫事例

HIGIS 3/プレゼンテーション資料/J_GrayA.ppt

PowerPoint プレゼンテーション

Transcription:

ソフトウェアテストシンポジウム 2012 JaSST'12: Japan Symposium on Software Testing 2012 AUTOSAR OS に対するテスト ケースおよびテストプログラムの 自動生成 2012 年 1 月 25 日 日本電気通信システム株式会社風間佳之 1

アジェンダ 1. はじめに 2. 既存のテストスイートの概要 3. テストスイート開発における課題 4. 組み合わせテストツールの導入検討 5. 組み合わせテストツールによる課題解決 6. 実施結果と評価 7. まとめ 2

背景 ECU(Electronic Control Unit) 数の増加 ソフトウェア複雑性の増加 車両内通信の増加 省エネルギー化と安全性に対する要求の増加 車載ソフトウェア開発規模が増加 HW に依存しない非競争領域を共通化したプラットフォームにする事により, 問題を解決する 3

AUTOSAR とは? AUTomotive Open System ARchitecture 車両ソフトウェアにおけるオープンシステムアーキテクチャ AUTOSARとは 大規模化する自動車用ソフトウェア開発における様々な課題を解決するために生まれ 標準化されたアーキテクチャ AUTOSAR Consortium OEM Tier 1 Supplier Tool vender Software developer 4

AUTOSAR のイメージ Non- AUTOSAR AUTOSAR 5

研究の紹介 純国産 AUTOSAR OS TOPPERS/ATK2(Automotive Kernel 2) のコンソーシアム型共同研究 / 開発 具体的な活動 AUTOSAR OS 仕様を明確化, 修正 自由に使える日本語版の仕様書の作成 オープンソース実装 検証スイート開発 AUTOSAR OS の日本における標準を策定する 6

コンソーシアム型共同研究 技術者, 研究者 企業の経験 人材養成 研究開発成果 AUTOSAR OS の日本における標準 研究開発成果 教員, 研究者 研究の知見 複数の企業 名古屋大学組込みシステム研究センター (NCES) 1 社当たりの開発投資の削減 AUTOSAR OS 仕様に対する知見の取得, 技術者の教育 産学連携による技術課題の解決 7

2011 年度コンソーシアム型共同研究参加企業一覧 企業名 (50 音順 ) 株式会社ヴィッツ株式会社 OTSL 株式会社サニー技研株式会社デンソー株式会社東芝トヨタ自動車株式会社日本電気通信システム株式会社パナソニックアドバンストテクノロジー株式会社富士ソフト株式会社富士通 VLSI 株式会社ルネサスエレクトロニクス株式会社 8

AUTOSAR OS の検証における背景 過去のコンソシーアム型共同研究で実績のあったテストスイートを AUTOSAR OS の検証に活用したい μitron 仕様の OS である TOPPERS/ASP/FMP を対象にしたテストスイートである TTSP(TOPPERS Test Suite Package) をベースに AKTSP(Automotive Kernel Test Suite Package) を開発 補足 :TOPPERS 新世代カーネル μitron 仕様をベースとして, 信頼性, 安全性, ソフトウェアポータビリティを向上させるための改良 拡張 シングルプロセッサ向け RTOS:TOPPERS/ASP カーネル マルチプロセッサ向け RTOS :TOPPERS/FMP カーネル 9

1. はじめに 2. 既存のテストスイートの概要 3. テストスイート開発における課題 4. 組み合わせテストツールの導入検討 5. 組み合わせテストツールによる課題解決 6. 実施結果と評価 7. まとめ 10

システムサービステストの概要 外部仕様書に基づいてシステムサービス発行前後のシステム状態の変化を確認する ActivateTask の仕様抜粋 ActivateTask タスクの起動 機能 ActivateTask は,TaskID で指定されたタスクの状態を, 休止状態から実行可能状態へ遷移させる 前状態 TASK1 ( 実行中 ) 優先度 : 高 TASK2 ( 休止中 ) 優先度 : 中 仕様の振舞いを確認するテストを実施する 自タスク以外のタスクを指定して呼び出す. 休止状態のタスクを指定する. 対象タスクの優先度が, 実行状態のタスクより低い場合, 対象タスクが実行可能状態になること. 処理 TASK1 後状態 ActivateTask TASK2 仕様, 実装の両面からテストを実施 TASK1 TASK2 ( 実行中 ) ( 実行可能 ) 11

ハンドコーディングでのテストプログラム開発の問題点 1. テストプログラムの可読性, 保守性の低下テストケースの実現方法が複数存在するため, 開発担当者が異なることによるばらつき発生 2. テストの開発工数 ASP カーネルの API は 121 個存在し, 抽出したテストケースは 1,669 件 3. 異なる RTOS への流用不可同一テストシナリオに対する RTOS 毎の重複開発 テストプログラムを生成するツールを開発 12

テストシナリオからのテストプログラム生成 テストケース ( ブラックボックス ) テストケース ( ホワイトボックス ) 形式化したテストシナリオ 前状態 < システムサービス発行前のシステム状態 > 処理 < システムサービス発行処理 > テストケースを前状態 処理 後状態へ具体化する 後状態 < システムサービス発行後のシステム状態 > 入力 AKTG 出力 (Automotive Kernel Test Generator) Ruby で開発 約 22,000 行 テストシナリオを実現するテストプログラム test.cfg test.h test.c TESRY 記法 (TEst Scenario for Rtos by Yaml) AKTG は TTSP で開発した TTG(TOPPERS Test Generator) をベースに開発する 13

TESRY 記法 階層型データ形式言語である YAML 形式を用いて全カーネルオブジェクトの属性 / 状態の記述方法を定めた (TESRY 記法で記述したデータファイルを TESRY データと呼ぶ ) ( 例 )ActivateTask のテストケース 前状態優先度中の TASK1 が実行状態優先度高の TASK2 が休止状態 処理 TASK1 が ActivateTask(TASK2) を発行して E_OK が返る 後状態 TASK1 が実行可能状態となる TASK2 が実行状態となる pre_condition: TASK1: type : TASK tskpri : TSK_PRI_MID tskstat: running TASK2: type : TASK tskpri : TSK_PRI_HIGH tskstat: waiting wobjid : SLEEP do: id : TASK1 syscall: ActivateTask(TASK2) ercd : E_OK post_condition: TASK1: tskstat: ready TASK2: tskstat: running 14

1. はじめに 2. 既存のテストスイートの概要 3. テストスイート開発における課題 4. 組み合わせテストツールの導入検討 5. 組み合わせテストツールによる課題解決 6. 実施結果と評価 7. まとめ 15

課題 : カーネル仕様の差異による組み合わせパターン増加 検査対象 OS が μitron 仕様から AUTOSAR 仕様に変更 OS が提供する API の数は減少したが 仕様の複雑化によりテストとして考慮すべき組み合わせパターンが増大 ( タスクならば前状態だけで ASP の 4 倍の組み合わせになる ) ASP カーネルのテストケース ATK2(SC1) のテストケース 1,669 件増加 5,000 件? 従来型のテスト開発プロセスで行っていた, 組み合わせテストケースの手動作成が困難に! 16

テスト手法の適用による効率的な組み合わせテストケース削減の検討 組み合わせ増加に対し, テスト手法による効率的な組み合わせテストケースの削減をすべきでは? しかし 組み合わせ削減により RTOS の品質に与える影響が不明 例 : 特定の因子の組み合わせのみ網羅に注力して組み合わせ削減 どこに注力すべきか, データの蓄積が無いのでポリシーが作れない できることなら, 考慮しうる全組み合わせでのテストを実施したい 17

従来型プロセスの課題と改善ポイント テストプログラム生成ツールは再利用したい ( 拡張は必要 ) テストシート作成 TESRY データ作成 テストシートテストファイルレビュー テストプログラム生成 (AKTG) テストプログラム実行 実行パス確認 手動では作りきれない & 仕様変更時の保守ができない! AKTG テストシート ( テキストファイル ) テストケース テストシナリオ 増大 増大 TESRY TESRY データ TESRYデータ テストプログラム test.c test.h test.cfg 実行カバレッジファイル (gcov ファイル ) 組み合わせテストケース作成 +TESRY データ生成を自動化すれば, テストプログラム生成, 実行まで自動で実施可能になりそう 組み合わせテストケース作成ツールの導入へ 18

1. はじめに 2. 既存のテストスイートの概要 3. テストスイート開発における課題 4. 組み合わせテストツールの導入検討 5. 組み合わせテストツールによる課題解決 6. 実施結果と評価 7. まとめ 19

組み合わせテストツールの導入検討 組み合わせパラメータと制約を定義 ActivateTask のテスト : 対象タスクの状態 READY RUNNNING WAITING SUSPENDED 対象タスクの種別 BASIC EXTENDED 入力 ツール 組み合わせテストケース生成 出力 ActivateTask0001.yaml Test_A: ActivateTask0001: pre_condition: pre_condition: TASK1: TASK1:...... do: do: syscall: slp_tsk() syscall:... ActivateTask()... post_condition: post_condition: TASK1: TASK1:... テストシート TESRY データ ツール要件 1: 出力フォーマットはYAML 形式が望ましい ソースコードが公開され, 拡張性があることツール要件 2: 組み合わせに対して制約条件を指定したい 仕様によって組み合わせできないパラメータを排除できること 20

組み合わせテストツールの選定 候補 ALLPAIERS HEXAWISE QICT PictMaster 選 定 PictMaster とは? 岩通ソフトシステム社が開発した組み合わせテストケース生成ツール. PICT という Microsoft 社が無償で公開している CUI ベースの組み合わせテストツールを,VBA を使って GUI( エクセル ) 上で扱える. 特に着目した点 組み合わせテストがエクセルベースでモデル化されるので扱いが容易 日本語マニュアルが整備されておりツールの習得に時間がかからない オープンソースになっており, 拡張性が高い 21

PictMaster の入力 パラメータ, 値入力表 制約表 結果表 組み合わせテストをエクセルにモデル設計 22

PictMaster の出力 組み合わせパラメータと期待結果が形式化されて出力される 23

1. はじめに 2. 既存のテストスイートの概要 3. テストスイート開発における課題 4. 組み合わせテストツールの導入検討 5. 組み合わせテストツールによる課題解決 6. 実施結果と評価 7. まとめ 24

PictMaster による組み合わせテストケース,TESRY データの自動生成 TESRY データ 赤字 : 組み合わせ対象パラメータ pre_condition: TASK1: type: TASK tstat : RUNNING spolicy: AK_SCHFULL TASK2: type: TASK tstat: SUSPENDED inipri: TSK_PRI_HIGH do : id: TASK1 syssrv: ActivateTask(Task2) rettype: StatusType retva l: E_OK post_condition : TASK1: tstat: READY TASK2: tstat: RUNNING パラメータ, 値入力表 制約表 結果表 25

PictMaster による組み合わせテストケース,TESRY データの自動生成 外部仕様書 テスト設計 VBA 修正量を考え, 出力形式は従来型の CSV 形式のままにした テストシート 入力 PictMaster 組み合わせテストケース +TESRY 生成 出力 TESRY データ (CSV 形式 ) 入力 Ruby スクリプト (160 行程度 ) CSV 形式 YAML 形式変換 出力 行毎に出力される組み合わせパターンに付随して CSV 形式の TESRY データを出力するように,PictMaster の VBA を 60 行程度修正, 拡張した PictMaster と Ruby スクリプトを連携させることで, TESRY データを自動生成 ActivateTask.yaml ActivateTask0001: pre_condition: TASK1:... do: syscall: ActivateTask()... post_condition: TASK1: TESRY データ 26

1. はじめに 2. 既存のテストスイートの概要 3. テストスイート開発における課題 4. 組み合わせテストツールの導入検討 5. 組み合わせテストツールによる課題解決 6. 実施結果と評価 7. まとめ 27

実施結果 2011/12 月末時点で 6,107 件の TESRY データを自動生成し, テストを実施した. TESRY データ総行数 :20 万行以上 PictMaster 改造量 : 約 50 行 Ruby スクリプト作成量 : 約 160 行 発見したバグ バグ種別 仕様バグ 実装バグ 発見件数 8 件 7 件 28

評価 ~ テストプロセス改善結果 ~ テストシート作成 TESRY データ作成 テストシートテストファイルレビュー テストプログラム生成 (AKTG) 自動化 テストプログラム実行 実行パス確認 AKTG テストシート (PictMaster_XLS ファイル ) テストポリシー TESRY TESRY データ TESRY データデータ テストプログラム test.c test.h test.cfg 実行カバレッジファイル (gcov ファイル ) 組み合わせパラメータ, 値, 制約 期待結果 (TESRY 生成表 ) 保守対象を局所化 得られた効果 生産性が向上 - TESRY データを手動 自動生成 - テスト設計における組み合わせ漏れレビューが容易に 保守性が向上 - 仕様変更に対する保守性が向上した - テストケースの属人性を排除 29

評価 ~ 実装バグ分析 ~ システムサービスを発行する処理単位 Task ErrorHook ShutdownHook GetEvent() Category1 ISR Category2 ISR AlarmCallback PreTaskHook PostTaskHook StartupHook ProtectionHook 特定の処理単位から呼び出した場合のみ, 仕様に無いエラーが返る 複数ある処理単位のテストなど, 手動ならばポリシーで部分網羅しかしなかった組み合わせを全網羅することでバグを発見できた 30

課題 PictMaster の品質維持に関する課題 ソースコードを直接バージョン管理できない ブックが複数ある場合,VBA のアップデートは各ブック毎に実施する必要あり VBA 修正 1 つ 1 つアップデートし, テストケースを再生成 課題解決の為, 新たなツールの開発 / 導入を検討 31

1. はじめに 2. 既存のテストスイートの概要 3. テストスイート開発における課題 4. 組み合わせテストツールの導入検討 5. 組み合わせテストツールによる課題解決 6. 実施結果と評価 7. まとめ 32

まとめ 名古屋大学を中心とした ATK2 カーネルの開発 / 検証に関するコンソーシアム型研究組織は,2009 年度に開発した ASP カーネルのテストスイート (TTSP) を拡張する形で, 2011 年度,ATK2 のテストスイート (AKTSP) を開発しテストをシステムサービステストを実施した PictMaster の導入により, 組み合わせテストケースと TESRY データ ( 形式言語によるテストスクリプトファイル ) を自動生成し, 生産性, 保守性の改善を実現した ATK2 の実装, 仕様の不具合を合計 15 件検出した 33