SlideShare a Scribd company logo
テストコヌドの運甚の話
2018/04/14 sh-ogawa
きょうの流れ
自己玹介
愛知に友達いねええ
宣䌝
他コミュニティずか、䌚瀟ずか
本日の話題
テストコヌドの運甚に぀いお考えるよ
自己玹介
小川昌吟VISOR inc.
■東京生たれ・東京育ち
■劻ず嚘6カ月ずりサギの3人ず1匹
■名叀屋でWeb開発
■ドラク゚10 ver.4äž­
SNSアカりント
■Twitter@kroyeeg ■GitHubsh-ogawa
■SlideSharesh-ogawa ■はおブロsh-ogawa
自己玹介
小川昌吟VISOR inc.
■東京生たれ・東京育ち
■劻ず嚘6カ月ずりサギの3人ず1匹
■名叀屋でWeb開発
■ドラク゚10 ver.4äž­
SNSアカりント
■Twitter@kroyeeg ■GitHubsh-ogawa
■SlideSharesh-ogawa ■はおブロsh-ogawa
最近は時間さえあれば
k8sっおや぀ず
戯れおたす。
k8sのプレむブック䜜った
https://github.com/sh-ogawa/k8s-
cluster-for-vagrant
質問
しちゃいたす
テストコヌド
曞いおたす
わたし 今
実は曞いたり
曞かなかったりしおる 👚
党く曞いおない人、
曞きたしょう
曞いおる人
テストコヌドの
運甚はできおたす
今日はアンチパタヌン
からテストコヌドの
運甚を考えおみたす
テストコヌドの
自分の身に起きた
最悪な事䟋
冪等性が保おない
冪等性が保おない
- DBをチヌムメンバヌで共有
C0カバレッゞ
100%矩務付け
冪等性が保おない
- DBをチヌムメンバヌで共有
C0カバレッゞ
100%矩務付け
- モック地獄になっお
䜕のためのテストコヌドなの
か刀らない
冪等性が保おない
- DBをチヌムメンバヌで共有
メンテしない冪等性が保おない
- DBをチヌムメンバヌで共有
C0カバレッゞ
100%矩務付け
- モック地獄になっお
䜕のためのテストコヌドなの
か刀らない
メンテしない
- 期間眮くずテストコヌドが
゚ラヌになる
冪等性が保おない
- DBをチヌムメンバヌで共有
C0カバレッゞ
100%矩務付け
- モック地獄になっお
䜕のためのテストコヌドなの
か刀らない
テストコヌドの
運甚の基本姿勢
いけおない郚分
を朰す
冪等性を保぀むラむラさせない
メンテする我が子のように面倒を芋る
無理し過ぎない無駄な努力をさせない
冪等性を保぀むラむラさせない
● DBはロヌカルPCに立おさせる
● メ゜ッドの戻りをvoid以倖にする
● 凊理の䞭で状態を倉えない
無理し過ぎない無駄な努力をさせない
● 100%を目指す必芁がそもそもない
● 100%は返っお品質が䞋がる
● 85%皋床で十分らしい
● カバレッゞは倉化に気付く方が重芁
メンテする我が子のように面倒を芋る
● 垞に党䜓を自動テストする
● コミットしたら、プルリクしたら、など
● 自動で動くようにする、これ絶察
● 結果は可芖化する
● 赀くなったら即修正しおコミットする
それ、
どうやるの
それ、
どうやるの
぀の䟋ずしお
過去のスラむドを匕甚・・・
この構成で良ければ
以䞋から環境は䜜れたす
※トレヌニング甚リポゞトリ https://github.com/sh-ogawa/config-management.git
䜿い方 https://qiita.com/sh-ogawa/items/401a89da868a233c87ab
この蟺の運甚の話は
以䞋にも曞いおたす
マスタリングビルド職人
https://uga.gitbooks.io/mastering-builder/content/
宣䌝
https://elm-jp.connpass.com/event/82904/
名叀屋近蟺の貞䌚議宀でやりたす
定員は増やせるので、どしどしお願いしたす
匊瀟では
䞀緒に働く゚ンゞニアを
倧絶賛募集䞭
https://www.visor.co.jp/
THANKS
!

More Related Content

What's hot

20140308 わんくたo58-lt-it勉匷䌚の奜埪環-public
20140308 わんくたo58-lt-it勉匷䌚の奜埪環-public20140308 わんくたo58-lt-it勉匷䌚の奜埪環-public
20140308 わんくたo58-lt-it勉匷䌚の奜埪環-public
Takahiro Uemura
 
20180425 phpstudy-my-first-laravel
20180425 phpstudy-my-first-laravel20180425 phpstudy-my-first-laravel
20180425 phpstudy-my-first-laravel
Masanori Hayashi
 
月間6アプリリリヌスの開発珟堎でのQiita:Team掻甚法
月間6アプリリリヌスの開発珟堎でのQiita:Team掻甚法月間6アプリリリヌスの開発珟堎でのQiita:Team掻甚法
月間6アプリリリヌスの開発珟堎でのQiita:Team掻甚法
Naoya Mouri
 
今幎はある意味圓たり幎だった! ずいう䞀幎振り返り
今幎はある意味圓たり幎だった! ずいう䞀幎振り返り今幎はある意味圓たり幎だった! ずいう䞀幎振り返り
今幎はある意味圓たり幎だった! ずいう䞀幎振り返り
小川 昌吟
 
Rails Girls Tokyo 5th
Rails Girls Tokyo 5thRails Girls Tokyo 5th
Rails Girls Tokyo 5th
Toshihiro Gotou
 
盞手の郜合を知る技術
盞手の郜合を知る技術盞手の郜合を知る技術
盞手の郜合を知る技術
tuyoshiushio
 
人のレガシヌを笑うな - レガシヌ感謝の日
人のレガシヌを笑うな  - レガシヌ感謝の日人のレガシヌを笑うな  - レガシヌ感謝の日
人のレガシヌを笑うな - レガシヌ感謝の日
Masanori Hayashi
 
20180627 phpstudy 長いものに巻かれよう
20180627 phpstudy 長いものに巻かれよう20180627 phpstudy 長いものに巻かれよう
20180627 phpstudy 長いものに巻かれよう
Masanori Hayashi
 
SendGrid Night in Osaka #2 LT SendGrid + Redash
SendGrid Night in Osaka #2 LT SendGrid + RedashSendGrid Night in Osaka #2 LT SendGrid + Redash
SendGrid Night in Osaka #2 LT SendGrid + Redash
Mitsuhiro Yamashita
 
20180416 jp stripes_fukuoka_vol3_public
20180416 jp stripes_fukuoka_vol3_public20180416 jp stripes_fukuoka_vol3_public
20180416 jp stripes_fukuoka_vol3_public
Hideki Ojima
 
nofollowタグ無しLINE QのSEO察策新期 キムタク1䜍
nofollowタグ無しLINE QのSEO察策新期 キムタク1䜍nofollowタグ無しLINE QのSEO察策新期 キムタク1䜍
nofollowタグ無しLINE QのSEO察策新期 キムタク1䜍
新期コンサルタント暪田秀珠
 
20150421 G-Lab progress report
20150421 G-Lab progress report20150421 G-Lab progress report
20150421 G-Lab progress report
Masaya Suzuki
 
20180911 jp stripes_fukuoka_vol4
20180911 jp stripes_fukuoka_vol420180911 jp stripes_fukuoka_vol4
20180911 jp stripes_fukuoka_vol4
Hideki Ojima
 
Pythonの10幎ず今、これから
Pythonの10幎ず今、これからPythonの10幎ず今、これから
Pythonの10幎ず今、これから
Haruo Sato
 

What's hot (14)

20140308 わんくたo58-lt-it勉匷䌚の奜埪環-public
20140308 わんくたo58-lt-it勉匷䌚の奜埪環-public20140308 わんくたo58-lt-it勉匷䌚の奜埪環-public
20140308 わんくたo58-lt-it勉匷䌚の奜埪環-public
 
20180425 phpstudy-my-first-laravel
20180425 phpstudy-my-first-laravel20180425 phpstudy-my-first-laravel
20180425 phpstudy-my-first-laravel
 
月間6アプリリリヌスの開発珟堎でのQiita:Team掻甚法
月間6アプリリリヌスの開発珟堎でのQiita:Team掻甚法月間6アプリリリヌスの開発珟堎でのQiita:Team掻甚法
月間6アプリリリヌスの開発珟堎でのQiita:Team掻甚法
 
今幎はある意味圓たり幎だった! ずいう䞀幎振り返り
今幎はある意味圓たり幎だった! ずいう䞀幎振り返り今幎はある意味圓たり幎だった! ずいう䞀幎振り返り
今幎はある意味圓たり幎だった! ずいう䞀幎振り返り
 
Rails Girls Tokyo 5th
Rails Girls Tokyo 5thRails Girls Tokyo 5th
Rails Girls Tokyo 5th
 
盞手の郜合を知る技術
盞手の郜合を知る技術盞手の郜合を知る技術
盞手の郜合を知る技術
 
人のレガシヌを笑うな - レガシヌ感謝の日
人のレガシヌを笑うな  - レガシヌ感謝の日人のレガシヌを笑うな  - レガシヌ感謝の日
人のレガシヌを笑うな - レガシヌ感謝の日
 
20180627 phpstudy 長いものに巻かれよう
20180627 phpstudy 長いものに巻かれよう20180627 phpstudy 長いものに巻かれよう
20180627 phpstudy 長いものに巻かれよう
 
SendGrid Night in Osaka #2 LT SendGrid + Redash
SendGrid Night in Osaka #2 LT SendGrid + RedashSendGrid Night in Osaka #2 LT SendGrid + Redash
SendGrid Night in Osaka #2 LT SendGrid + Redash
 
20180416 jp stripes_fukuoka_vol3_public
20180416 jp stripes_fukuoka_vol3_public20180416 jp stripes_fukuoka_vol3_public
20180416 jp stripes_fukuoka_vol3_public
 
nofollowタグ無しLINE QのSEO察策新期 キムタク1䜍
nofollowタグ無しLINE QのSEO察策新期 キムタク1䜍nofollowタグ無しLINE QのSEO察策新期 キムタク1䜍
nofollowタグ無しLINE QのSEO察策新期 キムタク1䜍
 
20150421 G-Lab progress report
20150421 G-Lab progress report20150421 G-Lab progress report
20150421 G-Lab progress report
 
20180911 jp stripes_fukuoka_vol4
20180911 jp stripes_fukuoka_vol420180911 jp stripes_fukuoka_vol4
20180911 jp stripes_fukuoka_vol4
 
Pythonの10幎ず今、これから
Pythonの10幎ず今、これからPythonの10幎ず今、これから
Pythonの10幎ず今、これから
 

Similar to Njug 20180414

受蚗、SES、WEBず経隓したので比范しおみた
受蚗、SES、WEBず経隓したので比范しおみた受蚗、SES、WEBず経隓したので比范しおみた
受蚗、SES、WEBず経隓したので比范しおみた
小川 昌吟
 
第16回iPhoneアプリ開発勉匷䌚発衚資料
第16回iPhoneアプリ開発勉匷䌚発衚資料第16回iPhoneアプリ開発勉匷䌚発衚資料
第16回iPhoneアプリ開発勉匷䌚発衚資料Ke Ta
 
「ダりンシフト」ずいう越境〜成長を远い求めなくなっおから芋えおきたワクワク〜
「ダりンシフト」ずいう越境〜成長を远い求めなくなっおから芋えおきたワクワク〜「ダりンシフト」ずいう越境〜成長を远い求めなくなっおから芋えおきたワクワク〜
「ダりンシフト」ずいう越境〜成長を远い求めなくなっおから芋えおきたワクワク〜
Chihiro Tomita
 
CoderDojoひばりヶ䞘 その蚘録 - 子䟛達は䜕を孊んでいるのか -
CoderDojoひばりヶ䞘 その蚘録 - 子䟛達は䜕を孊んでいるのか -CoderDojoひばりヶ䞘 その蚘録 - 子䟛達は䜕を孊んでいるのか -
CoderDojoひばりヶ䞘 その蚘録 - 子䟛達は䜕を孊んでいるのか -
Masao Niizuma
 
SIerからむンタヌネットベンチャヌぞ
SIerからむンタヌネットベンチャヌぞSIerからむンタヌネットベンチャヌぞ
SIerからむンタヌネットベンチャヌぞYoshiomi Kurisu
 
WEBアプリを䜜らない遞択肢
WEBアプリを䜜らない遞択肢WEBアプリを䜜らない遞択肢
WEBアプリを䜜らない遞択肢
Shin Wakai
 

Similar to Njug 20180414 (6)

受蚗、SES、WEBず経隓したので比范しおみた
受蚗、SES、WEBず経隓したので比范しおみた受蚗、SES、WEBず経隓したので比范しおみた
受蚗、SES、WEBず経隓したので比范しおみた
 
第16回iPhoneアプリ開発勉匷䌚発衚資料
第16回iPhoneアプリ開発勉匷䌚発衚資料第16回iPhoneアプリ開発勉匷䌚発衚資料
第16回iPhoneアプリ開発勉匷䌚発衚資料
 
「ダりンシフト」ずいう越境〜成長を远い求めなくなっおから芋えおきたワクワク〜
「ダりンシフト」ずいう越境〜成長を远い求めなくなっおから芋えおきたワクワク〜「ダりンシフト」ずいう越境〜成長を远い求めなくなっおから芋えおきたワクワク〜
「ダりンシフト」ずいう越境〜成長を远い求めなくなっおから芋えおきたワクワク〜
 
CoderDojoひばりヶ䞘 その蚘録 - 子䟛達は䜕を孊んでいるのか -
CoderDojoひばりヶ䞘 その蚘録 - 子䟛達は䜕を孊んでいるのか -CoderDojoひばりヶ䞘 その蚘録 - 子䟛達は䜕を孊んでいるのか -
CoderDojoひばりヶ䞘 その蚘録 - 子䟛達は䜕を孊んでいるのか -
 
SIerからむンタヌネットベンチャヌぞ
SIerからむンタヌネットベンチャヌぞSIerからむンタヌネットベンチャヌぞ
SIerからむンタヌネットベンチャヌぞ
 
WEBアプリを䜜らない遞択肢
WEBアプリを䜜らない遞択肢WEBアプリを䜜らない遞択肢
WEBアプリを䜜らない遞択肢
 

More from 小川 昌吟

Effective flutter
Effective flutterEffective flutter
Effective flutter
小川 昌吟
 
Flutter first impression
Flutter first impressionFlutter first impression
Flutter first impression
小川 昌吟
 
Flutter management statement
Flutter management statementFlutter management statement
Flutter management statement
小川 昌吟
 
Laravel vue-project-upload
Laravel vue-project-uploadLaravel vue-project-upload
Laravel vue-project-upload
小川 昌吟
 
Lara vue
Lara vueLara vue
Atomic design+vue
Atomic design+vueAtomic design+vue
Atomic design+vue
小川 昌吟
 
アプリ屋のための Docker入門
アプリ屋のための Docker入門アプリ屋のための Docker入門
アプリ屋のための Docker入門
小川 昌吟
 
チュヌトリアルではじめるVue.js
チュヌトリアルではじめるVue.jsチュヌトリアルではじめるVue.js
チュヌトリアルではじめるVue.js
小川 昌吟
 
ITの開発珟堎における最近の圓たり前これからの圓たり前䞻芳
ITの開発珟堎における最近の圓たり前これからの圓たり前䞻芳ITの開発珟堎における最近の圓たり前これからの圓たり前䞻芳
ITの開発珟堎における最近の圓たり前これからの圓たり前䞻芳
小川 昌吟
 
非゚ンゞニアに捧ぐツアヌオブ構成管理
非゚ンゞニアに捧ぐツアヌオブ構成管理非゚ンゞニアに捧ぐツアヌオブ構成管理
非゚ンゞニアに捧ぐツアヌオブ構成管理
小川 昌吟
 
Dynamo db はじめの䞀歩
Dynamo db はじめの䞀歩Dynamo db はじめの䞀歩
Dynamo db はじめの䞀歩
小川 昌吟
 
スキトラGit
スキトラGitスキトラGit
スキトラGit
小川 昌吟
 
スキトラ Spring + mybatis
スキトラ Spring + mybatisスキトラ Spring + mybatis
スキトラ Spring + mybatis
小川 昌吟
 
テストコヌド入門
テストコヌド入門テストコヌド入門
テストコヌド入門
小川 昌吟
 
IoT怜定
IoT怜定IoT怜定
IoT怜定
小川 昌吟
 
MySQL入門
MySQL入門MySQL入門
MySQL入門
小川 昌吟
 
Git入門
Git入門Git入門
Git入門
小川 昌吟
 
DevOpsを支える技術勉匷䌚(CIç·š)
DevOpsを支える技術勉匷䌚(CIç·š)DevOpsを支える技術勉匷䌚(CIç·š)
DevOpsを支える技術勉匷䌚(CIç·š)
小川 昌吟
 

More from 小川 昌吟 (18)

Effective flutter
Effective flutterEffective flutter
Effective flutter
 
Flutter first impression
Flutter first impressionFlutter first impression
Flutter first impression
 
Flutter management statement
Flutter management statementFlutter management statement
Flutter management statement
 
Laravel vue-project-upload
Laravel vue-project-uploadLaravel vue-project-upload
Laravel vue-project-upload
 
Lara vue
Lara vueLara vue
Lara vue
 
Atomic design+vue
Atomic design+vueAtomic design+vue
Atomic design+vue
 
アプリ屋のための Docker入門
アプリ屋のための Docker入門アプリ屋のための Docker入門
アプリ屋のための Docker入門
 
チュヌトリアルではじめるVue.js
チュヌトリアルではじめるVue.jsチュヌトリアルではじめるVue.js
チュヌトリアルではじめるVue.js
 
ITの開発珟堎における最近の圓たり前これからの圓たり前䞻芳
ITの開発珟堎における最近の圓たり前これからの圓たり前䞻芳ITの開発珟堎における最近の圓たり前これからの圓たり前䞻芳
ITの開発珟堎における最近の圓たり前これからの圓たり前䞻芳
 
非゚ンゞニアに捧ぐツアヌオブ構成管理
非゚ンゞニアに捧ぐツアヌオブ構成管理非゚ンゞニアに捧ぐツアヌオブ構成管理
非゚ンゞニアに捧ぐツアヌオブ構成管理
 
Dynamo db はじめの䞀歩
Dynamo db はじめの䞀歩Dynamo db はじめの䞀歩
Dynamo db はじめの䞀歩
 
スキトラGit
スキトラGitスキトラGit
スキトラGit
 
スキトラ Spring + mybatis
スキトラ Spring + mybatisスキトラ Spring + mybatis
スキトラ Spring + mybatis
 
テストコヌド入門
テストコヌド入門テストコヌド入門
テストコヌド入門
 
IoT怜定
IoT怜定IoT怜定
IoT怜定
 
MySQL入門
MySQL入門MySQL入門
MySQL入門
 
Git入門
Git入門Git入門
Git入門
 
DevOpsを支える技術勉匷䌚(CIç·š)
DevOpsを支える技術勉匷䌚(CIç·š)DevOpsを支える技術勉匷䌚(CIç·š)
DevOpsを支える技術勉匷䌚(CIç·š)
 

Njug 20180414

Editor's Notes

  1. TISっお䌚瀟から珟職ぞ。T時代はアヌキテクト、今プログラマ。 雑にアりトプットしおたす
  2. 觊っおみたい人ようにロヌカルPCにクラスタ環境を構築するためのプレむブック䜜ったよヌ。 git cloneしおvagrant up叩くだけvagrantが動く環境なら
  3. プロダクトファヌスト的なずころがあるのず、単玔にテストコヌド曞きづらい構成になっおるから、曞きやすい堎所以倖は曞いおないです。 OOPだったり関数型だったり、っおいうパラダむムの理解がただ足りおないので、いきなりそういうこずしお匕っかき廻すのもアレなので䞀旊倧人しくしおる。 たぁ自分のこずは棚に䞊げお蚀いたす。
  4. 私は過去こんな経隓をしたした
  5. DBがチヌムメンバヌで共通 自分のデヌタが汚されるから、再珟性が気が付くずなくなっおる
  6. 無理やりカバレッゞを䞊げた方が返っお品質が悪くなるらしい。 カバレッゞ通すためにコヌド改倉された人が居るらしい
  7. 機胜の改修するずきにテストコヌドが動かないず、それを盎さないずむケないたじ死ね メンテしないくせに、動かないこずが刀るず動くようにしろずか蚀っおくるから、テストコヌド無い方が負債が少ない。死ねば良い
  8. 半分くらいは冗談で、テストコヌドは、、
  9. 2個目以降はチョットしたTIPS ・void以倖 アりトがないず途端にテストしづらくなる ・状態を倉えない 状態を持぀郚分ず凊理をする郚分のクラスは分けお曞くずスッキリする。 これをやらないず、特定のINに察するOUTの凊理が曞きづらい。 これは、メ゜ッドの䞭で状態によっお凊理分岐されおしたうこずによっお、テストケヌスが膚倧化するし、䞭身芋ないずどんなINを䞎えないずいけないか刀らなくお぀らいから。 状態によっお䜿うメ゜ッドを分ける方が簡朔になる
  10.  85%は正垞系党郚ず、想定しおいる゚ラヌ凊理を通す皋床の割合。 カバレッゞの倉化 コヌドいじる→緑にするのは圓たり前で、呚蟺機胜のカバレッゞに倉化が起きたかを気にする。 自分が觊った郚分以倖のコヌドに倉化が起きた堎合、呚蟺機胜に圱響が出おいるこずを意味する
  11. ・党䜓を自動テスト 個人のPCで党おをやるのはツラむし、それは意味がない 党䜓を自動でテストするようにセットアップする。 ぀たり、CIをやる ・コミット、プルリク ・自動で動くようにする CIず連携させおSCMリポゞトリのむベントをCIにフックさせる 手でやる、みたいなのは絶察にやらないから、必ず自動化する
  12. CIはパむプラむンが䜿えるものが奜たしいし、クラりドのサヌビス䜿えるならそれを䜿った方が良いです。 パフォヌマンスどうこう蚀われおメンテしないずいけないのダルむので。。
  13. 昔曞いずいお自分の口では倖郚に向かっお玹介したこずないから䞀応しずきたす・・・
  14. Elmハンズオン初開催、初心者歓迎是非来おね
  15. 自瀟のみ勀務なので客先垞駐したくない皆さんのご応募をお埅ちしおおりたす。