Submit Search
Upload
組織にテストを書く文化を根付かせる戦略と戦術
Report
Share
Takuto Wada
Chief Executive Programmer at Towersquest
Follow
•
246 likes
•
76,440 views
1
of
33
組織にテストを書く文化を根付かせる戦略と戦術
•
246 likes
•
76,440 views
Report
Share
Download Now
Download to read offline
Technology
組織にテストを書く文化を根付かせる戦略と戦術 Feb 16, 2016 @ 日本OSS推進フォーラム
Read more
Takuto Wada
Chief Executive Programmer at Towersquest
Follow
Recommended
Test Yourself - テストを書くと何がどう変わるか by
Test Yourself - テストを書くと何がどう変わるか
Takuto Wada
38.3K views
•
49 slides
フロー効率性とリソース効率性について #xpjug by
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
106.3K views
•
62 slides
テスト文字列に「うんこ」と入れるな by
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
178.6K views
•
16 slides
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版) by
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
Yasuharu Nishi
20.2K views
•
17 slides
世界一わかりやすいClean Architecture by
世界一わかりやすいClean Architecture
Atsushi Nakamura
47.2K views
•
77 slides
TDD のこころ by
TDD のこころ
Takuto Wada
12.8K views
•
52 slides
More Related Content
What's hot
私にとってのテスト by
私にとってのテスト
Takuto Wada
16.8K views
•
62 slides
ソフトウェアテスト入門 by
ソフトウェアテスト入門
Preferred Networks
15.5K views
•
39 slides
Pull Request & TDD 入門 by
Pull Request & TDD 入門
ESM SEC
3.2K views
•
80 slides
ユーザーストーリー駆動開発で行こう。 by
ユーザーストーリー駆動開発で行こう。
toshihiro ichitani
121.2K views
•
66 slides
シリコンバレーの「何が」凄いのか by
シリコンバレーの「何が」凄いのか
Atsushi Nakada
183.9K views
•
77 slides
探索的テスト入門 by
探索的テスト入門
H Iseri
31.4K views
•
40 slides
What's hot
(20)
私にとってのテスト by Takuto Wada
私にとってのテスト
Takuto Wada
•
16.8K views
ソフトウェアテスト入門 by Preferred Networks
ソフトウェアテスト入門
Preferred Networks
•
15.5K views
Pull Request & TDD 入門 by ESM SEC
Pull Request & TDD 入門
ESM SEC
•
3.2K views
ユーザーストーリー駆動開発で行こう。 by toshihiro ichitani
ユーザーストーリー駆動開発で行こう。
toshihiro ichitani
•
121.2K views
シリコンバレーの「何が」凄いのか by Atsushi Nakada
シリコンバレーの「何が」凄いのか
Atsushi Nakada
•
183.9K views
探索的テスト入門 by H Iseri
探索的テスト入門
H Iseri
•
31.4K views
それはYAGNIか? それとも思考停止か? by Yoshitaka Kawashima
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
•
29.3K views
modern software qa - draft 1 by Yasuharu Nishi
modern software qa - draft 1
Yasuharu Nishi
•
3.7K views
事業成長にコミットするエンジニア組織への道のり by Recruit Lifestyle Co., Ltd.
事業成長にコミットするエンジニア組織への道のり
Recruit Lifestyle Co., Ltd.
•
28.3K views
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」 by Takuto Wada
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
•
148.8K views
インセプションデッキ:やらないことリストとトレードオフスライダーをやってる話 by Nobuhiro Yoshitake
インセプションデッキ:やらないことリストとトレードオフスライダーをやってる話
Nobuhiro Yoshitake
•
6.6K views
Python製BDDツールで自動化してみた by KeijiUehata1
Python製BDDツールで自動化してみた
KeijiUehata1
•
13.7K views
イミュータブルデータモデル(入門編) by Yoshitaka Kawashima
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
•
185.9K views
やはりお前らのMVCは間違っている by Koichi Tanaka
やはりお前らのMVCは間違っている
Koichi Tanaka
•
145.7K views
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive by Tokoroten Nakayama
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
Tokoroten Nakayama
•
122.3K views
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版) by Takuto Wada
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
•
70.7K views
DockerコンテナでGitを使う by Kazuhiro Suga
DockerコンテナでGitを使う
Kazuhiro Suga
•
18.8K views
「速」を落とさないコードレビュー by Takafumi ONAKA
「速」を落とさないコードレビュー
Takafumi ONAKA
•
55.5K views
Python 3.9からの新定番zoneinfoを使いこなそう by Ryuji Tsutsui
Python 3.9からの新定番zoneinfoを使いこなそう
Ryuji Tsutsui
•
6.9K views
テストを分類してみよう! by Kenji Okumura
テストを分類してみよう!
Kenji Okumura
•
29K views
Viewers also liked
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015 by
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
Yahoo!デベロッパーネットワーク
34.4K views
•
56 slides
OSS活動の活発さと評価の関係について by
OSS活動の活発さと評価の関係について
Takuto Wada
14.7K views
•
64 slides
SQiP2016 SIG8 by
SQiP2016 SIG8
Masanori Kaneko
8.4K views
•
33 slides
テストを書く文化を育てる戦略と戦術 by
テストを書く文化を育てる戦略と戦術
Takuto Wada
49.4K views
•
24 slides
愛せないコードを書くには人生はあまりにも短い by
愛せないコードを書くには人生はあまりにも短い
Takuto Wada
26.6K views
•
59 slides
コミュニティ活動と企業の相互作用 ~コミュニティへの貢献と組織活動への還元~ by
コミュニティ活動と企業の相互作用 ~コミュニティへの貢献と組織活動への還元~
Masahiro Hidaka
13K views
•
39 slides
Viewers also liked
(7)
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015 by Yahoo!デベロッパーネットワーク
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
Yahoo!デベロッパーネットワーク
•
34.4K views
OSS活動の活発さと評価の関係について by Takuto Wada
OSS活動の活発さと評価の関係について
Takuto Wada
•
14.7K views
SQiP2016 SIG8 by Masanori Kaneko
SQiP2016 SIG8
Masanori Kaneko
•
8.4K views
テストを書く文化を育てる戦略と戦術 by Takuto Wada
テストを書く文化を育てる戦略と戦術
Takuto Wada
•
49.4K views
愛せないコードを書くには人生はあまりにも短い by Takuto Wada
愛せないコードを書くには人生はあまりにも短い
Takuto Wada
•
26.6K views
コミュニティ活動と企業の相互作用 ~コミュニティへの貢献と組織活動への還元~ by Masahiro Hidaka
コミュニティ活動と企業の相互作用 ~コミュニティへの貢献と組織活動への還元~
Masahiro Hidaka
•
13K views
「機械学習 By スタンフォード大学」勉強会 2015.09.11 by Minoru Chikamune
「機械学習 By スタンフォード大学」勉強会 2015.09.11
Minoru Chikamune
•
84.3K views
More from Takuto Wada
unassert - encourage reliable programming by writing assertions in production by
unassert - encourage reliable programming by writing assertions in production
Takuto Wada
18.1K views
•
36 slides
OSS についてあれこれ by
OSS についてあれこれ
Takuto Wada
41.8K views
•
65 slides
power-assert, mechanism and philosophy by
power-assert, mechanism and philosophy
Takuto Wada
48.4K views
•
29 slides
アジャイルサムライの次に読む技術書 by
アジャイルサムライの次に読む技術書
Takuto Wada
25.6K views
•
30 slides
テスト用ライブラリ power-assert by
テスト用ライブラリ power-assert
Takuto Wada
12.7K views
•
31 slides
Reviewing RESTful Web Apps by
Reviewing RESTful Web Apps
Takuto Wada
9K views
•
29 slides
More from Takuto Wada
(20)
unassert - encourage reliable programming by writing assertions in production by Takuto Wada
unassert - encourage reliable programming by writing assertions in production
Takuto Wada
•
18.1K views
OSS についてあれこれ by Takuto Wada
OSS についてあれこれ
Takuto Wada
•
41.8K views
power-assert, mechanism and philosophy by Takuto Wada
power-assert, mechanism and philosophy
Takuto Wada
•
48.4K views
アジャイルサムライの次に読む技術書 by Takuto Wada
アジャイルサムライの次に読む技術書
Takuto Wada
•
25.6K views
テスト用ライブラリ power-assert by Takuto Wada
テスト用ライブラリ power-assert
Takuto Wada
•
12.7K views
Reviewing RESTful Web Apps by Takuto Wada
Reviewing RESTful Web Apps
Takuto Wada
•
9K views
power-assert in JavaScript by Takuto Wada
power-assert in JavaScript
Takuto Wada
•
9K views
TDD のこころ @ OSH2014 by Takuto Wada
TDD のこころ @ OSH2014
Takuto Wada
•
15.8K views
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 by Takuto Wada
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
Takuto Wada
•
17.2K views
ペアプログラミング ホントのところ by Takuto Wada
ペアプログラミング ホントのところ
Takuto Wada
•
38.4K views
RESTful Web アプリの設計レビューの話 by Takuto Wada
RESTful Web アプリの設計レビューの話
Takuto Wada
•
72.2K views
例外設計における大罪 by Takuto Wada
例外設計における大罪
Takuto Wada
•
68.6K views
TDDBC お題 by Takuto Wada
TDDBC お題
Takuto Wada
•
6.5K views
DevLOVE DDDBC by Takuto Wada
DevLOVE DDDBC
Takuto Wada
•
3.1K views
TDDBC Fukuoka Day1 by Takuto Wada
TDDBC Fukuoka Day1
Takuto Wada
•
22.7K views
js テスト放浪記 by Takuto Wada
js テスト放浪記
Takuto Wada
•
4K views
xUTP Chapter19 (2). Testcase Class by Takuto Wada
xUTP Chapter19 (2). Testcase Class
Takuto Wada
•
2.6K views
xUTP Chapter26. Dependency Injection by Takuto Wada
xUTP Chapter26. Dependency Injection
Takuto Wada
•
4.3K views
xUTP Chapter27 Generated Value by Takuto Wada
xUTP Chapter27 Generated Value
Takuto Wada
•
2.1K views
The only one big thing every programmer should know by Takuto Wada
The only one big thing every programmer should know
Takuto Wada
•
7.9K views
Recently uploaded
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可 by
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
Hitachi, Ltd. OSS Solution Center.
13 views
•
22 slides
IPsec VPNとSSL-VPNの違い by
IPsec VPNとSSL-VPNの違い
富士通クラウドテクノロジーズ株式会社
610 views
•
8 slides
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PC Cluster Consortium
29 views
•
36 slides
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 by
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Hitachi, Ltd. OSS Solution Center.
110 views
•
26 slides
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PC Cluster Consortium
68 views
•
12 slides
定例会スライド_キャチs 公開用.pdf by
定例会スライド_キャチs 公開用.pdf
Keio Robotics Association
154 views
•
64 slides
Recently uploaded
(7)
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可 by Hitachi, Ltd. OSS Solution Center.
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
Hitachi, Ltd. OSS Solution Center.
•
13 views
IPsec VPNとSSL-VPNの違い by 富士通クラウドテクノロジーズ株式会社
IPsec VPNとSSL-VPNの違い
富士通クラウドテクノロジーズ株式会社
•
610 views
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by PC Cluster Consortium
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PC Cluster Consortium
•
29 views
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 by Hitachi, Ltd. OSS Solution Center.
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Hitachi, Ltd. OSS Solution Center.
•
110 views
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by PC Cluster Consortium
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PC Cluster Consortium
•
68 views
定例会スライド_キャチs 公開用.pdf by Keio Robotics Association
定例会スライド_キャチs 公開用.pdf
Keio Robotics Association
•
154 views
光コラボは契約してはいけない by Takuya Matsunaga
光コラボは契約してはいけない
Takuya Matsunaga
•
30 views
組織にテストを書く文化を根付かせる戦略と戦術
1.
組織にテストを書く 文化を根付かせる 戦略と戦術 和田 卓人 (@t_wada) Feb
16, 2016 @ 日本OSS推進フォーラム
2.
和田 卓人 id: t-wada @t_wada github:
twada
3.
gihyo.jpの連載 『[動画で解説]和田卓人の テスト駆動開発 講座』 http://gihyo.jp/dev/serial/01/tdd/ 全20回すべて動画付き解説 ニコニコ動画でも見れます WEB+DB過去記事の特設サイトと動画も
5.
Do you write
tests?
6.
戦略編
7.
• レガシーコード改善に正解はない • テスト自動化は銀の弾丸ではない •
導入方法にも銀の弾丸はない • 導入を目的にしてはならない • 状況は現場によって全て異なる 銀の弾丸は無い
8.
ストレス テスト
9.
自動テスト ストレス
10.
テストを書く時間がないので はなく、テストを書かないか ら時間がなくなるのです。 James Grenning
11.
• 文化の醸成は年単位の事業になる • 「テストを書く時間がない」のでは なく「テストを書かないから時間が なくなる」 •
「動くコードに触れるな」と戦う。 触れなければコードは緩やかに死ん でいく 文化を変える
12.
動くコードに触れなければ死あるのみ
13.
• ToBe ではなく
AsIs と NotToBe からはじめる • 隣の芝は青い。気にしないこと • 人は自分の速度でしか成長できない • プロジェクトもプロジェクトの速度でしか成長 できない • 「まわりはもうみんなやっていますよ」は劇薬 なので用法用量を守って使うこと イマココから始める
14.
• 快不快で動く人、損得で動く人 • リファクタリングの快感 •
回帰テストのお得感 • メトリクスの達成感 • そしてビジネス価値 人を知る
15.
• 人はそれぞれの度合いで変化に対して 身構える • 前例がない、事例がない •
「リファクタリングのジレンマ」 • リファクタリングを独立タスクにす ると、そのタスクは着手されない 変えることの難しさ
16.
事前に許可を得るより、あと で許してもらう方が楽 Grace Hopper It is
easier to ask forgiveness than it is to get permission
17.
• 仕様が固まることはない • 開発が終わることはない •
理解は常に深化する • スキルも常に深化する • 技術も常に進化する すべては変化する
18.
技術的負債の四象限 設計する時間がないん だからしょうがない 今すぐリリースしない といけない。あとでど うにかしよう レイヤー化? なにそ れ? もっとこうすべきだっ たなぁ 無鉄砲 慎重 意図的 不注意 http://bliki-ja.github.io/TechnicalDebtQuadrant/
19.
• 品質が「わかる」ようになる • わかることこそ大事 •
体重計に乗るだけでは痩せない • テストを書くだけでは、良くはならない • 品質を上げるのは設計とプログラミング • 再設計とリファクタリングをテストで支える テストは品質を上げない
20.
戦術編
21.
• 「何が一番やばいですか?」 • 最も困っているところから •
お金、個人情報、…… • 新機能開発から • バグ修正のところから • 静的解析でピンポイントに どこからやるか
22.
• リスク • 手動テストのコスト •
自動化コスト 塹壕からのテスト戦術
23.
• 一度に多くの人を変えるのは難しい • 育てるのではなく、自ら育つように •
教えられる人を増やす • ペアプロで一人ずつ • 若手のホープか、ベテランからか だれとやるか
24.
• 最初から全部やろうとしない • テスト駆動にこだわるな •
テストファーストにこだわるな • 「ユニット」テストにこだわるな • テストの実行速度にこだわるな • テストの網羅性にこだわるな こだわるな
25.
• 良いユニットテストの指標にも優先 度がある • 再現、繰り返し可能
(Repeatable) • 独立している (Independent) • 他はそれからでいい こだわろう
26.
• 何はなくとも読むべし • 「仕様化テスト」のススメ •
「絞り込み点」を探す レガシーコード改善ガイド
27.
• 割れ窓理論 • メトリクスを取ろう •
カバレッジが低いうちは測定は効果大 • 小うるさいツールを乗りこなす • 分母分子を見ない。時間を追った変化 を見る。傾きを見る。 見える化
28.
• 動的テストと静的テスト • 全体のメトリクスを計測して俯瞰の 視点を得る •
部分的なメトリクスを計測し続けて 傾向を見る • PMD, rubocop, Coverity,… 静的解析を使いこなす
29.
• コードレビューのインフラに投資す る • github,
gitlab, gitbucket • WIP pull request • コードを見る文化、見られる文化を 育てる コードレビュー
30.
• テストがないのは既に設計が悪い兆候 • 設計/実装を変えるのが前提 •
実装のテストを書かないこと • テストがカバーする範囲に遊びを持た せ、カバー範囲内をリファクタリング • 状況に応じて E2E テストを使いこなす 設計の可動域を確保する
31.
• サンプルとデモが大事 • 真似してもらう土台を作る •
最初はサンプルのコピペでも良い • テストのある生活を体験してもらう ことが大事 • 次にテストのメンテナンスを学ぶ 背中を見せる
32.
• できるからやるのではない • やるからできるようになる •
あなたが書けるようにならなければ、 誰も書けるようにはならない Social Change starts with YOU
33.
テストはプロの嗜み ご清聴ありがとうございました