bpel 単体テストのための テストケース生成手法の提案と実現
DESCRIPTION
BPEL 単体テストのための テストケース生成手法の提案と実現. Design and Implementation of Test Case Generation Tool for BPEL Unit Testing. 井上研究室 博士前期課程2年 Choy Kho Yee. 概要. 背景 BPEL によるサービスの記述とそのテスト方法 提案手法 テスト対象の入出力データの型情報と依存関係を利用して、一貫性をもつテストデータを生成 テストデータを用いてテストケースを構築 実験 提案手法を実装したシステムを実際に運用してもらい、評価実験を行った. - PowerPoint PPT PresentationTRANSCRIPT
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
BPEL 単体テストのためのテストケース生成手法の提案と実現
井上研究室博士前期課程2年
Choy Kho Yee
Design and Implementation ofTest Case Generation Tool for BPEL Unit Testing
2008/02/15
CS 専攻 修士論文発表会 2
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
概要
• 背景– BPEL によるサービスの記述とそのテスト方法
• 提案手法– テスト対象の入出力データの型情報と依存関係
を利用して、一貫性をもつテストデータを生成– テストデータを用いてテストケースを構築
• 実験– 提案手法を実装したシステムを実際に運用して
もらい、評価実験を行った
2008/02/15
CS 専攻 修士論文発表会 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 プロセ
スという
2008/02/15
CS 専攻 修士論文発表会 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 データ通信
クライアント
パートナーサービス
2008/02/15
CS 専攻 修士論文発表会 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 プロセス
クライアント
パートナーサービス
2008/02/15
CS 専攻 修士論文発表会 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.
2008/02/15
CS 専攻 修士論文発表会 7
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
BPELUnit のテストケース作成
XML
XML
検証
検証
検証
検証
依存
依存関係を満たしたテストデータを一貫性を持つテストデータという
XML
XML
テストパス
2008/02/15
CS 専攻 修士論文発表会 8
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
BPELUnit TestSuite Editor
送信データ入力 検証式の指定
2008/02/15
CS 専攻 修士論文発表会 9
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
研究の動機と目的
一貫性をもつテストデータを作成するのが困難
– サービスが送受信する XML データの構造が複雑– 既存ツールは、テストデータの作成を支援して
いない
一貫性をもつテストデータの作成を中心に、テストケース作成を支援するツールの提案および実装
2008/02/15
CS 専攻 修士論文発表会 10
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.
2008/02/15
CS 専攻 修士論文発表会 11
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 文書
2008/02/15
CS 専攻 修士論文発表会 12
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
提案手法1. 開発者は、テスト対象のプロセスが呼び出すパート
ナーサービスのオペレーション集合を指定する2. 開発者は、これらのオペレーションの入出力間での依
存関係を XPath 式を用いて指定する3. システムは、データ間での依存関係に基づき必要な
データを生成する– 独立入力 – XML スキーマに従ってランダムに生成– 依存入力 – XPath 式に従って生成– 依存出力 – XPath 式に従って検証式を生成– 独立出力 – 開発者が明示的に指定した値で検証式を生成
4. システムは、生成されたテストデータを用いてテストケースを構築する
2008/02/15
CS 専攻 修士論文発表会 13
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)
2008/02/15
CS 専攻 修士論文発表会 14
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 データの型情報
データ依存情報
2008/02/15
CS 専攻 修士論文発表会 15
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
BPEL Data Dependency Editor
XML データ構造の表示
データ依存記述・追加
追加されたデータ依存一覧
テストケース関連オペレーション集合の一覧
Xpath 式挿入
2008/02/15
CS 専攻 修士論文発表会 16
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 データ
2008/02/15
CS 専攻 修士論文発表会 17
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
生成されたテストデータを用いてテストケースを作成していく
2008/02/15
CS 専攻 修士論文発表会 18
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
適用実験の概要• 対象: BPEL初心者の大学院生( M1 ) 4名• 利用ツール
– BPELUnit TestSuite Editor (従来ツール)– BPEL Data Dependency Editor (提案ツール)
• 手順– 予め決められた順番で 2 つの BPEL プロセスのため
のテストケースを異なるツールで作成してもらう• 評価点
– テストケースの性質– 一般的な間違い
2008/02/15
CS 専攻 修士論文発表会 19
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
実験結果:性質
検証式の数の比較では、提案手法で作成した方が多い ⇒ XML データ構造の表示が有効
2008/02/15
CS 専攻 修士論文発表会 20
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 のデータ
を送信• スペルミス
• 必要なデータ依存の欠如
2008/02/15
CS 専攻 修士論文発表会 21
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
まとめと今後の課題
• まとめ– BPEL プロセスの単体テストを支援するため
に、テストケースを生成する手法を提案及び実装した
– 評価実験では、送受信データの間違いが従来ツールより減少
• 今後の課題– 手法とユーザインターフェイスの改良– BPEL 開発者での評価実験