SlideShare a Scribd company logo
1 of 71
Download to read offline
de:code 2019 AI02
チャットボット開発でも DevOps!
BotBuilder のテスト手法
日本マイクロソフト株式会社
Sr. Software Engineer
中村 憲一郎
本セッションのゴール
400
前提となる知識
中村 憲一郎
Sr. Software Engineer
好きな技術は主に、C#, UWP,
Xamarin, API, PowerShell, DB,
Node.js
https://github.com/kenakamu
https://qiita.com/kenakamu
ブログ
ブログ
前提
チャットボットをはじめとする
モダンアプリケーションは
進化を続けるために頻繁に
更新を行う必要がある
DevOps
DevOps : ビルド
デプロイ先環境 : 複数環境の用意
Bot Channels Registration の制限
Web App : 複数スロットを利用 - スワップのため
Web App : スロット毎にユニークな設定が可能
リリースパイプライン
手動認証
DevOps
ユニットテスト
チャットボットのライフサイクル
チャットボットのユニットテスト
• ユニットはどの単位か
ユニットはどの単位か
TestFlow
TestAdapter
テストフレームワーク
TestFlow
ブラックボックス (外部サービス) の例
TestFlow デモ
ユニットテストに必要な
ボット動作の理解
ボットに要求が来るまで
ステート管理
ミドルウェア
ステートのテスト
デモ
コンストラクターでステートを渡す
public SessionEchoBot (
ConversationState conversationState,
UserState userState,
)
テスト側でステートの作成
// ストレージとしてインメモリを利用
IStorage dataStore = new MemoryStorage();
var conversationState = new ConversationState(dataStore);
var userState = new UserState(dataStore);
ボットのインスタンス作成
var bot = new SessionEchoBot (
conversationState,
userState
);
テストコード
await new TestFlow(new TestAdapter(), bot.OnTurnAsync)
.Test(“Hi”, “Hi 1”)
.Test(“Yo”, “Yo 2”)
.StartTestAsync();
ダイアログのユニットテスト
デモ
TestFlow で Lambda を使用
var testFlow = new TestFlow(
adapter,
async (turnContext, cancellationToken) =>
{
var dialogContext = await dialogs.CreateContextAsync(
turnContext, cancellationToken);
ステート : アダプタのミドルウェアで保存
var adapter = new TestAdapter();
adapter.Use(
new AutoSaveStateMiddleware(conversationState));
DialogSet を追加
var dialogState =
conversationState.CreateProperty<DialogState>
("DialogState");
var dialogs = new DialogSet(dialogState);
dialogs.Add(new ProfileDialog ());
ダイアログコンテキスト作成
var testFlow = new TestFlow(adapter, async (turnContext,
cancellationToken) =>
{
var dialogContext =
await dialogs.CreateContextAsync(
turnContext, cancellationToken);
ダイアログのライフサイクル : 継続と開始
var results = await dialogContext.
ContinueDialogAsync(cancellationToken);
if (results.Status == DialogTurnStatus.Empty) {
results = await dialogContext.BeginDialogAsync(
nameof(ProfileDialog),
new Profile(),
cancellationToken);
}
ダイアログのライフサイクル : 完了
if (results.Status == DialogTurnStatus.Complete)
{
await turnContext.SendActivityAsync("Done");
}
テスト
await testFlow
.Test("開始", "名前は?")
.Test("中村", "🐈派?🐕派?")
.Send("🐈派")
.AssertReply(activity =>
{
Assert.AreEqual("Done", (activity as Activity).Text);
})
.StartTestAsync();
プロンプトのリトライ
デモ
テスト
await testFlow
.Test("開始", "名前は?")
.Test("中村", "🐈派?🐕派? (1) 🐈派 or (2) 🐕派")
.Test("🐇派",
"🐈か🐕で答えてください。 (1) 🐈派 or (2) 🐕派")
….
外部サービスのモック化
LUIS
デモ
LuisRecognizer と IRecognizer
IRecognizer
var luisApplication = new LuisApplication(key, key, uri);
var recognizer = new LuisRecognizer(luisApplication);
services.AddSingleton<IRecognizer>(recognizer);
Dependency Injection 対応
public MyBotWithLuis(
ConversationState conversationState,
UserState userState,
IRecognizer recognizer)
{
モックの作成
var mockRecognizer = new Mock<IRecognizer>();
mockRecognizer.Setup(l => l.RecognizeAsync(…)
.Returns((…) =>
応答の作成
var recognizerResult = new RecognizerResult()
{
Intents = new Dictionary<string, IntentScore>(),
Entities = new JObject()
};
応答の作成 : インテント
case "今日の天気を確認":
recognizerResult.Intents.Add(
"Weather", new IntentScore() { Score = 1 });
recognizerResult.Entities.Add(
"day", JArray.Parse("[['今日']]"));
break;
DataRow を使ったテスト
[TestMethod]
[DataRow("今日")]
[DataRow("明日")]
public async Task TestName(string day){
var arrange = Arrange().testFlow;
await testFlow.Test("天気を確認", "いつの天気を知…..
.Test(day, $"{day}の天気は晴れです")
.StartTestAsync();
}
ダイアログ遷移を
スタック情報で検証
デモ
AssertReply 内で TurnContext を作成
.AssertReply(activity =>
{
var turnContext = new TurnContext(
adapter, activity as Activity);
DialogContext の ActiveDialog を検証
.AssertReply(activity =>
{
var turnContext = new TurnContext(
adapter, activity as Activity);
var dc = dialogs.CreateContextAsync(
turnContext).Result;
Assert.AreEqual(nameof(ProfileWithChoiceDialog),
dc.ActiveDialog.Id);
システムメッセージ
デモ
システムメッセージ : Activity
var act = new Activity(ActivityTypes.ConversationUpdate){
Id = "test",
From = new ChannelAccount("TestUser", "Test User"),
ChannelId = "UnitTest",
ServiceUrl = "https://example.org",
MembersAdded = new List<ChannelAccount>()
{ new ChannelAccount("TestUser", "Test User") }
};
TestFlow.Send
await new TestFlow(adapter, bot.OnTurnAsync)
.Send(conversationUpdateActivity)
.AssertReply(activity =>
{
…
リンクファイル
外部サービスのモック化
OAuthPrompt & Graph
デモ
OAuthPrompt のモック
var adapter = new TestAdapter();
adapter.AddUserToken("AADv2", "test", "user1",
"dummyToken");
MSGraph のモック
mockGraphSDK.Setup(x =>
x.Me.CalendarView.Request(It.IsAny<List<QueryOption>>()).Ge
tAsync()).ReturnsAsync(() =>
{
var page = new UserCalendarViewCollectionPage();
page.Add(new Event(){
Subject = "Dummy 1",
Start = …
End = … }
});
その他にも
本セッションのゴール
400
© 2018 Microsoft Corporation. All rights reserved.
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。
© 2019 Microsoft Corporation. All rights reserved.
本情報の内容 (添付文書、リンク先などを含む) は、de:code 2019 開催日 (2019年5月29~30日) 時点のものであり、予告なく変更される場合があります。
本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。

More Related Content

Similar to ボット開発でも DevOps! BotBuilder のテスト手法

勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発Kazuki Nakajima
 
tech talk about JS #0
tech talk about JS #0tech talk about JS #0
tech talk about JS #0Hika Maeng
 
Movable Type から BOT を作ろう! ~ Data API と Microsoft BOT Framework ~
Movable Type から BOT を作ろう! ~ Data API と Microsoft BOT Framework ~Movable Type から BOT を作ろう! ~ Data API と Microsoft BOT Framework ~
Movable Type から BOT を作ろう! ~ Data API と Microsoft BOT Framework ~Osamu Monoe
 
Tech talk salesforce mobile sdk
Tech talk   salesforce mobile sdkTech talk   salesforce mobile sdk
Tech talk salesforce mobile sdkKazuki Nakajima
 
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏Developers Summit
 
How to Make Own Framework built on OWIN
How to Make Own Framework built on OWINHow to Make Own Framework built on OWIN
How to Make Own Framework built on OWINYoshifumi Kawai
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発Akira Inoue
 
[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
 
Java/Androidセキュアコーディング
Java/AndroidセキュアコーディングJava/Androidセキュアコーディング
Java/AndroidセキュアコーディングMasaki Kubo
 
JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~
JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~
JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~Osamu Monoe
 
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Yuki Higuchi
 
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発Akira Inoue
 
Windows 開発者のための Dev&Ops on AWS
Windows 開発者のための Dev&Ops on AWSWindows 開発者のための Dev&Ops on AWS
Windows 開発者のための Dev&Ops on AWSAmazon Web Services Japan
 
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...Shotaro Suzuki
 
Windows azure mobile services による mobile + cloud アプリケーション超高速開発
Windows azure mobile services による mobile + cloud アプリケーション超高速開発Windows azure mobile services による mobile + cloud アプリケーション超高速開発
Windows azure mobile services による mobile + cloud アプリケーション超高速開発Shotaro Suzuki
 
Cognito、Mobile SDK、SNSでサーバいらずのプッシュ通知
Cognito、Mobile SDK、SNSでサーバいらずのプッシュ通知Cognito、Mobile SDK、SNSでサーバいらずのプッシュ通知
Cognito、Mobile SDK、SNSでサーバいらずのプッシュ通知Sunao Komuro
 
20171108 Tech Summit 2017 最新! Windows 10 Fall Creators Update 新機能とアプリケーション開発
20171108 Tech Summit 2017 最新! Windows 10 Fall Creators Update新機能とアプリケーション開発20171108 Tech Summit 2017 最新! Windows 10 Fall Creators Update新機能とアプリケーション開発
20171108 Tech Summit 2017 最新! Windows 10 Fall Creators Update 新機能とアプリケーション開発shinobu takahashi
 
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...Akira Inoue
 

Similar to ボット開発でも DevOps! BotBuilder のテスト手法 (20)

勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発
 
実践 NestJS
実践 NestJS実践 NestJS
実践 NestJS
 
tech talk about JS #0
tech talk about JS #0tech talk about JS #0
tech talk about JS #0
 
Movable Type から BOT を作ろう! ~ Data API と Microsoft BOT Framework ~
Movable Type から BOT を作ろう! ~ Data API と Microsoft BOT Framework ~Movable Type から BOT を作ろう! ~ Data API と Microsoft BOT Framework ~
Movable Type から BOT を作ろう! ~ Data API と Microsoft BOT Framework ~
 
Tech talk salesforce mobile sdk
Tech talk   salesforce mobile sdkTech talk   salesforce mobile sdk
Tech talk salesforce mobile sdk
 
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
 
How to Make Own Framework built on OWIN
How to Make Own Framework built on OWINHow to Make Own Framework built on OWIN
How to Make Own Framework built on OWIN
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発
 
[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 アプリケーション開発
 
Java/Androidセキュアコーディング
Java/AndroidセキュアコーディングJava/Androidセキュアコーディング
Java/Androidセキュアコーディング
 
JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~
JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~
JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~
 
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.
 
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発
 
Windows 開発者のための Dev&Ops on AWS
Windows 開発者のための Dev&Ops on AWSWindows 開発者のための Dev&Ops on AWS
Windows 開発者のための Dev&Ops on AWS
 
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
 
Windows azure mobile services による mobile + cloud アプリケーション超高速開発
Windows azure mobile services による mobile + cloud アプリケーション超高速開発Windows azure mobile services による mobile + cloud アプリケーション超高速開発
Windows azure mobile services による mobile + cloud アプリケーション超高速開発
 
Cognito、Mobile SDK、SNSでサーバいらずのプッシュ通知
Cognito、Mobile SDK、SNSでサーバいらずのプッシュ通知Cognito、Mobile SDK、SNSでサーバいらずのプッシュ通知
Cognito、Mobile SDK、SNSでサーバいらずのプッシュ通知
 
20171108 Tech Summit 2017 最新! Windows 10 Fall Creators Update 新機能とアプリケーション開発
20171108 Tech Summit 2017 最新! Windows 10 Fall Creators Update新機能とアプリケーション開発20171108 Tech Summit 2017 最新! Windows 10 Fall Creators Update新機能とアプリケーション開発
20171108 Tech Summit 2017 最新! Windows 10 Fall Creators Update 新機能とアプリケーション開発
 
コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -
 
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
 

More from Kenichiro Nakamura

LINE Developer Day 2019 how to optimize bot development lifecycle with dev ops
LINE Developer Day 2019 how to optimize bot development lifecycle with dev opsLINE Developer Day 2019 how to optimize bot development lifecycle with dev ops
LINE Developer Day 2019 how to optimize bot development lifecycle with dev opsKenichiro Nakamura
 
MTDDC 2019 LINE ボットからみた MT Data API の可能性
MTDDC 2019 LINE ボットからみた MT Data API の可能性MTDDC 2019 LINE ボットからみた MT Data API の可能性
MTDDC 2019 LINE ボットからみた MT Data API の可能性Kenichiro Nakamura
 
TypeScript Meetup #1 Build 2019 update
TypeScript Meetup #1 Build 2019 updateTypeScript Meetup #1 Build 2019 update
TypeScript Meetup #1 Build 2019 updateKenichiro Nakamura
 
.NET ラボ 勉強会 C# でラインプラットフォーム開発
.NET ラボ 勉強会 C# でラインプラットフォーム開発.NET ラボ 勉強会 C# でラインプラットフォーム開発
.NET ラボ 勉強会 C# でラインプラットフォーム開発Kenichiro Nakamura
 
Microsoft Azure Cognitive Services
Microsoft Azure Cognitive ServicesMicrosoft Azure Cognitive Services
Microsoft Azure Cognitive ServicesKenichiro Nakamura
 
EdgeAI: Azure IoT Edge カスタムモジュール開発
EdgeAI: Azure IoT Edge カスタムモジュール開発EdgeAI: Azure IoT Edge カスタムモジュール開発
EdgeAI: Azure IoT Edge カスタムモジュール開発Kenichiro Nakamura
 
エッジ・組み込みAI勉強会 : コンテナで使う Cognitive Service
エッジ・組み込みAI勉強会 : コンテナで使う Cognitive Serviceエッジ・組み込みAI勉強会 : コンテナで使う Cognitive Service
エッジ・組み込みAI勉強会 : コンテナで使う Cognitive ServiceKenichiro Nakamura
 
SQL Server 2019 Master Data Service
SQL Server 2019 Master Data ServiceSQL Server 2019 Master Data Service
SQL Server 2019 Master Data ServiceKenichiro Nakamura
 
いま考えられる限り最も速く対話型アプリを開発する方法
いま考えられる限り最も速く対話型アプリを開発する方法いま考えられる限り最も速く対話型アプリを開発する方法
いま考えられる限り最も速く対話型アプリを開発する方法Kenichiro Nakamura
 
Extended Events 101 : Japan SQL Server User Group
Extended Events 101 : Japan SQL Server User GroupExtended Events 101 : Japan SQL Server User Group
Extended Events 101 : Japan SQL Server User GroupKenichiro Nakamura
 
Tech-on Meet Up #02 Microsoft のコンテナ活用事例
Tech-on Meet Up #02 Microsoft のコンテナ活用事例Tech-on Meet Up #02 Microsoft のコンテナ活用事例
Tech-on Meet Up #02 Microsoft のコンテナ活用事例Kenichiro Nakamura
 
JSSUG: SQL Sever Performance Tuning
JSSUG: SQL Sever Performance TuningJSSUG: SQL Sever Performance Tuning
JSSUG: SQL Sever Performance TuningKenichiro Nakamura
 
LT: 開発者が意識するべき チャットボットの UX と アーキテクチャ
LT: 開発者が意識するべきチャットボットの UX とアーキテクチャLT: 開発者が意識するべきチャットボットの UX とアーキテクチャ
LT: 開発者が意識するべき チャットボットの UX と アーキテクチャKenichiro Nakamura
 
今更聞けない!?Microsoft Graph で始める Office 365 データ活用と事例の紹介
今更聞けない!?Microsoft Graph で始める Office 365 データ活用と事例の紹介今更聞けない!?Microsoft Graph で始める Office 365 データ活用と事例の紹介
今更聞けない!?Microsoft Graph で始める Office 365 データ活用と事例の紹介Kenichiro Nakamura
 
LINE Bot リッチメニュー使ってる?
LINE Bot リッチメニュー使ってる?LINE Bot リッチメニュー使ってる?
LINE Bot リッチメニュー使ってる?Kenichiro Nakamura
 

More from Kenichiro Nakamura (20)

JSSUG Azure SQL Analytics
JSSUG Azure SQL AnalyticsJSSUG Azure SQL Analytics
JSSUG Azure SQL Analytics
 
LINE Developer Day 2019 how to optimize bot development lifecycle with dev ops
LINE Developer Day 2019 how to optimize bot development lifecycle with dev opsLINE Developer Day 2019 how to optimize bot development lifecycle with dev ops
LINE Developer Day 2019 how to optimize bot development lifecycle with dev ops
 
MTDDC 2019 LINE ボットからみた MT Data API の可能性
MTDDC 2019 LINE ボットからみた MT Data API の可能性MTDDC 2019 LINE ボットからみた MT Data API の可能性
MTDDC 2019 LINE ボットからみた MT Data API の可能性
 
Tokyo Azure Meetup #29 AKS
Tokyo Azure Meetup #29 AKSTokyo Azure Meetup #29 AKS
Tokyo Azure Meetup #29 AKS
 
TypeScript Meetup #1 Build 2019 update
TypeScript Meetup #1 Build 2019 updateTypeScript Meetup #1 Build 2019 update
TypeScript Meetup #1 Build 2019 update
 
.NET ラボ 勉強会 C# でラインプラットフォーム開発
.NET ラボ 勉強会 C# でラインプラットフォーム開発.NET ラボ 勉強会 C# でラインプラットフォーム開発
.NET ラボ 勉強会 C# でラインプラットフォーム開発
 
Microsoft Azure Cognitive Services
Microsoft Azure Cognitive ServicesMicrosoft Azure Cognitive Services
Microsoft Azure Cognitive Services
 
EdgeAI: Azure IoT Edge カスタムモジュール開発
EdgeAI: Azure IoT Edge カスタムモジュール開発EdgeAI: Azure IoT Edge カスタムモジュール開発
EdgeAI: Azure IoT Edge カスタムモジュール開発
 
エッジ・組み込みAI勉強会 : コンテナで使う Cognitive Service
エッジ・組み込みAI勉強会 : コンテナで使う Cognitive Serviceエッジ・組み込みAI勉強会 : コンテナで使う Cognitive Service
エッジ・組み込みAI勉強会 : コンテナで使う Cognitive Service
 
SQL Server 2019 Master Data Service
SQL Server 2019 Master Data ServiceSQL Server 2019 Master Data Service
SQL Server 2019 Master Data Service
 
いま考えられる限り最も速く対話型アプリを開発する方法
いま考えられる限り最も速く対話型アプリを開発する方法いま考えられる限り最も速く対話型アプリを開発する方法
いま考えられる限り最も速く対話型アプリを開発する方法
 
Azure for hackathon
Azure for hackathonAzure for hackathon
Azure for hackathon
 
Extended Events 101 : Japan SQL Server User Group
Extended Events 101 : Japan SQL Server User GroupExtended Events 101 : Japan SQL Server User Group
Extended Events 101 : Japan SQL Server User Group
 
Tech-on Meet Up #02 Microsoft のコンテナ活用事例
Tech-on Meet Up #02 Microsoft のコンテナ活用事例Tech-on Meet Up #02 Microsoft のコンテナ活用事例
Tech-on Meet Up #02 Microsoft のコンテナ活用事例
 
JSSUG: SQL Sever Index Tuning
JSSUG: SQL Sever Index TuningJSSUG: SQL Sever Index Tuning
JSSUG: SQL Sever Index Tuning
 
JSSUG: SQL Sever Performance Tuning
JSSUG: SQL Sever Performance TuningJSSUG: SQL Sever Performance Tuning
JSSUG: SQL Sever Performance Tuning
 
LT: 開発者が意識するべき チャットボットの UX と アーキテクチャ
LT: 開発者が意識するべきチャットボットの UX とアーキテクチャLT: 開発者が意識するべきチャットボットの UX とアーキテクチャ
LT: 開発者が意識するべき チャットボットの UX と アーキテクチャ
 
今更聞けない!?Microsoft Graph で始める Office 365 データ活用と事例の紹介
今更聞けない!?Microsoft Graph で始める Office 365 データ活用と事例の紹介今更聞けない!?Microsoft Graph で始める Office 365 データ活用と事例の紹介
今更聞けない!?Microsoft Graph で始める Office 365 データ活用と事例の紹介
 
LINE Bot リッチメニュー使ってる?
LINE Bot リッチメニュー使ってる?LINE Bot リッチメニュー使ってる?
LINE Bot リッチメニュー使ってる?
 
Line Bot with C#
Line Bot with C#Line Bot with C#
Line Bot with C#
 

Recently uploaded

IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 

Recently uploaded (7)

IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 

ボット開発でも DevOps! BotBuilder のテスト手法