SlideShare a Scribd company logo
Moq & Fakes Framework を使った
実践的ユニットテスト
株式会社ネクストスケープ
アーキテクト
上坂 貴志
http://www.nextscape.net/
2
セッションのゴール
• モックとは何かがわかる
• モックを使うとどんな良いことがあるかがわかる
• モック導入のためのアーキテクチャがわかる
• モックを使用したユニットテストを実プロジェクトに導入する!
3
ごめんなさい、CM です
• 株式会社 NEXTSCAPE というシステム開発会社です。
4
ごめんなさい、CM です
• オフィシャルな謳い文句
• Microsoft Partner of the Year 2012 Windows Azure受賞!
• 2013 Microsoft Worldwide Partner Award (Cloud Partner of the Year) ファイナリスト!
• Windows Azure 取扱高がアジア No.1 !
• PlayReadyについて、アジア・パシフィックにおける Microsoft 唯一の戦略パートナー!
(※PlayReady…Microsoft の デジタル著作権管理プラットフォーム)
• Sitecore認定パートナー!MVP保持者日本最多!
(※Sitecore…世界50ヵ国以上、世界有名ブランド3000社以上が導入した Web CMS & Digital Marketing
Platform)
• 株式会社 豆蔵のグループ会社です。
5
ごめんなさい、CM です
• 人材募集な内容
• .NET 、特に C#.NET による開発が大多数です。
(iOSアプリ開発もしてます!)
• 二次請けは一切しません。していません。
• プログラミング大好き!新しい技術大好き!という人、多数。
というかそういうタイプの人が社風に合うみたい?
• こっそりと Microsoft MVP がちらほら。
• アジャイル開発推進中。
• 社長「工数ベースで売上を考える時代は終わった!」(詳しくは面接で!)
• 中途採用絶賛強化中!.Net エンジニア集まれ!
6
セッション内容
1. 改めてモックとは
2. モックを使用するメリット
3. Moq とは
4. Fakes Framework とは
5. テスタビリティの高いアーキテクチャ
6. 実例:DBを使用しないユニットテスト
7. まとめ
8. おまけ(ShimによるDbContextモック化)
1.改めてモックとは
2. モックを使用するメリット
3. Moq とは
4. Fakes Framework とは
5. テスタビリティの高いアーキテクチャ
6. 実例:DBを使用しないユニットテスト
7. まとめ
8. おまけ(ShimによるDbContextモック化)
8
改めてモックとは
• テスト対象のクラスが依存するクラスの代わりとなるもの
テスト対象クラス
---------------------
テスト対象メソッド
テストクラス
--------------------
テストメソッド
依存クラスA
---------------------
メソッドA
依存クラスB
---------------------
メソッドB
引数パターン1
引数パターン2
・・・
引数A
引数B
戻り値A
戻り値B
モックで置き換える
モックで置き換える
9
改めてモックとは
• 一般的なモックの使用方法
テスト対象クラス
---------------------
テスト対象メソッド
テストクラス
--------------------
テストメソッド
依存クラスA
---------------------
メソッドA
引数パターン1
戻り値A
<依存クラスA>
Mock Object
1. モック化する依存クラス、または Interface を指定して生成
2. モック化するメソッドを指定して戻り値をセット
3. モックを渡す
4. テスト対象メソッドを起動
モック化する対象
<依存クラスA>
Mock Object
モックにセットした
戻り値になる
1. 改めてモックとは
2.モックを使用するメリット
3. Moq とは
4. Fakes Framework とは
5. テスタビリティの高いアーキテクチャ
6. 実例:DBを使用しないユニットテスト
7. まとめ
8. おまけ(ShimによるDbContextモック化)
11
モックを使用するメリット
• 依存クラスのバグを気にしなくて良い
テスト対象クラス
---------------------
テスト対象メソッド
テストクラス
--------------------
テストメソッド
依存クラスA
---------------------
メソッドA
引数 引数
戻り値A
どっちが原因か
わからない?
戻り値
Assert失敗!
モックで置き換える
原因はこっち!
12
モックを使用するメリット
• テスト範囲を汚染しない
テスト対象クラス
---------------------
テスト対象メソッド
テストクラス
--------------------
テストメソッド
依存クラスA
---------------------
メソッドA
引数 引数A
戻り値A戻り値
モックで置き換える
戻り値A
は”hogehoge”
ね!
何をセット?
何を渡されても戻り
値に関係ない
戻り値
は”hogehoge”
13
モックを使用するメリット
• データベースにテストデータを用意しないで済む
テスト対象クラス
---------------------
テスト対象メソッド
テストクラス
--------------------
テストメソッド
引数 引数A
DataTable
Entity
戻り値
DB 取得結果は
この Entity ね!
データアクセスクラス
--------------------
ADO.NET,
Entity Framework, etc
Select
Update
Insert
Data
モックで置き換
える
Tran 1
Master
A
Tran N
Master
Tran 2
・・・
Master
A
戻り値となるDataTable,
Entity はテストパターン
に合わせて自由自在
1. 改めてモックとは
2. モックを使用するメリット
3.Moq とは
4. Fakes Framework とは
5. テスタビリティの高いアーキテクチャ
6. 実例:DBを使用しないユニットテスト
7. まとめ
8. おまけ(ShimによるDbContextモック化)
15
Moq とは
• オープンソースモックライブラリ。商用可能。
• NuGet で 簡単に DLL ダウンロード &参照追加
• 特徴
1. ラムダ式によって型、メソッド、戻り値の指定
2. インターフェース, クラス (抽象クラスも含む)どちらもモック化
可能
• クラスの場合、public な仮想メソッドのみモック化可能)
3. モック化したメソッドの引数に Moq.It.IsAny<T>()を指定する
ことで仮引数に渡された値を無視することが簡単にできる
4. 静的メソッドはモック不可
16
• カートに 商品を追加するシナリオ
Moqの使用方法
StockService
----------------------------------
+ int CurrentQuantity(int productId)
+ bool ProvisionTemporary(int productId, out int tempProvisionId)
+ bool Provision(int tempProvisionId)
Cart
---------------------
+ bool Add(int productId)
X
現在の在庫数 は?( CurrentQuantity )
商品を仮押さえ( provisionTemporary)
仮押さえ Id (temporaryProvisionId)
false
Alt
[在庫数 <1]
true
X
X
17
Moqの使用方法
StockService
---------------------
<virtual>
+ int CurrentQuantity(int productId)
Cart
---------------------
+ bool Add(int productId)
テストクラス
--------------------
テストメソッド
• 本当に Mock 化したメソッドが使用されたのかを確認する
• 何回 Mock 化したメソッドが使用されたのかを確認 する
Verify メソッドを使う
1. 改めてモックとは
2. モックを使用するメリット
3. Moq とは
4.Fakes Framework とは
5. テスタビリティの高いアーキテクチャ
6. 実例:DBを使用しないユニットテスト
7. まとめ
8. おまけ(ShimによるDbContextモック化)
19
Fakes Framework とは
• Micorosoft製モックフレームワーク。
(Visual Studio 2012 Premium, Ultimateでのみ使用可)
• Microsoft.QualityTools.Testing.Fakes へ参照追加
• 特徴
1. 事前に Mock用のクラスを生成
• 参照設定中の DLL を右クリックで指定すると自動的に生成
2. 大きく機能が二つにわかれている
• インターフェース, 抽象クラス のモックは Stub
(Moq とほぼ同じ機能と考えればOK)
• クラスのモックは Shims
(ほぼなんでもモック化可能。public 仮想メソッド でなくてもモック可能、静的メ
ソッドもモック化可能!)
20
Fakes Framework の使用方法
Cart
---------------------
+ bool Add(int productId)
テストクラス
--------------------
テストメソッド
何も渡さない
ただ起動するだけ
StockService
---------------------
<virtual>
+ int CurrentQuantity(int productId)
• 本当に Mock 化したメソッドが使用されたのかを確認する?
• 何回 Mock 化したメソッドが使用されたのかを確認 する?
そんな機能はありません・・・
21
Fakes Framework の使用方法
(依存クラスがInterface を実装している場合)
Cart
---------------------
+ bool Add(int productId)
テストクラス
--------------------
テストメソッド IStockService
StockService
---------------------
<virtual>
+ int CurrentQuantity(int productId)
• 本当に Mock 化したメソッドが使用されたのかを確認する?
• 何回 Mock 化したメソッドが使用されたのかを確認 する?
やっぱりそんな機能はありません・・・
1. 改めてモックとは
2. モックを使用するメリット
3. Moq とは
4. Fakes Framework とは
5.テスタビリティの高いアーキテクチャ
6. 実例:DBを使用しないユニットテスト
7. まとめ
8. おまけ(ShimによるDbContextモック化)
23
テスタビリティの高いアーキテクチャ
• 依存クラスをモックで切り替えられるようにするためには
アーキテクチャに従った実装が必要
Mockを使
わない?
メソッド内のローカル変数はモック化できない!
Test Project
さっきのシナリオでのテスト実装はこうだった
24
テスタビリティの高いアーキテクチャ
• 依存クラスをモックで切り替えられるようにするためには
アーキテクチャに従った実装が必要
• 依存オブジェクトはプロパティで持つ!
• メソッド内ではオブジェクト生成しない!
Test Project
Mock使用
してる!
Mock
Mock
25
テスタビリティの高いアーキテクチャ
• 依存オブジェクトの生成 その1
依存オブジェクトの生
成はデフォルトコンス
トラクタで!
コンストラクタの
オーバーロードは必
ずデフォルトコンス
トラクタを呼ぶ!
26
テスタビリティの高いアーキテクチャ
• 依存オブジェクトの生成 その2
Cart
StockService
DIContainer
Give me Cart object
Here you are !!
Create
Create
Injection
Property
Injection
Constructor
Injection
27
Cart
Cart
テスタビリティの高いアーキテクチャ
• サービスを格納するプロパティは internal に
Test Project
ASP.NET MVC
Controller Class
見えない
よ?
テストプロジェクト以外から
は見ちゃだめ!・・・って口
で言っても守ってくれる保証
はないなぁ
ASP.NET MVC
Controller Class
Test Project
見えてる!
28
Cart
テスタビリティの高いアーキテクチャ
• サービスを格納するプロパティは internal に
Test Project
見えてる!
ASP.NET MVC
Controller Class
追記
AssermblyInfo の変更でテストクラスからだけ見えるように
29
ShimsContext 上で実行する
テスタビリティの高いアーキテクチャ
• 既に構築済みのシステムはどうするか?
• 絶対に実装済みの箇所を触れないなら、Fakes Framework 一択!
Cart
---------------------
+ bool Add(int productId)
テストクラス
--------------------
テストメソッド
Shimsモック
StockService
---------------------
<virtual>
+ int CurrentQuantity(int productId)
1. 改めてモックとは
2. モックを使用するメリット
3. Moq とは
4. Fakes Framework とは
5. テスタビリティの高いアーキテクチャ
6.実例:DBを使用しないユニットテスト
7. まとめ
8. おまけ(ShimによるDbContextモック化)
31
実例:DBを使用しないユニットテスト
• 説明の前提となる構成
1. DBアクセスには Entity Framework 使用
2. Serviceレイヤーで直接 DB にアクセスしない
3. Repositoryレイヤーのみが DB にアクセスする
• Repository<T> クラスを用意
• Repository <T>クラスは IRepository<T> インターフェースを実装
• Repository<T> クラスの アクセス修飾子は internal
• 全てのDBアクセスはこのクラスを通じてしか許さない
• いわゆるリポジトリパターンってやつです
Service
---------------------
テスト対象クラス Repository<T>
---------------------
モック対象クラス
IRepository<T> Entity
Framework
(DbContext)
32
実例:DBを使用しないユニットテスト
• Repository クラスはこんな感じで使います
FactStock は、Model クラス
(テーブルと1 : 1でVS が自動生成)
Filter は IRepository<T> のメソッド。
戻り値は IList<T>
Sum は Linq to Object のメソッド
33
実例:DBを使用しないユニットテスト
Moq 版
右へ続く
テスト対象 CurrentQuantity メソッド
Callback メソッドは、引数を受け取る
ことができる
34
実例:DBを使用しないユニットテスト
Fakes Stub 版
右へ続く
テスト対象 CurrentQuantity メソッド
Delegate の引数でメソッドの引数を受
け取ることができる
35
まとめ
• モックとは何かがわかる
• テスト対象が依存するクラスを入れ替えるもの
• ほとんどのモックライブラリの使い方は似ている
• モックを使うとどんな良いことがあるかがわかる
• 依存クラスのバグを気にしなくて良い
• テスト範囲を汚染しない
• データベースにテストデータを用意しないで済む
• モック導入のためのアーキテクチャがわかる
• 依存オブジェクトはプロパティで持つ
• メソッド内ではオブジェクト生成しない
• 生成依存の解決は DI コンテナがお薦め
• モックを使用したユニットテストを実プロジェクトに導入する!
• Repository パターンを使用して、DBに依存しないテスト
1. 改めてモックとは
2. モックを使用するメリット
3. Moq とは
4. Fakes Framework とは
5. テスタビリティの高いアーキテクチャ
6. 実例:DBを使用しないユニットテスト
7. まとめ
8. おまけ(ShimによるDbContextモック化)
注意!難易度高め!
38
実例:DBを使用しないユニットテスト
Fakes Shim 版
• StockService.CurrentQuantity メソッド内で
DbContextを継承するクラスを 生成している場合
Mock化でき
ない
• Mock 化可能にするために DbSet<T> → IDbSet<T>
※自動生成なので、
T4テンプレートを修正
DbContextを継承しているクラス
39
実例:DBを使用しないユニットテスト
Fakes Shim 版
右へ続く
テスト対象 CurrentQuantity メソッド
Whereで指定された Expression を受け取る
db.FactStocks の Shim
IDbSet<FactStock> の
Stub を返却
まだ続く
40
実例:DBを使用しないユニットテスト
Fakes Shim 版
Where に指定された Expression をテス
トするために、
System.Linq.IQueryable.Where メソッド
をモック化
できなくないけど、
難しいね
Repository パターン
の方が簡単だよ!
ありがとうございました
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider

More Related Content

What's hot

ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
Takahito Tejima
 

What's hot (20)

それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
 
心理的安全性の構造 デブサミ2019夏 structure of psychological safety
心理的安全性の構造 デブサミ2019夏 structure of psychological safety心理的安全性の構造 デブサミ2019夏 structure of psychological safety
心理的安全性の構造 デブサミ2019夏 structure of psychological safety
 
Riderはいいぞ!
Riderはいいぞ!Riderはいいぞ!
Riderはいいぞ!
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
 
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
 
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTipsUnityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
 
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
 
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
 
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~
 
CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜
CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜
CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
MLOps入門
MLOps入門MLOps入門
MLOps入門
 

Similar to Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider

Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
Daisuke Sugai
 
Firefoxの開発プロセス
Firefoxの開発プロセスFirefoxの開発プロセス
Firefoxの開発プロセス
Makoto Kato
 
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
Hiroki Kondo
 

Similar to Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider (20)

Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
 
ALMツールたべくらべ
ALMツールたべくらべALMツールたべくらべ
ALMツールたべくらべ
 
Firefoxの開発プロセス
Firefoxの開発プロセスFirefoxの開発プロセス
Firefoxの開発プロセス
 
Mozillaのビルドインフラ
MozillaのビルドインフラMozillaのビルドインフラ
Mozillaのビルドインフラ
 
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeployワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeploy
 
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)
 
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF
 
ToolChainを使った次世代DevOps環境の作り方
ToolChainを使った次世代DevOps環境の作り方ToolChainを使った次世代DevOps環境の作り方
ToolChainを使った次世代DevOps環境の作り方
 
Microsoft Tunnel 概要
Microsoft Tunnel 概要Microsoft Tunnel 概要
Microsoft Tunnel 概要
 
4.総合演習(1)
4.総合演習(1)4.総合演習(1)
4.総合演習(1)
 
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
 
200513 ur
200513 ur200513 ur
200513 ur
 
Jenkinsstudy#4kokawa
Jenkinsstudy#4kokawaJenkinsstudy#4kokawa
Jenkinsstudy#4kokawa
 
201111 04
201111 04201111 04
201111 04
 
Microsoft Team Foundation Service 入門
Microsoft Team Foundation Service 入門Microsoft Team Foundation Service 入門
Microsoft Team Foundation Service 入門
 
2013 Ignite UI 最新情報 in 岡山
2013 Ignite UI 最新情報 in 岡山2013 Ignite UI 最新情報 in 岡山
2013 Ignite UI 最新情報 in 岡山
 
パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理
 
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
 
マイクロソフトのクラウドテクノロジーでゲーム開発(2019年7月)
マイクロソフトのクラウドテクノロジーでゲーム開発(2019年7月)マイクロソフトのクラウドテクノロジーでゲーム開発(2019年7月)
マイクロソフトのクラウドテクノロジーでゲーム開発(2019年7月)
 
20181006 HoloLens Meetup
20181006 HoloLens Meetup20181006 HoloLens Meetup
20181006 HoloLens Meetup
 

More from 貴志 上坂

Enterprise cloud design pattern 大量データ処理アーキテクチャの構築
Enterprise cloud design pattern 大量データ処理アーキテクチャの構築Enterprise cloud design pattern 大量データ処理アーキテクチャの構築
Enterprise cloud design pattern 大量データ処理アーキテクチャの構築
貴志 上坂
 

More from 貴志 上坂 (15)

Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
 
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
 
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
 
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
 
第5回 cogbot勉強会!
第5回 cogbot勉強会!第5回 cogbot勉強会!
第5回 cogbot勉強会!
 
2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装
2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装
2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装
 
NS study8 DDD Microservices Azuer Service Fabric
NS study8 DDD Microservices Azuer Service FabricNS study8 DDD Microservices Azuer Service Fabric
NS study8 DDD Microservices Azuer Service Fabric
 
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
始めよう! ドメイン駆動設計&マイクロサービス開発 ~C# と Azure Service Fabric で最高の DDD 開発を~
 
Ns study Azure IoTHub紹介
Ns study Azure IoTHub紹介Ns study Azure IoTHub紹介
Ns study Azure IoTHub紹介
 
アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-
アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-
アルゴリズムから学ぶAzure mlモジュールの使いこなし方 hd-insight編-
 
Azure Machine Learningによるレコメンデーションの設計&実装を公開!~朝日カルチャーセンターの事例から~
Azure Machine Learningによるレコメンデーションの設計&実装を公開!~朝日カルチャーセンターの事例から~Azure Machine Learningによるレコメンデーションの設計&実装を公開!~朝日カルチャーセンターの事例から~
Azure Machine Learningによるレコメンデーションの設計&実装を公開!~朝日カルチャーセンターの事例から~
 
20150421 QCon Tokyo 2015 Azureが切り開く新時代のソフトウェア開発・設計
20150421 QCon Tokyo 2015 Azureが切り開く新時代のソフトウェア開発・設計20150421 QCon Tokyo 2015 Azureが切り開く新時代のソフトウェア開発・設計
20150421 QCon Tokyo 2015 Azureが切り開く新時代のソフトウェア開発・設計
 
クラウドデザインパターンのススメ
クラウドデザインパターンのススメクラウドデザインパターンのススメ
クラウドデザインパターンのススメ
 
クラウドデザインパターンから始めるクラウドの利点と弱点の理解~提案から設計・開発・保守に活かす!~
クラウドデザインパターンから始めるクラウドの利点と弱点の理解~提案から設計・開発・保守に活かす!~クラウドデザインパターンから始めるクラウドの利点と弱点の理解~提案から設計・開発・保守に活かす!~
クラウドデザインパターンから始めるクラウドの利点と弱点の理解~提案から設計・開発・保守に活かす!~
 
Enterprise cloud design pattern 大量データ処理アーキテクチャの構築
Enterprise cloud design pattern 大量データ処理アーキテクチャの構築Enterprise cloud design pattern 大量データ処理アーキテクチャの構築
Enterprise cloud design pattern 大量データ処理アーキテクチャの構築
 

Recently uploaded

2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
ssuserbefd24
 

Recently uploaded (10)

MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 

Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider