Submit Search
Upload
Test Yourself - テストを書くと何がどう変わるか
•
129 likes
•
38,366 views
Takuto Wada
Follow
ソフトウェアテストシンポジウム 2014 北海道基調講演 2014年9月5日(金)
Read less
Read more
Technology
Report
Share
Report
Share
1 of 49
Download now
Download to read offline
Recommended
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
Takuto Wada
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
例外設計における大罪
例外設計における大罪
Takuto Wada
TDD のこころ
TDD のこころ
Takuto Wada
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
私にとってのテスト
私にとってのテスト
Takuto Wada
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
Recommended
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
Takuto Wada
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
例外設計における大罪
例外設計における大罪
Takuto Wada
TDD のこころ
TDD のこころ
Takuto Wada
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
私にとってのテスト
私にとってのテスト
Takuto Wada
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
onozaty
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
ドメイン駆動設計 ~ユーザー、モデル、エンジニアの新たな関係~
ドメイン駆動設計 ~ユーザー、モデル、エンジニアの新たな関係~
啓 杉本
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。
toshihiro ichitani
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jp
kyon mm
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
TDD のこころ @ OSH2014
TDD のこころ @ OSH2014
Takuto Wada
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
Atsushi Nakamura
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
Yoshiki Hayama
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Shuto Suzuki
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
ゲームジャムに使える! いろんな素材サイトとライセンスに関するご注意
ゲームジャムに使える! いろんな素材サイトとライセンスに関するご注意
Yasuyuki Kamata
テストを書こう、Unity編
テストを書こう、Unity編
Hiroto Imoto
More Related Content
What's hot
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
onozaty
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
ドメイン駆動設計 ~ユーザー、モデル、エンジニアの新たな関係~
ドメイン駆動設計 ~ユーザー、モデル、エンジニアの新たな関係~
啓 杉本
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。
toshihiro ichitani
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jp
kyon mm
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
TDD のこころ @ OSH2014
TDD のこころ @ OSH2014
Takuto Wada
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
Atsushi Nakamura
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
Yoshiki Hayama
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Shuto Suzuki
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
What's hot
(20)
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
ドメイン駆動設計 ~ユーザー、モデル、エンジニアの新たな関係~
ドメイン駆動設計 ~ユーザー、モデル、エンジニアの新たな関係~
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jp
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
TDD のこころ @ OSH2014
TDD のこころ @ OSH2014
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しよう
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
Viewers also liked
ゲームジャムに使える! いろんな素材サイトとライセンスに関するご注意
ゲームジャムに使える! いろんな素材サイトとライセンスに関するご注意
Yasuyuki Kamata
テストを書こう、Unity編
テストを書こう、Unity編
Hiroto Imoto
ストリーム処理エンジン「Zero」の開発と運用
ストリーム処理エンジン「Zero」の開発と運用
Eiichi Sato
Ameba広告の配信制御アーキテクチャを刷新した話 ~オレシカナイトvol.3~
Ameba広告の配信制御アーキテクチャを刷新した話 ~オレシカナイトvol.3~
Yusuke Komahara
「機械学習 By スタンフォード大学」勉強会 2015.09.11
「機械学習 By スタンフォード大学」勉強会 2015.09.11
Minoru Chikamune
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
Takuya Ueda
Viewers also liked
(6)
ゲームジャムに使える! いろんな素材サイトとライセンスに関するご注意
ゲームジャムに使える! いろんな素材サイトとライセンスに関するご注意
テストを書こう、Unity編
テストを書こう、Unity編
ストリーム処理エンジン「Zero」の開発と運用
ストリーム処理エンジン「Zero」の開発と運用
Ameba広告の配信制御アーキテクチャを刷新した話 ~オレシカナイトvol.3~
Ameba広告の配信制御アーキテクチャを刷新した話 ~オレシカナイトvol.3~
「機械学習 By スタンフォード大学」勉強会 2015.09.11
「機械学習 By スタンフォード大学」勉強会 2015.09.11
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
Similar to Test Yourself - テストを書くと何がどう変わるか
Hey It's Not My TDD!
Hey It's Not My TDD!
Yasui Tsutomu
Sue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hack
Go Sueyoshi (a.k.a sue445)
20150715 『続・断捨離』TDDの心得編
20150715 『続・断捨離』TDDの心得編
nackypon
nseg第5回勉強会
nseg第5回勉強会
ko ty
TDDってなんなの?(What is TDD)
TDDってなんなの?(What is TDD)
seichi23
アジャイルなテストの見積もりと計画作り
アジャイルなテストの見積もりと計画作り
kyon mm
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
Tomomi Kajita
CodeZineAcademy TDD実践講座PR資料
CodeZineAcademy TDD実践講座PR資料
Yasui Tsutomu
#NagoyaTesting アジャイルなテストの見積りと計画づくり
#NagoyaTesting アジャイルなテストの見積りと計画づくり
kyon mm
TDDはじめる前に
TDDはじめる前に
Yasui Tsutomu
テスト駆動開発入門 - C4K Meetup#2
テスト駆動開発入門 - C4K Meetup#2
Masashi Shibata
phpspecで始めるBDD
phpspecで始めるBDD
Yuuki Takezawa
Test Driven Development in LabVIEW
Test Driven Development in LabVIEW
Yusuke Tochigi
TDD を自分の道具にしよう
TDD を自分の道具にしよう
Yuji Okazawa
SeasarCon 2009 White TDD
SeasarCon 2009 White TDD
Takuto Wada
テストの視点を活用した TDD アプローチの検討とその検証
テストの視点を活用した TDD アプローチの検討とその検証
Akira Ikeda
Introduction to Continuous Testing
Introduction to Continuous Testing
Atsuhiro Kubo
TDD、ペアプログラミングのすすめ
TDD、ペアプログラミングのすすめ
Kyota Yasuda
テスト駆動開発入門
テスト駆動開発入門
Shuji Watanabe
Fitnesse を用いたテストの効率化について
Fitnesse を用いたテストの効率化について
tecopark
Similar to Test Yourself - テストを書くと何がどう変わるか
(20)
Hey It's Not My TDD!
Hey It's Not My TDD!
Sue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hack
20150715 『続・断捨離』TDDの心得編
20150715 『続・断捨離』TDDの心得編
nseg第5回勉強会
nseg第5回勉強会
TDDってなんなの?(What is TDD)
TDDってなんなの?(What is TDD)
アジャイルなテストの見積もりと計画作り
アジャイルなテストの見積もりと計画作り
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
CodeZineAcademy TDD実践講座PR資料
CodeZineAcademy TDD実践講座PR資料
#NagoyaTesting アジャイルなテストの見積りと計画づくり
#NagoyaTesting アジャイルなテストの見積りと計画づくり
TDDはじめる前に
TDDはじめる前に
テスト駆動開発入門 - C4K Meetup#2
テスト駆動開発入門 - C4K Meetup#2
phpspecで始めるBDD
phpspecで始めるBDD
Test Driven Development in LabVIEW
Test Driven Development in LabVIEW
TDD を自分の道具にしよう
TDD を自分の道具にしよう
SeasarCon 2009 White TDD
SeasarCon 2009 White TDD
テストの視点を活用した TDD アプローチの検討とその検証
テストの視点を活用した TDD アプローチの検討とその検証
Introduction to Continuous Testing
Introduction to Continuous Testing
TDD、ペアプログラミングのすすめ
TDD、ペアプログラミングのすすめ
テスト駆動開発入門
テスト駆動開発入門
Fitnesse を用いたテストの効率化について
Fitnesse を用いたテストの効率化について
More from Takuto Wada
OSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係について
Takuto Wada
unassert - encourage reliable programming by writing assertions in production
unassert - encourage reliable programming by writing assertions in production
Takuto Wada
OSS についてあれこれ
OSS についてあれこれ
Takuto Wada
power-assert, mechanism and philosophy
power-assert, mechanism and philosophy
Takuto Wada
アジャイルサムライの次に読む技術書
アジャイルサムライの次に読む技術書
Takuto Wada
テスト用ライブラリ power-assert
テスト用ライブラリ power-assert
Takuto Wada
Reviewing RESTful Web Apps
Reviewing RESTful Web Apps
Takuto Wada
power-assert in JavaScript
power-assert in JavaScript
Takuto Wada
テストを書く文化を育てる戦略と戦術
テストを書く文化を育てる戦略と戦術
Takuto Wada
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
Takuto Wada
愛せないコードを書くには人生はあまりにも短い
愛せないコードを書くには人生はあまりにも短い
Takuto Wada
ペアプログラミング ホントのところ
ペアプログラミング ホントのところ
Takuto Wada
RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話
Takuto Wada
TDDBC お題
TDDBC お題
Takuto Wada
DevLOVE DDDBC
DevLOVE DDDBC
Takuto Wada
TDDBC Fukuoka Day1
TDDBC Fukuoka Day1
Takuto Wada
js テスト放浪記
js テスト放浪記
Takuto Wada
xUTP Chapter19 (2). Testcase Class
xUTP Chapter19 (2). Testcase Class
Takuto Wada
xUTP Chapter26. Dependency Injection
xUTP Chapter26. Dependency Injection
Takuto Wada
More from Takuto Wada
(20)
OSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係について
unassert - encourage reliable programming by writing assertions in production
unassert - encourage reliable programming by writing assertions in production
OSS についてあれこれ
OSS についてあれこれ
power-assert, mechanism and philosophy
power-assert, mechanism and philosophy
アジャイルサムライの次に読む技術書
アジャイルサムライの次に読む技術書
テスト用ライブラリ power-assert
テスト用ライブラリ power-assert
Reviewing RESTful Web Apps
Reviewing RESTful Web Apps
power-assert in JavaScript
power-assert in JavaScript
テストを書く文化を育てる戦略と戦術
テストを書く文化を育てる戦略と戦術
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
愛せないコードを書くには人生はあまりにも短い
愛せないコードを書くには人生はあまりにも短い
ペアプログラミング ホントのところ
ペアプログラミング ホントのところ
RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話
TDDBC お題
TDDBC お題
DevLOVE DDDBC
DevLOVE DDDBC
TDDBC Fukuoka Day1
TDDBC Fukuoka Day1
js テスト放浪記
js テスト放浪記
xUTP Chapter19 (2). Testcase Class
xUTP Chapter19 (2). Testcase Class
xUTP Chapter26. Dependency Injection
xUTP Chapter26. Dependency Injection
Recently uploaded
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
論文紹介: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)
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Test Yourself - テストを書くと何がどう変わるか
1.
Test Yourself テストを書くと何がどう変わるか
和田 卓人 (a.k.a id:t-wada or @t_wada) Sep 5, 2014 @JaSST Hokkaido ’14
2.
和田 卓人 id:
t-wada @t_wada github: twada
3.
4.
各所で猛威を振るう t_wada.png
5.
よろしく おねがい します
6.
Q. TDDは、まだ良くわから ないです
Q. 具体的な方法が分からない
7.
TDD とは何か
8.
9.
「動作するきれいなコード」、ロン・ジェフ リーズのこの簡潔な言葉は、TDD(テスト駆 動開発)の目標である。動作するきれいなコー
ドは、あらゆる理由で価値がある。 ─ Kent Beck
10.
動作する、きれいなコードへ きれい 汚い
二つの道がある (すぐには)動かない動作する
11.
TDDのサイクル 1. 次の目標を考える
2. その目標を示すテストを書く 3. そのテストを実行して失敗させる(Red) 4. 目的のコードを書く 5. 2で書いたテストを成功させる(Green) 6. テストが通るままでリファクタリングを行 う(Refactor) 7. 1~6を繰り返す
12.
Refactoring TDDと黄金の回転 きれい
汚い Red Green (すぐには)動かない動作する
13.
14.
TDD や Developer
Testing に ソフトウェア工学的なメリットはいろい ろあるけれど、最大の理由は工学的なも のではない。最大の理由は心理的なもの •即座にフィードバックを得るため •書いたコードに自信を持つため •これから書くコードに自信を持つため
15.
デモ
16.
http://www.planetgeek.ch/wp-content/uploads/2012/06/ATDD-cycle.png
17.
Why: 顧客は何故それを欲 しているのか
What: 何を作れば 良いだろうか How: どう作れば 良いだろうか 頻繁なリリースとデモ 受け入れテスト ユニットテスト 永和システムマネジメント家永氏の資料より
18.
https://www.facebook.com/notes/kent-beck/when-tdd-doesnt-matter/797644973601702
19.
TDDの 導入効果
20.
TDD導入効果(MS, IBM) ©
Towersquest, Inc. 2010. all rights reserved. 20 IBM Driver MS Windows MS MSN MS Visual Studio ソースコードサイズ (KLOC) テストコードサイズ (KLOC) TDDを採用していない類似プロ ジェクトでの欠陥密度を1とし たときの欠陥密度 TDD採用により増加したコード 実装時間(管理者の見積による) 41.0 6.0 26.0 155.2 28.5 4.0 23.2 60.3 0.61 0.38 0.24 0.09 15~20% 25~35% 15% 20~25% N. Nagappan, M. E. Maximilien, T. Bhat and L. Williams: Realizing quality improvement through test driven development: results and experiences of four industrial teams, Journal of Empirical Software Engineering, vol. 13, pp. 289-302 (2008)
21.
TDD導入効果(エリクソン他) • TDDを実施した場合に報告されている知見
‣ 機能テストでの不具合検出数が18%削減された ‣ コーディング(実装)の時間が16%増えた ‣ テストのカバレッジが大きくなった • 被験者を対象としたアンケート ‣ 96%の被験者がデバッグの工数を減らすと感じた ‣ 88%の被験者が要求が洗練されると感じた ‣ 92%の被験者がコードの品質を上げると感じた ‣ 50%の被験者が開発工数を減らすと感じた Boby George, a and Laurie Williams: A structured experiment of test-driven development, Journal of Information and Software Technology Vol. 46, No. 5, p. 337-342(2004) © Towersquest, Inc. 2010. all rights reserved. 21
22.
Q. 開発者自身がテストを書く ようになったら
テストエンジニアは不要だと 思いますか?
23.
TDDの T について
考える
24.
「動作するきれいなコード」、ロン・ジェフ リーズのこの簡潔な言葉は、TDD(テスト駆 動開発)の目標である。動作するきれいなコー
ドは、あらゆる理由で価値がある。 ─ Kent Beck
25.
“テストとは,エラーをみつ けるつもりでプログラムを 実行する過程である”
26.
http://www.developsense.com/blog/2009/08/testing-vs-checking/
27.
TDD は Checking
でしかない
28.
https://speakerdeck.com/everzet/bdd-in-symfony2
29.
http://lisacrispin.com/2011/11/08/using-the-agile-testing-quadrants/
30.
Q. テストスクリプトの作成コストと維持。ユ ニットテストケースの運用維持が、確実には
出来ていない Q. テストコード自体はプロダクションコード よりも基準が緩いため、難しかったり煩雑な テストコードが散見し、テストコードのメン テナンス性が悪くなっている
31.
(Checking の文脈での) 良いテストは
どんなものか
32.
“F.I.R.S.T” => クリーンテストの5つの規則
33.
Fast Independent Repeatable
Self-Validating Timely
34.
“A-TRIP” => 良質なテストの特性
35.
Automated Thorough Repeatable
Independent Professional
36.
F.I.R.S.T A-TRIP 共通するもの
37.
Fast Independent Repeatable
Self-Validating Timely Automated Thorough Repeatable Independent Professional
38.
xUnit Test Patterns
より テストのメンテナンスコスト 理想 現実
39.
Fast Independent Repeatable
Self-Validating Timely Automated Thorough Repeatable Independent Professional
40.
テストコードの リファクタリング デモ
41.
Q. テスト駆動開発について、テスト専門の人 にアドバイスを貰ったり、質問したりするこ
とはあるのでしょうか?テスト専門の立場か ら、開発へどういった貢献が出来るか模索中 です。 Q. 製品コードの作成者とは別にテストコード の作成者を用意して、テストコードの作成を 進めたいと考えています。留意すべきことが あれば教えてください。
42.
テストは品質を上げない 体重計に乗るだけでは 痩せないのと同じ
https://www.flickr.com/photos/tompagenet/2271383143
43.
“テストでは品質は上がらない ですよ。テストはあくまでも品 質をあげるきっかけ。品質をあ
げるのはプログラミングです。 これは大昔からそう。”
44.
自動テストの良いところは、 改善を我慢しなくても良く なったこと
45.
ソフトウェアの質は 自分たちで上げる 自分たちでしか上げられない
でも、開発者にはテストの 知識が不足しがち
46.
だから、いっしょにやりましょう http://www.flickr.com/photos/recompile_net/3298985098/
47.
TDDはスキルです •ひとりから始められる •テストやTDDはスキルです。つまり…
•才能ではなく、習得可能です •量は質に転化します •写経しましょう!!
48.
gihyo.jpの連載 『[動画で解説]和田卓人の“テスト駆動開発”講座』 http://gihyo.jp/dev/serial/01/tdd/
全20回すべて動画付き解説 ニコニコ動画でも見れます WEB+DB過去記事の特設サイトと動画も
49.
ご清聴ありがとうございました
Download now