• 検索結果がありません。

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
37
0
0

読み込み中.... (全文を見る)

全文

(1)

JBoss  と  Arquillian  で実現する

究極のテスト環境

レッドハット株式会社

JBoss  サービス事業部

コンサルタント

⼭山⽥田  義和

(2)

Who  am  I  ?

Hi,  I’m  glad  

to  see  you  !

(3)

インテグレーションテストのための

テスティングプラットフォーム

http://www.jboss.org/arquillian.html

(4)

クールなシステムのためのクールなテスト

を実現するためのツールです

詳しくはこのセッションで解説します

(5)

JBoss  Enterprise  Application  Platform

 のサブスクリプションで

Red  Hat  

からのサポートを受けられます。

※  使い⽅方に困ったら  Red  Hat  の親切切なサポートに聞きましょう!

(6)

Agenda

l

クールなシステムとは何か?

l

クールなシステムをどのように作り込む

か?

l

開発サイクルとテストの⾃自動化

l

コンポーネントマップとテスト

l

インテグレーションテスト⾃自動化の課題

l

Arquillian  のコンセプトと仕組み

(7)

クールなシステムの定義

使う側の要求に対して

機敏に継続的に適切切なコストで正確に

(8)

開発サイクル

テスト 設計

実装

新規開発、

機能修正・追加

、バグ

要求(要件)

設計・実装

正確に満たしているかの

評価・検証

テストの⽬目的

(9)

テストを⾃自動化すると

テスト

設計

実装

l 

テスト⼿手順を継続的に正確に再実⾏行行可

能になります。

l 

⼿手動テストに⽐比べテストの実⾏行行に必要

なコストが圧倒的に⼩小さくなります。

l 

機敏に設計・実装の評価・検証を⾏行行う

ことが可能になります。

クールなシステムの定義に

完全にマッチ

(10)

クールなシステムは

⾃自動化されたクールなテスト

で作り込む!

※  もちろん良良い設計・実装もと〜~っても⼤大事です。      

クールなシステムを

 

どのように作り込む?

(11)

クールなテスト

とは何か?

それを

どのように実現

するか?

※  JBoss、Java  EE  6  に関する設計・実装のお話も良良いシステムの

構築に深く関係しますが別の機会に。。。ごめんなさい。

(12)

コンポーネントマップ

Red  Hat  Enterprise  Linux

Kernel

package  #A

package  #B

Java  VM

JBoss  Enterprise  Application  Platform

Web  Container

Transaction DataSource messaging

Java  EE

JAX-‐‑‒RS

JSF

EJB

JPA

JMS

library  #A

library  #B

library  #C

Application  Archive

component  #D

H/W,  N/W

CDI

component  #B

component  #A

component  #C

(13)

コンポーネントマップとテスト

Red  Hat  Enterprise  Linux

Kernel

package  #A

package  #B

Java  VM

JBoss  Enterprise  Application  Platform

Web  Container

Transaction DataSource messaging

Java  EE

JAX-‐‑‒RS

JSF

EJB

JPA

JMS

library  #A

library  #B

library  #C

Application  Archive

component  #D

H/W,  N/W

CDI

component  #B

component  #A

component  #C

package  #C

単体テ

スト

単体テ

スト

単体テ

スト

単体テ

スト

単体テ

スト

インテ

グレー

ション

テスト

インテ

グレー

ション

テスト

インテ

グレー

ション

テスト

単体テ

スト

インテ

グレー

ション

テスト

システム

テスト

システム

テスト

(14)

テストの性質とコスト

単体

テスト

インテグレーション

テスト

システムテスト

※1  影響範囲は主にテストが対象とするコンポーネントの範囲やテストエラーが発⽣生した際の⼿手戻りの範囲を想定しています。 ※2  コストは主にテストの実施やテスト結果のフィードバックに必要な⼈人的リソースや時間的なコストを想定しています。

影響範囲

コスト

(15)
(16)

今よりテストが⾃自動化できたら

(17)

テスト⾃自動化の問題点

あるインテグレーションテストの場合

JBoss  Enterprise  Application  Platform

Web  Container

Transaction DataSource messaging

Java  EE

JAX-‐‑‒RS

JSF

EJB

JPA

JMS

library  #A

library  #B

library  #C

Application  Archive

component  #D

CDI

component  #B

component  #A

component  #C

テスト対象

テスト対象が依存する

コンポーネント

(18)

テストの⾃自動化の問題点

JBoss  Enterprise  Application  Platform

Web  Container

Transaction DataSource messaging

Java  EE

JAX-‐‑‒RS

JSF

EJB

JPA

JMS

library  #A

library  #B

library  #C

Application  Archive

component  #D

CDI

component  #B

component  #A

component  #C

※  テストコードのコールスタック

コンポーネン

ト間の依存

(19)

テスト⾃自動化の課題

ü 

依存するコンポーネントをどうするか?

ü 

依存するコンテナのサービスをどうするか?

ü

モック地獄!

ü

コンテナのサービスの制御には

かなりの⼯工夫が必要

ü

軽量量テストコンテナ等を使⽤用する場合本番環境との違

いに注意する必要あり

何とか解決しようとすると

(20)

○*&#×

%^@△!!+_^$

(21)

Arquillian  のコンセプト

稼働するコンテナでテスト

(22)

以下の範囲をテストの

プロセスに組込む

JBoss  Enterprise  Application  Platform

Web  Container

Transaction DataSource messaging

Java  EE

JAX-‐‑‒RS

JSF

EJB

JPA

JMS

library  #A

library  #B

library  #C

Application  Archive

component  #D

CDI

component  #B

component  #A

component  #C

テスト実⾏行行時

に制御

テスト実⾏行行時

に⽣生成

テストプロセスにデプロイと

コンテナの制御を組込む

(23)

Arquillian  がテスト実⾏行行時

に⾏行行うこと

1. パッケージング(war,  ear)

2. コンテナの起動・停⽌止

3. デプロイ・アンデプロイ

4. コンテナ上でのコンポーネントのテスト

(24)

Arquillian  の仕組み

パッケージング

test.war,  test.ear

xx.class

yy.class

beans.xml

persistence.

xml

1.テストに必要なクラスや  DD  の収集

2.  パッケージング

テスト実行に必要なテスト

制御コンポーネントも

パッケージングします。

〜~.class

〜~.xml

Control   component

(25)

Arquillian  の仕組み

コンテナの起動とデプロイ

JBoss  

(Container)

3.  コンテナの起動

test.war,  test.ear

〜~.class

〜~.xml

Control   component

test.war,  test.ear

4.  デプロイ

(26)

Arquillian  の仕組み

テストの実⾏行行

JBoss  

(Container)

4.  テストの実⾏行行

test.war,  test.ear

〜~.class

〜~.xml

Control   component

(27)

Arquillian  の仕組み

コンテナの停⽌止とアンデプロイ

JBoss  

(Container)

(28)

Arquillian  が実現可能にする

テスト

1.

Java  EE  

に依存するテスト

DI,  JPA,  EJB,  …  etc  

2.

コンテナのサービスに依存するテスト

messaging,  DataSource,  …  etc

(29)

Arquillian  では実現できない

テスト

1.

コンテナより低レイヤのテスト

JVM,  OS,  …  etc

2.

ビューレイヤのテスト

JavaScript,  CSS,  …  etc

3.

パフォーマンス・障害テスト

だけ

(30)

Demo  1

Eclipse  から  Remote  モー

ドで  Arquillian  によるテス

(31)

Demo  2

Jenkins  から  Managed  

モードで  Arquillian  による

(32)

さらなるテストの⾃自動化へ!

ご来場頂いた⽅方々

にだけ

(33)

まとめ

l

クールなシステムとは使う側の要求に

対して機敏に継続的に適切切なコストで

正確に対応可能なシステムである

l

クールなシステムの開発には⾃自動化さ

れたクールなテストが実施可能な環境

が必要である

l

Arquillian  によりこれまで実現の難し

かった真のインテグレーションテスト

が可能になる

(34)

まとめ  +  α

Arquillian  によりクールなテストを実現

できるようになりました

ただし

クールな(必要⼗十分で意味のあ

る)テストを設計することは⾃自動化でき

ません

クールなテストを設計して

クールなエンジニアになりましょう!

(35)
(36)

To  be  continued

次回  JJBug  で  Arquillian  の

技術的な詳細を紹介します

https://community.jboss.org/groups/japan-‐‑‒jbug?

view=overview#/?tagSet=undefined

(37)

ご清聴ありがとうございました。

⼭山⽥田  義和:yyamada@redhat.com

See  you  

later  !

参照

関連したドキュメント

油症体格中等︑落丁稽ζ不遜︑胸腹部内臓器二千攣ヲ認メズ.

  黄蓮      キンポウゲ  カラマシソウ タガラシ

(注 3):必修上位 17 単位の成績上位から数えて 17 単位目が 2 単位の授業科目だった場合は,1 単位と

Mizuno: Lower Bounds for the Maximum Number of Solutions Generated by the Simplex Method, Journal of the Operations Research Society of Japan, 54 (2011), 191–200.

 固定資産は、キャッシュ・フローを生み出す最小単位として、各事業部を基本単位としてグルーピングし、遊休資産に

年限 授業時数又は総単位数 講義 演習 実習 実験 実技 1年 昼 930 単位時間. 1,330

Tomonari KITAHARA and Shinji MIZUNO (TIT) 単体法と強多項式アルゴリズム July 21–23, 2015 5 / 53..

 単管20509以上難題安静時二於ケル新産見25 平中1 以内二反慮ヲ起スモノ22例(88%)=シ テ,最長5