1 / 21

BPEL 単体テストのための テストケース生成手法の提案と実現

BPEL 単体テストのための テストケース生成手法の提案と実現. Design and Implementation of Test Case Generation Tool for BPEL Unit Testing. 井上研究室 博士前期課程2年 Choy Kho Yee. 概要. 背景 BPEL によるサービスの記述とそのテスト方法 提案手法 テスト対象の入出力データの型情報と依存関係を利用して、一貫性をもつテストデータを生成 テストデータを用いてテストケースを構築 実験 提案手法を実装したシステムを実際に運用してもらい、評価実験を行った.

kobe
Download Presentation

BPEL 単体テストのための テストケース生成手法の提案と実現

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BPEL単体テストのためのテストケース生成手法の提案と実現BPEL単体テストのためのテストケース生成手法の提案と実現 Design and Implementation of Test Case Generation Tool for BPEL Unit Testing 井上研究室 博士前期課程2年 Choy Kho Yee

  2. 概要 • 背景 • BPELによるサービスの記述とそのテスト方法 • 提案手法 • テスト対象の入出力データの型情報と依存関係を利用して、一貫性をもつテストデータを生成 • テストデータを用いてテストケースを構築 • 実験 • 提案手法を実装したシステムを実際に運用してもらい、評価実験を行った CS専攻 修士論文発表会

  3. SOAとBPEL • サービス指向アーキテクチャ(SOA)とは、ネットワーク上の「サービス」をメッセージ通信で呼び出すアーキテクチャ • 一般的にXMLメッセージを利用 • ウェブサービスビジネスプロセス実行言語(BPEL)とは、サービス合成のために設計されたXMLベースの言語 • WSDL、XML Schema、XPathを利用 • BPELで書かれたプログラムはBPELプロセスという CS専攻 修士論文発表会

  4. GeoInfo Currency Exchange BPELプロセスの例 XMLデータ通信 パートナー サービス BPELプロセス <request> <search>tropical island</search> </request> <query> <keyword>tropical island</keyword> </query> <response> <result>Hawaii</result> <result>Bali</result> </response> オペレーション クライアント <query> <from>Japan</from> <to>Hawaii</to> </query> <response> <result>…</result> <result>…</result> </response> <query> <from>Japan</from> <to>Bali</to> </query> CS専攻 修士論文発表会

  5. GeoInfo Currency Exchange BPELプロセスの単体テスト パートナー サービス BPELプロセス <request> <search>tropical island</search> </request> <query> <keyword>tropical island</keyword> </query> <response> <result>Hawaii</result> <result>Bali</result> </response> クライアント <query> <from>Japan</from> <to>Hawaii</to> </query> <response> <result>…</result> <result>…</result> </response> <query> <from>Japan</from> <to>Bali</to> </query> CS専攻 修士論文発表会

  6. BPELプロセス GeoInfo Currency Exchange BPELプロセスの単体テスト BPEL単体テストフレームワーク 代理クライアント • BPELUnit • BPELプロセスの単体テストフレームワーク • P. Mayer, D. Lübke, Towards a BPEL unittesting framework. TAV-WEB’06, July 17, 2006. 代理パートナーサービス CS専攻 修士論文発表会

  7. XML XML XML XML 検証 検証 検証 検証 BPELUnitのテストケース作成 テストパス 依存 依存関係を満たしたテストデータを 一貫性を持つテストデータという CS専攻 修士論文発表会

  8. BPELUnit TestSuite Editor 検証式の指定 送信データ入力 CS専攻 修士論文発表会

  9. 研究の動機と目的 一貫性をもつテストデータを作成するのが困難 • サービスが送受信するXMLデータの構造が複雑 • 既存ツールは、テストデータの作成を支援していない 一貫性をもつテストデータの作成を中心に、テストケース作成を支援するツールの提案および実装 CS専攻 修士論文発表会

  10. 着目点 • BPELはサービスの合成を目的に設計されたため、高度なデータ処理機能がない[1] • BPELでは、データ処理にXPathを標準に採用している 従って、BPELの入出力データ間での関係は 簡単なXPath式で記述できると考えられる [1] F.Leymann, D.Roller, S.Thatte, Goals of the BPEL4WS Specification. CS専攻 修士論文発表会

  11. XPath式 XML文書から情報を抽出するための式 • XML文書を木として扱い、経路で要素を特定 • 関数によって真偽値、ノード、ノードの集合を返す XML文書 <response> <result>Hawaii</result> <result>Bali</result> </response> CS専攻 修士論文発表会

  12. 提案手法 • 開発者は、テスト対象のプロセスが呼び出すパートナーサービスのオペレーション集合を指定する • 開発者は、これらのオペレーションの入出力間での依存関係をXPath式を用いて指定する • システムは、データ間での依存関係に基づき必要なデータを生成する • 独立入力– XMLスキーマに従ってランダムに生成 • 依存入力– XPath式に従って生成 • 依存出力– XPath式に従って検証式を生成 • 独立出力– 開発者が明示的に指定した値で検証式を生成 • システムは、生成されたテストデータを用いてテストケースを構築する CS専攻 修士論文発表会

  13. Currency Exchange GeoInfo データ依存の種類 /request/search = /query/keyword 代入 <request> <search>tropical island</search> </request> 多重度 <query> <keyword>tropical island</keyword> </query> <response> <result>Hawaii</result> <result>Bali</result> </response> <query> <from>Japan</from> <to>Hawaii</to> </query> /response/resultの数 = count(/response/result) <query> <from>Japan</from> <to>Bali</to> </query> オペレーションの呼出回数 = count(/response/result) <response> <result>…</result> <result>…</result> </response> CS専攻 修士論文発表会

  14. システム構成 • BPEL Data Dependency Editor • Eclipseのプラグインとして実装 • 開発者にデータ依存を定義するGUIを提供 • BPEL Data Dependency Description • データ依存を記述したXML文書 • Test Case Generator • テストデータとテストケースを生成 XMLデータの型情報 データ依存情報 CS専攻 修士論文発表会

  15. BPEL Data Dependency Editor テストケース関連 オペレーション 集合の一覧 XMLデータ 構造の表示 Xpath式挿入 データ依存 記述・追加 追加された データ依存一覧 CS専攻 修士論文発表会

  16. テストデータの生成 データ依存テーブルを利用して生成できるデータから順に 生成していく (1回目呼出の)データ依存テーブル データ格納用テーブル XMLデータ XMLデータ XMLデータ XMLデータ XMLデータ XMLデータ XMLデータ XMLデータ XMLデータ XMLデータ XMLデータ XMLデータ CS専攻 修士論文発表会

  17. XML XML XML 検証 テストケースの生成 データ格納用テーブル XMLデータ XMLデータ XMLデータ XMLデータ XMLデータ XMLデータ XMLデータ XMLデータ XMLデータ XMLデータ XMLデータ XMLデータ 生成されたテストデータを用いてテストケースを 作成していく CS専攻 修士論文発表会

  18. 適用実験の概要 • 対象:BPEL初心者の大学院生(M1)4名 • 利用ツール • BPELUnit TestSuite Editor(従来ツール) • BPEL Data Dependency Editor(提案ツール) • 手順 • 予め決められた順番で2つのBPELプロセスのためのテストケースを異なるツールで作成してもらう • 評価点 • テストケースの性質 • 一般的な間違い CS専攻 修士論文発表会

  19. 実験結果:性質 検証式の数の比較では、提案手法で作成した方が多い   ⇒ XMLデータ構造の表示が有効 CS専攻 修士論文発表会

  20. 実験結果:間違いの種類 CS専攻 修士論文発表会

  21. まとめと今後の課題 • まとめ • BPELプロセスの単体テストを支援するために、テストケースを生成する手法を提案及び実装した • 評価実験では、送受信データの間違いが従来ツールより減少 • 今後の課題 • 手法とユーザインターフェイスの改良 • BPEL開発者での評価実験 CS専攻 修士論文発表会

More Related