SlideShare a Scribd company logo
1 of 50
Download to read offline
Asakusaソースコードリーディング
#4 – Asakusa Test Driver
2011/08/26
川⼝口  章  (@apirakun)
Asakusaソースコードリーディング#4 2
本⽇日の内容
l A Brief History of Asaksa Test Driver
l TestDriverが誕⽣生するまで  (〜~ver 0.1)
l TestDriverのリアーキテクト  (〜~ver 0.2)
l TestDriverのこれから
l Asakusa CI on AWS
l Source Code Reading
l TestDriver ver 0.2 API
2
Asakusaソースコードリーディング#4 3
⾃自⼰己紹介
l 川⼝口  章  (@apirakun)
l Asakusa Frameworkの活動
n Asakusa Test Driverの設計/実装
n  CI環境のメンテナンス  (Jenkins)
n   ソースリポジトリ管理理  (GitHub)
n   ビルド・リリース管理理  (Maven)
n   ドキュメントの公開  (Sphinx)
n   開発環境・デプロイ周り  (misc.)
l 普段の仕事
n  SI:Web系の⾃自動テストツール開発
n   流流通ミドルウェアの技術サポート
Asakusaソースコードリーディング#4 4
リソース
l Source Code (branch:0.2-develop)
l https://github.com/asakusafw/asakusafw/
tree/0.2-develop
n asakusa-test-driver
n asakusa-test-modelator
n asakusa-test-data-provider
n asakusa-thundergate-test-modelator
l Documents (アプリケーションのテスト)
l http://asakusafw.s3.amazonaws.com/
documents/0.2/release/ja/html/testing/
index.html
4
Asakusaソースコードリーディング#4 5
TestDriverが誕⽣生するまで
(〜~ver 0.1)
「Hadoopで基幹バッチ」に耐え得るテストフレームワークとして
5
Asakusaソースコードリーディング#4 6
Asakusa Frameworkの構成
l 各種DSLを起点とした構成
6
データモデル
定義
データモデル
Javaクラス
Asakusa
DSL
バッチ構造
データフロー
プロセス
ワークフロー
定義
外部連携
プログラム
Map Reduce
プログラム
DSL
コンパイラ
DMDL
コンパイラ
Review
Asakusaソースコードリーディング#4 7
Batch Dataflow ProcessDataflow Part
各種DSLの構造
l 層ごとに書くべきことが異異なる
7
UoW
#1
UoW
#2
UoW
#3
UoW
#4
1.  ……………
    1.1.  ………
    1.2.  ………
2.  ……………
    2.1.  ………
    2.2.  ………
    2.a.  ………
3.  …………
4.  …………
Batch DSL Flow DSL Operator DSL
Review
Asakusaソースコードリーディング#4 8
DSLに対するテスト戦略略
l   各DSL毎のテスト⽅方法を提供
l Operator
l FlowPart
l JobFlow
l Batch
l テストデータの作成⽅方法を提供
l データモデル定義をベースにする
l 複雑なデータモデルに対応する
Asakusaソースコードリーディング#4 9
DSL毎のテスト⽅方針 <1/2>
l Operatorのテスト
l 通常のJavaクラスに対するテスト
l 少数のModelに対する⼊入⼒力力/検証
l FlowPartのテスト
l DSLをコンパイルして⽣生成されるMapReduce
Jobに対するテスト
l ⼊入出⼒力力データの実体はSequenceFile
l 多数のModelに対する⼊入⼒力力/検証
Asakusaソースコードリーディング#4 10
DSL毎のテスト⽅方針  <2/2>
l JobFlowのテスト
l 外部インターフェース機能(ThunderGate)
と連携したテスト
l Batchのテスト
l ワークフローエンジン連携機能と連携した
テスト
n 試験的ワークフロー実⾏行行機能(experimental.sh)
と連携したテスト
Asakusaソースコードリーディング#4 11
テストデータの作成⽅方法  <1/2>
l Model⾃自動⽣生成機能との連携
l Modelと乖離離しないテストデータのTemplat
eを作成
l 多数の複雑なModelに対する⼊入出⼒力力の定義
l いろいろ議論論があったがExcelで
l 緻密なテスト検証⽅方法を提供
l テーブル毎/カラム毎に対する検査条件の指定
l DBの定義とは別に検査⽤用のキーカラムを指定
l DBUnitでやろうとすると⼤大変なことを簡単に
Asakusaソースコードリーディング#4 12
テストデータの作成⽅方法  <2/2>
l DB以外のテストデータ⽣生成・検証
l Hadoopのシーケンスファイル
n テスト実装者にはデータ実体の違いを隠蔽したい
Asakusaソースコードリーディング#4 13
テスタビリティの追求  <1/5>
l テストが⾃自動化出来る
l CIに乗せることを前提とした⽅方式検討
l 必要な機能はなにか  – 何を⾃自動化するのか
n テストデータの⽣生成・セットアップ
n バッチコンパイル・デプロイ
n ThunderGate・HadoopJobの実⾏行行
n CI Serverとの連携⽅方式
l 過剰な機能はなにか  – 何を⾃自動化しないのか
n 迅速なフィードバックとテストの価値を天秤に
かける
Asakusaソースコードリーディング#4 14
テスタビリティの追求  <2/5>
l 同じ⽅方法でテスト出来る
l 各種DSLの仕組みの違いを出来るだけ隠蔽
l FlowPartとJobFlow のデータ⼊入出⼒力力
n SequencFile/DB上のテーブル
l JobFlowとBatch のテスト対象の実⾏行行⽅方法
n   hadoopコマンド/experimental.sh
Asakusaソースコードリーディング#4 15
テスタビリティの追求  <3/5>
l テスト実装を迷わせない
l テスト⽤用APIの設計
n   シンプルなAPI
n   強い制約
n   ある程度度の汎⽤用性は犠牲に
Asakusaソースコードリーディング#4 16
テスタビリティの追求  <4/5>
l 通常のJava開発と同様にテスト出来る
l Eclipse上でテストも書ける
l JUnit上でテストが実⾏行行出来る
Asakusaソースコードリーディング#4 17
テスタビリティの追求  <5/5>
l ローカルでテストが出来る
l 当初はあきらめていた
n CI環境でのみ
n 疑似分散モード前提
l Windows上でHadoopが動作しない
n Linux開発環境(AsakusaSDK)を提供
l 疑似分散モードはフィードバックが遅い
n スタンドアロンモード対応
Asakusaソースコードリーディング#4 18
Asakusa Test Driver (0.1)
l TestDriver(0.1)が提供するもの
l testdriver.XXXTestDriver
n FlowPart-/JobFlow-/Batch-
l 特徴
l Ashigel Compiler/HadoopJob/ThunderGateの実⾏行行
を隠蔽
l ModelGeneratorから緻密なテストデータ定義が可
能なテストデータのTemplate(Excel)を⽣生成
l 各種DSLで同じようにテスト出来るシンプルなAPI
l テストが⾃自動化出来る
l スタンドアロンモードで動作
本資料料ではパッケージ名の
com.asakusafw は省省略略
Asakusaソースコードリーディング#4 19
TestDriverのリアーキテクト
TestDriverのさらなる成⻑⾧長を⽬目指して
19
Asakusaソースコードリーディング#4 20
TestDriver(0.1)が出来ないこと
l 汎⽤用性がない
l ThunderGate決め打ち:ThunderGate以外の
外部連携を使った場合のテスト⼿手段を提供
出来ない
l Excel決め打ち:Excel以外でテストデータを
定義する⼿手段を提供していない
l 0.1の実装上に拡張を⾏行行うのは困難
l 0.1の良良いところを維持しつつ、TestDriver
の内部を拡張可能にするためにリファクタ
リング(リアーキテクト)することに
Asakusaソースコードリーディング#4 21
Asakusa Test Driver (0.2)
l NewAPIの提供
l testdriver.XXXTester
n FlowPart-/JobFlow-/Batch-
l 特徴
l  ThunderGate以外の外部連携に対応
n ファイルインターフェース
l  Excel以外のテストデータ⼊入出⼒力力に対応
n デフォルトはJSONとExcelを提供
n Excelフォーマットも0.1細かく改善(Calcも使える)
l  SPIで拡張可能
n   Ashigel Compilerに似た拡張戦略略
Asakusaソースコードリーディング#4 22
TestDriver(0.2)のテスト実装例例
l ジョブフローのテスト実装例例
Asakusaソースコードリーディング#4 23
TestDriver(0.2)のテストデータ定義
l テストデータ定義シート例例
Asakusaソースコードリーディング#4 24
Test Data
TestDriver(0.2)のアーキテクチャ概要
Import Tgt
Batch App
Import
Export
Export Tgt
M/R Job
M/R Job
M/R Job
Input
Resource
Expected
Resource
Verify
Resource
TestDriver
Preparator
Inspector
Executor
Compiler
Batch Compile
Execute
Import
Resource
Export
Resource
Asakusa
DSL
Asakusaソースコードリーディング#4 25
これからのTestDriver
さらなる進化に向けて
25
Asakusaソースコードリーディング#4 26
テストを短時間で終了了させる
l Distributed Testing
l 複数のマシンでテストを並列列実⾏行行させてテス
トを短時間で終了了させる
l Cloud Testing
l AWSと連携
Asakusaソースコードリーディング#4 27
検証機能の強化
l Define the relationship between input
and output
l データの移動が発⽣生するだけの項⽬目は「こ
の項⽬目は⼊入⼒力力モデルのこれと等しい」とい
うように定義したい
n MOVE⽂文のテスト
l テストデータの定義から仕様(テストの観点
)を追いやすくする
Asakusaソースコードリーディング#4 28
テストデータ作成の⾃自動化
l テストデータパターンを定義する
l テストデータ定義にテストデータパターン
を記述し、パターンから⽣生成されたテスト
データに対してテストドライバを流流す
Asakusaソースコードリーディング#4 29
Asakusa CI on AWS
Asakusa Framework の  CI環境
29
Asakusaソースコードリーディング#4 30
Asakusa FrameworkのCI環境
l AWS(EC2/S3)上にCI環境を構築しています
l http://ec2-175-41-241-89.ap-
northeast-1.compute.amazonaws.com/
jenkins/
Asakusaソースコードリーディング#4 31
Amazon S3Amazon EC2
Asakusa CI環境の構成
Jenkins
Master
GitHub
Development
Environment
git push
<Service Hooks>
Post Receive URLs
Jenkins
Slave
<Amazon EC2 Plugin>
distributed build Maven
Repository
Documents
deploy
copy
tweet
Maven Archetype
Catalog
Twitter
Asakusaソースコードリーディング#4 32
MasterとSlave
l Jenkins Master
l マイクロインスタンスを常に稼働させておく
l JenkinsのWebフロントエンドとしてのみ使⽤用
l Jenkins Slave
l 主要なビルド処理理はすべてここで実⾏行行
l High-CPUミディアムインスタンスを実⾏行行時に起動
n スモールインスタンスのほぼ半分の時間でビルドが完了了
l Amazon EC2 Plugin
l JenkinsスレーブをEC2のAMIとして起動する
l Idleが30分続くと⾃自動的に停⽌止
l CIサーバのランニングコスト:⽉月々1,000円〜~2,000円
Asakusaソースコードリーディング#4 33
Jenkins Amazon EC2 Plugin
l Jenkins Slaveとして起動するAMIを指定
Asakusaソースコードリーディング#4 34
GitHubとJenkinsの連携
l GitHubからJenkinsへpush通知
l GitHubの「Post Receive URLs」を利利⽤用
n git pushを受けると即時にJenkinsに対してget
l git pushしたブランチだけをビルドする
n Post Receive URLs はRequest URLが固定
n 特定のJenkins Jobを起動することしか出来ない
n 窓⼝口⽤用のJobで受けて、下流流のJobにビルドする
可能性があるブランチを定義したJobをすべて紐紐
付け
n これで⼀一応出来るが、ムダなビルドが多数発⽣生
n Jenkinsの「Downstream-Ext Plugin」を利利⽤用
n リポジトリに変更更がない場合ビルドを中⽌止出来る
Asakusaソースコードリーディング#4 35
Build Pipeline
l ビルドからリリースまで
の処理理を多段のジョブで
実⾏行行
push-hook
build-
kicker
build-main archetype
build-
report
examples deploy
GitHub
get request
Jenkins
Master
Jenkins
Slave
Asakusaソースコードリーディング#4 36
ビルド結果のフィードバック
l Twitterプラグイン
l @asakusa_ci
Asakusaソースコードリーディング#4 37
Asakusa Test Driver
Source Code Reading
拡張ポイントを中⼼心に
37
Asakusaソースコードリーディング#4 38
Test Data
TestDriver(0.2)のアーキテクチャ概要(再掲)
Import Tgt
Batch App
Import
Export
Export Tgt
M/R Job
M/R Job
M/R Job
Input
Resource
Expected
Resource
Verify
Resource
TestDriver
Preparator
Inspector
Executor
Compiler
Batch Compile
Execute
Import
Resource
Export
Resource
Asakusa
DSL
Asakusaソースコードリーディング#4 39
Compilerを詳しく
l テスト対象のDSLをバッチコンパイル
l Ashigel Compilerの呼出
n DirectFlowCompiler
n DirectBatchCompiler
n Asakusaソースコードリーディング#1 を参照
l TestDriverでは簡易易実⾏行行計画を扱う
n ステージの実⾏行行計画をトポロジカルソート
n 逐次実⾏行行
Asakusaソースコードリーディング#4 40
Preparatorを詳しく
DataModel
Source
ModelOutput
Importer
Preparator
Source
Provider
Model
(Reflection)
DataModel
Source
ModelOutput
Source
Provider
DataModel
Source
Model
Output
Asakusa
DSL
Importer
Description
Import Tgt
Import
Resource
Test Data
Input
Resource
Objectの⽣生成
TestDataの流流れ
SPI
Asakusaソースコードリーディング#4 41
SPIで拡張可能な部品
l testdriver.core.SourceProvider
l URIに対応するModelのデータソース
(DataModelSource)を提供
l ver0.2.1時点では以下の実装を提供
n testdriver.json.JsonSourceProvider
n testdriver.excel.ExcelSheetSourceProvider
Asakusaソースコードリーディング#4 42
SPIで拡張可能な部品
l testdriver.core.ImporterPreparator
l Import対象に対応したモデル出⼒力力オブジェク
ト(ModelOutput)を提供
l ver0.2.1時点では以下の実装を提供
n testdriver.file.FileImporterPreparator
n testdriver.bulkloader.BulkloaderImporterPreparat
or
Asakusaソースコードリーディング#4 43
ThunderGate/Excelデータの場合
DataModel
Source
ModelOutput
BulkloaderImpor
terPreparator
Source
Provider
Model
(Reflection)
DataModel
Source
ModelOutput
ExcelSheetSou
rceProvider
ExcelSheetDat
aModelSource
Table
Output
Asakusa
DSL
BulkloaderImpor
terDescription
Import Tgt
MySQL
Test Data
Exeel
Sheet
Objectの⽣生成
TestDataの流流れ
SPI
Asakusaソースコードリーディング#4 44
Executorを詳しく
l ステージに対応するコマンドを順次実⾏行行
l JobflowInfo
l ExternalIoCommandProvider
n ver0.2.1時点ではOS(Linux)依存のコマンドを出⼒力力
Asakusaソースコードリーディング#4 45
Inspectorを詳しく
DataModel
Source
Exporter
Retriever
Source
Provider
DataModel
Source
Source
Provider
DataModel
Source
DataModel
Source
Asakusa
DSL
Exporter
Description
Export Tgt
Export
Resource
Test Data
Expected
Resource
Verify
Resource
VerifyRule
Provider
DataModel
Source
DataModel
Source
Verify
Rule
Model
(Reflection)
Model
(Reflection)
Objectの⽣生成
TestDataの流流れ
SPI
Asakusaソースコードリーディング#4 46
SPIで拡張可能な部品
l testdriver.core.ExporterRetriever
l Export対象に対応したModelのデータソース
(DataModelSource)を提供
l ver0.2.1時点では以下の実装を提供
n testdriver.file.FileExporterRetriever
n testdriver.bulkloader.BulkloaderExporterRetriever
Asakusaソースコードリーディング#4 47
SPIで拡張可能な部品
l testdriver.core.VerifyRuleProvider
l URIに対応する検証ルール解析オブジェクト
(VerifyRule)を提供
l ver0.2.1時点では以下の実装を提供
n testdriver.excel.ExcelSheetRuleProvider
l 検証ルールをJavaで記述することも可能
n testdriver.core.ModelVerifier
Asakusaソースコードリーディング#4 48
拡張してみる
l 例例:期待値をデータベースに定義する
l モチベーション
n Excelのレコード数の上限を超える
n 既存システムのテーブルデータをそのままテス
トデータに活⽤用
n ツールでテストデータを作りやすいかも
Asakusaソースコードリーディング#4 49
SourceProviderを追加
DataModel
Source
Exporter
Retriever
Source
Provider
DataModel
Source
Source
Provider
DataModel
Source
DataModel
Source
Asakusa
DSL
Exporter
Description
Export Tgt
Export
Resource
Test Data
DataBase
Table
Excel
Sheet
VerifyRule
Provider
DataModel
Source
DataModel
Source
Verify
Rule
Model
(Reflection)
Model
(Reflection)
Objectの⽣生成
TestDataの流流れ
SPI
DBのTableを扱う
SourceProviderを
追加する
Asakusaソースコードリーディング#4 50
実はあります
l Issue#64:Enable to input expect data from
database table.
l https://github.com/asakusafw/asakusafw/issues/64
l 修正内容
l TableSourceProviderを追加
n testdriver.bulkloader.TableSourceProvider
l SPIの定義ファイルを追加
n src/main/resources/META-INF/services/
com.asakusafw.testdriver.core.SourceProvider
l 使い⽅方
l URIに以下の⽂文字列列を指定
n   “bulkloader:<target_name>:<table_name>”
n  例例:”bulkloader:asakusa:ORDER”

More Related Content

What's hot

ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発papamitra
 
AndroidでScalaを使う際の問題点と対策
AndroidでScalaを使う際の問題点と対策AndroidでScalaを使う際の問題点と対策
AndroidでScalaを使う際の問題点と対策Mogi Isamu
 
並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門Yoshimura Soichiro
 
Skinny Meetup Tokyo 2 日本語スライド
Skinny Meetup Tokyo 2 日本語スライドSkinny Meetup Tokyo 2 日本語スライド
Skinny Meetup Tokyo 2 日本語スライドKazuhiro Sera
 
AWSをコードで定義する
AWSをコードで定義するAWSをコードで定義する
AWSをコードで定義するSugawara Genki
 
Getting Started With Ore-Ore Swift Standard Library +
Getting Started With Ore-Ore Swift Standard Library +Getting Started With Ore-Ore Swift Standard Library +
Getting Started With Ore-Ore Swift Standard Library +Tomohiro Kumagai
 
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねGitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねNaoto TAKAHASHI
 
明日からはじめられる Docker + さくらvpsを使った開発環境構築
明日からはじめられる Docker + さくらvpsを使った開発環境構築明日からはじめられる Docker + さくらvpsを使った開発環境構築
明日からはじめられる Docker + さくらvpsを使った開発環境構築MILI-LLC
 
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システムSIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システムyayamamo @ DBCLS Kashiwanoha
 
Getting Started With Ore-Ore Swift Standard Library ++ ほんのり続報
Getting Started With Ore-Ore Swift Standard Library ++ ほんのり続報Getting Started With Ore-Ore Swift Standard Library ++ ほんのり続報
Getting Started With Ore-Ore Swift Standard Library ++ ほんのり続報Tomohiro Kumagai
 
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)さくらインターネット株式会社
 
Espresso と Firebase Test Lab で Android アプリのテストを自動化する
Espresso と Firebase Test Lab で Android アプリのテストを自動化するEspresso と Firebase Test Lab で Android アプリのテストを自動化する
Espresso と Firebase Test Lab で Android アプリのテストを自動化する健一 辰濱
 
Rails解説セミナー: Railsのアップグレード編
Rails解説セミナー: Railsのアップグレード編Rails解説セミナー: Railsのアップグレード編
Rails解説セミナー: Railsのアップグレード編Yohei Yasukawa
 
はてなのサービスの開発環境
はてなのサービスの開発環境はてなのサービスの開発環境
はてなのサービスの開発環境ast_j
 
Scala が支える医療系ウェブサービス #jissenscala
Scala が支える医療系ウェブサービス #jissenscalaScala が支える医療系ウェブサービス #jissenscala
Scala が支える医療系ウェブサービス #jissenscalaKazuhiro Sera
 
Servlet と Future の関わり方 #scala_ks
Servlet と Future の関わり方 #scala_ksServlet と Future の関わり方 #scala_ks
Servlet と Future の関わり方 #scala_ksKazuhiro Sera
 

What's hot (20)

ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発
 
AndroidでScalaを使う際の問題点と対策
AndroidでScalaを使う際の問題点と対策AndroidでScalaを使う際の問題点と対策
AndroidでScalaを使う際の問題点と対策
 
並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門
 
Skinny Meetup Tokyo 2 日本語スライド
Skinny Meetup Tokyo 2 日本語スライドSkinny Meetup Tokyo 2 日本語スライド
Skinny Meetup Tokyo 2 日本語スライド
 
Fcp
FcpFcp
Fcp
 
AWSをコードで定義する
AWSをコードで定義するAWSをコードで定義する
AWSをコードで定義する
 
Getting Started With Ore-Ore Swift Standard Library +
Getting Started With Ore-Ore Swift Standard Library +Getting Started With Ore-Ore Swift Standard Library +
Getting Started With Ore-Ore Swift Standard Library +
 
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねGitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
 
Jenkins 2.0 (日本語)
Jenkins 2.0 (日本語)Jenkins 2.0 (日本語)
Jenkins 2.0 (日本語)
 
明日からはじめられる Docker + さくらvpsを使った開発環境構築
明日からはじめられる Docker + さくらvpsを使った開発環境構築明日からはじめられる Docker + さくらvpsを使った開発環境構築
明日からはじめられる Docker + さくらvpsを使った開発環境構築
 
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システムSIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
 
Getting Started With Ore-Ore Swift Standard Library ++ ほんのり続報
Getting Started With Ore-Ore Swift Standard Library ++ ほんのり続報Getting Started With Ore-Ore Swift Standard Library ++ ほんのり続報
Getting Started With Ore-Ore Swift Standard Library ++ ほんのり続報
 
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
 
Espresso と Firebase Test Lab で Android アプリのテストを自動化する
Espresso と Firebase Test Lab で Android アプリのテストを自動化するEspresso と Firebase Test Lab で Android アプリのテストを自動化する
Espresso と Firebase Test Lab で Android アプリのテストを自動化する
 
Rails解説セミナー: Railsのアップグレード編
Rails解説セミナー: Railsのアップグレード編Rails解説セミナー: Railsのアップグレード編
Rails解説セミナー: Railsのアップグレード編
 
はてなのサービスの開発環境
はてなのサービスの開発環境はてなのサービスの開発環境
はてなのサービスの開発環境
 
Scala が支える医療系ウェブサービス #jissenscala
Scala が支える医療系ウェブサービス #jissenscalaScala が支える医療系ウェブサービス #jissenscala
Scala が支える医療系ウェブサービス #jissenscala
 
ACI + Ansible
ACI + AnsibleACI + Ansible
ACI + Ansible
 
Servlet と Future の関わり方 #scala_ks
Servlet と Future の関わり方 #scala_ksServlet と Future の関わり方 #scala_ks
Servlet と Future の関わり方 #scala_ks
 
Tempest
TempestTempest
Tempest
 

Similar to Asakusaソースコードリーディング #4 – Asakusa Test Driver

Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまでCode for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまでNaoyuki Yamada
 
OpenStack on OpenStack with CI
OpenStack on OpenStack with CIOpenStack on OpenStack with CI
OpenStack on OpenStack with CIkanabuchi
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入Yu Nobuoka
 
テスト駆動で行うネットワーク自動化のすすめ
テスト駆動で行うネットワーク自動化のすすめテスト駆動で行うネットワーク自動化のすすめ
テスト駆動で行うネットワーク自動化のすすめkinunori
 
CloudStack Ecosystem Day - OpenStack/Swift
CloudStack Ecosystem Day - OpenStack/SwiftCloudStack Ecosystem Day - OpenStack/Swift
CloudStack Ecosystem Day - OpenStack/Swiftirix_jp
 
Jenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdiJenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdi昌桓 李
 
サーバーレスの今とこれから
サーバーレスの今とこれからサーバーレスの今とこれから
サーバーレスの今とこれから真吾 吉田
 
20210129 azure webapplogging
20210129 azure webapplogging20210129 azure webapplogging
20210129 azure webapploggingTakayoshi Tanaka
 
JAWS-UG コンテナ支部 #15 - Amazon ECSの開発環境を動的に管理するツールを作ってみました
JAWS-UG コンテナ支部 #15 - Amazon ECSの開発環境を動的に管理するツールを作ってみましたJAWS-UG コンテナ支部 #15 - Amazon ECSの開発環境を動的に管理するツールを作ってみました
JAWS-UG コンテナ支部 #15 - Amazon ECSの開発環境を動的に管理するツールを作ってみましたTamirlan Torgayev
 
OWIN - .NETにおけるPSGI -
OWIN - .NETにおけるPSGI -OWIN - .NETにおけるPSGI -
OWIN - .NETにおけるPSGI -将 高野
 
Scalaの現状と課題
Scalaの現状と課題Scalaの現状と課題
Scalaの現状と課題Kota Mizushima
 
20131208 agile samuraibasecamp
20131208 agile samuraibasecamp20131208 agile samuraibasecamp
20131208 agile samuraibasecampHiroshi SHIBATA
 
Jenkins + awsで並列テスト
Jenkins + awsで並列テストJenkins + awsで並列テスト
Jenkins + awsで並列テストYamamoto Kazuhisa
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略Hiroshi SHIBATA
 
LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係Hiraku Komuro
 
株式会社インタースペース 沖本様 登壇資料
株式会社インタースペース 沖本様 登壇資料株式会社インタースペース 沖本様 登壇資料
株式会社インタースペース 沖本様 登壇資料leverages_event
 
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShiftEtsuji Nakai
 

Similar to Asakusaソースコードリーディング #4 – Asakusa Test Driver (20)

Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまでCode for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
 
OpenStack on OpenStack with CI
OpenStack on OpenStack with CIOpenStack on OpenStack with CI
OpenStack on OpenStack with CI
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
Osoljp201210 oi swift
Osoljp201210 oi swiftOsoljp201210 oi swift
Osoljp201210 oi swift
 
テスト駆動で行うネットワーク自動化のすすめ
テスト駆動で行うネットワーク自動化のすすめテスト駆動で行うネットワーク自動化のすすめ
テスト駆動で行うネットワーク自動化のすすめ
 
CloudStack Ecosystem Day - OpenStack/Swift
CloudStack Ecosystem Day - OpenStack/SwiftCloudStack Ecosystem Day - OpenStack/Swift
CloudStack Ecosystem Day - OpenStack/Swift
 
Jenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdiJenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdi
 
サーバーレスの今とこれから
サーバーレスの今とこれからサーバーレスの今とこれから
サーバーレスの今とこれから
 
OpenStack概要
OpenStack概要OpenStack概要
OpenStack概要
 
20210129 azure webapplogging
20210129 azure webapplogging20210129 azure webapplogging
20210129 azure webapplogging
 
JAWS-UG コンテナ支部 #15 - Amazon ECSの開発環境を動的に管理するツールを作ってみました
JAWS-UG コンテナ支部 #15 - Amazon ECSの開発環境を動的に管理するツールを作ってみましたJAWS-UG コンテナ支部 #15 - Amazon ECSの開発環境を動的に管理するツールを作ってみました
JAWS-UG コンテナ支部 #15 - Amazon ECSの開発環境を動的に管理するツールを作ってみました
 
OWIN - .NETにおけるPSGI -
OWIN - .NETにおけるPSGI -OWIN - .NETにおけるPSGI -
OWIN - .NETにおけるPSGI -
 
Scalaの現状と課題
Scalaの現状と課題Scalaの現状と課題
Scalaの現状と課題
 
20131208 agile samuraibasecamp
20131208 agile samuraibasecamp20131208 agile samuraibasecamp
20131208 agile samuraibasecamp
 
Ldd13 present
Ldd13 presentLdd13 present
Ldd13 present
 
Jenkins + awsで並列テスト
Jenkins + awsで並列テストJenkins + awsで並列テスト
Jenkins + awsで並列テスト
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
 
LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係
 
株式会社インタースペース 沖本様 登壇資料
株式会社インタースペース 沖本様 登壇資料株式会社インタースペース 沖本様 登壇資料
株式会社インタースペース 沖本様 登壇資料
 
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift
 

Asakusaソースコードリーディング #4 – Asakusa Test Driver