31
e Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka Uni Data Dependency based Test Case Generation for BPEL Uni t Testing 大大大大 大大大大大大大大大大 Choy Kho Yee 2008/03/18

Data Dependency based Test Case Generation for BPEL Unit Testing

Embed Size (px)

DESCRIPTION

Data Dependency based Test Case Generation for BPEL Unit Testing. 大阪大学 大学院情報科学研究科 Choy Kho Yee. 2008/03/18. 概要. 背景 BPEL によるサービスの記述とそのテスト方法 提案手法 テストケースの作成 テスト対象の入出力データの型情報と依存関係を利用して、一貫性をもつテストデータを生成する テストデータを用いてテストケースを構築する テスト対象の実行履歴記録 BPEL 標準機能だけを用いてプラットフォーム独立な手法で実現する 実験 - PowerPoint PPT Presentation

Citation preview

Page 1: Data Dependency based  Test Case Generation for BPEL Unit Testing

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

Data Dependency based Test Case Generation for BPEL Unit Testing

大阪大学 大学院情報科学研究科

Choy Kho Yee2008/03/18

Page 2: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 2

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

概要• 背景

– BPEL によるサービスの記述とそのテスト方法• 提案手法

– テストケースの作成• テスト対象の入出力データの型情報と依存関係を利用して、

一貫性をもつテストデータを生成する• テストデータを用いてテストケースを構築する

– テスト対象の実行履歴記録• BPEL 標準機能だけを用いてプラットフォーム独立な手法で

実現する• 実験

– 提案手法を実装したシステムを実際に運用してもらい、評価実験を行った

Page 3: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 3

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

SOA と BPEL

• サービス指向アーキテクチャ( SOA )とは、ネットワーク上の「サービス」をメッセージ通信で呼び出すアーキテクチャ

– 一般的に XML メッセージを利用• ウェブサービスビジネスプロセス実行言語

(BPEL) とは、サービス合成のために設計された XML ベースの言語

– WSDL 、 XML Schema 、 XPath を利用– BPEL で書かれたプログラムは BPEL プロセ

スという

Page 4: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 4

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

BPEL プロセスの例

GeoInfo

CurrencyExchange

<query> <keyword>tropical island</keyword></query>

<response> <result>Hawaii</result> <result>Bali</result></response>

<query> <from>Japan</from> <to>Hawaii</to></query>

<query> <from>Japan</from> <to>Bali</to></query>

<request> <search>tropical island</search></request>

<response> <result>…</result> <result>…</result></response>

BPEL プロセス

オペレーション

XML データ通信

クライアント

パートナーサービス

Page 5: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 5

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

BPEL プロセスの単体テスト

GeoInfo

CurrencyExchange

<query> <keyword>tropical island</keyword></query>

<response> <result>Hawaii</result> <result>Bali</result></response>

<query> <from>Japan</from> <to>Hawaii</to></query>

<query> <from>Japan</from> <to>Bali</to></query>

<request> <search>tropical island</search></request>

<response> <result>…</result> <result>…</result></response>

BPEL プロセス

クライアント

パートナーサービス

Page 6: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 6

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

BPEL プロセス

BPEL プロセスの単体テスト

BPEL 単体テストフレームワーク

代理クライアント

GeoInfo

CurrencyExchange

代理パートナーサービス

BPELUnit• BPEL プロセスの単体テストフレームワーク• P. Mayer, D. Lübke, Towards a BPEL unit

testing framework. TAV-WEB’06, July 17, 2006.

Page 7: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 7

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

BPELUnit のテストケース作成

XML

XML

検証

検証

検証

検証

依存

依存関係を満たしたテストデータを一貫性を持つテストデータという

XML

XML

テストパス

Page 8: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 8

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

BPELUnit TestSuite Editor

送信データ入力 検証式の指定

Page 9: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 9

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

BPELUnit でのテスト結果表示

• 得られる情報– 各テストケースに指定された検

証式の結果– 送受信メッセージの内容

• 詳細な実行履歴の取得は BPELエンジンに依存– テストカバレッジなどの算出が

困難

Page 10: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 10

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

研究動機と目的

• 一貫性をもつテストデータを作成するのが困難– サービスが送受信する XML データの構造が複雑– 既存ツールは、テストデータの作成を支援していな

• テスト実行履歴の取得は支援されていない

• 提案および実装– 一貫性をもつテストデータの生成を中心にしたテス

トケースの作成手法– プラットフォーム独立なテスト実行履歴記録手法

Page 11: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 11

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

研究動機と目的

• 一貫性をもつテストデータを作成するのが困難– サービスが送受信する XML データの構造が複雑– 既存ツールは、テストデータの作成を支援していな

• テスト実行履歴の取得は支援されていない

• 提案および実装– 一貫性をもつテストデータの生成を中心にしたテス

トケースの作成手法– プラットフォーム独立なテスト実行履歴記録手法

Page 12: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 12

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

着目点

• BPEL はサービスの合成を目的に設計されたため、高度なデータ処理機能がない[1]

• BPEL では、データ処理に XPath を標準に採用している

従って、 BPEL の入出力データ間での関係は簡単な XPath 式で記述できると考えられる

[1] F.Leymann, D.Roller, S.Thatte, Goals of the BPEL4WS Specification.

Page 13: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 13

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

XPath 式

XML 文書から情報を抽出するための式• XML 文書を木として扱い、経路で要素を特定• 関数によって真偽値、ノード、ノードの集合を

返す

<response> <result>Hawaii</result> <result>Bali</result></response>

XPath式 結果/response/result[1]/text() "Hawaii"

count(/response/result) 2

/response/result 2 つの resultノード

XML 文書

Page 14: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 14

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

提案手法1. 開発者は、テスト対象のプロセスが呼び出すパート

ナーサービスのオペレーション集合を指定する2. 開発者は、これらのオペレーションの入出力間での依

存関係を XPath 式を用いて指定する3. システムは、データ間での依存関係に基づき必要な

データを生成する– 独立入力 – XML スキーマに従ってランダムに生成– 依存入力 – XPath 式に従って生成– 依存出力 – XPath 式に従って検証式を生成– 独立出力 – 開発者が明示的に指定した値で検証式を生成

4. システムは、生成されたテストデータを用いてテストケースを構築する

Page 15: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 15

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

データ依存の種類

GeoInfo

CurrencyExchange

<query> <keyword>tropical island</keyword></query> <response>

<result>Hawaii</result> <result>Bali</result></response>

<query> <from>Japan</from> <to>Hawaii</to></query>

<query> <from>Japan</from> <to>Bali</to></query>

<request> <search>tropical island</search></request>

代入

多重度

<response> <result>…</result> <result>…</result></response>

/request/search = /query/keyword

オペレーションの呼出回数= count(/response/result)

/response/result の数= count(/response/result)

Page 16: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 16

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

テストケース生成部のシステム構成

• BPEL Data Dependency Editor– Eclipse のプラグインとして実装– 開発者にデータ依存を定義する GUI を提供

• BPEL Data Dependency Description– データ依存を記述した XML 文書

• Test Case Generator– テストデータとテストケースを生成

XMLデータの型情報

データ依存情報

Page 17: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 17

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

BPEL Data Dependency Editor

XML データ構造の表示

データ依存記述・追加

追加されたデータ依存一覧

テストケース関連オペレーション集合の一覧

XPath 式挿入

Page 18: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 18

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

BPEL Data Dependency Description

<bpelDataDependencies>

</bpelDataDependencies>

<name/><baseURL/><deployment/>

<operationSets>

</operationSets>

<operationSet> <operations/> <messages/> <dependencies/></operationSet>

BPELUnit テストケースに必要な情報

テストケースに関連するオペレーションの集合送受信メッセージとそのIDデータ依存の記述

Page 19: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 19

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

データ依存の指定例

<dependency targetMsgId= "3" dependsOnMsgId="1" type="substitution"> <target>./request/search</target> <dependsOn>./container/query/keyword</dependsOn></dependency>

<dependency targetMsgId="2" dependsOnMsgId="3" type="multiplicity"> <target>./response/result</target> <dependsOn>count(./container/response/result)</dependsOn></dependency>

代入の例

多重度の例

依存元のメッセージ ID依存先のメッセージ ID の集合

←依存元を指定する XPath 式

↑代入値を表す XPath 式

依存種類

依存種類

Page 20: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 20

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

テストデータの生成

ID データ 依存先 ID の集合

1 BPEL IN [ ]

2 BPEL OUT [4]

3 GeoInfo IN [1]

4 GeoInfo OUT [ ]

5 Currency IN [4]

6 Currency OUT [ ]

( 1 回目呼出の)データ依存テーブル

データ依存テーブルを利用して生成できるデータから順に生成していく

データ 1 回目呼出用

2 回目呼出用

(1) BPEL IN

(2) BPEL OUT

(3) GeoInfo IN

(4) GeoInfo OUT

(5) Currency IN

(6) Currency OUT

データ格納用テーブル

XML データ

XML データ

XML データ

XML データ

XML データ

XML データ

XML データ

XML データ

XML データ

XML データ

XML データ

XML データ

Page 21: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 21

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

XML データ

XML データ

XML データ

XML データ

XML データ

XML データ

XML データ

XML データ

XML データ

XML データ

XML データ

XML データ

テストケースの生成

データ格納用テーブル

データ 1 回目呼出用

2 回目呼出用

(1) BPEL IN

(2) BPEL OUT

(3) GeoInfo IN

(4) GeoInfo OUT

(5) Currency IN

(6) Currency OUT検証

XML

XML

XML

生成されたテストデータを用いてテストケースを作成していく

Page 22: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 22

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

研究動機と目的

• 一貫性をもつテストデータを作成するのが困難– サービスが送受信する XML データの構造が複雑– 既存ツールは、テストデータの作成を支援していない

• テスト実行履歴の取得は支援されていない

• 提案および実装– 一貫性をもつテストデータの生成を中心にしたテスト

ケースの作成手法– プラットフォーム独立なテスト対象の実行履歴記録手

Page 23: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 23

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

実行履歴記録• BPEL の標準な機能だけで実現する

– テスト対象の各アクティビティの前後に、実行履歴記録ウェブサービスを呼び出す記録用アクティビティを追加する

– 記録用アクティビティは、これから実行される、または実行されたアクティビティの名前を実行履歴記録ウェブサービスへ報告する

– 実行履歴記録ウェブサービスはログに記録し、各アクティビティの実行回数、成功回数、失敗回数を算出する

テスト対象

拡張したテスト対象

実行履歴記録ウェブサービス

Logger

記録

ログ

Page 24: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 24

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

アクティビティ実行結果の判定

ログ A entered.A left.

B entered.

実行回数 1 1 0

成功回数 1 0 0

失敗回数 0 1 0

A B C

実行された

Page 25: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 25

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

実行履歴記録部のシステム構成

• BPEL Process Augmenter– テスト対象に記録用アクティビティを追加する

• Logger Web Service– 実行履歴を記録し、実行回数などの値を計算する

• BPELUnit Runner Editor– Eclipse プラグイン– BPEL Process Augmenter の呼出、テストケースの実行、実行履歴の表示

Page 26: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 26

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

実行履歴情報の表示

このテストケースで実行されなかったアクティビティ

実行されたアクティビティの実行回数、成功回数、失敗回数

Page 27: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 27

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

適用実験の概要( 1/2 )• 対象: BPEL初心者の大学院生( M1 ) 4名• 利用ツール

– BPELUnit TestSuite Editor (従来ツール)– BPEL Data Dependency Editor (提案ツール)

• 手順– 背景知識やツールの使い方について説明を受ける– 2 つの BPEL プロセスの仕様とテスト仕様について理解する– 決められた順番で 2 つの BPEL プロセスのためのテストケース

を異なるツールで作成する

• 評価点– テストケースの性質– 一般的な間違い

Page 28: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 28

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

適用実験の概要( 2/2 )

• テスト対象プロセス– プロセス A: Loan Approval プロセス [1] – プロセス B: Meta Search プロセス [2]

• 作業の順番– 4 つのタスクを用意した–被験者にランダムに割り当てた

タスク テスト対象 ツール

1 A 従来

B 提案

2 B 従来

A 提案

3 A 提案

B 従来

4 B 提案

A 従来

[1] OASIS WSBPEL Technical Committee, Web Services Business Process Execution Language Version 2.0, April 2007.[2] P. Mayer, Design and Implementation of a Framework for Testing BPEL Compositions, September, 2006.

Page 29: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 29

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

実験結果:性質

検証式の数の比較では、提案手法で作成した方が多い  ⇒  XML データ構造の表示が有効

ツール別で作成された検証式の数

Page 30: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 30

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

実験結果:間違いの種類BPELUnit TestSuite Editor BPEL Data Dependency Editor

XML namespace 関連• wsdl:p:element

• 必要な namespace の入れ忘れ• 不必要な namespace の記述

• 無し

XPath 関連• 途中要素の書き忘れ

e.g. /a/b/c → /a/c

• スペルミス

• 構文上の間違い

データ関連• サービス A がサービス B のデータ

を送信• スペルミス

• 必要なデータ依存の欠如

Page 31: Data Dependency based  Test Case Generation for BPEL Unit Testing

2008/03/18

159 第 回 ソフトウェア工学研究発表会 31

Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

まとめと今後の課題

• まとめ– BPEL プロセスの単体テストを支援するために、テ

ストケースを作成する手法およびプラットフォーム独立なテスト実行履歴記録手法を提案及び実装した

– テストケース作成手法に対する評価実験では、送受信データの間違いが従来ツールより減少

• 今後の課題– 手法とユーザインターフェイスの改良– テスト実行履歴表示の改良– BPEL 開発者での評価実験