単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1...

35
© Hitachi, Ltd. 2017. All rights reserved. 株式会社 日立製作所 version 1.1(201705) 単体テスト支援 ファイルシミュレーション機能の活用 COBOL活用ガイド No.002 COBOL2002 Developer Professional 単体テスト支援 トレーニング

Transcript of 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1...

Page 1: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

株式会社 日立製作所

version 1.1(201705)

単体テスト支援 ファイルシミュレーション機能の活用

COBOL活用ガイド No.002

COBOL2002 Developer Professional 単体テスト支援

トレーニング

Page 2: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

はじめに

1

本資料はCOBOL2002製品群をより便利に活用するためのガイドです。 本資料は以下の製品が対象です。

COBOL2002 Developer Professional 03-04以降 COBOL2002 Developer Professional(64) 03-04以降

本資料は「COBOL活用ガイド 単体テスト支援ファーストステップガイド」の内容を前提としています。 「単体テスト支援ファイルシミュレーション機能の活用」では ファイルアクセスを行うCOBOLプログラムの単体テスト方法を紹介します。 演習内容は以下です。

ファイルシミュレーション機能を用いた単体テスト 演習にかかる時間の目安は約30分程度です。

Page 3: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

Contents

COBOL活用ガイド No.002

単体テスト支援ファイルシミュレーション機能の活用

トレーニング

2

1. 単体テスト支援

2. ファイルシミュレーション機能で単体テストを実行してみましょう

3. まとめ

Page 4: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

COBOL活用ガイド No.002

単体テスト支援ファイルシミュレーション機能の活用

トレーニング

3

1. 単体テスト支援

Page 5: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

1-1. 単体テスト支援とは

4

準備が簡単に! 結果確認が簡単に! 繰り返しテストが簡単に!

テスト対象 プログラム

呼び出し元 ダミープログラム <自動生成>

呼び出し先 ダミープログラム <自動生成>

CSV

テスト データ

GUI

単体テスト支援

テスト プロジェクト

結果レポート テスト1 [OK] テスト2 [NG] : カバレージ情報 C0 [100%] C1 [ 80%] :

単体テスト支援

ソース修正

テスト実行

結果確認

定期 実行 入力

修正 ソース

差分テスト データ

バグを早期に発見したい!

手作業のテストではもう対応できない!

そのお悩み 単体テスト支援が解決します!

Page 6: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

1-2. ファイル入出力を行うプログラムの単体テスト

5

テスト対象 プログラム

テスト用 実ファイル

従来,ファイル入出力を行うプログラムに対して単体テストを実施するには 準備などが大変でした。

テストケースの分だけファイルの実体を用意するのが大変!

テストケースごとに ファイルの割り当てや 結果の確認が面倒!

入出力エラーの 再現が大変!

Page 7: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

1-3. ファイルシミュレーション機能

6

ファイルシミュレーション機能を使うことで準備などの手間が削減でき, 開発効率の向上に役立ちます。

テスト対象 プログラム

単体テスト支援 ファイルシミュレーション機能

ファイルの実体は不要! テストデータの設定だけ!

テストごとの ファイルの割り当てや 結果確認が自動!

入出力エラーの シミュレーションもOK!

Page 8: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

COBOL活用ガイド No.002

単体テスト支援ファイルシミュレーション機能の活用

トレーニング

7

2. ファイルシミュレーション機能で

単体テストを実行してみましょう

Page 9: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

2-1. 演習内容

8

ファイルシミュレーション機能を用いてファイルアクセスを行うプログラムの単体テストを行います。 本演習ではファイルの読み込み/書き込みを行うプログラムに対して,「正常に読み書きができたケース」と「入出力エラーが発生したケース」の2つのケースをテストします。

テスト対象 プログラム

単体テスト支援 ファイルシミュレーション機能

テストケース1(正常)

テストケース2(エラー)

Page 10: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

2-2. テスト対象のプログラム

9

テスト対象のプログラム[SUMSALES]について説明します。 機能仕様: 各店舗の売り上げデータを集計するプログラムです。 1つの店舗の売り上げデータは1つのレコードに記載され 1つのファイルに全店舗の売り上げデータが記載されます。 これを入力ファイルとして合計値を計算し,その値を出力ファイルに出力します。

プログラム

SUMSALES

入力 出力

'ShopA' ¥5,000

'ShopB' ¥9,000

'ShopC' ¥ 300

1

2

3

Read ¥14,300 1

Write

Page 11: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

2-3. 作成するテストケースの概要

10

この演習では2つのテストケースを作成します。

プログラム

SUMSALES

入力 出力 'ShopA' ¥5,000

'ShopB' ¥9,000

'ShopC' ¥ 300

1

2

3 Read

¥14,300 1 Write

3店舗の売り上げデータをテストデータとして入力ファイルのレコードに設定し その集計結果を期待値として確認します。

入力ファイルをReadしたときに入出力エラーが発生するようテストの設定を行い プログラムがエラーリターンすることを確認します。

テストケース1 [正常ケース]

テストケース2 [入出力エラーケース]

プログラム

SUMSALES

入力

Read

エラーリターン (ERRORFLAG=1)

Page 12: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

2-4. 全体の流れ

11

大まかな手順です。

テスト対象 プログラム

単体テスト支援 ファイルシミュレーション機能

テストケース1(正常)

テストケース2(エラー)

準備

サンプルコードの準備

テストプロジェクトの作成

スタブ設定ページの確認

テストケースの作成

テストケース1の作成

テストケース2の作成

テストの実行

テスト結果の確認

テストケース1の詳細結果確認

テストケース2の詳細結果確認

カバレージの結果確認

Page 13: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

Progress

2-5. サンプルコードの準備

12

サンプルコードの準備 サンプルコードのファイルを任意のフォルダに作成します。 以降は例として以下に置いたものとして説明します。

D:¥cblsample

D:¥cblsample¥sumsales.cbl

サンプルコードは「付録1. サンプルコード」に 記載しています。 テキストをコピー&ペーストして,サンプルコードの ファイルを作成してください。

TIPS

準備するファイルは以下の1つです。

準備 テストケース1作成 テストケース2作成 実行 結果確認

Page 14: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

Progress

2-6. テストプロジェクトの作成

13

単体テスト支援を起動します。 スタートメニューから「COBOL2002 Professional Tool Kit」→「単体テスト支援」をクリックします。

スタートページから「新しいプロジェクトを作る」をクリックします。

「新しいプロジェクトを作る」ダイアログで以下の値を入力して,「作成」をクリックします。

テストプロジェクト作成時に,テストプロジェクト作業フォルダが存在しない場合には,作成するかどうかを問い合わせるダイアログが表示されるので,「OK」をクリックしてください。

TIPS

テストプロジェクト名

sumsales

COBOLソースファイル

D:¥cblsample¥sumsales.cbl

テストプロジェクト作業フォルダ

D:¥cblsample¥sumsales

準備 テストケース1作成 テストケース2作成 実行 結果確認

Page 15: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

Progress

2-7. スタブ設定ページの確認

14

ファイル入出力処理を含むプログラムでは自動的にファイルシミュレーションを行うよう設定されます。 ここではその設定がされていることを確認します。

メニューから「プロジェクト」→「スタブ設定ページを表示」をクリックします。

「スタブ設定ページ」では副プログラムやファイルのシミュレーションの設定や確認を行えます。 「入出力するファイル名」に"IN-FILE"と"OUT-FILE"のチェックボックスがオンになっていることを確認します。 このチェックボックスがオンになっているファイル名に対して,単体テスト実行時にファイルシミュレーションが行われます。

確認が完了したら「スタブ設定ページ」画面を閉じます。 「スタブ設定ページ」のタブのバツマークをクリックします。 単体テスト実行時に実ファイル入出力を行いたい場

合には「スタブ設定ページ」の「入出力するファイル名」欄から該当するファイルのチェックボックスをオフにします。

TIPS

準備 テストケース1作成 テストケース2作成 実行 結果確認

Page 16: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

Progress

2-8. テストケース1の作成(1)

15

これからテストケースを2つ作成します。 まずは正常な処理を確認するテストケースです。

画面左側の「テストプロジェクト」のツリーから"新しいテストケース"を右クリックして,右クリックメニューから「名前の変更」をクリックします。

「名前の変更」ダイアログで新しい名前に以下の値を入力して「OK」をクリックします。

新しい名前

正常ケース

準備 テストケース1作成 テストケース2作成 実行 結果確認

Page 17: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

Progress

2-9. テストケース1の作成(2)

16

次にこのテストケースにテストデータを設定します。 このテストケースでは入力ファイルおよび出力ファイルのテストデータを設定します。

画面右側の「設定」の「ファイル」タブを選びます。

まず入力のIN-FILEのテストデータを設定します。 ここでは3つのレコードと終了条件を設定します。

1つ目のレコードのテストデータを設定します。 「テストデータ(代入値)」のREAD文の"1"個目のテストデータとして以下のデータを入力します。

SHOPNAME

'ShopA'

SALES

5000

準備 テストケース1作成 テストケース2作成 実行 結果確認

Page 18: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

Progress

2-10. テストケース1の作成(3)

17

2つ目のレコードのテストデータを設定します。 まずREAD文の"1"個目のテストデータのプルダウンをクリックし,リストの末尾の"追加"をクリックします。

"2"個目のテストデータを設定する画面が表示されるので,以下のデータを入力します。

SHOPNAME

'ShopB'

SALES

9000

3つ目のレコードのテストデータを設定します。 2つ目のレコードの設定と同様に,"3"個目テストデータを追加して,以下のデータを入力します。

SHOPNAME

'ShopC'

SALES

300

準備 テストケース1作成 テストケース2作成 実行 結果確認

Page 19: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

Progress

2-11. テストケース1の作成(4)

18

終了条件を設定します。 このテストケースでは正常に読み込みが完了することを確認するため,「終了条件」のプルダウンから以下を選択します。

終了条件

AT END指定の文を実行

入力ファイルIN-FILEに対するテストデータの設定は完了しました。 次は出力ファイルOUT-FILEへの設定を行います。

準備 テストケース1作成 テストケース2作成 実行 結果確認

Page 20: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

Progress

2-12. テストケース1の作成(5)

19

OUT-FILEへテストデータを設定します。 「ファイル名」のプルダウンから"OUT-FILE"を選択します。

「テストデータ(期待値)」のWRITE文の"1"個目のテストデータに,以下の値を入力します。

TOTALSALES

14300

準備 テストケース1作成 テストケース2作成 実行 結果確認

Page 21: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

Progress

2-13. テストケース2の作成(1)

20

2つ目のテストケースを作成します。 このテストケースでは入出力エラーを確認します。

メニューから「テストケース」→「追加」をクリックします。これで「テストプロジェクト」のツリーに"新しいテストケース"が1つ追加されます。

画面左側の「テストプロジェクト」のツリーから"新しいテストケース"を右クリックして,右クリックメニューから「名前の変更」をクリックします。

「名前の変更」ダイアログで新しい名前に以下の値を入力して「OK」をクリックします。

新しい名前

入出力エラーケース

準備 テストケース1作成 テストケース2作成 実行 結果確認

Page 22: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

Progress

2-14. テストケース2の作成(2)

21

このテストケースにテストデータを設定します。 画面右側の「設定」の「ファイル」タブを選択します。

入力ファイルで入出力エラーを発生させるので,ファイル名が"IN-FILE"であることを確認します。

1回目のREAD文で入出力エラーを発生させるため,レコードの設定は不要となります。 そのため「削除」ボタンをクリックし,レコードの設定を削除します。 削除するとREAD文の"-"個目のテストデータと表示されます。

「終了条件」を設定します。 プルダウンから以下の値を選択します。

終了条件

入出力エラーを発生させる

準備 テストケース1作成 テストケース2作成 実行 結果確認

Page 23: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

Progress

2-15. テストケース2の作成(3)

22

入出力エラーが発生するとデータ項目のERRORFLAGに1が設定されプログラムの返却値となります。この値を確認します。

画面右側の「設定」の「プログラム終了時」タブを選択します。

「期待値」として以下の値を設定します。

ERRORFLAG

1

これでテストケースの設定は全て完了しました。

準備 テストケース1作成 テストケース2作成 実行 結果確認

Page 24: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

Progress

2-16. テストの実行

23

単体テストを実行します。 メニューから「テスト実行」→「すべてのテストケースを実行」をクリックし,表示されるダイアログで「OK」をクリックします。 単体テストが実行されますので少し待ちます。

すべてのテストケースの実行が完了すると画面下部の出力画面にテストプロジェクト結果レポートが表示されます。 このレポートには実行したテストケースの結果が一覧で表示されます。 判定結果がすべて"OK"となりテスト完了です。 テスト自体はこれで完了ですが,実行したテストケースの詳細結果を見てみましょう。

準備 テストケース1作成 テストケース2作成 実行 結果確認

Page 25: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

Progress

2-17. テストケース1の詳細結果確認(1)

24

詳細な結果ではテストケースの各データの値などの情報を表示できます。 まず1つ目の"正常ケース"の詳細結果を見てみます。

画面左側の「テストプロジェクト」ツリーのテスト実行結果から,先ほど実行した結果のツリーを展開して結果レポートの"正常ケース"をダブルクリックします。

画面下部に"正常ケース"のテストケース結果レポートが表示されます。

準備 テストケース1作成 テストケース2作成 実行 結果確認

Page 26: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

Progress

2-18. テストケース1の詳細結果確認(2)

25

出力ファイルに出力されたデータの値を確認します。 「出力文の実行結果」から項目を右クリックして,右クリックメニューから「結果を表示」をクリックします。

「ファイルシミュレーションの結果」ダイアログが表示されます。 このダイアログではシミュレーションを行ったレコードの各要素の値を見ることができます。 "正常ケース"ではデータ項目"TOTALSALES"の値が14300で設定した期待値と一致していることから判定結果が"OK"となっていることが分かります。

結果の値を表示するダイアログは「出力文の実行結果」だけでなく「入力文の実行結果」の各項目についても表示できます。

TIPS

準備 テストケース1作成 テストケース2作成 実行 結果確認

Page 27: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

Progress

2-19. テストケース2の詳細結果確認(1)

26

2つ目のテストケース"入出力エラーケース"の詳細結果を確認します。

画面左側の「テストプロジェクト」ツリーのテスト実行結果から,先ほど実行した結果のツリーを展開して結果レポートの"入出力エラーケース"をダブルクリックします。

画面下部に"入出力エラーケース"のテストケース結果レポートが表示されます。

準備 テストケース1作成 テストケース2作成 実行 結果確認

Page 28: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

Progress

2-20. テストケース2の詳細結果確認(2)

27

入出力ファイルで入出力エラーを発生させたときの情報を確認します。 「出力文の実行結果」から項目を右クリックして,右クリックメニューから「結果を表示」をクリックします。

「ファイルシミュレーションの結果」ダイアログが表示されます。 "入出力エラーケース"では1回目のREAD文をプログラムが実行したタイミングで"入出力エラーを発生させる"動作がシミュレーションとして行われたことが確認できます。

また「結果の値と判定結果」のデータ項目"ERRORFLAG"も期待値と値が一致し,判定結果が"OK"となっていることが分かります。

準備 テストケース1作成 テストケース2作成 実行 結果確認

Page 29: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

Progress

2-21. カバレージの結果確認

28

最後にカバレージの結果を確認します。 画面中央の「ソーステキスト」の左側にカバレージ情報が表示されています。実行された文は色がつきます。 今回のテスト実行の結果,通常の入出力処理および入出力エラー処理の全ての処理がテスト実行されたことがわかります。

また,「テストプロジェクト」ツリーのテスト実行結果からカバレージレポートをダブルクリックすると,「出力」にカバレージレポートが表示されます。 こちらからでもC0/C1メジャーが共に100%となっていることが確認できます。

ファイルシミュレーション機能により,入出力エラーの処理も簡単にテストすることができ,カバレージ網羅性を上げるのにも効果的です。 これで詳細結果も一通り確認できました。 この演習もここで完了です!

準備 テストケース1作成 テストケース2作成 実行 結果確認

Page 30: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

COBOL活用ガイド No.002

単体テスト支援ファイルシミュレーション機能の活用

トレーニング

29

3.まとめ

Page 31: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

3-1. 演習内容のまとめ

30

テスト対象 プログラム

単体テスト支援 ファイルシミュレーション機能

テストケース1(正常)

テストケース2(エラー)

ファイルシミュレーション機能を利用した単体テストについて演習を行いました。 演習では,基本的な入力と出力のテストデータの設定方法,および入出力エラーの発生のシミュレーションの設定方法や実行結果の確認について手順を紹介しました。

Page 32: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

3-2. まとめ

31

テストごとの ファイルの割り当てや 結果確認が自動!

入出力エラーの シミュレーションもOK!

テスト対象 プログラム

単体テスト支援 ファイルシミュレーション機能

単体テスト支援のファイルシミュレーション機能を活用することで,ファイル入出力を行うプログラムの単体テストの手間を削減でき,開発効率の向上に役立ちます。

ファイルの実体は不要! テストデータの設定だけ!

ファイルシミュレーション機能以外にも,単体テスト支援は単体テストに有用な機能を取り揃えています。それらについてはCOBOL活用ガイドなどで紹介していますので,ご参照ください。

Page 33: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

3-3. 補足

32

他の活用ガイドの紹介 COBOL2002活用ガイドシリーズは随時拡充/更新する予定です。 詳細はCOBOL2002のWebサイトまたは問い合わせください。 お問い合わせ先 URL:http://www.hitachi.co.jp/soft/cobol/

Page 34: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

付録1. サンプルコード

33

sumsales.cbl 000100* COBOL活用ガイド#002 000200* ファイルシミュレーション機能の活用 サンプルコード 000300* 000400* All Rights Reserved. Copyright (C) 2016, Hitachi, Ltd. 000500 IDENTIFICATION DIVISION. 000600 PROGRAM-ID. SUMSALES. 000700 ENVIRONMENT DIVISION. 000800 INPUT-OUTPUT SECTION. 000900 FILE-CONTROL. 001000 SELECT IN-FILE ASSIGN TO FILE001. 001100 SELECT OUT-FILE ASSIGN TO FILE002. 001200 DATA DIVISION. 001300 FILE SECTION. 001400 FD IN-FILE. 001500 01 INDATA. 001600 05 SHOPNAME PIC X(10). 001700 05 SALES PIC S9(5) USAGE PACKED-DECIMAL. 001800 FD OUT-FILE. 001900 01 OUTDATA. 002000 05 TOTALSALES PIC S9(9) USAGE BINARY. 002100 WORKING-STORAGE SECTION. 002200 01 LOOPFLAG PIC 9. 002300 01 SUMSALES PIC 9(9). 002400 LINKAGE SECTION. 002500 01 ERRORFLAG PIC 9. 002600 002700 PROCEDURE DIVISION RETURNING ERRORFLAG. 002800 002900*ファイル入出力エラー処理 003000 DECLARATIVES. 003100 IO-ERR SECTION. 003200 USE AFTER STANDARD ERROR PROCEDURE IN-FILE. 003300 MOVE 1 TO ERRORFLAG. 003400 EXIT PROGRAM. 003500 END DECLARATIVES. 003600

003700*初期化処理 003800 MOVE 0 TO ERRORFLAG. 003900 MOVE 0 TO SUMSALES. 004000 MOVE 0 TO LOOPFLAG. 004100 004200*店舗データの読み込みと集計 004300 OPEN INPUT IN-FILE. 004400 PERFORM UNTIL LOOPFLAG = 1 004500 READ IN-FILE 004600 AT END MOVE 1 TO LOOPFLAG 004700 NOT AT END COMPUTE SUMSALES = SUMSALES + SALES 004800 END-READ 004900 END-PERFORM. 005000 CLOSE IN-FILE. 005100 005200*集計結果の出力 005300 OPEN OUTPUT OUT-FILE. 005400 MOVE SUMSALES TO TOTALSALES. 005500 WRITE OUTDATA. 005600 CLOSE OUT-FILE. 005700 005800 EXIT PROGRAM. 005900 END PROGRAM SUMSALES.

Page 35: 単体テスト支援 ファイルシミュレーション機能の活用 - Hitachi...テスト1 [OK] テスト2 [NG] テスト実行 定期: カバレージ情報 C0 [100%] C1 [ 80%]

© Hitachi, Ltd. 2017. All rights reserved.

商標類など

34

商標類 HITACHIは株式会社 日立製作所の商標または登録商標です。 その他記載の会社名,製品名などは,それぞれの会社の商標もしくは登録商標です。