View
2
Download
0
Category
Preview:
Citation preview
カバレッジマスター MC/DC測定 チュートリアル
カバレッジマスター MC/DC 測定 チュートリアル
1. はじめに
本チュートリアルは、初めて MC/DC測定を行われる方への、導入実習を含んだチュートリアルです。
カバレッジマスターWinAMS を使用しての MC/DC測定機能を、実習を通して学べるように構成されています。
注意:以下の条件が揃っていないと、MC/DC 測定チュートリアルでの実習が行えません。
・SSTManager が v2.6 以降である。
・CasePlayer2 が v4.6 以降である。
・MC/DC オプションライセンスがある。
[用語説明]
用語 説明
MC/DC Modified Condition/Decision Coverageの略で、変更条件判定カバレッジとも
呼ばれます。論理式の全ての条件式に対して、条件式の真偽が変化する事で
分岐判定が変化する組み合わせを網羅していれば、MC/DCを網羅した事にな
ります。(詳しくは、専門の文献をご覧ください)
埋め込みコードビルド環
境
MC/DCを測定するために、カバレッジ測定用コードを埋め込んだソースから
実行オブジェクトをビルドする環境です。
コード埋め込みオブジェ
クト
コード埋め込みソースをコンパイル、リンクして作成した、シミュレータで
実行可能なオブジェクトファイルの事です。
テスト対象オブジェクト コード埋め込みを行っていないオリジナルなオブジェクトファイルです。
スタブ関数が追加されている以外は、実際にターゲット CPUに実装するオブ
ジェクトファイルと同じになります。
実習の準備: さあ、はじめましょう!
本チュートリアルは下記の流れで進行します。
2. テスト環境を作成する
3. C1 カバレッジ測定を行うオブジェクトを作成する
4. winAMS で C1 カバレッジ測定を行う
5. MC/DC 測定を行う埋め込みオブジェクトを作成する
6. winAMS で MC/DC測定を行う
[補足]
本チュートリアルでは他社製コンパイラとして Hew(ルネサス製統合開発環境)とルネサス製 SH2 用コンパイラを用いますが、
HEW を持っていないユーザ様でも、既に生成されているオブジェクトを使うことで、チュートリアルの体験が可能です。
- 2 -
カバレッジマスター MC/DC測定 チュートリアル
2. テスト環境を作成する
まず最初に、本チュートリアルの教材として使用するテスト環境を作成します。
Hew.zip を任意のフォルダにコピー後、解凍して下さい。
本チュートリアルでは C ドライブにコピーし、解凍した環境での説明を行います。
HewSH2.zip は下記の構成になっております。
AMS : AMS_Samp (winAMS プロジェクト環境) と TestCSV(テストデータ)
CP2 : CasePlayer2 プロジェクト環境
SH2_sample : 本チュートリアルでテスト対象ターゲットを作成するソースファイルです。
main.c : main()関数があります。
samp_test.c : C1 カバレッジ, MC/DC 測定を行う評価対象の関数があります。
その他の ***.c ファイルは本チュートリアルでは使用しません。
埋め込み : 本チュートリアルで MC/DC測定を行う埋め込みオブジェクト生成環境
- 3 -
カバレッジマスター MC/DC測定 チュートリアル
3. C1 カバレッジ測定を行うオブジェクトを作成する
では、まずテスト対象オブジェクトの生成を行います。
3-1. …\HewSH2\SH2_sample\SH2_Samp.hws をダブルクリックし、Hew を起動してください。
3-2. ソースファイル(main.c, samp_Test.c)が登録されているのを確認します。
3-3. ビルド(メニュー→ビルド→ビルド、又は F7)を行い、オブジェクト(***.abs)を生成します。
…\HewSH2\SH2_sample\Debug フォルダに sample.abs が生成されたことをご確認ください。
以上で C1 カバレッジ測定を行うオブジェクトの作成は終了です。
[補足]
makefile を作成できるコンパイラでは、それを使って WinAMS から自動ビルドが行えます。
詳細は[7.[補足]カバレッジ測定コードの自動ビルド]を参照して下さい。
- 4 -
カバレッジマスター MC/DC測定 チュートリアル
4. winAMS で C1 カバレッジ測定を行う
[3. C1 カバレッジ測定を行うオブジェクトを作成する]で作成したオブジェクトの C1 カバレッジ測定を行います。
4-1. …\HewSH2\AMS\SH2_SMP\SH2_SMP.amsy をダブルクリックし、SSTManager を起動してください。
4-2. メニューのファイル(F) →プロジェクトの基本設定を変更(B)をクリックし、テストプロジェクト変更画面を表示します。
MPU 名:SH1/2(Hew)
型番 :SH2
コンパイル環境 :その他
CasePlayer2 プロジェクト:…\HewSH2\CP2\CP2Proj\CP2Proj.vproj
(C1 カバレッジを取得する為、本チュートリアルでは CP2 連携を既に行っております。CP2 連携についての詳細
はカバレッジマスターwinAMS チュートリアル CasePlayer2 との連携 を参照して下さい)
に設定されているのを確認してください。
- 5 -
カバレッジマスター MC/DC測定 チュートリアル
4-3. OMF変換を行います。[OMF コンバート設定]ボタン(SSTManager の画面左側)を押下し、入力オブジェクトの設定
を行って下さい。(参照ボタンより選択可能です)
本チュートリアルでは
入力オブジェクト名 :…\HewSH2\SH2_sample\Debug\sample.abs
ソース検索パス:…\HewSH2\SH2_sample
(下図の②の追加ボタンにより、オブジェクトを生成したソースファイルを指定します)
に設定します。
設定後は、[OMF 変換]ボタン(図の③)を押下して下さい。SSTManager のメッセージビューに
変換が完了しました。 出力した デバックファイル数(***) デバックシンボル数(***)
と表示されれば OMF 変換は終了です。
- 6 -
カバレッジマスター MC/DC測定 チュートリアル
4-4. 画面左側の[起動設定]ボタンを押下し、オブジェクトの設定を行います。以下の設定を確認してください。
オブジェクトファイル:…\HewSH2\SH2_sample\Debug\sample.abs.xlo
(OMF 変換が成功すると、自動で登録されます)
スタートアップコマンドファイル:…\HewSH2\AMS\SH2_SMP\SS_STARTUP.txt
自動テストを行う:チェックが有効になっている
シミュレーションを自動的に開始:チェックが有効になっている
シミュレータを自動的に終了:チェックが有効になっている
テスト対象オブジェクトファイル:チェックが有効になっている
- 7 -
カバレッジマスター MC/DC測定 チュートリアル
4-5. テスト設定ボタンを押下し、テスト設定を行います。以下の設定を確認してください。
関数一覧:今回テストを行う関数が表示されている
(main.c, samp_Test.c で定義された関数)
テスト CSV 一覧:実行のチェックが有効になっている
C1 カバレッジを出力:チェックが有効になっている
注意: CasePlayer2 との連携設定が終了していないと、”C1 カバレッジを出力”のチェックを有効にすることはできませ
ん。
- 8 -
カバレッジマスター MC/DC測定 チュートリアル
4-6. 以上でテストを行う為の設定は終了です。 シミュレータ起動ボタンを押下し、シミュレータを起動させます。
本チュートリアルではシミュレーションの開始・終了設定チェックを有効にしている為、テストが自動で行われます。
テスト終了後は SSTManager のテスト結果画面が表示されます。
テスト結果の判定が全て OK になっているかを確認してください。
- 9 -
カバレッジマスター MC/DC測定 チュートリアル
4-7. SSTManager の[カバレッジ]ボタンを押下し、C1 カバレッジが測定できたか確認します。C0、C1 カバレッジが 100%に
なっていれば OK です。
カバレッジ結果の確認方法は「カバレッジマスターチュートリアル カバレッジ結果を確認」を参照して下さい。
以上で C1 カバレッジ測定は終了です。
- 10 -
カバレッジマスター MC/DC測定 チュートリアル
5. MC/DC 測定を行うコード埋め込みオブジェクトを作成する
MC/DC 測定を行う為の埋め込みオブジェクトの生成を行います。
5-1. …\HewSH2\AMS\SH2_SMP\SH2_SMP.amsy をダブルクリックし、SSTManager を起動してください。
5-2. [起動設定]ボタンを押下し、[埋め込みコードビルド環境生成]ボタンを押下して下さい。
5-3. CaseViewer が起動し、「カバレッジ測定コード埋め込みオブジェクトビルド環境の生成」画面が表示されます。
- 11 -
カバレッジマスター MC/DC測定 チュートリアル
5-4. まず、埋め込みコードビルド環境の生成を行います。
基となるテスト対象オブジェクトのビルド環境を選択(下図①)
※Hew のインクルードフォルダもリストに記載されていますが、コピーは必要ありません。
埋め込みオブジェクトのビルド環境の生成先を選択(下図②)
(本チュートリアルでは 「…\HewSH2\埋め込み」 を選択します。フォルダを作成するにはツリービュ
ー上部の新規作成ボタンから作成可能です。)
登録ボタンを押下(下図③)を行ってください。
- 12 -
カバレッジマスター MC/DC測定 チュートリアル
5-5. 登録ボタンを押下すると下図のように、画面下部に登録内容が表示されます。本チュートリアルでは
元ビルド環境フォルダパス:…\HewSH2\SH2_sample
埋め込みコードビルド環境のフォルダパス:…\HewSH2\埋め込み\SH2_sample
に設定されています。
実行ボタンを押下して下さい。「カバレッジ測定コード埋め込みオブジェクトビルド環境の生成」画面が閉じ、登録した
場所にコード埋め込みオブジェクトのビルド環境が生成された事を確認して下さい。
(本チュートリアルでは …\HewSH2\埋め込み\SH2_sample フォルダが生成されます。)
[補足]
埋め込みオブジェクトビルド環境は、環境コピーの設定に従い実行されます。詳細は CasePlayer2 のヘルプを参照し
てください。
5-6. CaseViewer の仕様書生成画面を開きます。(CaseViewer画面左下の設定タブをクリック→仕様書生成をダブルク
リック)
[MC/DC 埋め込みコード生成]のチェック、[仕様書生成前にコード埋め込みオブジェクトビルド環境にファイルをコピー
する]を有効にします。OK ボタンを押して設定画面を閉じます。
- 13 -
カバレッジマスター MC/DC測定 チュートリアル
5-7. CasePlayer2 のメニューバーから全仕様書生成ボタンを押してください。メッセージビューに下記メッセージが出力され
れば、コード埋め込みオブジェクトのビルド環境生成は成功です。
プロジェクト全体の仕様書生成
仕様書生成終了.
5-8. 生成されたビルド環境にて、埋め込みオブジェクトを生成します。
…\HewSH2\埋め込み\SH2_sample\SH2_Samp.hws をダブルクリックして、Hew を起動させてください。
[補足]
Hew ビルド環境以外でチュートリアル実践を行われているお客様用として、埋め込みオブジェクトが用意してあります。
…\HewSH2\埋め込み\SH2_sample_Comp\埋め込みオブジェクト\sample_spmc.abs
Hew ビルド環境をお持ちでないお客様は、こちらを使用して以後のチュートリアルを実践してください。
5-9. ソースファイル samp_Test.c を表示させ、MC/DC 測定するためのコードが埋め込まれている事を確認します。
また、生成されたビルド環境にwinAMS_SPMC.c (…\HewSH2\埋め込み\SH2_sample\winAMS_SPMC.c)が生成
されている事を確認してください。
注意:CaseViewer にて[MC/DC 埋め込みコード生成]及び[仕様書生成]の処理が正しく完了していないと、
winAMS_SPMC.c が生成されません。また、MC/DC 測定するためのコードも埋め込まれません。5-3~5-7 を見直し
てください。
- 14 -
カバレッジマスター MC/DC測定 チュートリアル
5-10. プロジェクトに winAMS_SPMC.c を追加し、ビルドします。
5-11. …\HewSH2\埋め込み\SH2_sample\Debug フォルダに sample.abs が生成されれば、埋め込みオブジェクト
の生成は成功です。
以上で MC/DC 測定を行う為のコード埋め込みオブジェクトの生成は終了です。
- 15 -
カバレッジマスター MC/DC測定 チュートリアル
6. winAMS で MC/DC 測定を行う
winAMS で[5.]で作成したコード埋め込みオブジェクトを使って MC/DC測定を行います。
6-1. …\HewSH2\AMS\SH2_SMP\SH2_SMP.amsy をダブルクリックし、SSTManager を起動してください。
6-2. コード埋め込みオブジェクトの設定を行います。 画面上部の[カバレッジ測定コード設定]ボタンを押下して下さい。
注意:埋め込みコードビルド環境生成が正しくおこなわれていないと、[カバレッジ測定コード設定]ボタンが有効になり
ません。本チュートリアル「5.MC/DC測定を行う埋め込みオブジェクトを作成する」5-3~5-7 を参照して下さ
い
- 16 -
カバレッジマスター MC/DC測定 チュートリアル
6-3. カバレッジ測定コード設定画面が表示されますので、コード埋め込みオブジェクトの設定を行います。
まず、画面左側の[OMF コンバート]ボタンを押下します(下図①)。
次に、入力オブジェクトファイルの登録を行います。参照ボタンから入力オブジェクトの選択が可能です。(下図②)
本チュートリアルでは
入力オブジェクト名:…\HewSH2\埋め込み\SH2_sample\Debug\sample.abs
と設定してください。
入力オブジェクトの設定が完了したら、[OMF コンバート]ボタンを押して、コード埋め込みオブジェクトに対して OMF 変
換を行ってください。(下図③)
6-4. 画面左側の[起動設定]ボタンを押下し、起動設定を確認します。(下図①)
本チュートリアルでは以下の設定になります。確認してください。
オブジェクトファイル:…\HewSH2\埋め込み\SH2_sample\Debug\sample.abs.xlo
(6-3 の OMF 変換が成功すると自動で登録されます)
スタートアップコマンドファイル:…\HewSH2\AMS\SH2_SMP\SS_STARTUP.txt
全てのメモリ領域をアサイン:チェック有効
[補足]
テスト設定、その他の設定は本チュートリアルでは必要ありません。詳細は winAMS ヘルプを参照して下さい。
- 17 -
カバレッジマスター MC/DC測定 チュートリアル
6-5. OK ボタンをクリックし、カバレッジ測定コード設定画面を閉じます。[カバレッジ測定コード埋め込みオブジェクトファイル]
のチェックを有効にし、埋め込みオブジェクトに対してもテストを行うよう設定します。
また、[シミュレーションを自動的に開始]、[シミュレータを自動的に終了]のチェックも有効にします。
注意:カバレッジ測定コード設定においてオブジェクトファイルの登録が行われていないと、[カバレッジ測定コード埋め込
みオブジェクトファイル]が有効になりません。
- 18 -
カバレッジマスター MC/DC測定 チュートリアル
6-6. 画面左のテスト設定ボタンをクリックし、テスト設定画面を表示します。[MC/DC を出力する]のチェックを有効にし、
MC/DC 測定を行うように設定します。
6-7. 以上で MC/DC 測定を行う設定は終了です。[シミュレータ起動]ボタンを押し、MC/DC を測定しましょう。
(起動設定にて、実行するオブジェクトの指定が、テスト対象オブジェクトと埋め込みオブジェクトにチェックされているた
めシミュレータは二度起動します)
- 19 -
カバレッジマスター MC/DC測定 チュートリアル
6-8. テストが終了すると、テスト結果が表示されます。[カバレッジ]ボタンを押し、カバレッジを確認します。MC/DC 測定結
果が表示されていれば MC/DC 測定は成功です。
6-9. 関数 testIf_AndOr のカバレッジを表示してみましょう。下図①のように[testIf_AndOr]を選択し、表示ボタンを押しま
す。
- 20 -
カバレッジマスター MC/DC測定 チュートリアル
6-10. カバレッジ表示ウインドウが表示されます。
if 文の下に[MC/DC t/f]等の行が表示されています。これが、MC/DC の結果表記です。
MC/DC の結果が全て[MC/DC t/f] と表記されていれば、MC/DC測定が 100%網羅できたことになります。
このテストデータでは(A&B)については[MC/DC t/f]となっています。
しかし、C の評価は[MC/DC /f]となり t が足りていないため、MC/DC測定が 100%になっていません。
以上で winAMS で MC/DC測定を行うは終了です。
[補足]
C1 カバレッジは今回使用したテストcsvデータ 100%網羅できていますが、MC/DC 測定の結果を見ると、全てのパターンを
網羅できていないようです。
test_AndOr.csvは 4パターンの分岐があるのですが、テスト csv には 2パターンのテストデータしか記載しておりません(故に
50%です)。test_AndOr.csv のテストデータを追加して MC/DC 測定を 100%にしてみてください。
A B C 0 0 1 1 1 0 を追加すると test_AndOr.csv の MC/DC の結果が 100%になります。
- 21 -
カバレッジマスター MC/DC測定 チュートリアル
7. [補足]カバレッジ測定コードの自動ビルド
6-4 の[その他の設定]で Make ファイルの自動ビルドが設定可能です。
自動ビルドを実践してみましょう。
1. Make ファイルを作成します。本チュートリアルでは、Hew を用いていますので、Hew で Make ファイルを作成します。
…\HewSH2\埋め込み\SH2_sample\SH2_Samp.hws をダブルクリックし、ワークスペースを起動してください。
2. Hew では Make ファイルを自動生成できるので、作成します。
メニュー ビルド Make ファイルの作成を選択し、デフォルトの設定で Makefile を生成します。
…\HewSH2\埋め込み\SH2_sample\make フォルダが生成され、sample_Debug.mak が作成されます
3. これで、Make ファイルの準備は OK です。
次にカバレッジ測定コード設定画面を開き、その他のボタンを押下します。(6.winAMSでMC/DC測定を行うの6-2
を参考にして下さい)
4. ビルド機能の設定を行います。本チュートリアルでは下記のように設定します。
ビルド設定を行う:チェックを有効
(有効にしないと、他の設定が出来ません。また、設定が反映されません。)
自動ビルド:チェックを有効
プロジェクトファイルパス:…\HewSH2\埋め込み\SH2_sample\make\sample_Debug.mak
ビルド実行コマンドパス:C:\Program Files\Renesas\Hew\hmake.exe
(hmake.exe が存在するフォルダを指定してください)
ビルドコマンドパラメータ:"%P"
- 22 -
カバレッジマスター MC/DC測定 チュートリアル
5. 自動ビルドを行ってみましょう。今回は埋め込みコードで生成されるオブジェクトに対しての自動ビルド設定を行いまし
たので、下図①のテスト対象オブジェクトのチェックをはずします。
次に[コマンドライン表示]を有効にし、Make ファイルが実行されたのをメッセージビューに表示させます。(下図②)
最後にシミュレータを起動します。
6. メッセージビューに Make の実行メッセージが表示されます。
C:\Program Files\Renesas\Hew\hmake.exe sample_Debug.mak
HMAKE MAKE UTILITY Ver. 2.1.00.000
Copyright (C) 2001,2006 Renesas Technology Europe Ltd.
Copyright (C) 2001,2006 Renesas Technology Corp. and Renesas Solutions Corp.
Executing Renesas SH C/C++ Library Generator01 phase
set SHC_INC=c:\program files\renesas\hew\tools\renesas\sh\9_1_0\include
set PATH=c:\program files\renesas\hew\tools\renesas\sh\9_1_0\bin
但し、オブジェクトファイルが最新なので、コンパイル、リンクは実行されません。
…\HewSH2\埋め込み\SH2_sample\Debug\sample.abs (埋め込みコードでのオブジェクト)を削除して、再度実行
し確認してみてください。
- 23 -
カバレッジマスター MC/DC測定 チュートリアル
今度は、シミュレータ起動前に、リンクが行われ、OMF コンバートが行われました。
以上で [補足]カバレッジ測定コードの自動ビルド は終了です。
- 24 -
カバレッジマスター MC/DC測定 チュートリアル
8. まとめ
以上で、カバレッジマスターwinAMS の MC/DC 測定チュートリアルは終了です。本チュートリアルでは、
・ コード埋め込みオブジェクトのビルド環境生成
・ MC/DC 測定方法
を実習体験しました。今回体験した内容を基本に、皆様の実開発業務にお役立て下さい。
- 25 -
カバレッジマスター MC/DC測定 チュートリアル
カバレッジマスター MC/DC 測定 チュートリアル
2009 年 03 月 19 日 第1.0 版
ガイオ・テクノロジー株式会社
〒103-0013 東京都中央区日本橋人形町 3-12-8 第2伊勢龍ビル
TEL 03-3662-3041 (代表) FAX 03-3662-3043
Copyright(c) 2003 GAIO TECHNOLOGY CO.,LTD.ALL rights reserved.
本ガイドの内容は、予告無く変更される場合があります。 本書記載の誤りにより生ずる
一切の問題や損失に対して、弊社は責任を負いません。 また、本ガイドの無断使用、
転載は認めておりません。
- 26 -
Recommended