Submit Search
Upload
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
•
7 likes
•
12,039 views
Yasuhiko Yamamoto
Follow
2015 MVP ComCamp 名古屋会場 (2015/1/31) PowerPoint のファイルは、OneDrive にあります。 http://1drv.ms/1yhJxpC
Read less
Read more
Technology
Report
Share
Report
Share
1 of 52
Download now
Download to read offline
Recommended
限界性能試験を自動化するOperatorを作ってみた(Kubernetes Novice Tokyo #14 発表資料)
限界性能試験を自動化するOperatorを作ってみた(Kubernetes Novice Tokyo #14 発表資料)
NTT DATA Technology & Innovation
Marp入門
Marp入門
Rui Watanabe
ELFの動的リンク
ELFの動的リンク
7shi
Machine learning CI/CD with OSS
Machine learning CI/CD with OSS
yusuke shibui
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
Kuniyasu Suzaki
異常検知と変化検知 第4章 近傍法による異常検知
異常検知と変化検知 第4章 近傍法による異常検知
Ken'ichi Matsui
Python製BDDツールで自動化してみた
Python製BDDツールで自動化してみた
KeijiUehata1
目grep入門 +解説
目grep入門 +解説
murachue
Recommended
限界性能試験を自動化するOperatorを作ってみた(Kubernetes Novice Tokyo #14 発表資料)
限界性能試験を自動化するOperatorを作ってみた(Kubernetes Novice Tokyo #14 発表資料)
NTT DATA Technology & Innovation
Marp入門
Marp入門
Rui Watanabe
ELFの動的リンク
ELFの動的リンク
7shi
Machine learning CI/CD with OSS
Machine learning CI/CD with OSS
yusuke shibui
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
Kuniyasu Suzaki
異常検知と変化検知 第4章 近傍法による異常検知
異常検知と変化検知 第4章 近傍法による異常検知
Ken'ichi Matsui
Python製BDDツールで自動化してみた
Python製BDDツールで自動化してみた
KeijiUehata1
目grep入門 +解説
目grep入門 +解説
murachue
推薦アルゴリズムの今までとこれから
推薦アルゴリズムの今までとこれから
cyberagent
オブジェクト指向アンチパターンを考えてみた
オブジェクト指向アンチパターンを考えてみた
Takuya Kawabe
ソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビュー
Moriharu Ohzu
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
Tokoroten Nakayama
「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer
Yuta Matsumura
[DL輪読会]Deep Face Recognition: A Survey
[DL輪読会]Deep Face Recognition: A Survey
Deep Learning JP
内製ツールを使ったチート診断・脆弱性診断
内製ツールを使ったチート診断・脆弱性診断
DeNA
パタヘネゼミ 第6章
パタヘネゼミ 第6章
okuraofvegetable
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法
kazkiti
Amazon Kinesis Video Streams WebRTC 使ってみた
Amazon Kinesis Video Streams WebRTC 使ってみた
mganeko
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
Amazon Web Services Japan
MCC CTF講習会 pwn編
MCC CTF講習会 pwn編
hama7230
レコメンドアルゴリズムの基本と周辺知識と実装方法
レコメンドアルゴリズムの基本と周辺知識と実装方法
Takeshi Mikami
Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版
Takuya Matsunaga
やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013
DQNEO
高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!
masakazu matsubara
Layer Normalization@NIPS+読み会・関西
Layer Normalization@NIPS+読み会・関西
Keigo Nishida
Uuidはどこまでuuidか試してみた
Uuidはどこまでuuidか試してみた
Yu Yamada
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
標的型攻撃からどのように身を守るのか
標的型攻撃からどのように身を守るのか
abend_cve_9999_0001
テストって何をするもの? - テストの5W1H -
テストって何をするもの? - テストの5W1H -
Hiroshi Maekawa
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
Masahiro Nishimi
More Related Content
What's hot
推薦アルゴリズムの今までとこれから
推薦アルゴリズムの今までとこれから
cyberagent
オブジェクト指向アンチパターンを考えてみた
オブジェクト指向アンチパターンを考えてみた
Takuya Kawabe
ソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビュー
Moriharu Ohzu
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
Tokoroten Nakayama
「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer
Yuta Matsumura
[DL輪読会]Deep Face Recognition: A Survey
[DL輪読会]Deep Face Recognition: A Survey
Deep Learning JP
内製ツールを使ったチート診断・脆弱性診断
内製ツールを使ったチート診断・脆弱性診断
DeNA
パタヘネゼミ 第6章
パタヘネゼミ 第6章
okuraofvegetable
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法
kazkiti
Amazon Kinesis Video Streams WebRTC 使ってみた
Amazon Kinesis Video Streams WebRTC 使ってみた
mganeko
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
Amazon Web Services Japan
MCC CTF講習会 pwn編
MCC CTF講習会 pwn編
hama7230
レコメンドアルゴリズムの基本と周辺知識と実装方法
レコメンドアルゴリズムの基本と周辺知識と実装方法
Takeshi Mikami
Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版
Takuya Matsunaga
やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013
DQNEO
高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!
masakazu matsubara
Layer Normalization@NIPS+読み会・関西
Layer Normalization@NIPS+読み会・関西
Keigo Nishida
Uuidはどこまでuuidか試してみた
Uuidはどこまでuuidか試してみた
Yu Yamada
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
標的型攻撃からどのように身を守るのか
標的型攻撃からどのように身を守るのか
abend_cve_9999_0001
What's hot
(20)
推薦アルゴリズムの今までとこれから
推薦アルゴリズムの今までとこれから
オブジェクト指向アンチパターンを考えてみた
オブジェクト指向アンチパターンを考えてみた
ソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビュー
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer
[DL輪読会]Deep Face Recognition: A Survey
[DL輪読会]Deep Face Recognition: A Survey
内製ツールを使ったチート診断・脆弱性診断
内製ツールを使ったチート診断・脆弱性診断
パタヘネゼミ 第6章
パタヘネゼミ 第6章
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法
Amazon Kinesis Video Streams WebRTC 使ってみた
Amazon Kinesis Video Streams WebRTC 使ってみた
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
MCC CTF講習会 pwn編
MCC CTF講習会 pwn編
レコメンドアルゴリズムの基本と周辺知識と実装方法
レコメンドアルゴリズムの基本と周辺知識と実装方法
Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版
やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013
高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!
Layer Normalization@NIPS+読み会・関西
Layer Normalization@NIPS+読み会・関西
Uuidはどこまでuuidか試してみた
Uuidはどこまでuuidか試してみた
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
標的型攻撃からどのように身を守るのか
標的型攻撃からどのように身を守るのか
Similar to Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
テストって何をするもの? - テストの5W1H -
テストって何をするもの? - テストの5W1H -
Hiroshi Maekawa
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
Masahiro Nishimi
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Takafumi ONAKA
Tddのすゝめ
Tddのすゝめ
将 高野
TypeScript 入門してみる
TypeScript 入門してみる
Ken Fukuyama
初めての拡張機能リリースまでの歩み / Road to publishing extension for the first time
初めての拡張機能リリースまでの歩み / Road to publishing extension for the first time
Yusuke Yamada
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
Hiroyuki Ohnaka
Scrum,Test,Metrics #sgt2016
Scrum,Test,Metrics #sgt2016
kyon mm
DevOps、その前に
DevOps、その前に
Yuta Matsumura
WordPressで行う継続的インテグレーション入門編
WordPressで行う継続的インテグレーション入門編
Hiroshi Urabe
Test automation strategy for .net core 3 transition
Test automation strategy for .net core 3 transition
Tatsuya Ishikawa
テスト駆動開発入門 - C4K Meetup#2
テスト駆動開発入門 - C4K Meetup#2
Masashi Shibata
connpass特徴と開発の流れ
connpass特徴と開発の流れ
Ikeda Yosuke
nseg第5回勉強会
nseg第5回勉強会
ko ty
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminar
Manabu Shimobe
はじめてのテスト技法
はじめてのテスト技法
Tatsuya Saito
いままでのJaSSTnanoLT動画を振り返る&おススメしたいの! / Looking back and recommend on the JaSSTna...
いままでのJaSSTnanoLT動画を振り返る&おススメしたいの! / Looking back and recommend on the JaSSTna...
ICO
GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方
Hiroyuki Tanaka
Dev Love Lt 20090622(佐々木)
Dev Love Lt 20090622(佐々木)
DevLOVE
View Monitoring Tips
View Monitoring Tips
Daisuke Yamashita
Similar to Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
(20)
テストって何をするもの? - テストの5W1H -
テストって何をするもの? - テストの5W1H -
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Tddのすゝめ
Tddのすゝめ
TypeScript 入門してみる
TypeScript 入門してみる
初めての拡張機能リリースまでの歩み / Road to publishing extension for the first time
初めての拡張機能リリースまでの歩み / Road to publishing extension for the first time
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
Scrum,Test,Metrics #sgt2016
Scrum,Test,Metrics #sgt2016
DevOps、その前に
DevOps、その前に
WordPressで行う継続的インテグレーション入門編
WordPressで行う継続的インテグレーション入門編
Test automation strategy for .net core 3 transition
Test automation strategy for .net core 3 transition
テスト駆動開発入門 - C4K Meetup#2
テスト駆動開発入門 - C4K Meetup#2
connpass特徴と開発の流れ
connpass特徴と開発の流れ
nseg第5回勉強会
nseg第5回勉強会
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminar
はじめてのテスト技法
はじめてのテスト技法
いままでのJaSSTnanoLT動画を振り返る&おススメしたいの! / Looking back and recommend on the JaSSTna...
いままでのJaSSTnanoLT動画を振り返る&おススメしたいの! / Looking back and recommend on the JaSSTna...
GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方
Dev Love Lt 20090622(佐々木)
Dev Love Lt 20090622(佐々木)
View Monitoring Tips
View Monitoring Tips
More from Yasuhiko Yamamoto
わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう
わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう
Yasuhiko Yamamoto
わんくま名古屋 #38 (20160521) Xamarin入門
わんくま名古屋 #38 (20160521) Xamarin入門
Yasuhiko Yamamoto
UWP アプリを JavaScript で作る 3つの方法
UWP アプリを JavaScript で作る 3つの方法
Yasuhiko Yamamoto
無償のVisual studioで作るクライアント アプリ
無償のVisual studioで作るクライアント アプリ
Yasuhiko Yamamoto
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
Yasuhiko Yamamoto
わんくま名古屋 #37 (20151114) TDD道場 #25
わんくま名古屋 #37 (20151114) TDD道場 #25
Yasuhiko Yamamoto
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
Yasuhiko Yamamoto
第8回業開中心会議 「Windows 10 ユニバーサルアプリの概要」
第8回業開中心会議 「Windows 10 ユニバーサルアプリの概要」
Yasuhiko Yamamoto
わんくま名古屋#34(20150214) TDD道場#22
わんくま名古屋#34(20150214) TDD道場#22
Yasuhiko Yamamoto
わんくま名古屋#33(20141115) モノ作り半生
わんくま名古屋#33(20141115) モノ作り半生
Yasuhiko Yamamoto
わんくま名古屋#33(20141115) TDD道場#21
わんくま名古屋#33(20141115) TDD道場#21
Yasuhiko Yamamoto
開発ツールを買わずに作る♪ ユニバーサルWindowsアプリ!
開発ツールを買わずに作る♪ ユニバーサルWindowsアプリ!
Yasuhiko Yamamoto
わんくま名古屋 #32 (20140823) TDD道場 #20
わんくま名古屋 #32 (20140823) TDD道場 #20
Yasuhiko Yamamoto
わんくま名古屋#31(20140524) TDD道場 #19
わんくま名古屋#31(20140524) TDD道場 #19
Yasuhiko Yamamoto
わんくま名古屋#31(20140524) ユニバーサルWindowsアプリ開発の勧め
わんくま名古屋#31(20140524) ユニバーサルWindowsアプリ開発の勧め
Yasuhiko Yamamoto
Windows ストア アプリでスレッド間排他処理
Windows ストア アプリでスレッド間排他処理
Yasuhiko Yamamoto
Windows 8.1 Update 1 の噂をまとめてみた
Windows 8.1 Update 1 の噂をまとめてみた
Yasuhiko Yamamoto
タダで始めるテストファースト入門 ~ C# Express + NUnit
タダで始めるテストファースト入門 ~ C# Express + NUnit
Yasuhiko Yamamoto
わんくま名古屋 #29 (2013/11/23) TDD道場 #17
わんくま名古屋 #29 (2013/11/23) TDD道場 #17
Yasuhiko Yamamoto
わんくま名古屋#28(20130824) c#で、ライフゲームを高速化してみるよ
わんくま名古屋#28(20130824) c#で、ライフゲームを高速化してみるよ
Yasuhiko Yamamoto
More from Yasuhiko Yamamoto
(20)
わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう
わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう
わんくま名古屋 #38 (20160521) Xamarin入門
わんくま名古屋 #38 (20160521) Xamarin入門
UWP アプリを JavaScript で作る 3つの方法
UWP アプリを JavaScript で作る 3つの方法
無償のVisual studioで作るクライアント アプリ
無償のVisual studioで作るクライアント アプリ
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) TDD道場 #25
わんくま名古屋 #37 (20151114) TDD道場 #25
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
第8回業開中心会議 「Windows 10 ユニバーサルアプリの概要」
第8回業開中心会議 「Windows 10 ユニバーサルアプリの概要」
わんくま名古屋#34(20150214) TDD道場#22
わんくま名古屋#34(20150214) TDD道場#22
わんくま名古屋#33(20141115) モノ作り半生
わんくま名古屋#33(20141115) モノ作り半生
わんくま名古屋#33(20141115) TDD道場#21
わんくま名古屋#33(20141115) TDD道場#21
開発ツールを買わずに作る♪ ユニバーサルWindowsアプリ!
開発ツールを買わずに作る♪ ユニバーサルWindowsアプリ!
わんくま名古屋 #32 (20140823) TDD道場 #20
わんくま名古屋 #32 (20140823) TDD道場 #20
わんくま名古屋#31(20140524) TDD道場 #19
わんくま名古屋#31(20140524) TDD道場 #19
わんくま名古屋#31(20140524) ユニバーサルWindowsアプリ開発の勧め
わんくま名古屋#31(20140524) ユニバーサルWindowsアプリ開発の勧め
Windows ストア アプリでスレッド間排他処理
Windows ストア アプリでスレッド間排他処理
Windows 8.1 Update 1 の噂をまとめてみた
Windows 8.1 Update 1 の噂をまとめてみた
タダで始めるテストファースト入門 ~ C# Express + NUnit
タダで始めるテストファースト入門 ~ C# Express + NUnit
わんくま名古屋 #29 (2013/11/23) TDD道場 #17
わんくま名古屋 #29 (2013/11/23) TDD道場 #17
わんくま名古屋#28(20130824) c#で、ライフゲームを高速化してみるよ
わんくま名古屋#28(20130824) c#で、ライフゲームを高速化してみるよ
Recently uploaded
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
Recently uploaded
(9)
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
1.
Visual Studio 2015 Pex は ユニットテス トの福音とな るか!? 2015/1/31 BluewaterSoft
@biac 2015 MVP ComCamp 名古屋会場 1
2.
スピーカー紹介 • BluewaterSoft 山本
康彦 a.k.a @biac まだ人工衛星が飛んでない時代に生まれ、HONDAでクルマの設計やってました • Microsoft MVP for Windows Platform Development (2014/10-2015/9) • Windows ランタイム アプリ開発 / 記事や書籍の執筆 やってます 2015/1/31 2015 MVP ComCamp 名古屋会場 2
3.
コミュニティ紹介 2015/1/31 2015 MVP
ComCamp 名古屋会場 3 • わんくま同盟は、コミュニティで活動している者たちの集団です • 縦の繋がりはなく、横の繋がりで成り立っています 東京 / 名古屋 / 大阪 / 福岡 / 横浜 / コミケ… • ノンジャンルです。開発者が多いです • 各自のスタイルで情報提供などをしています • あなたも一緒に情報発信しませんか?
4.
わんくま同盟: 主な活動内容 2015/1/31 2015
MVP ComCamp 名古屋会場 4 • 勉強会 http://wankuma.com/seminar/ 東京・大阪・名古屋・福岡・横浜・マニラ… ほぼ毎週どこかで勉強会 • ブログ http://blogs.wankuma.com/ 主に開発系だけど、ノンジャンル • 掲示板 http://bbs.wankuma.com/ C#とVB.NETの掲示板
5.
わんくま同盟: 名古屋勉強会の活動 2015/1/31 2015
MVP ComCamp 名古屋会場 5 • 2007年12月から名古屋でも勉強会を年4回開催しています。 • 開催内容としては以下の内容となっています。 1. セッション(50分枠) x N名 2. LightningTalks x 3名 3. TDD道場(30分枠) by @biacさん • スピーカー登壇希望者募集しています – ノンジャンルな勉強会ですので、趣味な話でもおk – スピーカーが集まらなかった時は、名古屋勉強会独自でTDDや DDDのワークショップなどを開催しています。
6.
わんくま同盟: 次回の名古屋勉強会は 2015/1/31 2015
MVP ComCamp 名古屋会場 6 • わんくま同盟 名古屋勉強会 #34 http://www.wankuma.com/seminar/20150214nagoya34/ • 日時:2015年 2月14日(土) 12:30~17:00 • 場所:名古屋市港生涯学習センター(築地口) • 参加費:無料 • スピーカー登壇希望者は随時募集中です!
7.
Visual Studio 2015 次期 Visual
Studio の プレビュー版が利用可能です 2015 MVP ComCamp 名古屋会場 7
8.
Visual Studio 2015、 数々の新機能とともに年内リリース 2015/1/31
2015 MVP ComCamp 名古屋会場 8 • 次期Visual Studio 2015 年内、たぶんWindows 10に 合わせて正式リリース • たくさんの新機能 ←@IT「Visual Studio 2015 の新機能をプレビュー版で見 てみよう」に書きました http://www.atmarkit.co.jp/ait/articles/1 412/08/news126.html
9.
Visual Studio 2015、 現在はCTP5を試せる♪ 2015/1/31
2015 MVP ComCamp 名古屋会場 9 • プレビュー版は誰でも! Visual Studioのサイトからダ ウンロード可能 http://www.visualstudio.com/ • まだ「go-live」ではない 開発したアプリをまだ実運用 には使ってはいけない • Windows 10 対応も、まだ
10.
Visual Studio 2015
の新機能の1つ、 Smart Unit Tests = 元 Pex 2015/1/31 2015 MVP ComCamp 名古屋会場 10 • Microsoft Research で開発 http://research.microsoft.com/e n-us/projects/pex/ 2008年ごろから! • ちなみに「Moles」は 進化形が Fakes Framework となって VS 2012 に搭載さ れた⇒CodeZine「Visual Studio 11 betaの単体テスト機能を使ってみよ う!」に書きました
11.
Visual Studio 2015 Program EXploration for .NET Smart
Unit Tests !? ざっくり言うと、どんなもの? 2015 MVP ComCamp 名古屋会場 11
12.
Pexの使い方: STEP1 コードを書きます… 2015/1/31 2015
MVP ComCamp 名古屋会場 12
13.
Pexの使い方: STEP2 メニューを選びます… 2015/1/31 2015
MVP ComCamp 名古屋会場 13
14.
Pexの使い方: STEP3 ユニット テストが走ります。以上! 2015/1/31
2015 MVP ComCamp 名古屋会場 14 テストケース テスト結果
15.
え…? なんだって~っ!? 2015/1/31 2015 MVP
ComCamp 名古屋会場 15
16.
DEMO PexSample01.sln テスト自動実行~テスト保存まで 2015 MVP ComCamp
名古屋会場 16
17.
結果の見方: 想定したテストケースが走ったか? 2015/1/31 2015 MVP
ComCamp 名古屋会場 17 テストケース テスト結果 • FizzBuzzの外部設計 • 自動生成されたテストケー スは、外部設計と一致して いるか? nは3の倍数? nは5の倍数? 出力 TRUE TRUE "Fizz Buzz" TRUE FALSE "Fizz" FALSE TRUE "Buzz" FALSE FALSE 数字
18.
書いたコードがおかしいと… 2015/1/31 2015 MVP
ComCamp 名古屋会場 18
19.
書いたコードがおかしいと、 (1/2) テストケースが想定と異なる 2015/1/31 2015
MVP ComCamp 名古屋会場 19 テストケース テスト結果 • FizzBuzzの外部設計 • ← "Fizz Buzz" になるケー スが無い!! nは3の倍数? nは5の倍数? 出力 TRUE TRUE "Fizz Buzz" TRUE FALSE "Fizz" FALSE TRUE "Buzz" FALSE FALSE 数字
20.
書いたコードがおかしいと、 (2/2) カバレッジが不足する 2015/1/31 2015
MVP ComCamp 名古屋会場 20 • コードをレビューすると 実行されないパスが見つか る! VS 2015 CTP 5 では、カバレッジ ツールとは 連動していないらしい (将来に期待)
21.
Pex - ここまでのポイント •
後付けのユニット テストを自動生成してくれる 便利!! • 結果の評価には、 ユニット テストを作れるスキルが必要! 2015/1/31 2015 MVP ComCamp 名古屋会場 21
22.
Pex 自動生成され たユニット テストを活用 する 生成されたテストを、保存 して再利用。改造も可能。 2015 MVP ComCamp
名古屋会場 22
23.
自動生成されたユニットテストを 保存する 2015/1/31 2015 MVP
ComCamp 名古屋会場 23 ➊ 保存したいテストを選択↓ ➋ [Save] ボタン→ • ➊ 保存したいテストケース を選択 全部なら Ctrl+A • ➋ [Save] ボタンをクリッ ク または、右クリックから [Save] メニューを選択
24.
保存されたユニットテスト: テスト プロジェクトが生成される 2015/1/31 2015
MVP ComCamp 名古屋会場 24 • ユニット テストのプロジェ クトが自動生成される 参照設定もされている • テストケースは .g.cs ファ イルに記述されている テストのプロジェクト テストケース
25.
保存されたユニットテスト: テスト エクスプローラーで実行可 2015/1/31 2015
MVP ComCamp 名古屋会場 25 • 通常のユニットテストと同様に、テスト エク スプローラーからテストを実行できる • 回帰テストとして使える! • 注意: 保存したテストを書き換えてもよい が、[Smart Unit Tests] を再実行すると上書 きされてしまう
26.
Pex - ここまでのポイント •
自動生成されたユニット テストは保存しておける • 保存したテストは、通常のユニット テストと同様 に実行可能 = 回帰テスト • リファクタリングが捗る! Refactoring = 外的な振る舞いは同じままでコードを改善する ※ 外的な振る舞いの不変を保証するにはユニット テスト! 2015/1/31 2015 MVP ComCamp 名古屋会場 26
27.
Pex 例外の扱い 例外が出るのが正常、とい うケースの扱い方 2015 MVP ComCamp
名古屋会場 27
28.
コードから明示的に出す例外 2015/1/31 2015 MVP
ComCamp 名古屋会場 28 • 明示的に例外を throw して いる場合 - 単純に throw - catch して、別の例外を 作って throw
29.
コードから明示的に出す例外 ⇒ 正常と判定される 2015/1/31 2015
MVP ComCamp 名古屋会場 29 • 明示的に例外を throw して いる場合は、 テスト結果はグリーンに!
30.
コードでハンドリングしていない例外 2015/1/31 2015 MVP
ComCamp 名古屋会場 30 • catch していない例外 • catch していても、 単純にリスローしている場 合
31.
コードでハンドリングしていない例外 ⇒ 異常と判定される 2015/1/31 2015
MVP ComCamp 名古屋会場 31 • ハンドリングしていな い例外が出た場合(リス ローを含む)は、 テスト結果はレッドに!
32.
レッド判定をグリーン判定に変える 2015/1/31 2015 MVP
ComCamp 名古屋会場 32 • 例外が出るのが正常、 というときには、その ケースをグリーンに変 えることができる 右クリックして [Allow]
33.
[Allow]すると起きること ⇒テストコードに属性が付く 2015/1/31 2015 MVP
ComCamp 名古屋会場 33 • [Allow] すると、その 例外は許容するという 属性が、テストコード に追加される ※ テストを保存してい ないときは、自動的に テストプロジェクトが 生成される 通常の属性: レッドになる [Allow]した場合の属性: グリーンになる
34.
Pex - ここまでのポイント •
コードから明示的に出している例外 ⇒ グリーン • コードでハンドリングしてない例外 ⇒ レッド • レッドのテストケースは [Allow] することで、グ リーンとみなすように指示できる 2015/1/31 2015 MVP ComCamp 名古屋会場 34
35.
Pex 苦手なもの Pexで上手く扱えないコー ドの例 2015 MVP ComCamp
名古屋会場 35
36.
返値のないメソッド 2015/1/31 2015 MVP
ComCamp 名古屋会場 36 • 分岐を全部通すテスト を生成してはくれる ⇒ でも、そのテストが 正しいかどうか 判定できない • 参照渡しの引数でテス ト可能な場合もある テストファーストなら 複数のメソッドを 組み合わせてテストを 作る場面
37.
返値のないメソッド ⇒ テストは生成/実行される 2015/1/31 2015
MVP ComCamp 名古屋会場 37 • このテスト結果でよい のか、判断できない • 下は、参照渡しの引数 で処理結果が判断でき る例 入力 出力入力 出力がないので判断不能
38.
メンバー変数に依存するメソッド 2015/1/31 2015 MVP
ComCamp 名古屋会場 38 • メンバー変数(=オブ ジェクトの状態)に依存 するメソッドは、状態 を変化させるために複 数回(または別のメソッ ド)の呼び出しが必要 この例だと、2回呼び出 してみないと判定でき ない
39.
メンバー変数に依存するメソッド ⇒ 適切なテストケースにならない 2015/1/31 2015
MVP ComCamp 名古屋会場 39 • メソッドを複数回呼び 出すようなテストケー スは自動生成されない この例だと、0を与えた だけで終わっているが、 その後に別の値を与え て先ほどの0が返ってく ることを評価しないと いけない
40.
yield return 2015/1/31 2015
MVP ComCamp 名古屋会場 40 • IEnumerable<T>を そのまま評価しようと する ⇒ テストにならない ※ IEnumerable<T> から値を取り出すメ ソッドならテスト可能 (結果画面は省略)
41.
非同期メソッド 2015/1/31 2015 MVP
ComCamp 名古屋会場 41 • Task<T>をそのまま 評価しようとする ⇒ テストにならない ※ Task<T>から値を 取り出すメソッド(=ブ ロックする)ならテス ト可能 (結果画面は省略)
42.
外部に依存するメソッド 2015/1/31 2015 MVP
ComCamp 名古屋会場 42 • テストは生成されるが、 外部の応答が変わって も対処できない ⇒ 回帰テストには ならない (結果画面は省略)
43.
非線形なメソッド (分岐によらない非線形性) 2015/1/31 2015 MVP
ComCamp 名古屋会場 43 • 例えば2次関数なら、3 点を計測しないといけ ないが、そこまで賢く はない (1点しかテス トケースを生成してく れない) (結果画面は省略)
44.
Windows ランタイム アプリ 2015/1/31
2015 MVP ComCamp 名古屋会場 44 • Windows ランタイム アプリ (ストア アプ リ) では、メニューに いない! orz ※ PCL/WinMD は OK♪ • C/C++もダメ まぁ、"Program EXploration for .NET" で すし この辺に いたはず!
45.
Pex - ここまでのポイント •
苦手なものがけっこうある • 状態に依存するメソッドなど、テスタビリティの悪 いメソッドは当然ダメ! • yield return や async/await や非線形や Windows ランタイム アプリなどは、将来に期待 2015/1/31 2015 MVP ComCamp 名古屋会場 45
46.
Pex 試そう! Visual Studio 2015の環境 がなくたって! 2015
MVP ComCamp 名古屋会場 46
47.
Pex for fun http://pex4fun.com/ これはVS2015の Smart
Unit Tests とは異なるところ があります 2015/1/31 2015 MVP ComCamp 名古屋会場 47
48.
Pex for fun ゲーム形式でPexを楽しむ 2015/1/31
2015 MVP ComCamp 名古屋会場 48 ❹ 仕様を満たすようにコードを修正して、 またPexを走らせる ➊ Pexを走らせる ❸ この問題の仕様が、ここに表示される (このあたりがホンモノと違う) ➋ Pexの出力
49.
Pex まとめ 2015 MVP ComCamp
名古屋会場 49
50.
Pex すごい❢ • VS2015
Ultimate に搭載される Pex (正式名 「Smart Unit Tests」) は、後付けのユニットテス トを自動生成 • 回帰テスト、リファクタリングが捗る! • テスタビリティの高いコードを書くようになる (…かも)
51.
Smart Unit Tests
(Pex)のドキュメント • MSDN: 「コードのためにスマート単体テストを生成する」 https://msdn.microsoft.com/library/dn823749.aspx • MSDN マガジン 2009年12月号: 「Pex によるレガシ コード の自動単体テスト」 https://msdn.microsoft.com/ja-jp/magazine/ee819140.aspx かなり古く、現状と異なる部分も多いが、考え方の参考に。 なお、スタブ(PexMock)は廃止されました。 • MSDN blogs (英語): 「Introducing Smart Unit Tests」 http://blogs.msdn.com/b/visualstudioalm/archive/2014/11/19/introducing-smart-unit-tests.aspx 「Smart Unit Tests - a mental model」 http://blogs.msdn.com/b/visualstudioalm/archive/2014/12/11/smart-unit-tests-a-mental-model.aspx
52.
Visual Studio 2015 Pex は ユニットテス トの福音とな るか!? 2015/1/31 BluewaterSoft
@biac 2015 MVP ComCamp 名古屋会場 52ご清聴ありがとうございました
Download now