JBoss と Arquillian で実現する 究極のテスト環境 レッドハット株式会社 JBoss サービス事業部 コンサルタント 山 田義和

Similar documents
コンテナでテストをまわせ! Java EE への自動テストの導入 1 小西高之 JBoss Technical Support Engineer Red Hat K.K.

WebアプリケーションサーバJBoss入門

IBM の Java 活用ガイド_rev2

JB_weblogic_guide.indd

日立評論 2016年9月号:金融イノベーションを実現する新たなエンタープライズアプリケーション開発への取り組み

クラウド時代における アプリケーションモダナイゼーション クレイグ ムジラ副社長兼ゼネラルマネージャーミドルウェア事業部門 1

1. 検証概要 目的及びテスト方法 1.1 検証概要 Micro Focus Server Express 5.1 J の Enterprise Server が提供する J2EE Connector 機能は JCA 仕様準拠のコンテナとして多くの J2EE 準拠アプリケーションサーバーについて動作

富士通製プラットフォーム 「PRIMEPOWER/PRIMERGY」及び、富士通製ミドルウェア 「Interstage」とVantage Analyzer 動作検証完了報告書

intra-mart Accel Platform

PowerPoint プレゼンテーション

概要 はじめに :JBossをご存知でない皆様へ ケース1 Java EEアプリケーションサーバ ケース2 ルールエンジン

WebOTX V6 J2EEアプリケーションのトラブルシューティング

— intra-mart Accel Platform セットアップガイド (WebSphere編)   第7版  

Automation for Everyone <デモ で実感できる、組織全体で活用できるAnsible Tower>

WEBシステムのセキュリティ技術

管理チート シート Payara Server 5 管理チート シート The Payara Platform - Production-Ready, Cloud Native and Aggressively Compatible.

お客様からの依頼内容とその現状

アプリケーションサーバ JBoss超入門

スライド 1

CLUSTERPROXSingleServerSafe SingleServerSafe ご紹介 2007 年 10 月

スライド 1

rcp-add-01:アーキテクチャ設計書

JavaもJava Scriptも! コンテナ型アプリケーション開発PaaS登場

パフォーマンス徹底比較 Seasar2 vs Spring 2006/04/12 株式会社電通国際情報サービスひがやすを株式会社アークシステム本間宏崇 Copyright the Seasar Foundation and the others all rights reserved.

What's Oracle WebLogic Server ~なぜWebLogic Serverが選ばれるのか~

WAS V9 アナウンスメント・セミナー資料

RED HAT JBOSS ENTERPRISE APPLICATION PLATFORM データシート 機能 完全認定された Java EE 7 および Java SE 8 のサポート 完全な Web サービススタック コンテナおよびクラウドのデプロイに最適化されたモジュールアーキテクチャ エンタ

Microsoft PowerPoint RHEL_サブスクリプション構成ガイド.pptx

Red Hat OpenShift上でのInterstage Application Serverの動作手順(Java EE 7編)

Oracle SOA Suite 11gコンポジットに対するSOASchedulerの構成

1. 開発ツールの概要 1.1 OSS の開発ツール本書では OSS( オープンソースソフトウェア ) の開発ツールを使用します 一般に OSS は営利企業ではない特定のグループが開発するソフトウェアで ソースコードが公開されており無償で使用できます OSS は誰でも開発に参加できますが 大規模な

Red Hat OpenShift上でのInterstage Application Serverの動作手順(Java EE 6編)

クラウド税務 会計 給与システム開発にスピードを!A-SaaS が Sencha Ext JS / Sencha Test を導入した軌跡 第 36 回エンバカデロ デベロッパーキャンプ アカウンティング サース ジャパン株式会社土田拓也 斎藤はるか 北村圭 本文書の一部または全部の転載を禁止します

TOMOYO Linuxを体験しよう

OpenRulesモジュール

Installation Guide for Linux

INDEX Demo の目的 ゴール Scenario 1: 自動化 Scenario 2: 効率化 2

Microsoft PowerPoint - JavaFesta.ppt

Actual4Test Actual4test - actual test exam dumps-pass for IT exams

Red Hat Enterprise Linuxのcron(8)デーモンにデフォルト定義されたtmpwatch命令の動作による、WebOTXのトラブル対処方法

個人依存開発から組織的開発への移行事例 ~ 要求モデル定義と開発プロセスの形式化 による高生産性 / 高信頼性化 ~ 三菱電機メカトロニクスソフトウエア ( 株 ) 和歌山支所岩橋正実 1

OpenRulesモジュール

HIGIS 3/プレゼンテーション資料/J_GrayA.ppt

WebOTXマニュアル

PowerPoint プレゼンテーション

Oracle SQL Developerの移行機能を使用したOracle Databaseへの移行

機能安全に必要なトレーサビリティとは

ASP.NET 5 Web 開発 ~ フレームワーク編 ~

sg_lenovo_os.xlsx

Oracle WebLogic Server

Webアプリケーションでのlog4j利用ガイド

4. 環境要件 WebWrapper および WebWrapper 管理サーバ <Windows 版 > Windows2000Server ( サービスパック 3 また 4 適用済 ), Windows Server 2003 <Solaris 版 > SPARC CPU を搭載する Sun 製ワ

WebSphere Application Server V5.0 for Linux Ver. 1.11

PowerPoint プレゼンテーション

Microsoft Word - PSB導入ガイド_ docx

Agenda ハイブリッドクラウドについて Red Hat Cloud Infrastructure CloudForms 3.0 2

IM-SecureSignOn

B2-Servlet-0112.PDF

[HO-2] NetBeansとGlassFishではじめるJava EE7ハンズオン

Oracle Application Server 10g R3 新機能概要

Oracle Policy Automation 10.0システム要件

Oracle Solaris 仮想環境とプロビジョン環境の構築

Using VectorCAST/C++ with Test Driven Development


Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ

自己紹介 指崎則夫 ( さしざきのりお ) SCUGJ 運営スタッフ Microsoft MVP

Transcription:

JBoss と Arquillian で実現する 究極のテスト環境 レッドハット株式会社 JBoss サービス事業部 コンサルタント 山 田義和

Who am I? Hi, I m glad to see you! 2

Arquillian??? インテグレーションテストのための テスティングプラットフォーム http://www.jboss.org/arquillian.html 3

テスティングプラットフォーム? クールなシステムのためのクールなテストを実現するためのツールです 詳しくはこのセッションで解説します 4

サポートは? JBoss Enterprise Application Platform のサブスクリプションで Red Hat からのサポートを受けられます 使い 方に困ったら Red Hat の親切切なサポートに聞きましょう! 5

Agenda l l l l l l クールなシステムとは何か? クールなシステムをどのように作り込むか? 開発サイクルとテストの 自動化 コンポーネントマップとテスト インテグレーションテスト 自動化の課題 Arquillian のコンセプトと仕組み 6

クールなシステムの定義 使う側の要求に対して 機敏に継続的に適切切なコストで正確に 対応 7

開発サイクル 新規開発 機能修正 追加 バグ テストの 目的 要求 ( 要件 ) を設計 実装が 正確に満たしているかの評価 検証 テスト 設計 実装 8

テストを 自動化すると テスト 設計 実装 l テスト 手順を継続的に正確に再実 行行可能になります l 手動テストに 比べテストの実 行行に必要なコストが圧倒的に 小さくなります l 機敏に設計 実装の評価 検証を 行行うことが可能になります クールなシステムの定義に 完全にマッチ 9

クールなシステムを どのように作り込む? クールなシステムは 自動化されたクールなテスト で作り込む! もちろん良良い設計 実装もと ~っても 大事です 10

本セッションのテーマ クールなテストとは何か? それをどのように実現するか? JBoss Java EE 6 に関する設計 実装のお話も良良いシステムの構築に深く関係しますが別の機会に ごめんなさい 11

コンポーネントマップ component #A JAX- RS JSF CDI EJB JPA JMS Java EE Web Container Transaction DataSource messaging JBoss Enterprise Application Platform Java VM package #A component #B component #C library #A library #B library #C Application Archive package #B Kernel Red Hat Enterprise Linux H/W, N/W component #D package #C 12

コンポーネントマップとテスト 単体テスト component #A インテグレーション テスト 単体テ library #A library #B library #C スト Application スト スト Archive スト JAX- RS JSF CDI EJB JPA JMS ション Java EE ション Web Container Transaction DataSource messaging JBoss Enterprise Application Platform Java VM システム テスト package #A 単体テ component #B インテグレー テスト component #C 単体テ package #B Kernel Red Hat Enterprise Linux H/W, N/W インテグレー テスト component #D 単体テ package #C 単体テスト インテグレーション テスト システム テスト 通常のシステムテストでは DB 等の他システムとの連携のテストも 行行います 13

テストの性質とコスト 単体 テスト 影響範囲 コスト インテグレーション テスト システムテスト 1 影響範囲は主にテストが対象とするコンポーネントの範囲やテストエラーが発 生した際の 手戻りの範囲を想定しています 2 コストは主にテストの実施やテスト結果のフィードバックに必要な 人的リソースや時間的なコストを想定しています 14

テスト 自動化の現状 15

今よりテストが 自動化できたら Cooool! 16

テスト 自動化の問題点 あるインテグレーションテストの場合 テスト対象 テスト対象が依存する コンポーネント component #A component #B component #C component #D library #A library #B library #C Application Archive JAX- RS JSF CDI EJB JPA JMS Java EE Web Container Transaction DataSource messaging JBoss Enterprise Application Platform 17

テストの 自動化の問題点 component #A component #B component #C component #D library コンポーネン #A library #B library #C Application Archive ト間の依存 JAX- RS JSF CDI EJB JPA JMS コンテナ依存 Java EE Web Container Transaction DataSource messaging JBoss Enterprise Application Platform テストコードのコールスタック 18

テスト 自動化の課題 ü ü 依存するコンポーネントをどうするか? 依存するコンテナのサービスをどうするか? 何とか解決しようとすると ü モック地獄! ü コンテナのサービスの制御には かなりの 工夫が必要 ü 軽量量テストコンテナ等を使 用する場合本番環境との違いに注意する必要あり 19

課題だらけ *&# %^@!!+_^$ 20

Arquillian のコンセプト 稼働するコンテナでテスト を実 行行する 21

以下の範囲をテストの プロセスに組込む テスト実 行行時 に制御 テスト実 行行時 に 生成 テストプロセスにデプロイと component #A コンテナの制御を組込む component #B component #C component #D library #A library #B library #C Application Archive JAX- RS JSF CDI EJB JPA JMS Java EE Web Container Transaction DataSource messaging JBoss Enterprise Application Platform 22

Arquillian がテスト実 行行時 に 行行うこと 1. パッケージング (war, ear) 2. コンテナの起動 停 止 3. デプロイ アンデプロイ 4. コンテナ上でのコンポーネントのテスト 23

Arquillian の仕組み パッケージング xx.class yy.class 1. テストに必要なクラスや DD の収集 persistence. beans.xml xml 2. パッケージング テスト実行に必要なテスト制御コンポーネントも パッケージングします test.war, test.ear ~.class ~.xml Control component 24

Arquillian の仕組み コンテナの起動とデプロイ 3. コンテナの起動 JBoss (Container) 4. デプロイ test.war, test.ear test.war, test.ear ~.class ~.xml Control component 25

Arquillian の仕組み テストの実 行行 JBoss (Container) test.war, test.ear ~.class ~.xml Control component 4. テストの実 行行 26

Arquillian の仕組み コンテナの停 止とアンデプロイ JBoss (Container) 5. アンデプロイ & 停 止 27

Arquillian が実現可能にする テスト 1. Java EE に依存するテスト DI, JPA, EJB, etc 2. コンテナのサービスに依存するテスト messaging, DataSource, etc 28

Arquillian では実現できない だけ テスト 1. コンテナより低レイヤのテスト JVM, OS, etc 2. ビューレイヤのテスト JavaScript, CSS, etc 3. パフォーマンス 障害テスト 29

Demo 1 Eclipse から Remote モー ドで Arquillian によるテス トを実 行行する 30

Demo 2 Jenkins から Managed モードで Arquillian による テストを実 行行する 31

さらなるテストの 自動化へ! ご来場頂いた 方々にだけ そっと紹介します 32

まとめ l クールなシステムとは使う側の要求に対して機敏に継続的に適切切なコストで正確に対応可能なシステムである l クールなシステムの開発には 自動化されたクールなテストが実施可能な環境が必要である l Arquillian によりこれまで実現の難しかった真のインテグレーションテストが可能になる 33

まとめ + α Arquillian によりクールなテストを実現できるようになりました ただし クールな ( 必要 十分で意味のある ) テストを設計することは 自動化できません クールなテストを設計して クールなエンジニアになりましょう! 34

What a cool we are! 35

To be continued 次回 JJBug で Arquillian の 技術的な詳細を紹介します https://community.jboss.org/groups/japan- jbug? view=overview#/?tagset=undefined 36

See you later! ご清聴ありがとうございました 山 田義和 :yyamada@redhat.com