カバレッジマスター winams JaSST2007 テクノロジーセッション JaSST2007C3-1 テクノロジーセッション 組込み開発向けモジュール単体テストソリューション C0/C1 カバレッジテストデータ生成機能を搭載 カバレッジマスター winams ガイオ テクノロジー ( 株 ) 営

Similar documents
エンジニアリング・サービスから見たMBD導入の成功・失敗

カバレッジマスターwinAMS チュートリアル

GAIO CLUB

(Microsoft PowerPoint - \201yF3-1\201z\215\305\217Ijasst2010\215u\211\211\216\221\227\277.ppt)

カバレッジマスターwinAMS チュートリアル

CodeRecorderでカバレッジ

目次 目次... 1 はじめに... 3 マイコンシミュレータのデバッグ機能... 3 スタートアップコマンドファイル... 5 シミュレータコマンド ( マクロ ) 例... 6 I/O 制御等で外的要因待ちをしている場合 ( その1)... 6 I/O 制御等で外的要因待ちをしている場合 ( そ

スライド 1

マクロ(シミュレータコマンド)の使い方

Microsoft PowerPoint - 01_Vengineer.ppt

Source Insight

040402.ユニットテスト

フローチャート自動生成ツール yflowgen の使い方 目次 1 はじめに 本ツールの機能 yflowgen.exe の使い方 yflowgen.exe の実行方法 制限事項 生成したファイル (gml ファイル形式 ) の開

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

Microsoft PowerPoint - CproNt02.ppt [互換モード]

SuperH RISC engineファミリ用 C/C++コンパイラパッケージ V.7~V.9 ご使用上のお願い

Microsoft PowerPoint - 09.pptx

メソッドのまとめ

memo

スクールCOBOL2002

Prog2_12th

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx

Microsoft PowerPoint - 1_コンパイラ入門セミナー.ppt

プログラミング基礎

An introduction and future of Ruby coverage library

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

(Microsoft PowerPoint - HP\227pWASABI\217\320\211\356\216\221\227\277.ppt)

インテル(R) Visual Fortran コンパイラ 10.0

スライド 1

Microsoft Word - J-jdev_dba_db_developers.doc

Microsoft PowerPoint - 計算機言語 第7回.ppt

Microsoft Word - matlab-coder-code-generation-quick-start-guide-japanese-r2016a

生存確認調査ツール

コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n

PowerPoint プレゼンテーション

プログラミングA

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

Cコンパイラパッケージお知らせ

マクロの実行許可設定をする方法 Excel2010 で 2010 でマクロを有効にする方法について説明します 参考 URL:

プログラミング実習I

プログラミングA

IBM i ユーザーの課題 モバイルや IOT に対応した新しい開発案件への対応 RPG COBOL など既存アプリのメンテナンス 要員の確保 属人化しない運用 管理体制 2

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

単体テスト設計のコツ

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

Microsoft Word - VBA基礎(6).docx

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

第 1 章 JavaScript/jQuery JavaScript とは JavaScript( ジャバスクリプト ) は HTML や CSS また PHP などでは実現することの難しい さまざまな効果を Web ページ上で実現できるスクリプト言語です 一時期 Web ページ作成に

PowerPoint プレゼンテーション

SuperH RISC engine C/C++ コンパイラ Ver.7 不具合内容 - 過去のお知らせ SuperH RISC engine C/C++ コンパイラ Ver.7 台における不具合内容を以下に示します のチェックツールをルネサスエレクトロニクス株式会社のホームページ

簡易版メタデータ

目次 第 1 章はじめに 本ソフトの概要... 2 第 2 章インストール編 ソフトの動作環境を確認しましょう ソフトをコンピュータにセットアップしましょう 動作を確認しましょう コンピュータからアンインストー

Java講座

株式会社アルウィン C 言語コーディング規約 ver.0.1

Python によるジオプロセシング スクリプト入門

Microsoft PowerPoint - C言語の復習(配布用).ppt [互換モード]

報道関係者各位 プレスリリース 2019 年 01 月 15 日 株式会社ネオジャパン グループウェア desknet's NEO バージョン 5.2 を 1 月 15 日に提供開始 ~ 業務アプリ作成ツール AppSuite との連携を強化 他にも AppSuite 連携 API 公開など多数の機

<4D F736F F D C A8DED8F9C8EE88F878F E C5816A2E646F63>

Trinity標準価格.xls

Taro-リストⅠ(公開版).jtd

intra-mart Accel Platform — IM-共通マスタ スマートフォン拡張プログラミングガイド   初版  

部品ライブラリシステム

PowerPoint プレゼンテーション

Managing and Sharing MATLAB Code

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

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

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用

プログラミング基礎

目次 第 1 章はじめに 本ソフトの概要... 2 第 2 章インストール編 ソフトの動作環境を確認しましょう ソフトをコンピュータにセットアップしましょう 動作を確認しましょう コンピュータからアンインストー

D5-2_S _003.pptx

工程’S 9 ヘルプ Excelバーチャート

intra-mart Accel Platform — 招待機能プログラミングガイド   初版  

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

NetworkVantage 9

画像ファイルを扱う これまでに学んだ条件分岐, 繰り返し, 配列, ファイル入出力を使って, 画像を扱うプログラムにチャレンジしてみよう

Arcserve Unified Data Protection サーバ構成とスペック見積もり方法 2018 年 10 月 Arcserve Japan Ver

24th Embarcadero Developer Camp

intra-mart Accel Platform

GUI 操作自動化ツールを用いた テスト効率化手法 2016 年 3 月 8 日 /3 月 9 日株式会社富士通コンピュータテクノロジーズ TMP 事業部第二開発部菅野正行 Copyright 2016 FUJITSU COMPUTER TECHNOLOGIES LIMITED

スライド 1

<4D F736F F F696E74202D E835A A C9F8DB882CC82B288C493E E >

C 言語の式と文 C 言語の文 ( 関数の呼び出し ) printf("hello, n"); 式 a a+4 a++ a = 7 関数名関数の引数セミコロン 3 < a "hello" printf("hello") 関数の引数は () で囲み, 中に式を書く. 文 ( 式文 ) は

Microsoft PowerPoint - A3② JaSST_MISRA2004ソースコード品質診断.ppt

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

Viewgo波形の連続格納ソフト

多機種のAndroid(TM)端末でテストシナリオを流用可能に - Androidアプリケーション自動テストツール QCWing for Android Ver.2.7 -

MAC アドレス変更ツール MAC アドレスチェンジャー ユーザーズマニュアル User's Manual エレコム株式会社

Protexご紹介

Microsoft Word - Mac版 Eclipseの導入と設定.docx

VBコンバータ利用方法


Microsoft Visual Studio 2010 Professional Data Sheet

Python によるジオプロセシング スクリプト入門

Microsoft Word - Training10_プリプロセッサ.docx

目次 1 埋め込みコードを利用したカバレッジ測定機能 P4~ 埋め込みコードを利用して計測できるカバレッジ計測の種類について P7~ カバレッジ計測が正しく実行されない例 P9~ カバレッジ計測されない原因概要 P11~ 詳細 1A 文字列型定数のアドレスが正しく渡らない場合 P14~ FMC16L

Slide 1

プログラミング基礎

TURNINGPOINT 2008 ソフトウェアのインストール TurningPoint 2008 version 4.3 は ご購入いただいた商品に同封されたインストール CD または KEEPAD JAPAN のホームページから最新版をインストールできます 1. 使用するコンピュータには必ず管理

PowerPoint プレゼンテーション

出力ログ管理ソリューションカタログ

Transcription:

JaSST2007 テクノロジーセッション JaSST2007C3-1 テクノロジーセッション 組込み開発向けモジュール単体テストソリューション C0/C1 カバレッジテストデータ生成機能を搭載 ガイオ テクノロジー ( 株 ) 営業部 1

最初に : ガイオテクノロジーご紹介 25 年来の組込みツールメーカー 自社に受託開発部隊もあり VAX/VMS 対応の汎用クロス開発ツールでツールビジネスに参入 以後 EWS~PCのダウンサイジングを経て 8000インストールベースの実績 近年はプロトタイピングツールやシミュレーション検証ツールなどを中心にビジネス展開 ガイオ テクノロジー株式会社 GAIO TECHNOLOGY CO., LTD. 東京 日本橋愛媛 松山横浜 本社 設立 資本金 従業員 本社 : 事業所 : 子会社 : 1980 年 2 億 9800 万円 80 名横浜東京 松山 九州 GAIO INC(USA) 九州 : 2

組込みのあらゆるツールを提供するメーカー ガイオ テクノロジーの開発ツール & ソリューション 統合開発環境クロスコンパイラ システムシミュレータ (MATLAB/Simulink 連携含む ) 単体テストツール ( マイコンシミュレータ使用 ) 実機自動テストシステム HMI プロトタイピング ドキュメント生成 ソース解析 SoC プロトタイピング 3

単体テストを自動化する 4

ガイオ 特長 組み込みソフトの単体テストに特化した評価ツール マイコンシミュレータ (ISS) を使用して 実装 ROM コード をテスト 実際のマイコンの組み込みオブジェクトコードで単体テストを実行 対象の評価ソースコードの書き換えは一切不要 テストデータ ( 関数 変数名 ) は全て CSV ファイルで入出力 実行後のパスカバレッジ結果を自動レポート テストデータ 結果 マイコンシミュレータ (ISS) winams ユニット ( 仮想テスト装置 ) 入出力データ 実機マイコン動作と等価なテスト環境 内部連携 パスカバレッジ 評価対象の組み込みオブジェクトコード ( 実装 ROM コード ) を実行 テストデータ (CSV) 入出力 カバレッジ結果の作成 5

関数への入出力テスト方法 ( 仕組み ) モジュール単体入出力テスト クロスコンパイルした組み込みオブジェクトをそのまま使用 関数名 変数名 テストデータを CSVで入出力 期待値との照合結果を自動レポート テスト入力データ CSV 試験対象のソースコード base(int a, int b, int c) { if (a == 1) { if (b == 1) { idx = 0; // data[0] if (c == 1) pos = 0; // data[0].str[0] : : } // 結果の設定 data[idx].c = data[idx].str[pos]; value = data[idx].str[pos]; //- 1; } マイコンシミュレータ winams ユニット 対象の関数名 入力変数名 & 入力データ 出力変数名 & 期待値 テスト結果出力 CSV 組み込みソースをそのまま使用 コンパイラも現在お使いのものを利用可能 バッチ処理で自動テスト パッケージ 出力変数名 & 変数結果出力 期待値との比較結果 (OK or NG) 6

C0/C1 カバレッジ自動レポート C0/C1 カバレッジ結果を自動レポート 条件分岐によるコードパスの網羅テストで品質を保証 winams によりテスト実行後に実行したソース行を色表示 組み込みソフトの C0/C1 カバレッジの自動テストを実現 winams シミュレータ C0/C1 カバレッジ結果表示 実行後 入出力 CSV データ クリックしたテストデータによる実行ソース行を色表示 7

呼び出し関数 STUB 作成機能 STUB 関数作成 管理機能を装備 元のソースコード修正なしで呼び出し関数の入れ替えが可能 HW アクセス部分 システムコール 永久ループ関数など テスト環境では実行できない部分を他の関数へ置き換え 関数リスト上で STUB の ON/OFF を簡単に切り替え可能 テスト対象の関数ソースコードは 一切修正不要 オブジェクト内の関数リストここで置き換える STUB 関数を作成 切り替え STUB 関数のスケルトンコードを自動作成この中にテスト時の仮の関数を記述 クロスコンパイラでコード化実際のアプリケーションコードとリンクして実行 8

ポインタ変数対応 その他機能 ポインタ変数 引数にも対応 変数の実体を伴わないポインタ変数 引数の場合でもそのままテスト可能 入力データ CSV の変数名に $ を付けるだけで実体を自動割り当て 割り付けエリアは MPU のメモリモデルから自由に指定可能 $ int func1( char *data ) ポインタ変数の実体を作るための割り当てエリアを指定 CSV ファイルに ~ で期待値の範囲指定も可能 9

CSV テストデータ形式 ( 参考 ) 入力テストデータは資産化が可能 マイコンに依存しない入力データフォーマット モジュールのテスト資産として再利用が容易 一般的な CSV 形式でファイル保存が可能 評価する関数名 入力変数名 ( 関数名 @ は引数 ) 出力変数名 (@@ 関数名は戻り値 ) テスト関数サンプル // 入力データ char input; struct { char mode; int flag; } TAB; char array[3] = { 1, 2, 3 }; mod func コメント 4 2 // 結果データ input TAB.mode array[2] func@a func@@ output int output; 1 1-1 -1 1 2 // 評価対象の関数 func int func(int a) 12 43 56 78 1~8 0x4 { if (a == 1) { 0x10 0x23 0x66 0x11 if (b == 1) { 中略 入力データ 期待値データ ( 空でも可 ) } return 1; 10

テストデータ作成支援 C0/C1 入力データ自動作成機能 11

テストデータ管理 実行ツール SSTManager テストデータ作成からテスト実行までを統合管理するツール 単体テスト工程を統合管理 テスト実行環境 (ISS) 設定 CSV テストデータ作成エディタ CSV テストデータ管理 STUB 関数作成 管理 シミュレータ起動 テスト実行 入出力結果レポート C0/C1 カバレッジ結果レポート V2.2 にてインタフェースを一新しました! 12

CasePlayer2 と連携したデータ作成支援 ソース解析ツール CasePlayer2 と連携してテストデータ作成を支援 テスト対象の関数が使用する変数を事前に解析 コード解析により C1 カバレッジ入力データ作成を自動化 C1 カバレッジを満たす最小限のテスト入力データを自動生成 ユーザーは 生成された入力データに対する結果を 関数仕様を元に確認するだけ 評価関数 変数のアクセス状況を事前解析 データ作成を自動化 解析 データ読み込み 変数解析結果ファイル ソースコード フローチャート作成ソース解析ツール CasePlayer2 各種チャート連携変数ブラウジング テスト実行ツール SSTManager 入力データ CSV 作成 13

CasePlayer2 解析結果を利用 (1) 評価対象の関数が参照 / 代入している外部変数を自動検索 入力条件となる変数 ( 引数 外部変数 ) を自動検索しコード解析工数を省力化 関数が参照している外部変数 ( 単体テストの入力変数 ) 関数が書き換えている外部変数 ( 単体テストの評価変数 ) 関数の引数リスト ( 単体テストの入力変数 ) 入出力変数リスト評価対象の関数を指定すると自動表示される リストアップされた変数から評価に必要な変数をユーザーが選択 指定 14

CasePlayer2 解析結果を利用 (2) C1 カバレッジを満たす入力データを自動生成 関数内の条件文をリストアップして 各関数の C1 全ケースを網羅するデータを生成 // C1 説明用サンプル int gb_a, gb_b, gb_c, gb_d, gb_out; char gb_unused1, gb_unused12; gb_b と gb_c の境界値 20 30 の ±1 の値をデータとして生成 int func_c1_01( int code ) { int return_value=false; } if( gb_a > 10 ) { if( gb_b > 20 && gb_c > 30 ) { gb_out = 0; } else { gb_out = -1; } return_value = FALSE; } else { switch( code ) { case 1: gb_out = 1; break; case 2: gb_out = 2; break; case 3: gb_out = 3; break; default: gb_out = -1; break; } return_value = FALSE; } return return_value; switch 文の変数 code の全ケースを生成 条件文に関わる変数を自動検索 & ハイライト表示 15

最小限の組み合わせデータを生成 条件文のネスト状態を解析して C1 を満たす重複の少ないデータを生成 各条件文 (if,switch など ) に対して生成したデータの組み合わせを自動生成 C0 の観点から 1 度生成した分岐経路を通るデータは生成しない最適化を実施 必要最小限のデータ組み合わせを生成 前頁のソースサンプルではわずか 6 個のデータ ( ) で C0/C1 を満たすことが可能 前頁サンプルで自動生成した入力データ ここは期待値欄 EXCEL の横桁データ数制限 (256 まで ) を排除した CSV データエディタを搭載 16

選択したテストデータを一斉自動実行 管理ツール SSTManager で選択したデータを自動実行 指定した CSVデータ ( 関数 ) を自動バッチ実行 結果表示まで全て自動実行 入出力テスト結果表示 テストデータを選択 C0/C1 カバレッジ結果表示 テスト開始ボタン 自動テスト実行 ダブルクリックで各結果詳細表示へ 17

C0/C1 カバレッジ 入出力結果表示 C0/C1 カバレッジビュー カバレッジ結果とテストデータを表示 期待値と異なるデータセルを表示 100?(200) 期待値が 200 だが結果は 100 C0 を満たさない未実行行を表示 C1 を満たさない条件を明示 各行を通過するデータを解析しで表示 未実行行のデータを追加する際の解析に非常に役立つ機能 18

ソース解析に役立つチャートリンク機能 CasePlayer2 が生成した各種チャート 変数参照リストへリンク 面倒な設定やソースコードの修正追加なしで簡単にチャートを生成 入出力データ作成時のロジック解析 パス解析を効率化 CasePlayer2 のソースコード表示 カバレッジマスターの変数設定画面 リンク CasePlayer2 のフローチャート表示 19

カバレッジマスターの優位性と導入効果 20

ICE による手作業がどのように改善されるか ICE を使用して 1 関数 60 分で単体テストを行っている場合を例にとると 作業時間の内訳は ソース解析 & テストデータ作成 : 30 分 ICE による手作業でのテスト実行 : 30 分 カバレッジマスターの導入により 初回のテストにおいては ソース解析 & テストデータ作成 : 30 分 同じ時間がかかる カバレッジマスターで自動実行 : 数秒 テストは自動化され作業工数はゼロ 2 回目以降の反復テストでは ソース解析 & テストデータ作成 テスト実行の作業工数もゼロになる ICE による手作業 カバレッジマスター導入の初回 導入後の反復テストでは テストデータ作成 30 分 60 分 テストデータ作成 30 分 30 分 既存のテストデータを使用するためデータ作成工数はない 作業工数はゼロ ICE によるテスト実行 30 分 テスト実行は数秒 ( ほぼゼロ ) 50% 削減 テスト実行は数秒 ( ほぼゼロ ) 21

他社 ISS を使用した場合との比較 他社 ( 半導体メーカー純正 )ISS を使用した単体テストとは ISS( デバッガ ) がサポートするスクリプト言語を駆使して単体テストを行う方法 関数の呼び出し指定 変数に対するデータ設定を行うスクリプトを作成 テスト実行後に実行ログファイルを解析して 評価対象の変数の値を確認 テスト結果を表に記入 ( 手作業 ) 期待値との比較判定 ( 手作業 ) カバレッジをとることは困難 または膨大な手作業が必要 ステップ実行毎に プリントしたソースコードをマーカーで塗りつぶす手作業となる 純正 ISS を駆使した方法 カバレッジマスターによる自動テスト テストデータ表作成テストスクリプト作成テスト実行ログ解析 手作業の大半を自動化 テストデータ表作成テストスクリプト作成テスト実行ログ解析 テスト結果を表に記入 テスト結果を表に記入 50% 削減 期待値との比較判定 期待値との比較判定 22

単体テストツールの必要条件 組込みモジュール単体テストのテストツール選定には 以下の事項を満たす必要があります 項目工数カバレッジ精度 / 信頼性ソース書き換えデータ資産化データ入力支援 必要条件モジュール単体テストに必要な工数を低く抑えられるか網羅率を数値で正しく計測できるか実機コード ( コンパイラのバグも含む ) を対象としたテスト実施が可能か単体テスト用にソース修正作業が発生しないか同じモジュールをテストする場合 テストデータの再利用が可能か膨大な工数が発生するテストデータを作成する際の支援機能があるか 23

カバレッジマスターのアドバンテージ 従来の単体テストツールの問題点をクリア 比較項目 工数 変数データ設定などの手作業 カバレッジ カバレッジトレース 精度信頼性 実機コードでのテスト ソース書き換え 単体テスト用に ソースコードを修正 データの資産化 再帰テストの自動化 テストデータ入力支援 テストデータ作成の支援機能 全体的所見 ICE + デバッガ 全て手作業 事実上困難 実機コード 不要 毎回手作業 精度は高いが人海戦術的要素が多く 多大な工数が発生する テストデータの資産化ができないため 再帰テストの際には工数がそのまま n 倍必要になる カバレッジ計測には不向き 純正 ISS + スクリプト 実機コード 不要 メーカー毎に変更必要 精度は高いが単体テスト用のスクリプト ( 仕掛け ) を作成する必要がある MPU 毎の汎用性がない カバレッジ計測には不向き Windows 系 ( オープン系 ) ツール C のロジックレベルテスト 必要 汎用性は高いがオブジェクトが 86 系で実行されるため ロジックのみのテストになり 最終 ROM コードでのテストにはならない NATIVE コンパイラでコンパイルするためのソース修正工数が発生する 解析機能を利用して効率化 自動レポート 実機コード 不要 全マイコン共通の CSV 形式 C0/C1 テストデータ自動生成 従来の単体テストツールの問題点をクリア 24

ロードマップ カバレッジ機能 テストデータ生成 テスト管理など 自動車業界からのご要求 Ver2 入出力テストカバレッジ結果レポート機能強化 Ver2.3 C0 カバレッジ C1 カバレッジ CasePlayer2 C++ 対応 MCDC カバレッジ C2 カバレッジ 単体テスト管理機能強化など OA 機器業界 他業界からのご要求 2006 2007 2008 25

テスト代行サービスについて 26

単体テスト代行サービスの概要 ガイオの優位性を活かして単体テストを実施 単体テストツールメーカとしてのツール知識の活用 コンパイラメーカとしてのプログラム知見の活用 お客様に代わってテスト業務を完全代行 テスト作業のアウトソーシング 第三者評価機関としての立場で品質評価 コンパイラメーカ ( プログラム知見 ) テストツールメーカ ( ツール知見 ) テスト代行におけるガイオの優位性 お客様ガイオお打ち合わせ お客様のソース 仕様書テスト指針 ガイオテスト作業からレポート作成まで G G 27

単体テスト代行の流れ 最終納品までの流れと各フェーズでの受け渡し書類 お見積もりはご提供頂くソースコード ドキュメントにより決定 ファーストミーティングファーストミーティング 機密保持締結機密保持締結 ソースコード受領ソースコード受領 見積書提出見積書提出 テストの概要を打ち合わせ テスト指針 関数数 納期 テスト指針概要仕様書 ソース開示のための機密保持契約 機密保持契約書 見積り作成用の対象ソースを受領 ソース ドキュメント 見積書 テスト指針詳細仕様書 作業終了 / 納品作業終了 / 納品 テスト再実行環境 ( 資産化できるデータ ) 作業開始作業開始 契約契約ご発注ご発注 モジュールテスト仕様書 モジュールテスト報告書 テスト実施環境 作業進捗表 28

納品物 : テスト仕様書とテストデータ テスト指針とテストデータの意図を明確化 カバレッジ指針 (C0 C1 C2 など ) に従って 分岐に対するテストデータを作成 フローチャート上で どの分岐パスを通過するデータかを明確化 納品後のお客様のレビューを容易にするためのドキュメントを作成 フローチャート 入力データ どの実行パスを通過するデータか表示 テストデータ毎の実行パスを表示 カバレッジ指針に従ったテストデータの意味を色で識別 29

納品物 : テスト結果報告書 単体テストの実行結果についてのドキュメント カバレッジデータ 単体テスト結果 入力データ期待値 a b c d e e 合否 1 1 0 0 10 1OK 1 1 1 0 10 1OK 1 1 1 0 10 1OK 1 1 2 0 10 1OK 1 1 255 1 10 1OK 1 1 1 0 10 1OK 1 1 0 1 10 1OK 1 1 1 1 10 1OK 1 1 1 2 10 1OK 1 1 1 255 10 1OK 1 1 0 0 10 1OK 1 1 2 0 10 1OK 1 1 255 0 10 1OK 1 1 1 0 10 1OK 1 1 1 2 10 1OK 1 1 1 255 10 1OK 関数名 : func4 所属ファイル名 : C: winams_cm1 target main.c 網羅率 : 100% カバレッジデータ出力日 : 2006 年 06 月 07 日 17 時 18 分 27 秒 ------ ----- ------ ----------------------------------------- 未実行 実行 回数 SOURCE ------ ----- ------ ----------------------------------------- int func4( int arg_flag ) 15 { static int default_val = -1; 15 if( arg_flag == 1 ) { 7 if( gb_input < 10 ) { 2 gb_output = gb_input+10; } 5 else if( gb_input < 20 ) { 3 gb_output = gb_input; } else { 2 gb_output = default_val; 2 return FALSE; } 5 } 8 else if( arg_flag == 2 ) { 7 if( gb_vala ) 1 gb_output = gb_input; else 6 gb_output = -gb_input; 7 } 12 return TRUE; 15 } 30

納品物 : 障害報告書 単体テストで障害が発生した関数のドキュメント 障害発生関数サマリ 障害発生テスト結果報告書 各関数毎の単体テスト結果を一覧表でレポート 各関数毎の入出力結果 (OK or NG) 期待値との照合結果レポート 31

END 最新の製品情報は http://www.gaio.co.jp/ 会社名 商品名は各社の商標または登録商標です 本資料の無断転載 複写はお断りします ガイオ テクノロジー株式会社日本橋事業所営業部 103 東京都中央区日本橋人形町 3-12-8 TEL.(03)3662-3041 FAX.(03)3662-3043 Email info@gaio.co.jp ご質問はこちらにお願いします 32