Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
kyon mm
PDF, PPTX
31,900 views
自動テストの誤解とアンチパターン in 楽天 Tech Talk
2014/02/12の楽天Tech Talkに登壇させてもらったときの発表スライドです。 2013年に発表したいくつかの内容をまとめました。 基本的に、ソフトウェアテストの絶望を聞きたい人向けです。
Technology
◦
Read more
119
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 70
2
/ 70
3
/ 70
4
/ 70
5
/ 70
6
/ 70
7
/ 70
8
/ 70
9
/ 70
10
/ 70
Most read
11
/ 70
12
/ 70
Most read
13
/ 70
14
/ 70
15
/ 70
16
/ 70
17
/ 70
18
/ 70
Most read
19
/ 70
20
/ 70
21
/ 70
22
/ 70
23
/ 70
24
/ 70
25
/ 70
26
/ 70
27
/ 70
28
/ 70
29
/ 70
30
/ 70
31
/ 70
32
/ 70
33
/ 70
34
/ 70
35
/ 70
36
/ 70
37
/ 70
38
/ 70
39
/ 70
40
/ 70
41
/ 70
42
/ 70
43
/ 70
44
/ 70
45
/ 70
46
/ 70
47
/ 70
48
/ 70
49
/ 70
50
/ 70
51
/ 70
52
/ 70
53
/ 70
54
/ 70
55
/ 70
56
/ 70
57
/ 70
58
/ 70
59
/ 70
60
/ 70
61
/ 70
62
/ 70
63
/ 70
64
/ 70
65
/ 70
66
/ 70
67
/ 70
68
/ 70
69
/ 70
70
/ 70
More Related Content
PDF
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
by
Yasuharu Nishi
PDF
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜
by
Tetsuya Kouno
PDF
ドメイン駆動で開発する ラフスケッチから実装まで
by
増田 亨
PDF
マルチテナントのアプリケーション実装〜実践編〜
by
Yoshiki Nakagawa
PDF
ドメイン駆動設計 ( DDD ) をやってみよう
by
増田 亨
PPTX
ISO/IEC DIS 20246 についての(ごく簡単な)説明
by
しょうご すずき
PPTX
アジャイルメトリクス実践ガイド
by
Hiroyuki Ito
PDF
ドメイン駆動設計(DDD)の実践Part2
by
増田 亨
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
by
Yasuharu Nishi
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜
by
Tetsuya Kouno
ドメイン駆動で開発する ラフスケッチから実装まで
by
増田 亨
マルチテナントのアプリケーション実装〜実践編〜
by
Yoshiki Nakagawa
ドメイン駆動設計 ( DDD ) をやってみよう
by
増田 亨
ISO/IEC DIS 20246 についての(ごく簡単な)説明
by
しょうご すずき
アジャイルメトリクス実践ガイド
by
Hiroyuki Ito
ドメイン駆動設計(DDD)の実践Part2
by
増田 亨
What's hot
PPT
ドメインロジックの実装方法とドメイン駆動設計
by
Tadayoshi Sato
PDF
ドメイン駆動設計のための Spring の上手な使い方
by
増田 亨
PDF
ドメイン駆動設計 本格入門
by
増田 亨
PPTX
アプリ開発へのOdc分析導入の取り組み
by
NaokiKashiwagura
PDF
はじめてのソフトウェアテスト
by
Rina Fukuda
PDF
組み込み開発でのシステムテスト自動化の一つの考え方(STAC)
by
H Iseri
PDF
例外設計における大罪
by
Takuto Wada
PPTX
GitHub ActionsでiOSのCIを実現しよう
by
Shinya Nakajima
PPTX
概念モデリング再入門 + DDD
by
Hiroshima JUG
PDF
Lean coffee
by
Takeshi Arai
PDF
日本語テストメソッドについて
by
kumake
PDF
探索的テスト入門
by
H Iseri
PDF
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
by
Hironori Washizaki
PDF
Test Yourself - テストを書くと何がどう変わるか
by
Takuto Wada
PDF
組織にテストを書く文化を根付かせる戦略と戦術
by
Takuto Wada
PDF
テストを分類してみよう!
by
Kenji Okumura
PDF
TDD のこころ @ OSH2014
by
Takuto Wada
PPTX
自動テストの品質とテストパターン
by
Toru Koido
PDF
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
by
Yoshitaka Kawashima
PDF
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
by
Yoshifumi Kawai
ドメインロジックの実装方法とドメイン駆動設計
by
Tadayoshi Sato
ドメイン駆動設計のための Spring の上手な使い方
by
増田 亨
ドメイン駆動設計 本格入門
by
増田 亨
アプリ開発へのOdc分析導入の取り組み
by
NaokiKashiwagura
はじめてのソフトウェアテスト
by
Rina Fukuda
組み込み開発でのシステムテスト自動化の一つの考え方(STAC)
by
H Iseri
例外設計における大罪
by
Takuto Wada
GitHub ActionsでiOSのCIを実現しよう
by
Shinya Nakajima
概念モデリング再入門 + DDD
by
Hiroshima JUG
Lean coffee
by
Takeshi Arai
日本語テストメソッドについて
by
kumake
探索的テスト入門
by
H Iseri
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
by
Hironori Washizaki
Test Yourself - テストを書くと何がどう変わるか
by
Takuto Wada
組織にテストを書く文化を根付かせる戦略と戦術
by
Takuto Wada
テストを分類してみよう!
by
Kenji Okumura
TDD のこころ @ OSH2014
by
Takuto Wada
自動テストの品質とテストパターン
by
Toru Koido
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
by
Yoshitaka Kawashima
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
by
Yoshifumi Kawai
Viewers also liked
PDF
テスト自動化の現場から~落とし穴に気を付けよう~
by
Satsuki Urayama
PDF
自動化テスト VS 手動テスト
by
Ryutaro YOSHIBA
PDF
小さく始める大規模スクラム
by
Keisuke Tsukagoshi
PPTX
導入に困っているあなたに贈る スクラム導入コミュニケーション術
by
Kouki Kawagoi
PDF
なんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudy
by
POStudy
PDF
[RSGT2017] つらい問題に出会ったら
by
Takahiro Kaihara
PDF
市場価値で給料が決まるサイボウズの社員だけど、転職ドラフトに参加して給与交渉に挑戦してみました
by
Yusuke Amano
PPTX
Api Strat Portland 2017 Serverless Extensibility talk
by
Glenn Block
PDF
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
by
kwatch
PPTX
Aubergine or Brinjal or egg plant production technology cultivation, varietie...
by
jagathesan krishnasamy
PPTX
Introduction to eggplant
by
TestPlant
PDF
20150418 システムテスト自動化 第一章
by
Yuki Fujisawa
PDF
Eggplant - Powerpoint
by
Mark Klingman
PDF
Head First Inception Deck
by
Naoto Nishimura
PPTX
Project Proposal (Eggplant production)
by
Dudzy Choyen
PDF
20141213 俺のインセプションデッキ #agilesamurai
by
Takao Oyobe
PDF
5分でわかった気になるインセプションデッキ
by
Takao Oyobe
PDF
サイボウズのフロントエンド開発 現在とこれからの挑戦
by
Teppei Sato
PPTX
すべての人にチームワークを サイボウズのアクセシビリティ
by
Kobayashi Daisuke
PDF
サイボウズのサービスを支えるログ基盤
by
Shin'ya Ueoka
テスト自動化の現場から~落とし穴に気を付けよう~
by
Satsuki Urayama
自動化テスト VS 手動テスト
by
Ryutaro YOSHIBA
小さく始める大規模スクラム
by
Keisuke Tsukagoshi
導入に困っているあなたに贈る スクラム導入コミュニケーション術
by
Kouki Kawagoi
なんたって”DevQA” アジャイル開発とQAの合体が改善を生む - 永田 敦 氏 #postudy
by
POStudy
[RSGT2017] つらい問題に出会ったら
by
Takahiro Kaihara
市場価値で給料が決まるサイボウズの社員だけど、転職ドラフトに参加して給与交渉に挑戦してみました
by
Yusuke Amano
Api Strat Portland 2017 Serverless Extensibility talk
by
Glenn Block
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
by
kwatch
Aubergine or Brinjal or egg plant production technology cultivation, varietie...
by
jagathesan krishnasamy
Introduction to eggplant
by
TestPlant
20150418 システムテスト自動化 第一章
by
Yuki Fujisawa
Eggplant - Powerpoint
by
Mark Klingman
Head First Inception Deck
by
Naoto Nishimura
Project Proposal (Eggplant production)
by
Dudzy Choyen
20141213 俺のインセプションデッキ #agilesamurai
by
Takao Oyobe
5分でわかった気になるインセプションデッキ
by
Takao Oyobe
サイボウズのフロントエンド開発 現在とこれからの挑戦
by
Teppei Sato
すべての人にチームワークを サイボウズのアクセシビリティ
by
Kobayashi Daisuke
サイボウズのサービスを支えるログ基盤
by
Shin'ya Ueoka
Similar to 自動テストの誤解とアンチパターン in 楽天 Tech Talk
PPTX
自動テストで開発効率を上げるには
by
Wataru Terada
PDF
異業種でのテスト自動化の実際
by
Satsuki Urayama
PDF
Automation test.ssf alpha
by
ryuji koyama
PDF
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
by
kyon mm
PPTX
TDDはじめる前に
by
Yasui Tsutomu
PDF
1時間で分かるSTA (Software Test Automation) #stac2014
by
Kazuhiro Suzuki
PDF
20140128 tel@cafe selenium編
by
SHIFT Inc.
PDF
Automated testingindevopsstrategy.20210506
by
Toru Koido
PPTX
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか #rakutentech
by
Kotaro Ogino
PDF
Stac2013 opening-koukai
by
K O
PPTX
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
by
慎一 古賀
PDF
Install tdd
by
eiji ienaga
PDF
第2回nseg slideshare
by
ko ty
PPTX
20150418 システムテスト自動化 第二章
by
atsushi ishiji
PDF
TDDのこれまで、そしてこれから
by
Hiroyuki Ohnaka
PDF
失敗から学ぶテスト自動化導入で大切なこと
by
sono susumu
PDF
Et west テスト自動化_公開版
by
Noriyuki Mizuno
PDF
#STAC2014 システムテスト自動化ハンズオン
by
kyon mm
PDF
TDDワークショップ(第2回)
by
Yoshihiro Furukawa
PDF
Hey It's Not My TDD!
by
Yasui Tsutomu
自動テストで開発効率を上げるには
by
Wataru Terada
異業種でのテスト自動化の実際
by
Satsuki Urayama
Automation test.ssf alpha
by
ryuji koyama
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
by
kyon mm
TDDはじめる前に
by
Yasui Tsutomu
1時間で分かるSTA (Software Test Automation) #stac2014
by
Kazuhiro Suzuki
20140128 tel@cafe selenium編
by
SHIFT Inc.
Automated testingindevopsstrategy.20210506
by
Toru Koido
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか #rakutentech
by
Kotaro Ogino
Stac2013 opening-koukai
by
K O
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
by
慎一 古賀
Install tdd
by
eiji ienaga
第2回nseg slideshare
by
ko ty
20150418 システムテスト自動化 第二章
by
atsushi ishiji
TDDのこれまで、そしてこれから
by
Hiroyuki Ohnaka
失敗から学ぶテスト自動化導入で大切なこと
by
sono susumu
Et west テスト自動化_公開版
by
Noriyuki Mizuno
#STAC2014 システムテスト自動化ハンズオン
by
kyon mm
TDDワークショップ(第2回)
by
Yoshihiro Furukawa
Hey It's Not My TDD!
by
Yasui Tsutomu
More from kyon mm
PDF
Scrum,Test,Metrics #sgt2016
by
kyon mm
PDF
Kaizen process with test #hackt
by
kyon mm
PDF
ザ・ジェネラリスト #5000dai
by
kyon mm
PDF
ICST2015 GUI Testingの紹介 #SIGSTJ
by
kyon mm
PDF
焦らず急いでの意味
by
kyon mm
PDF
Sta introduction in_kyoto #devkan
by
kyon mm
PDF
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
by
kyon mm
PDF
テストファースト、自動テストを導入するという事について(@社内勉強会)
by
kyon mm
PDF
Gradle 2.2, 2.3 news #jggug
by
kyon mm
PDF
テストとリファクタリングに関する深い方法論 #wewlc_jp
by
kyon mm
PDF
Groovyで学ぶプロセス代数 #jjug
by
kyon mm
PDF
テストエンジニアの品格 #automatornight
by
kyon mm
PDF
@kyon_mmの書籍の読み方 #AsianAA
by
kyon mm
PDF
JenkinsとGitで実装するGatewayCheckIn Pattern #AsianAA
by
kyon mm
PDF
GradleのREPLプラグイン紹介 #jggug
by
kyon mm
PDF
契る意味 #pykonjp2014
by
kyon mm
PDF
いつでも聞けるTDD入門 #TDDBC_NAGOYA
by
kyon mm
PDF
Test Retrospective #kyon_kao_wedding in Tokyo
by
kyon mm
PDF
ソフトウェア開発を勉強し始めて3年間でやったこと~After~ #devsumi
by
kyon mm
PDF
詳解!自動結合テスト #jasst
by
kyon mm
Scrum,Test,Metrics #sgt2016
by
kyon mm
Kaizen process with test #hackt
by
kyon mm
ザ・ジェネラリスト #5000dai
by
kyon mm
ICST2015 GUI Testingの紹介 #SIGSTJ
by
kyon mm
焦らず急いでの意味
by
kyon mm
Sta introduction in_kyoto #devkan
by
kyon mm
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
by
kyon mm
テストファースト、自動テストを導入するという事について(@社内勉強会)
by
kyon mm
Gradle 2.2, 2.3 news #jggug
by
kyon mm
テストとリファクタリングに関する深い方法論 #wewlc_jp
by
kyon mm
Groovyで学ぶプロセス代数 #jjug
by
kyon mm
テストエンジニアの品格 #automatornight
by
kyon mm
@kyon_mmの書籍の読み方 #AsianAA
by
kyon mm
JenkinsとGitで実装するGatewayCheckIn Pattern #AsianAA
by
kyon mm
GradleのREPLプラグイン紹介 #jggug
by
kyon mm
契る意味 #pykonjp2014
by
kyon mm
いつでも聞けるTDD入門 #TDDBC_NAGOYA
by
kyon mm
Test Retrospective #kyon_kao_wedding in Tokyo
by
kyon mm
ソフトウェア開発を勉強し始めて3年間でやったこと~After~ #devsumi
by
kyon mm
詳解!自動結合テスト #jasst
by
kyon mm
自動テストの誤解とアンチパターン in 楽天 Tech Talk
1.
自動テストの誤解と アンチパターン by kyon_mm in Rakuten
Tech Talk 12/02/2014 A u tom ate Te st ing An ti-p atter n
2.
Self Introduction きょん(@kyon_mm) テストアーキテクト Groovy, C#,
F#, Scala SCMBootCamp, Nagoya.Testing, TDDBootCamp
3.
Agenda 自動統合テスト 誤解と効果 TDD/BDDについて 歴史 TDDの自殺 失敗するTDD
4.
Agenda 自動統合テスト 誤解と効果 TDD/BDDについて 歴史 TDDの自殺 失敗するTDD
5.
Test Level 単体テスト/コンポーネントテスト 「それらで はアプリケーションとして成立しないファイル 群に対するテスト」 統合テスト「デプロイされている状態でのアプ リケーションに対するテスト」 システムテスト「デプロイされていて、シナリ オも含めたテスト」
6.
Attention テストは手動/自動に関わらずコスト意識が大切 です。 自動化しても見合わないこともあるし、手動で 続けるのが見合わないこともあります。 見合う見合わずではなくとも、どれくらいのコ ストであるかを見積もる、計測する事は大切な 事が多いです。(開発規模が大きくなるほ ど。)
7.
Test ROI テストの自動化は何度も実行しなければもとが 取れないとかいう話があります。 よく3回以上と言われています。
8.
Test ROI 自動化は3回やらない と元がとれない? 目を覚ませ。建前はい らないのだよ。
9.
Test ROI テストの自動化は何度も実行しなければもとが 取れないとかいう話がありますが、そういうの は建前です。嘘です。いい訳です。 「統合テスト自動化で得られる最大のメリット はテスト実装者が得る幅広いプログラミングス キルとアーキテクチャ知識である」 「手動では不可能なテストの実装、コストの大 幅低減」を実現するのは多くはシステムテスト レベルである事が(比較的)多い。
10.
Test ROI 「統合テスト自動化で得られる最大のメリット はテスト実装者が得る幅広いプログラミングス キルとアーキテクチャ知識である」 統合テストレベルの自動化をしなくていいと言 っているのは、上のメリットを「(優先順位を考 慮して)必要ない」と言っているのと同義だと捉 えていることを忘れてはいけない。
11.
Test ROI 自動テストを誰かが勝手にやってくれるものと して保証する 自動テストを自分の手足のように使う(理解す る)ものとして保証する 自動テストなしで保証する どの立場でテストを行うかはあなた次第
12.
Test ROI 例えば。。。 誰かが品質に対して警鐘を鳴らしてくれればよ い。というのは、かなり手慣れた領域での話で ある。 初めての「ドメイン」「大規模化」「複雑化」 「汎用化」などにおいては、知識の不足が露呈 しやすく、効率よく知識を得る必要がある。
13.
Integration Test 統合テストの自動化のROIで実行回数に目がい くのか? 統合テストの自動化で意味があるものは?
14.
Integration Test 統合テストの自動化がうまくいっているとは どういうことか 保守性? 属個人性?
15.
Integration Test 自動統合テストが「うまくいっている」と思 い込んでしまうパターンがある。 「無駄なテストを大量に増やせる事」 「効果がありそうなんだけど無駄なテスト」 をいかに減らせるかが鍵になってくる。
16.
Integration Test 効果的な自動統合テストとはどうすればつく れるのか?
17.
Reduction 統合テストを減らすには、統合テストより前 の段階でどうやって減らすかにかかってい る。 テストで減らす : 統合テストより下のテス トと「網羅対象や度合い」をテスト設計する 設計で減らす:統合テストでの因子水準を減 らせるようなプロダクト設計する
18.
Integration Test プロダクトコードをレビ ューできるスキルがない なら、 効果的な自動統合テスト は不可能に近い。
19.
Test ROI 効果的な自動テストはなにかを考えないと、 「自動化対象外と協調したテスト設計をおろ そかにする」 自動化対象のテストのみに着目するので 「ROI=予想実行回数」のような発想になる。
20.
Agenda 自動統合テスト 誤解と効果 TDD/BDDについて 歴史 TDDの自殺 失敗するTDD
21.
TDD/BDD TDD=Test Driven Development BDD=Behavior
Driven Development
23.
History of TDD/BDD TDDというものはSmalltalk界隈の人達の習慣を 洗練させ形式化したものでした。 それをしたのがKentBeckです。 彼を中心にMartin
Fowler, Uncle Bob, Ron JeffriesなどがTDDとリファクタリングを洗練さ せていきます。
24.
Kent Beck says... 自動テストが失敗した場合だけ、
新しいコード を書く。 重複を取り除く。2つの規則はプログ ラミングのタスクにおける順番を意味する。 レッド ‐ 動作しないテストを少しだけ作成す る。 おそらく最初はコンパイルできない。 グリーン ‐ テストをすぐに動作させる。 その ためには、 どのようなコードでもよい。 リファクタリング ‐ テストを動作させるため だけに作成された重複をすべて取り除く。
25.
Uncle Bob says... 3つの原則を守りながら実装をすすめる。 失敗するテストができるまでプロダクトを書い てはいけない 失敗するテストがある場合にはそれ以上テスト を追加してはいけない テストを成功させるプロダクトがある場合には それ以上プロダクトを追加してはいけない
26.
t_wada says... プログラマーを含めた開発の健康をたもつプラ クティス RED -
GREEN - REFACTORの黄金の回転を回す 動くけど汚ないコード - 動いて美しいコード 動かないコードの状態遷移
27.
kyon_mm says ソフトウェア開発者支援フレームワークである RED -
GREEN - REFACTOR のスパイラルモデルが 根幹にある 「開発者の意図を確認すること」「開発者が心 地よいコードを書き始める事」を支援する。
28.
Descended from origin TDD
By Example[テスト駆動開発入門] By KentBeck Refactoring[リファクタリング] By Martin Fowler [アジャイル開発の奥義-オブジェクト指向開発 の原則-] By Uncle Bob Clean Code By Uncle Bob JUnit By Kent Beck NUnit By Ron Jeffries
29.
XP アジャイルの一形態であるeXtreme Programming(XP)では 様々なプラクティスが提 案されました。 その中にも「受け入れテストの 自動化」は存在します。
これによって常にプロ ダクトに対して要求に近い検査を行うことが可 能になりました。 XPが直接ではないですが、この頃からATDDとい う概念が生まれはじめます。 このときのATDDは まさに「オンサイト顧客」などのいわゆる 「ユ ーザーのための受け入れテスト」でTDDするとい うものでした。
30.
FIT Framework for Integrated
Test(FIT) TDDやXP が広まるなかでより言語に依存しない形でのテ スト(特にIntegration Test)に 注目されるよう になった。 ノンプログラマーにフレンドリーであり、実行 でき、実装すべきモノがみえるテスト
31.
Fit/FitNesse FITの有名な実装としてFit/FitNesseが存在す る。 Ward CunninghamによるFit. Uncle
Bobによる FitNesse. 次のような要素からなる。 Wiki上でテストケースを表で記述 Wikiからテストを実行できる 各プログラミング言語とのアダプタ 各プログラミング言語でのテストケース実装
32.
BDD Kentは「常に(その時における)ユーザーの立場 でテストを実装するんだ。」といいました。 現 実には多くのTDDビギナーはそうはせず、 UnitTestに集中しすぎ、時には実装をテストし てしまうことに注力したのです。 BDDは様々な思惑があったとは言え、 現実的な 理由としてはTDDの誤解される使い方を是正する ための考え方として生まれました。
33.
Scenario BDD より自然言語らしさを目指した結果、 テストコ ードと自然言語を記述するファイルを分断する という選択をした流れがあり、
それらを ScenarioBDDとよぶことがおおいです。 現在の Cucumber系がそれらにあたります。
34.
Spec BDD テストコードと自然言語をできるだけ同一ファ イル内におさめながら、 可読性の向上を目指す という選択をした流れがあります。
それらを SpecBDDとよぶことがおおいです。 現在のRSpec 系がそれらにあたります。
35.
STDD アジャイルの一形態であるScrumは今や世界中で 認識されている手法になりました。 Scrumは実 現すべき事に「Readyの定義」「Doneの定義」を 決めることが多いです。 実現すべき事は Product
BackLog Itemとよばれ、 ユーザースト ーリーで書かれることが多いです。 このDoneの定義をユーザーストーリーを取り組 むときに、 テストとして実装してしまうことで 開発をするSTDDがうまれました。 StoryTestDrivenDevelopmentです。
36.
Specification By Example 幾年かを経て、Specification By
Exampleとい う概念がうまれます。 これは今迄のBDDやATDD をうまく包括するような概念として生まれまし た。 主張は「Specification By Exampleとして 書かれたテストはLive Documentなんだ」 (「例 示による仕様としてのテストは生きたドキュメ ントだ!」)ということです。
37.
Agenda 自動統合テスト 誤解と効果 TDD/BDDについて 歴史 TDDの自殺 失敗するTDD
38.
Domain ドメインの分け方として2分別する方法がある アプリケーションドメイン ソリューションドメイン
39.
Application Domain ソフトウェアシステムの導入によって変化させ たい領域のこと。 問題ドメインと呼ばれる事が多いが、必ずしも 一致しない。
40.
Application Domain 端的な例だと、要求レベルで表現できるユーザ ーが達成しようとしている内容
41.
Solution Domain ソフトウェアシステムの個々の技術や組み合わ せ方。 解決ドメイン、解決領域と翻訳されることもあ る。
42.
Solution Domain 個々の言語、ライブラリ、ミドルウェアなど。 実際のコードや設定やインフラなどによる実装 技術。
43.
Best Production Code Application
DomainとSolution Domainが同一表 現になること。 「やりたいことを書いた」=「実装した」
44.
Example MDA系 一部では概念図からプロダクトコードを自動 生成することに注力している DSL系 アプリケーションドメインをそのままかける ような専用言語によってソリューションドメ インとの身時を埋める
45.
Example BRMS システムのロジックの一部をデシジョンテー ブルで記述できるようにする
46.
Problem 我々の世界はそこまで綺麗にコードをかける実 力もツールもない
47.
TDD Solution まずテストコードに達成したい事を表現する プロダクトコードを実装する テストが通った状態で綺麗にする
48.
Test Code of
TDD TDDはDog Foodingである テストコードが最初のユーザー テストコードに要求を書いている テストコードにアプリケーションドメインがあ る
49.
Production Code of
TDD まずはある範囲で保証できるコードを書く 保証できる中で綺麗にしていく TDDの中でどうやってテストとプロダクトを綺 麗にするかは語られていない。 TDD用のリファクタリングがない
51.
Best Production Code アプリケーションドメイン =
ソリューションドメイン
52.
TDD テストコード = アプリケーションドメイン プロダクトコード
= ソリューションドメイン
53.
Product Refactoring 実際にはなんらかの形でアプリケーションドメ インをプロダクトコードに入れている 命名、依存関係整理、レイヤ分割
54.
Test Refactoring DRY...?
55.
Domain テストコードにアプリケーションドメインが残 ってしまっている。 アプリケーションドメインが重複している。
56.
Domain 重複しているだけならまだいい。 実際には違うものが表現されている。
57.
Example TestDouble Integration Test
58.
Domain TestDoubleもしくはIntegrationTestのsetupを 書く事で、既にある他の機能の劣化コピーもし くは完全なコピーを書く事になる。
59.
Domain ツールとTDDの都合でテストコードもしくはプロ ダクトコードにあるアプリケーションドメイン を変化させてコピーしなければいけない
60.
Domain そのテストを動かすために最短でセットアップ できるものを書くのは本当に正しいのかも怪し い。 何よりアプリケーションドメインが重複してい る。
61.
TDD Suicide プロダクトコードからアプリケーションドメイ ンが漏れたり、埋め込まれないことがある それを促進する力がTDDにはある
62.
TDD Suicide アプリケーションドメインがないプロダクトコ ードなんて何やっているかわからない死体と同 然である。 TDDは開発の理想を壊す、守るべきプロダクトコ ードを死体にしてしまう事がある。だが、それ に気づきにくい。
63.
TDD Suicide レゾンデートルを自ら破壊してしまうというTDD はまさに自殺しているに等しい。 「ドメインの重複、エセドメインの生産をして プロダクトコードをダメにしてしまう」という TDDは自殺している。これをTDDの自殺という。
64.
Agenda 自動統合テスト 誤解と効果 TDD/BDDについて 歴史 TDDの自殺 失敗するTDD
65.
TDD TDDをして品質があがると思う人が多くいる。 一方で上がらないと思っている人がいる。 (効果のある品質特性が異なるという話では ないよ。
66.
Good TDD 強制的に検査されたプロダクトしか手に入ら なくなる事によって、つまらないバグが減 る。 最低限のテスト、最低限のプロダクトのみに よって進められるサイクルによって得られる 本質に近づくための知識を取得できる。
67.
Bad TDD あるコミュニティにとってTDDは成功しやすい 手法かもしれないが、失敗する場合もある。 例 AdaコンパイラはTDDを採用したが、よろしく ないTDDを行ってしまって、今までにないバ グを発生させた。
68.
Why Fail TDDが難しいから? TDDでカバレッジ100%を目指したから? 自動テストの実行結果がオールグリーンのス クリーンショットをExcelにはったから? 上3つをクリアしても失敗する原因がある
69.
Why Fail TDDはコードを増やすことになっている。 低スキルなプログラマーが「プロダクト」だ としても「テスト」だとしても書くのは「ひ どいコード」であることには変わりない。 でも、意味の通じないドキュメントを書いて しまうことよりはずっとマシ :-p 言い換えれば、TDDで効果があがるのは、属個 人性の排除と、意味の通じないドキュメント によって生み出されるバグ予防、確認不足の 予防
70.
ご清聴ありがとうござい ました!
Download