SlideShare a Scribd company logo
1 of 72
Download to read offline
クラスメソッド株式会社 諏訪 悠紀
2015/06/03 AWS Summit Tokyo 2015 Day2
Dev-06: Mobile
自己紹介
2
3
諏訪 悠紀
http://dev.classmethod.jp/author/suwa-yuki/
クラスメソッド株式会社

iPhoneアプリサービス事業部
アンダースコア株式会社CTO
iOS・Androidアプリの開発・デザイン
AWSのモバイルへの活用
ブログ
クラスメソッド株式会社について
iOS / AWSに特化した受託開発会社 (Androidもやってます)
アプリからインフラまでワンストップ
秋葉原 / 札幌 / 上越(新潟)
約70名のエンジニア集団
Developers.IO
4
5
Developers.IOについて
社員執筆によるIT技術専門サイト
月間80万PV、35万UU
国内で最も多くのAWS記事を公開しています
6
ブログもやってる会社です
1,400本以上 500本以上 300本以上AWS iOS Android
アジェンダ
AWS Mobile SDKの活用
スマホアプリのテスト手法
AWSに対するテストとは?
iOSアプリのテスト
Androidアプリのテスト
まとめ
7
AWS Mobile SDKの活用
8
モバイルアプリの
バックエンドのよくある構成
9
10
EC2 RDS DB
Availability Zone
EC2 RDS DB
(Multi-AZ)
Availability Zone
Elastic Load
Balancing
Mobile App
よくある構成の課題
サーバーアプリケーションの開発コストがかかる
サーバーの運用コストがかかる
トラフィックの増大化に耐えられるように配慮する必要がある
EC2インスタンス数を増やせば解決する?
アプリケーションのチューニングを行えば解決する?
RDSインスタンスの性能を上げれば解決する?
11
これらの問題を解決するには…
12
2-Tier Architecture
13
つーてぃあー あーきてくちゃ
2-Tier Architectureとは?
モバイルアプリからバックエンドサービスを直接呼び出す
サーバーレス (EC2レス)
レイテンシの削減
バックエンドサービスの旨味をダイレクトに味わう
インフラをマネージドなサービスに全面的に任せる
14
AWSにおける3-Tier
15
Mobile App
EC2
Availability Zone
Elastic Load
Balancing
DynamoDB
EC2
Availability Zone
AWSにおける2-Tier
16
Mobile App
DynamoDB
Cognito
モバイルから直接使える AWS サービス
認証 & データ同期 : Cognito
データストア : DynamoDB
ストレージ : S3
プッシュ通知 : SNS
行動分析 : Mobile Analytics
データストリーミング : Kinesis
分散キュー : SQS
イベント駆動型関数 : Lambda
17
モバイルアプリに必要な機能は
AWSのサービスに っている!
18
AWS Mobile SDKについて
AWS SDK for iOS
Objective-C、Swiftから利用可能
AWS SDK for Android
AWS SDK for Javaと同様の使い方が可能
AWS SDK for Javascript
WebアプリからAWSのサービスが利用可能
AWS SDK for Unity
Unityで作成したゲームアプリからAWSのサービスが利用可能 19
スマホアプリのテスト手法
20
よくあるスマホアプリのテスト手法
ユニットテスト
自動化するのが一般的
ロジックのテストを対象とすることが多い
結合テスト
可能な限りで自動化、もしくは手動
21
iOSのテスティングフレームワーク
Specta + Expecta
Kiwi
Quick + Nimble
22
いずれもRSpec形式の
テストケース作成をサポート
RSpec形式の構文
23
describe(@“テストの対象”, ^{
before(^{
// 事前処理
});
context(@“条件”, ^{
it(@“期待する結果”, ^{
});
});
});
Androidのテスティングフレームワーク
JUnit3
レガシーで安定している
JUnit4
テストケースの構造化が可能
JUnit3より状況の再現が困難な場合がある
24
AWS Mobile SDKを
使う場合はどうする?
25
AWSのAPIを呼び出すテストのデメリット
テストを回した分だけ、AWSのコストがかかってしまう
テスト実行後の後始末を行う必要がある
AWS Mobile SDKがテストしてくれているからそもそも不必要
26
AWSのAPIを呼び出すクラスの
スタブ・モックが必須!
27
そもそも
スタブとモックって
何が違う??
28
Mocks aren t Stubs
http://www.martinfowler.com/articles/mocksArentStubs.html
29
Mocks aren t Stubs
Dummy objects are passed around but never actually used. Usually they are
just used to fill parameter lists.
Fake objects actually have working implementations, but usually take some
shortcut which makes them not suitable for production (an in memory
database is a good example).
Stubs provide canned answers to calls made during the test, usually not
responding at all to anything outside what's programmed in for the test. Stubs
may also record information about calls, such as an email gateway stub that
remembers the messages it 'sent', or maybe only how many messages it 'sent'.
Mocks are what we are talking about here: objects pre-programmed with
expectations which form a specification of the calls they are expected to
receive.
30
日本語で見てみよう
31
Mocks aren t Stubs
Stubオブジェクトはテスト中の呼び出しに決まったレスポンスを返す。

通常、プログラムされていない呼び出しには一切答えない。

呼び出しの情報を記録することもある。
Mockオブジェクトは期待する呼び出しを予め実装したオブジェクト。
32
スタブとは?
スタブはテスト対象のクラスの動作をサポートできるもの
テスト対象のクラスにスタブを渡す
テスト対象のクラスのメソッドを呼ぶ
メソッド内でスタブが呼ばれる
テスト対象が保持している結果をAssertする
33
モックとは?
モックはメソッドが呼び出されているか確認するもの
テスト対象のクラスにモックを渡す
テスト対象のクラスのメソッドを呼ぶ
メソッド内でモックのメソッドが呼ばれる
モックのメソッドの結果をAssertする
34
モバイルアプリで担保したいテスト
あるクラスのメソッド内で呼び出している

AWSのあるサービスのAPIを呼び出すと、

ある結果が得られ、その結果によって

クラスのオブジェクトが

ある状態になることを期待する
35
スタブ
モック
あるクラスのオブジェクトが

ある動作をすると、

AWSのあるサービスのAPIが

あるリクエストパラメータで

呼び出されることを期待する
モック・スタブを
作ってみよう!
36
モック・スタブを作ってみよう!
Amazon SNSを利用するアプリを想定
アプリからCreateEndpointを呼び出す
APNsまたはGCMからデバイストークンを取得
デバイストークンをリクエストパラメータに
PlatformEndpointをデバイスから直接生成
37
38
結構便利なアーキテクチャです!
App SNSCreatePlatformEndpoint
Subscribe Publish
Topic
クラス図とスタブ・モックの対象
39
- endpointArn : String
- register(token : String)
SNSService
- sns : AWSSNSService
AWSSNSService
- createPlatformEndpoint()
スタブ・モックの対象
iOS編
40
AWS SDK for iOSのポイント
Version 2.0.0 からすべて非同期(Bolts)に
BFTaskでレスポンスを自由に調整可能
非同期処理を待機するテストにする
サービスクラスはdefaultXXXでインスタンス化
defaultXXXでモック(スタブ)に差し替え可能
defaultXXXを使わず、使い分けたい場合は

registerXXXWithConfiguration:forKey:を利用
41
iOSのモック・スタブ用ライブラリ
OCMock
モック・スタブ用の機能が豊富
OCMockito
Java版のMockitoに近いインターフェースを提供
クラスメソッドの差し替えが困難
Kiwi
テスティングフレームワークの機能として提供
テストケース構成からオールインワンで記述可能 42
おすすめ
OCMockを使ったスタブの作成
43
AWSSNSCreatePlatformEndpointInput *request
= [AWSSNSCreatePlatformEndpointInput new];
request.token = @"token";
AWSSNSCreateEndpointResponse *response
= [AWSSNSCreateEndpointResponse new];
response.endpointArn = @"expected_arn";
id stubTask = [BFTask taskWithResult:response];
id stubSNS = OCMClassMock([AWSSNS class]);
OCMStub(
[stubSNS createPlatformEndpoint:request]
).andReturn(stubTask);
リクエストを定義
レスポンスを定義
BFTaskを作成
スタブ作成
BFTaskを返す
スタブにしたAPIを使ったテスト
44
SNSService *service
= [SNSService serviceWithSNS:stubSNS];
[service registerWithToken:@"token"];
expect(service.token).equal(@"expected_arn");
スタブオブジェクトをテスト対象に渡す
テスト対象のメソッドを呼び出す
期待した値かどうかを検証する
OCMockを使ったモックの作成
45
AWSSNSCreatePlatformEndpointInput *request
= [AWSSNSCreatePlatformEndpointInput new];
request.token = @"token";
AWSSNSCreateEndpointResponse *response
= [AWSSNSCreateEndpointResponse new];
response.endpointArn = @"expected_arn";
id stubTask = [BFTask taskWithResult:response];
id mockSNS = OCMClassMock([AWSSNS class]);
OCMExpect(
[mockSNS createPlatformEndpoint:request]
).andReturn(stubTask);
リクエストを定義
レスポンスを定義
BFTaskを作成
モック作成
BFTaskを返す
モックにしたAPIを使ったテスト
46
SNSService *service
= [SNSService serviceWithSNS:mockSNS];
[service registerWithToken:@"token"];
OCMVerifyAll(mockSNS);
モックオブジェクトをテスト対象に渡す
テスト対象のメソッドを呼び出す
期待したメソッドが呼び出されたかどうかを検証する
AWS SDK for iOSでモック・スタブを作るときの課題
サービスクラスのAPIを呼び出すときに利用する

リクエストのクラス、レスポンスのクラスの

等価性がオブジェクトでしか判定できない
47
48
AWSSNSCreatePlatformEndpointInput *request
= [AWSSNSCreatePlatformEndpointInput new];
request.token = @"token";
id stubSNS = OCMClassMock([AWSSNS class]);
OCMStub(
[stubSNS createPlatformEndpoint:request]
).andReturn(stubTask);
OCMStub([stubSNS defaultSNS]).andReturn(stubSNS);
クラスメソッドをスタブにする場合
49
SNSService *service = [SNSService new];
[service registerWithToken:@"token"];
expect(service.token).equal(@"expected_arn");
SNSのクラスを内部で生成
内部のSNSはスタブになっているが
メソッドはスタブにならない(リクエストを内部で生成)
実際のメソッドが呼ばれるのでテストは失敗する
OCMockのマッチャーを覗いてみる
50
@implementation OCMInvocationMatcher
- (BOOL)matchesInvocation:(NSInvocation *)anInvocation

{
…

if(([recordedArg isEqual:passedArg] == NO)
&&!((recordedArg == nil)
&& (passedArg == nil)))
return NO;
…

}
@end
isEqualで等価性を判定
AWS SDK for iOSを覗いてみる
51
@implementation AWSSNSCreatePlatformEndpointInput
+ (NSDictionary *)JSONKeyPathsByPropertyKey {
return @{
@"attributes" : @"Attributes",
@"customUserData" : @"CustomUserData",
@"platformApplicationArn" : @"PlatformApplicationArn",
@"token" : @"Token",
};
}
@end
isEqualが実装されていない!
このような拡張が必要
52
@implementation AWSSNSCreatePlatformEndpointInput (test)
- (BOOL)isEqual:

(AWSSNSCreatePlatformEndpointInput*)object
{
return [self.token isEqualToString:object.token]
&& …
}
@end
Android編
53
AWS SDK for Androidのポイント
AWS SDK for Javaと似ている
非常に参考になる
サンプルが多く、コピペで何とかなることがある
iOS版と違いすべて同期処理になっている
非同期テストを意識しなくて良い
54
Androidアプリのモック・スタブ用ライブラリ
Mockito
文献が多いので学習しやすい&導入しやすい
記述がシンプル
EasyMock
Mockitoと同様の機能を提供
JMockit
機能が豊富
55
おすすめ
Mockitoを使ったスタブの作成
56
CreatePlatformEndpointRequest req
= new CreatePlatformEndpointRequest()
.withToken("token");
CreatePlatformEndpointResult exp
= new CreatePlatformEndpointResult()
.withEndpointArn("expected_arn");
AmazonSNSClient stub = mock(AmazonSNSClient.class);
when(stub.createPlatformEndpoint(req)).thenReturn(exp);
リクエストを定義
レスポンスを定義
スタブ作成
スタブにしたAPIを使ったテスト
57
SNSService service = new SNSService(stub);
service.register("token");
assertEquals(service.getEndpointArn(),"expected_arn");
モックオブジェクトをテスト対象に渡す
テスト対象のメソッドを呼び出す
期待した値かどうかを検証する
Mockitoを使ったモックの作成
58
CreatePlatformEndpointRequest req
= new CreatePlatformEndpointRequest()
.withToken("token");
CreatePlatformEndpointResult exp
= new CreatePlatformEndpointResult()
.withEndpointArn("expected_arn");
AmazonSNSClient mock = mock(AmazonSNSClient.class);
when(stub.createPlatformEndpoint(req)).thenReturn(exp);
リクエストを定義
レスポンスを定義
スタブ作成
モック化したサービスを使ったテスト
59
SNSService service = new SNSService(mock);
service.register("token");
verify(mock, times(1)).createPlatformEndpoint(req);
モックオブジェクトをテスト対象に渡す
テスト対象のメソッドを呼び出す
期待したメソッドが呼び出されたかどうかを検証する
OSSを使えば
上手く作れそう!
60
でもテストケース毎に作るのは
ちょっと面倒…
61
OCMockを使ったスタブ化
62
AWSSNSCreatePlatformEndpointInput *request
= [AWSSNSCreatePlatformEndpointInput new];
request.token = @“token";
AWSSNSCreateEndpointResponse *response
= [AWSSNSCreateEndpointResponse new];
response.endpointArn = @"expected_arn";
id stubTask = [BFTask taskWithResult:response];
id stubSNS = OCMClassMock([AWSSNS class]);
OCMExpect(
[stubSNS createPlatformEndpoint:request]
).andReturn(stubTask);
このあたりが
ちょっと冗長
そこで!
63
AWSをスタブ化するOSSを作りました
名前はTAWS (Test Double AWS)
AWS Mobile SDKの各クラスをスタブ化
AWS Mobile SDKに合わせてシンプルに作成可能
本日公開!(2015/6/3)
64
使用前
65
AWSSNSCreateEndpointResponse *response
= [AWSSNSCreateEndpointResponse new];
response.endpointArn = @"expected_arn";
id stubTask = [BFTask taskWithResult:response];
id stubSNS = OCMClassMock([AWSSNS class]);
OCMStub(
[stubSNS createPlatformEndpoint:OCMOCK_ANY]
).andReturn(stubTask);
OCMStub([stubSNS defaultSNS]).andReturn(stubSNS);
使用後
66
AWSSNSCreateEndpointResponse *response
= [AWSSNSCreateEndpointResponse new];
response.endpointArn = @"expected_arn";
[[[[AWSMock mockWith:AWSServiceSNS]
receive:@selector(createPlatformEndpoint:)]
with:OCMOCK_ANY]
andReturn:response];
AWS Mobile SDKに合わせてより直感的に!
API、パラメータ、レスポンスをワンライナーで記述
異常系
67
[[[[AWSMock mockWith:AWSServiceSNS]
receive:@selector(createPlatformEndpoint:)]
with:request]
andErrorDomain:AWSSNSErrorDomain
type:AWSSNSErrorInternalError];
各サービスのDomainとErrorTypeを指定可能
https://github.com/
classmethod/TAWS-iOS
68
pod "TAWS"
69
TAWSの今後の予定
Android版(Java)のリリース
AWS Mobile SDKでサポートされている

多くのサービスのサポート (現在は一部のみ)
isEqualの実装
70
まとめ
AWS Mobile SDKは使われるケースが多くなる
各テストケースの目的を考え、

モックとスタブを使い分けよう
簡単に!楽しく!テストを始めよう!
71
AWS Mobile SDK利用時のテスト手法

More Related Content

What's hot

AWSクラウドサービス勉強会 Day1:「クラウドサービス再定義」
AWSクラウドサービス勉強会 Day1:「クラウドサービス再定義」AWSクラウドサービス勉強会 Day1:「クラウドサービス再定義」
AWSクラウドサービス勉強会 Day1:「クラウドサービス再定義」Mamoru Ohashi
 
AWSについて @ JAWS-UG 沖縄 CMS祭り!
AWSについて @ JAWS-UG 沖縄 CMS祭り!AWSについて @ JAWS-UG 沖縄 CMS祭り!
AWSについて @ JAWS-UG 沖縄 CMS祭り!Yasuhiro Horiuchi
 
20170311 JAWSDAYS Lunch Session「東急ハンズのiPad POS「HandsPOS」と AWSの付き合い方」
20170311 JAWSDAYS Lunch Session「東急ハンズのiPad POS「HandsPOS」と AWSの付き合い方」20170311 JAWSDAYS Lunch Session「東急ハンズのiPad POS「HandsPOS」と AWSの付き合い方」
20170311 JAWSDAYS Lunch Session「東急ハンズのiPad POS「HandsPOS」と AWSの付き合い方」Yusuke KUROIWA
 
Aws summits2014 サイバーエージェント_ユーザーの趣味嗜好に適した広告配信システムdynalystができるまでad_techstudioでの...
Aws summits2014 サイバーエージェント_ユーザーの趣味嗜好に適した広告配信システムdynalystができるまでad_techstudioでの...Aws summits2014 サイバーエージェント_ユーザーの趣味嗜好に適した広告配信システムdynalystができるまでad_techstudioでの...
Aws summits2014 サイバーエージェント_ユーザーの趣味嗜好に適した広告配信システムdynalystができるまでad_techstudioでの...Boss4434
 
AWS Nyantech #2 Nyands-on visual search
AWS Nyantech #2 Nyands-on visual searchAWS Nyantech #2 Nyands-on visual search
AWS Nyantech #2 Nyands-on visual searchMariOhbuchi
 
Windowsシステムの AWS移行とMulti-AZ化 - JAWS DAYS 2015
WindowsシステムのAWS移行とMulti-AZ化 - JAWS DAYS 2015 WindowsシステムのAWS移行とMulti-AZ化 - JAWS DAYS 2015
Windowsシステムの AWS移行とMulti-AZ化 - JAWS DAYS 2015 Takayuki Enomoto
 
2011年11月 JAWS-UG「上司を説得してAWSを使わせる3つのポイント」
2011年11月 JAWS-UG「上司を説得してAWSを使わせる3つのポイント」2011年11月 JAWS-UG「上司を説得してAWSを使わせる3つのポイント」
2011年11月 JAWS-UG「上司を説得してAWSを使わせる3つのポイント」Serverworks Co.,Ltd.
 
[CTO Night & Day 2019] CTO のための一歩進んだコンテナ入門 #ctonight
[CTO Night & Day 2019] CTO のための一歩進んだコンテナ入門 #ctonight[CTO Night & Day 2019] CTO のための一歩進んだコンテナ入門 #ctonight
[CTO Night & Day 2019] CTO のための一歩進んだコンテナ入門 #ctonightAmazon Web Services Japan
 
エンタープライズでもクラウドファースト! Amazon Web Servicesをフル活用する Developer Summit 2016
エンタープライズでもクラウドファースト! Amazon Web Servicesをフル活用する Developer Summit 2016エンタープライズでもクラウドファースト! Amazon Web Servicesをフル活用する Developer Summit 2016
エンタープライズでもクラウドファースト! Amazon Web Servicesをフル活用する Developer Summit 2016一成 田部井
 
JAWS DAYS 2015 AWS OpsWorksの仕組みと活用方法のご紹介
JAWS DAYS 2015 AWS OpsWorksの仕組みと活用方法のご紹介JAWS DAYS 2015 AWS OpsWorksの仕組みと活用方法のご紹介
JAWS DAYS 2015 AWS OpsWorksの仕組みと活用方法のご紹介Kenji Funasaki
 
ここが知りたいAws導入までのato z配布用
ここが知りたいAws導入までのato z配布用ここが知りたいAws導入までのato z配布用
ここが知りたいAws導入までのato z配布用takaoka susumu
 
[CTO Night & Day 2019] グローバルのサービス展開に向けたマルチリージョンアーキテクチャ- #ctonight
[CTO Night & Day 2019] グローバルのサービス展開に向けたマルチリージョンアーキテクチャ- #ctonight[CTO Night & Day 2019] グローバルのサービス展開に向けたマルチリージョンアーキテクチャ- #ctonight
[CTO Night & Day 2019] グローバルのサービス展開に向けたマルチリージョンアーキテクチャ- #ctonightAmazon Web Services Japan
 
AWS ロボ in JAWSDAYS
AWS ロボ in JAWSDAYSAWS ロボ in JAWSDAYS
AWS ロボ in JAWSDAYS崇之 清水
 
JAWS re:Mote 2015 Nagoya
JAWS re:Mote 2015 NagoyaJAWS re:Mote 2015 Nagoya
JAWS re:Mote 2015 Nagoya陽平 山口
 
[CTO Night & Day 2019] CTO のためのセキュリティ for Seed ~ Mid Stage #ctonight
[CTO Night & Day 2019] CTO のためのセキュリティ for Seed ~ Mid Stage #ctonight[CTO Night & Day 2019] CTO のためのセキュリティ for Seed ~ Mid Stage #ctonight
[CTO Night & Day 2019] CTO のためのセキュリティ for Seed ~ Mid Stage #ctonightAmazon Web Services Japan
 
[CTO Night & Day 2019] AWS のコスト最適化 #ctonight
[CTO Night & Day 2019] AWS のコスト最適化 #ctonight[CTO Night & Day 2019] AWS のコスト最適化 #ctonight
[CTO Night & Day 2019] AWS のコスト最適化 #ctonightAmazon Web Services Japan
 
これでAWSマスター!? 初心者向けAWS簡単講座
これでAWSマスター!? 初心者向けAWS簡単講座これでAWSマスター!? 初心者向けAWS簡単講座
これでAWSマスター!? 初心者向けAWS簡単講座Serverworks Co.,Ltd.
 
管理統制もLambdaで!
管理統制もLambdaで!管理統制もLambdaで!
管理統制もLambdaで!Mamoru Ohashi
 
Sophos UTM 9のAutoscalingを試してみた
Sophos UTM 9のAutoscalingを試してみたSophos UTM 9のAutoscalingを試してみた
Sophos UTM 9のAutoscalingを試してみたmorisshi
 

What's hot (20)

AWSクラウドサービス勉強会 Day1:「クラウドサービス再定義」
AWSクラウドサービス勉強会 Day1:「クラウドサービス再定義」AWSクラウドサービス勉強会 Day1:「クラウドサービス再定義」
AWSクラウドサービス勉強会 Day1:「クラウドサービス再定義」
 
AWSについて @ JAWS-UG 沖縄 CMS祭り!
AWSについて @ JAWS-UG 沖縄 CMS祭り!AWSについて @ JAWS-UG 沖縄 CMS祭り!
AWSについて @ JAWS-UG 沖縄 CMS祭り!
 
20170311 JAWSDAYS Lunch Session「東急ハンズのiPad POS「HandsPOS」と AWSの付き合い方」
20170311 JAWSDAYS Lunch Session「東急ハンズのiPad POS「HandsPOS」と AWSの付き合い方」20170311 JAWSDAYS Lunch Session「東急ハンズのiPad POS「HandsPOS」と AWSの付き合い方」
20170311 JAWSDAYS Lunch Session「東急ハンズのiPad POS「HandsPOS」と AWSの付き合い方」
 
Aws summits2014 サイバーエージェント_ユーザーの趣味嗜好に適した広告配信システムdynalystができるまでad_techstudioでの...
Aws summits2014 サイバーエージェント_ユーザーの趣味嗜好に適した広告配信システムdynalystができるまでad_techstudioでの...Aws summits2014 サイバーエージェント_ユーザーの趣味嗜好に適した広告配信システムdynalystができるまでad_techstudioでの...
Aws summits2014 サイバーエージェント_ユーザーの趣味嗜好に適した広告配信システムdynalystができるまでad_techstudioでの...
 
AWS Nyantech #2 Nyands-on visual search
AWS Nyantech #2 Nyands-on visual searchAWS Nyantech #2 Nyands-on visual search
AWS Nyantech #2 Nyands-on visual search
 
Windowsシステムの AWS移行とMulti-AZ化 - JAWS DAYS 2015
WindowsシステムのAWS移行とMulti-AZ化 - JAWS DAYS 2015 WindowsシステムのAWS移行とMulti-AZ化 - JAWS DAYS 2015
Windowsシステムの AWS移行とMulti-AZ化 - JAWS DAYS 2015
 
2011年11月 JAWS-UG「上司を説得してAWSを使わせる3つのポイント」
2011年11月 JAWS-UG「上司を説得してAWSを使わせる3つのポイント」2011年11月 JAWS-UG「上司を説得してAWSを使わせる3つのポイント」
2011年11月 JAWS-UG「上司を説得してAWSを使わせる3つのポイント」
 
[CTO Night & Day 2019] CTO のための一歩進んだコンテナ入門 #ctonight
[CTO Night & Day 2019] CTO のための一歩進んだコンテナ入門 #ctonight[CTO Night & Day 2019] CTO のための一歩進んだコンテナ入門 #ctonight
[CTO Night & Day 2019] CTO のための一歩進んだコンテナ入門 #ctonight
 
エンタープライズでもクラウドファースト! Amazon Web Servicesをフル活用する Developer Summit 2016
エンタープライズでもクラウドファースト! Amazon Web Servicesをフル活用する Developer Summit 2016エンタープライズでもクラウドファースト! Amazon Web Servicesをフル活用する Developer Summit 2016
エンタープライズでもクラウドファースト! Amazon Web Servicesをフル活用する Developer Summit 2016
 
JAWS DAYS 2015 AWS OpsWorksの仕組みと活用方法のご紹介
JAWS DAYS 2015 AWS OpsWorksの仕組みと活用方法のご紹介JAWS DAYS 2015 AWS OpsWorksの仕組みと活用方法のご紹介
JAWS DAYS 2015 AWS OpsWorksの仕組みと活用方法のご紹介
 
ここが知りたいAws導入までのato z配布用
ここが知りたいAws導入までのato z配布用ここが知りたいAws導入までのato z配布用
ここが知りたいAws導入までのato z配布用
 
[CTO Night & Day 2019] グローバルのサービス展開に向けたマルチリージョンアーキテクチャ- #ctonight
[CTO Night & Day 2019] グローバルのサービス展開に向けたマルチリージョンアーキテクチャ- #ctonight[CTO Night & Day 2019] グローバルのサービス展開に向けたマルチリージョンアーキテクチャ- #ctonight
[CTO Night & Day 2019] グローバルのサービス展開に向けたマルチリージョンアーキテクチャ- #ctonight
 
AWS ロボ in JAWSDAYS
AWS ロボ in JAWSDAYSAWS ロボ in JAWSDAYS
AWS ロボ in JAWSDAYS
 
JAWS re:Mote 2015 Nagoya
JAWS re:Mote 2015 NagoyaJAWS re:Mote 2015 Nagoya
JAWS re:Mote 2015 Nagoya
 
[CTO Night & Day 2019] CTO のためのセキュリティ for Seed ~ Mid Stage #ctonight
[CTO Night & Day 2019] CTO のためのセキュリティ for Seed ~ Mid Stage #ctonight[CTO Night & Day 2019] CTO のためのセキュリティ for Seed ~ Mid Stage #ctonight
[CTO Night & Day 2019] CTO のためのセキュリティ for Seed ~ Mid Stage #ctonight
 
[CTO Night & Day 2019] AWS のコスト最適化 #ctonight
[CTO Night & Day 2019] AWS のコスト最適化 #ctonight[CTO Night & Day 2019] AWS のコスト最適化 #ctonight
[CTO Night & Day 2019] AWS のコスト最適化 #ctonight
 
これでAWSマスター!? 初心者向けAWS簡単講座
これでAWSマスター!? 初心者向けAWS簡単講座これでAWSマスター!? 初心者向けAWS簡単講座
これでAWSマスター!? 初心者向けAWS簡単講座
 
管理統制もLambdaで!
管理統制もLambdaで!管理統制もLambdaで!
管理統制もLambdaで!
 
JAWS FESTA 2018
JAWS FESTA 2018JAWS FESTA 2018
JAWS FESTA 2018
 
Sophos UTM 9のAutoscalingを試してみた
Sophos UTM 9のAutoscalingを試してみたSophos UTM 9のAutoscalingを試してみた
Sophos UTM 9のAutoscalingを試してみた
 

Viewers also liked

Auto Scaling x Spot Instances によるスケーラビリティと コストカット
Auto Scaling x Spot Instances によるスケーラビリティと コストカットAuto Scaling x Spot Instances によるスケーラビリティと コストカット
Auto Scaling x Spot Instances によるスケーラビリティと コストカットakitsukada
 
BrainWarsを支えるAWSサービスたち
BrainWarsを支えるAWSサービスたちBrainWarsを支えるAWSサービスたち
BrainWarsを支えるAWSサービスたちMasakazu Matsushita
 
SmartNews Ads System - AWS Summit Tokyo 2015
SmartNews Ads System - AWS Summit Tokyo 2015SmartNews Ads System - AWS Summit Tokyo 2015
SmartNews Ads System - AWS Summit Tokyo 2015SmartNews, Inc.
 
日本最大の即レスサービス「アンサー」を支える Amazon DynamoDB
日本最大の即レスサービス「アンサー」を支える Amazon DynamoDB日本最大の即レスサービス「アンサー」を支える Amazon DynamoDB
日本最大の即レスサービス「アンサー」を支える Amazon DynamoDBMasahiro Akita
 
AWS Lambda ハンズオン 2-Tier アーキテクチャで未来へ
AWS Lambda ハンズオン 2-Tier アーキテクチャで未来へAWS Lambda ハンズオン 2-Tier アーキテクチャで未来へ
AWS Lambda ハンズオン 2-Tier アーキテクチャで未来へAmazon Web Services Japan
 
モバイルアプリ向けAWSネイティブアーキテクチャ
モバイルアプリ向けAWSネイティブアーキテクチャモバイルアプリ向けAWSネイティブアーキテクチャ
モバイルアプリ向けAWSネイティブアーキテクチャRikitake Oohashi
 
[AWSマイスターシリーズ] AWS Client Side SDK -Android,iOS & JavaScript-
[AWSマイスターシリーズ] AWS Client Side SDK -Android,iOS & JavaScript-[AWSマイスターシリーズ] AWS Client Side SDK -Android,iOS & JavaScript-
[AWSマイスターシリーズ] AWS Client Side SDK -Android,iOS & JavaScript-Amazon Web Services Japan
 
[Developers Summit 2015 講演資料] リクルートテクノロジーズ 14,000件/秒の配信を実現した リクルートのモバイルアプリを支え...
[Developers Summit 2015 講演資料] リクルートテクノロジーズ 14,000件/秒の配信を実現した リクルートのモバイルアプリを支え...[Developers Summit 2015 講演資料] リクルートテクノロジーズ 14,000件/秒の配信を実現した リクルートのモバイルアプリを支え...
[Developers Summit 2015 講演資料] リクルートテクノロジーズ 14,000件/秒の配信を実現した リクルートのモバイルアプリを支え...Recruit Technologies
 
SDK不要で高パフォーマンス!AppLovinのネイティブ広告_20160427
SDK不要で高パフォーマンス!AppLovinのネイティブ広告_20160427SDK不要で高パフォーマンス!AppLovinのネイティブ広告_20160427
SDK不要で高パフォーマンス!AppLovinのネイティブ広告_20160427Tatsuo Sakamoto
 
AWS上でのWebアプリケーションデプロイ
AWS上でのWebアプリケーションデプロイAWS上でのWebアプリケーションデプロイ
AWS上でのWebアプリケーションデプロイAmazon Web Services Japan
 
スクラム概要とチーム開発環境の要点
スクラム概要とチーム開発環境の要点スクラム概要とチーム開発環境の要点
スクラム概要とチーム開発環境の要点智治 長沢
 

Viewers also liked (12)

Docomo Cloud Package
Docomo Cloud PackageDocomo Cloud Package
Docomo Cloud Package
 
Auto Scaling x Spot Instances によるスケーラビリティと コストカット
Auto Scaling x Spot Instances によるスケーラビリティと コストカットAuto Scaling x Spot Instances によるスケーラビリティと コストカット
Auto Scaling x Spot Instances によるスケーラビリティと コストカット
 
BrainWarsを支えるAWSサービスたち
BrainWarsを支えるAWSサービスたちBrainWarsを支えるAWSサービスたち
BrainWarsを支えるAWSサービスたち
 
SmartNews Ads System - AWS Summit Tokyo 2015
SmartNews Ads System - AWS Summit Tokyo 2015SmartNews Ads System - AWS Summit Tokyo 2015
SmartNews Ads System - AWS Summit Tokyo 2015
 
日本最大の即レスサービス「アンサー」を支える Amazon DynamoDB
日本最大の即レスサービス「アンサー」を支える Amazon DynamoDB日本最大の即レスサービス「アンサー」を支える Amazon DynamoDB
日本最大の即レスサービス「アンサー」を支える Amazon DynamoDB
 
AWS Lambda ハンズオン 2-Tier アーキテクチャで未来へ
AWS Lambda ハンズオン 2-Tier アーキテクチャで未来へAWS Lambda ハンズオン 2-Tier アーキテクチャで未来へ
AWS Lambda ハンズオン 2-Tier アーキテクチャで未来へ
 
モバイルアプリ向けAWSネイティブアーキテクチャ
モバイルアプリ向けAWSネイティブアーキテクチャモバイルアプリ向けAWSネイティブアーキテクチャ
モバイルアプリ向けAWSネイティブアーキテクチャ
 
[AWSマイスターシリーズ] AWS Client Side SDK -Android,iOS & JavaScript-
[AWSマイスターシリーズ] AWS Client Side SDK -Android,iOS & JavaScript-[AWSマイスターシリーズ] AWS Client Side SDK -Android,iOS & JavaScript-
[AWSマイスターシリーズ] AWS Client Side SDK -Android,iOS & JavaScript-
 
[Developers Summit 2015 講演資料] リクルートテクノロジーズ 14,000件/秒の配信を実現した リクルートのモバイルアプリを支え...
[Developers Summit 2015 講演資料] リクルートテクノロジーズ 14,000件/秒の配信を実現した リクルートのモバイルアプリを支え...[Developers Summit 2015 講演資料] リクルートテクノロジーズ 14,000件/秒の配信を実現した リクルートのモバイルアプリを支え...
[Developers Summit 2015 講演資料] リクルートテクノロジーズ 14,000件/秒の配信を実現した リクルートのモバイルアプリを支え...
 
SDK不要で高パフォーマンス!AppLovinのネイティブ広告_20160427
SDK不要で高パフォーマンス!AppLovinのネイティブ広告_20160427SDK不要で高パフォーマンス!AppLovinのネイティブ広告_20160427
SDK不要で高パフォーマンス!AppLovinのネイティブ広告_20160427
 
AWS上でのWebアプリケーションデプロイ
AWS上でのWebアプリケーションデプロイAWS上でのWebアプリケーションデプロイ
AWS上でのWebアプリケーションデプロイ
 
スクラム概要とチーム開発環境の要点
スクラム概要とチーム開発環境の要点スクラム概要とチーム開発環境の要点
スクラム概要とチーム開発環境の要点
 

Similar to AWS Mobile SDK利用時のテスト手法

AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシングAWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング江藤 武司
 
AWS IoTを使った双方向通信システムの実装と注意点
AWS IoTを使った双方向通信システムの実装と注意点AWS IoTを使った双方向通信システムの実装と注意点
AWS IoTを使った双方向通信システムの実装と注意点Kohei MATSUSHITA
 
Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013Yasuhiro Horiuchi
 
AWS Black Belt Online Seminar 2018 re:Invent recap IoT and DevOps
AWS Black Belt Online Seminar 2018 re:Invent recap IoT and DevOpsAWS Black Belt Online Seminar 2018 re:Invent recap IoT and DevOps
AWS Black Belt Online Seminar 2018 re:Invent recap IoT and DevOpsAmazon Web Services Japan
 
Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編Microsoft Azure Japan
 
20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architectureIssei Hiraoka
 
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッションC# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッションYoshito Tabuchi
 
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発Akira Inoue
 
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメXamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメYoshito Tabuchi
 
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発Naoki (Neo) SATO
 
AWSにおける モバイル向けサービス及び事例紹介(20151211)
AWSにおける モバイル向けサービス及び事例紹介(20151211)AWSにおける モバイル向けサービス及び事例紹介(20151211)
AWSにおける モバイル向けサービス及び事例紹介(20151211)Keisuke Nishitani
 
Azureをフル活用したサーバーレスの潮流について
Azureをフル活用したサーバーレスの潮流についてAzureをフル活用したサーバーレスの潮流について
Azureをフル活用したサーバーレスの潮流について真吾 吉田
 
アマゾンクラウドの真価
アマゾンクラウドの真価アマゾンクラウドの真価
アマゾンクラウドの真価kaminashi
 
SORCOM UG #2 | SORACOM アップデート
SORCOM UG #2 | SORACOM アップデートSORCOM UG #2 | SORACOM アップデート
SORCOM UG #2 | SORACOM アップデートSORACOM,INC
 
20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon CognitoAmazon Web Services Japan
 
勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発Kazuki Nakajima
 
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャAWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ真吾 吉田
 

Similar to AWS Mobile SDK利用時のテスト手法 (20)

AWS IoT アップデート 2016.02.16
AWS IoT アップデート 2016.02.16AWS IoT アップデート 2016.02.16
AWS IoT アップデート 2016.02.16
 
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシングAWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
 
AWS IoTを使った双方向通信システムの実装と注意点
AWS IoTを使った双方向通信システムの実装と注意点AWS IoTを使った双方向通信システムの実装と注意点
AWS IoTを使った双方向通信システムの実装と注意点
 
Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013Programming AWS with Perl at YAPC::Asia 2013
Programming AWS with Perl at YAPC::Asia 2013
 
AWS Black Belt Online Seminar 2018 re:Invent recap IoT and DevOps
AWS Black Belt Online Seminar 2018 re:Invent recap IoT and DevOpsAWS Black Belt Online Seminar 2018 re:Invent recap IoT and DevOps
AWS Black Belt Online Seminar 2018 re:Invent recap IoT and DevOps
 
Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編
 
20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture
 
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッションC# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
 
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発
 
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメXamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
 
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
 
AWSにおける モバイル向けサービス及び事例紹介(20151211)
AWSにおける モバイル向けサービス及び事例紹介(20151211)AWSにおける モバイル向けサービス及び事例紹介(20151211)
AWSにおける モバイル向けサービス及び事例紹介(20151211)
 
Azureをフル活用したサーバーレスの潮流について
Azureをフル活用したサーバーレスの潮流についてAzureをフル活用したサーバーレスの潮流について
Azureをフル活用したサーバーレスの潮流について
 
アマゾンクラウドの真価
アマゾンクラウドの真価アマゾンクラウドの真価
アマゾンクラウドの真価
 
SORCOM UG #2 | SORACOM アップデート
SORCOM UG #2 | SORACOM アップデートSORCOM UG #2 | SORACOM アップデート
SORCOM UG #2 | SORACOM アップデート
 
AWS Black Belt Techシリーズ AWS SDK
AWS Black Belt Techシリーズ AWS SDKAWS Black Belt Techシリーズ AWS SDK
AWS Black Belt Techシリーズ AWS SDK
 
20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito
 
勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発
 
[Japan Tech summit 2017] APP 001
[Japan Tech summit 2017] APP 001[Japan Tech summit 2017] APP 001
[Japan Tech summit 2017] APP 001
 
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャAWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ
 

More from yuki0211s

Xcode 7で始めるCI
Xcode 7で始めるCIXcode 7で始めるCI
Xcode 7で始めるCIyuki0211s
 
AWS Mobile Hub で構築するクラウドネイティブモバイルアーキテクチャ
AWS Mobile Hub で構築するクラウドネイティブモバイルアーキテクチャAWS Mobile Hub で構築するクラウドネイティブモバイルアーキテクチャ
AWS Mobile Hub で構築するクラウドネイティブモバイルアーキテクチャyuki0211s
 
Lambda × Mobileの可能性
Lambda × Mobileの可能性Lambda × Mobileの可能性
Lambda × Mobileの可能性yuki0211s
 
Swift本ができるまで
Swift本ができるまでSwift本ができるまで
Swift本ができるまでyuki0211s
 
Xcode 5のAsset Catalogにまつわる今すぐ使えるTips集
Xcode 5のAsset Catalogにまつわる今すぐ使えるTips集Xcode 5のAsset Catalogにまつわる今すぐ使えるTips集
Xcode 5のAsset Catalogにまつわる今すぐ使えるTips集yuki0211s
 
iBeaconを使ってみよう!気軽に使える近距離無線通信
iBeaconを使ってみよう!気軽に使える近距離無線通信iBeaconを使ってみよう!気軽に使える近距離無線通信
iBeaconを使ってみよう!気軽に使える近距離無線通信yuki0211s
 

More from yuki0211s (6)

Xcode 7で始めるCI
Xcode 7で始めるCIXcode 7で始めるCI
Xcode 7で始めるCI
 
AWS Mobile Hub で構築するクラウドネイティブモバイルアーキテクチャ
AWS Mobile Hub で構築するクラウドネイティブモバイルアーキテクチャAWS Mobile Hub で構築するクラウドネイティブモバイルアーキテクチャ
AWS Mobile Hub で構築するクラウドネイティブモバイルアーキテクチャ
 
Lambda × Mobileの可能性
Lambda × Mobileの可能性Lambda × Mobileの可能性
Lambda × Mobileの可能性
 
Swift本ができるまで
Swift本ができるまでSwift本ができるまで
Swift本ができるまで
 
Xcode 5のAsset Catalogにまつわる今すぐ使えるTips集
Xcode 5のAsset Catalogにまつわる今すぐ使えるTips集Xcode 5のAsset Catalogにまつわる今すぐ使えるTips集
Xcode 5のAsset Catalogにまつわる今すぐ使えるTips集
 
iBeaconを使ってみよう!気軽に使える近距離無線通信
iBeaconを使ってみよう!気軽に使える近距離無線通信iBeaconを使ってみよう!気軽に使える近距離無線通信
iBeaconを使ってみよう!気軽に使える近距離無線通信
 

AWS Mobile SDK利用時のテスト手法