Submit Search
Upload
テストファースト、自動テストを導入するという事について(@社内勉強会)
•
59 likes
•
11,841 views
kyon mm
Follow
社内勉強会で「テストファーストを導入するということ」について講演しました。 社外にも公開出来るように一部改変したスライドになります。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 40
Download now
Download to read offline
Recommended
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jp
kyon mm
詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasst
kyon mm
自動テストの誤解とアンチパターン in 楽天 Tech Talk
自動テストの誤解とアンチパターン in 楽天 Tech Talk
kyon mm
Kaizen process with test #hackt
Kaizen process with test #hackt
kyon mm
ザ・ジェネラリスト #5000dai
ザ・ジェネラリスト #5000dai
kyon mm
テストエンジニアの品格 #automatornight
テストエンジニアの品格 #automatornight
kyon mm
CodeZineAcademy TDD実践講座PR資料
CodeZineAcademy TDD実践講座PR資料
Yasui Tsutomu
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア
SHIFT Inc.
Recommended
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jp
kyon mm
詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasst
kyon mm
自動テストの誤解とアンチパターン in 楽天 Tech Talk
自動テストの誤解とアンチパターン in 楽天 Tech Talk
kyon mm
Kaizen process with test #hackt
Kaizen process with test #hackt
kyon mm
ザ・ジェネラリスト #5000dai
ザ・ジェネラリスト #5000dai
kyon mm
テストエンジニアの品格 #automatornight
テストエンジニアの品格 #automatornight
kyon mm
CodeZineAcademy TDD実践講座PR資料
CodeZineAcademy TDD実践講座PR資料
Yasui Tsutomu
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア
SHIFT Inc.
TDDはじめる前に
TDDはじめる前に
Yasui Tsutomu
Sta introduction in_kyoto #devkan
Sta introduction in_kyoto #devkan
kyon mm
テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門
Satoshi Watanabe
いいテスト会 (スプリントレビュー) をやろう!
いいテスト会 (スプリントレビュー) をやろう!
虎の穴 開発室
テストスキルを測ってみよう
テストスキルを測ってみよう
Akira Ikeda
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
Takuto Wada
Hey It's Not My TDD!
Hey It's Not My TDD!
Yasui Tsutomu
Tddのすゝめ
Tddのすゝめ
将 高野
WebサービスのソフトウェアQAと自動テスト戦略
WebサービスのソフトウェアQAと自動テスト戦略
Masaki Nakagawa
テストを分類してみよう!
テストを分類してみよう!
Kenji Okumura
Sue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hack
Go Sueyoshi (a.k.a sue445)
レガシーコードとの付き合い方とテストでの話
レガシーコードとの付き合い方とテストでの話
H Iseri
ソフトウェアテスト入門
ソフトウェアテスト入門
Preferred Networks
Fitnesse を用いたテストの効率化について
Fitnesse を用いたテストの効率化について
tecopark
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
kyon mm
ソフトウェアテストことはじめ2016年ver
ソフトウェアテストことはじめ2016年ver
Kosuke Fujisawa
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
Yahoo!デベロッパーネットワーク
JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?
Teppei Sato
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-
崇 山﨑
失敗から学ぶ?、教科書には書いてあるけど、現場でしか学べないこと.pdf
失敗から学ぶ?、教科書には書いてあるけど、現場でしか学べないこと.pdf
Rakuten Commerce Tech (Rakuten Group, Inc.)
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
Shuji Watanabe
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン
kyon mm
More Related Content
What's hot
TDDはじめる前に
TDDはじめる前に
Yasui Tsutomu
Sta introduction in_kyoto #devkan
Sta introduction in_kyoto #devkan
kyon mm
テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門
Satoshi Watanabe
いいテスト会 (スプリントレビュー) をやろう!
いいテスト会 (スプリントレビュー) をやろう!
虎の穴 開発室
テストスキルを測ってみよう
テストスキルを測ってみよう
Akira Ikeda
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
Takuto Wada
Hey It's Not My TDD!
Hey It's Not My TDD!
Yasui Tsutomu
Tddのすゝめ
Tddのすゝめ
将 高野
WebサービスのソフトウェアQAと自動テスト戦略
WebサービスのソフトウェアQAと自動テスト戦略
Masaki Nakagawa
テストを分類してみよう!
テストを分類してみよう!
Kenji Okumura
Sue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hack
Go Sueyoshi (a.k.a sue445)
レガシーコードとの付き合い方とテストでの話
レガシーコードとの付き合い方とテストでの話
H Iseri
ソフトウェアテスト入門
ソフトウェアテスト入門
Preferred Networks
Fitnesse を用いたテストの効率化について
Fitnesse を用いたテストの効率化について
tecopark
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
kyon mm
ソフトウェアテストことはじめ2016年ver
ソフトウェアテストことはじめ2016年ver
Kosuke Fujisawa
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
Yahoo!デベロッパーネットワーク
JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?
Teppei Sato
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-
崇 山﨑
What's hot
(19)
TDDはじめる前に
TDDはじめる前に
Sta introduction in_kyoto #devkan
Sta introduction in_kyoto #devkan
テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門
いいテスト会 (スプリントレビュー) をやろう!
いいテスト会 (スプリントレビュー) をやろう!
テストスキルを測ってみよう
テストスキルを測ってみよう
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
Hey It's Not My TDD!
Hey It's Not My TDD!
Tddのすゝめ
Tddのすゝめ
WebサービスのソフトウェアQAと自動テスト戦略
WebサービスのソフトウェアQAと自動テスト戦略
テストを分類してみよう!
テストを分類してみよう!
Sue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hack
レガシーコードとの付き合い方とテストでの話
レガシーコードとの付き合い方とテストでの話
ソフトウェアテスト入門
ソフトウェアテスト入門
Fitnesse を用いたテストの効率化について
Fitnesse を用いたテストの効率化について
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
ソフトウェアテストことはじめ2016年ver
ソフトウェアテストことはじめ2016年ver
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-
Similar to テストファースト、自動テストを導入するという事について(@社内勉強会)
失敗から学ぶ?、教科書には書いてあるけど、現場でしか学べないこと.pdf
失敗から学ぶ?、教科書には書いてあるけど、現場でしか学べないこと.pdf
Rakuten Commerce Tech (Rakuten Group, Inc.)
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
Shuji Watanabe
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン
kyon mm
Nds#24 単体テスト
Nds#24 単体テスト
Kazumune Katagiri
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
Makoto Iguchi
アジャイル×テスト開発を考える
アジャイル×テスト開発を考える
yasuohosotani
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeploy
Ryutaro YOSHIBA
第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナー
Tomoyuki Sato
JaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組み
JaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組み
Hideki Sugimoto
ありえるえりあ勉強会@五反田~テスト編~ Part2
ありえるえりあ勉強会@五反田~テスト編~ Part2
Tomoyuki Sato
アジャイルなテストの見積もりと計画作り
アジャイルなテストの見積もりと計画作り
kyon mm
ITS fidel
ITS fidel
Fidel Softech P. Ltd
「最強」のチームを「造る」技術基盤 ディレクターズ・カット
「最強」のチームを「造る」技術基盤 ディレクターズ・カット
Rakuten Group, Inc.
CruiseControl.NET設置
CruiseControl.NET設置
Kuniaki Igarashi
Continuous delivery chapter4
Continuous delivery chapter4
favril1
第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ
hakoika-itwg
はこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テスト
Seiji KOMATSU
Introduction to Continuous Testing
Introduction to Continuous Testing
Atsuhiro Kubo
タイムボックス制約付きインクリメンタル開発
タイムボックス制約付きインクリメンタル開発
HIDEKAZU MATSUURA
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
智治 長沢
Similar to テストファースト、自動テストを導入するという事について(@社内勉強会)
(20)
失敗から学ぶ?、教科書には書いてあるけど、現場でしか学べないこと.pdf
失敗から学ぶ?、教科書には書いてあるけど、現場でしか学べないこと.pdf
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン
Nds#24 単体テスト
Nds#24 単体テスト
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
アジャイル×テスト開発を考える
アジャイル×テスト開発を考える
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeploy
第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナー
JaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組み
JaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組み
ありえるえりあ勉強会@五反田~テスト編~ Part2
ありえるえりあ勉強会@五反田~テスト編~ Part2
アジャイルなテストの見積もりと計画作り
アジャイルなテストの見積もりと計画作り
ITS fidel
ITS fidel
「最強」のチームを「造る」技術基盤 ディレクターズ・カット
「最強」のチームを「造る」技術基盤 ディレクターズ・カット
CruiseControl.NET設置
CruiseControl.NET設置
Continuous delivery chapter4
Continuous delivery chapter4
第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ
はこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テスト
Introduction to Continuous Testing
Introduction to Continuous Testing
タイムボックス制約付きインクリメンタル開発
タイムボックス制約付きインクリメンタル開発
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
More from kyon mm
Scrum,Test,Metrics #sgt2016
Scrum,Test,Metrics #sgt2016
kyon mm
ICST2015 GUI Testingの紹介 #SIGSTJ
ICST2015 GUI Testingの紹介 #SIGSTJ
kyon mm
焦らず急いでの意味
焦らず急いでの意味
kyon mm
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
kyon mm
Gradle 2.2, 2.3 news #jggug
Gradle 2.2, 2.3 news #jggug
kyon mm
Groovyで学ぶプロセス代数 #jjug
Groovyで学ぶプロセス代数 #jjug
kyon mm
@kyon_mmの書籍の読み方 #AsianAA
@kyon_mmの書籍の読み方 #AsianAA
kyon mm
JenkinsとGitで実装するGatewayCheckIn Pattern #AsianAA
JenkinsとGitで実装するGatewayCheckIn Pattern #AsianAA
kyon mm
GradleのREPLプラグイン紹介 #jggug
GradleのREPLプラグイン紹介 #jggug
kyon mm
契る意味 #pykonjp2014
契る意味 #pykonjp2014
kyon mm
いつでも聞けるTDD入門 #TDDBC_NAGOYA
いつでも聞けるTDD入門 #TDDBC_NAGOYA
kyon mm
Test Retrospective #kyon_kao_wedding in Tokyo
Test Retrospective #kyon_kao_wedding in Tokyo
kyon mm
ソフトウェア開発を勉強し始めて3年間でやったこと~After~ #devsumi
ソフトウェア開発を勉強し始めて3年間でやったこと~After~ #devsumi
kyon mm
TDDの自殺 #TDDeX
TDDの自殺 #TDDeX
kyon mm
UnitTestは最もTDDしやすいか否か? #TDDMeetUp
UnitTestは最もTDDしやすいか否か? #TDDMeetUp
kyon mm
Cafetesting12
Cafetesting12
kyon mm
The History of Groovy #GroovyBase
The History of Groovy #GroovyBase
kyon mm
#NagoyaTesting アジャイルなテストの見積りと計画づくり
#NagoyaTesting アジャイルなテストの見積りと計画づくり
kyon mm
EmitJSの環境をちょこっと調べた
EmitJSの環境をちょこっと調べた
kyon mm
Veracity -次世代DVCSとは俺の事だ-
Veracity -次世代DVCSとは俺の事だ-
kyon mm
More from kyon mm
(20)
Scrum,Test,Metrics #sgt2016
Scrum,Test,Metrics #sgt2016
ICST2015 GUI Testingの紹介 #SIGSTJ
ICST2015 GUI Testingの紹介 #SIGSTJ
焦らず急いでの意味
焦らず急いでの意味
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
Gradle 2.2, 2.3 news #jggug
Gradle 2.2, 2.3 news #jggug
Groovyで学ぶプロセス代数 #jjug
Groovyで学ぶプロセス代数 #jjug
@kyon_mmの書籍の読み方 #AsianAA
@kyon_mmの書籍の読み方 #AsianAA
JenkinsとGitで実装するGatewayCheckIn Pattern #AsianAA
JenkinsとGitで実装するGatewayCheckIn Pattern #AsianAA
GradleのREPLプラグイン紹介 #jggug
GradleのREPLプラグイン紹介 #jggug
契る意味 #pykonjp2014
契る意味 #pykonjp2014
いつでも聞けるTDD入門 #TDDBC_NAGOYA
いつでも聞けるTDD入門 #TDDBC_NAGOYA
Test Retrospective #kyon_kao_wedding in Tokyo
Test Retrospective #kyon_kao_wedding in Tokyo
ソフトウェア開発を勉強し始めて3年間でやったこと~After~ #devsumi
ソフトウェア開発を勉強し始めて3年間でやったこと~After~ #devsumi
TDDの自殺 #TDDeX
TDDの自殺 #TDDeX
UnitTestは最もTDDしやすいか否か? #TDDMeetUp
UnitTestは最もTDDしやすいか否か? #TDDMeetUp
Cafetesting12
Cafetesting12
The History of Groovy #GroovyBase
The History of Groovy #GroovyBase
#NagoyaTesting アジャイルなテストの見積りと計画づくり
#NagoyaTesting アジャイルなテストの見積りと計画づくり
EmitJSの環境をちょこっと調べた
EmitJSの環境をちょこっと調べた
Veracity -次世代DVCSとは俺の事だ-
Veracity -次世代DVCSとは俺の事だ-
Recently uploaded
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
Recently uploaded
(9)
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
テストファースト、自動テストを導入するという事について(@社内勉強会)
1.
Import Test First
2014/11/18 kyon_mm
2.
Self Introduction kyon_mm
Test Architect TDD/BDD Expert 27 years old.
3.
Agenda Test First
Test Level Judgement Conclusion Reference
4.
Test Last Automation
Test Merit 社内Wiki参照
5.
Test Last 社内Wiki参照
Automation Test Merit
6.
Agenda Test First
Test Level Judgement Conclusion Reference
7.
Test First
8.
納期に間に合わなかっ たらどうしよう。。。 Complicated
… やったほうがいいのはわか るけど ベストな方法がわからな い 時間もスキルもない
9.
Important Thing 私も、bleisさんも最初から上
手にテストファーストを出来た 訳でも、奇麗なテストコードを 書けた訳でもありません。 プライベートでも業務でも、イ ンプットとアウトプットをひた すら繰り返して、試行錯誤して 少しずつ成長しました。
10.
弊社 私たちの配慮不足によって相 談しにくさもありましたが、
「テスト可能な設計」 「BDD」に関する知見に関し て、弊社は日本でも類をみな いほどのスキルを持った人に 相談出来ます。 もっと、社内全体に私やbleis さんのスキルを広めて、より よい開発に変化させていきま す。 みんなでよりよくしましょう。 (お互いに能動的になろう
11.
Step By Step
常に検討する(やってから悩め) 出来るところから始める やってはいけないことを守る
12.
RDBなどの情報 をもとにした、 複雑な条件分
岐や繰り返し HTTPヘッダで 条件分岐して、 XMLをパースし て、 内容で条件分 岐して、 RDBにアクセス して、 XMLを返す For Example 内容を条件分岐するところだけで もテストファーストでやる
13.
RDBなどの情報 をもとにした、 複雑な条件分
岐や繰り返し HTTPヘッダで 条件分岐して、 XMLをパースし て、 内容で条件分 岐して、 RDBにアクセス して、 XMLを返す For Example 大まかな条件をまずはテストコー ドのパラメタライズとして表現し てみる
14.
Mikado-Method テストファーストできない!そ う思ったときは、Mikado-Method
の出番です。 テストコードを書く難しさは、 スキルと同じかそれ以上に、課 題の定義や分析が不十分である ことが上げられます。 それをサポートする「開発者用 課題発見および管理手法」です。
15.
Test First 常に「まずは挑戦する」
バランス感、スキル、リスク分 析、戦略、レビュー、見積もり など 有識者と協力する。 Test Firstを選択肢にいれな いっていうのは、恥ずかしい事 です。
16.
First Step 1.
「テンプレートがあればテス トコード書ける」 2. 「テンプレートなしでテスト コードを書く」 3. 「テンプレートなしでほとん どのコードをテストファース トする」
17.
Second Step(一人前) 1.
「奇麗なテストコードを心が ける」 2. 「いろんなテストをテストコー ドにする」 3. 「いろんなテストでテスト ファーストする」
18.
Third Step 1.
真面目にテスト設計を取り入 れたテストコードにする 2. テスト周辺のライブラリやツー ルなどをカスタマイズ、自作 する 3. kyon_mmと殴り合う
19.
Agenda Test First
Test Level Judgement Conclusion Reference
20.
Test Level
21.
コンポーネント 統合 システム
受け入れ ユニット インテグレーション システム Test Level テストを実行するときに動作 させる「プロダクトの範囲」 や「担当する責務の範囲」を 基準に テストを分割する方法 分割したテストの総称
22.
単体テスト 結合テスト Our
Unit Test アプリケーションの提供する クラスやメソッドといった API(内部API)を呼出し、 想定した事象が起こるかどう か(期待した戻り値が返ってく るかなど)を確認するテスト
23.
単体テスト 内部APIを呼び出すことなくシ ステムを実際に使用し、
想定した事象が起こるかどう か(正しいレスポンスが返って くるかや、DBの状態が正しい かなど)を確認するテストを結 合テストと定義する。 結合テスト Our Integration Test
24.
Difficulty Unit Test
「自分が作りにくいデータ構造」をどう やって切り離すか。 HTTP, RDB, ファイル, 時刻 異常系をどうやって起こすか。 例外発生時の挙動は正しいか どんなテストを書けばいいのか? 書く必要があるのか?書かないとダメ なやつは何か?
25.
From My Experience
「今までUnit Testでテストファー スト」していない人に関して(自信 も含めて)経験論で言えば 「手間を惜しんでいる」「やり方を 変えたくない」「怠惰」なだけ。 それ以外には存在しない。 常にそうやってがんばることで、品 質と進捗に貢献出来る。
26.
Data Structure 「ユニットテスタビリティが高い」と言うため
の1つの指標が「自分たちがつくっていないデー タ構造と切り離してテストできているか」にな ります。 「テストに必要な分だけのデータ」をつくれる ようにする。 抽象クラスやインターフェース経由 データ構造を「ドメイン」や「テストしたい 単位」に詰め替える(BDDをすると自然にだい たい一緒になる)
27.
Error Path 大抵の例外発生は結合テスト環境で動作させる
のは難しい。単体テストの段階で例外をわざと 起こしたテストをするのは大切です。 例外に対処していること、異常なデータを受け 取ったときの挙動は保証されているのか? スタブやアダプタクラスをつかって、異常系 を発生させる。 「そのテストは一部が本物のコードじゃない ですよね?」→「テストしていないコードと どっちが信頼高いんですか?」「テスト対象 が違う」
28.
Which Test 意味のあるテストを書く事は大切です。また、
テストコードは「ラフスケッチのように使う」 こともあります。 正しくいろんなAPIを呼び出せている事を確認 するために書きます。そして、テスト対象の 振る舞いがテストファーストによって様々な コードによって網羅されれば、最初のテスト コードは不要になります。削除します。 「リリースに必要なコード」と「そのときに必 要なコード」は一致しません。だからといって、 「そのときに必要なコード」を実装しないこと は品質と進捗に悪影響を及ぼします。つまり、 手抜きです。
29.
Which Test まず、いわゆる最初に目指すべき自動テストと
しては次の2つのためにテストケースを選択し てください。 「どのようなソフトウェアを実装しようとし ているかを表現する」(定義するため) 「ソフトウェアが仕様に沿っているかを表現 する」(開発と詳細な仕様化のため)
30.
Agenda Test First
Test Level Judgement Conclusion Reference
31.
Judgement
32.
単体テスト 結合テスト テストファースト
テストラスト 機能性 構成 保守性 Judgement とは言っても、どのような自 動テストを導入するのか、し ないのか? しないときに、どうすればい いのか?
33.
単体テストのテスト ファースト Not
Import Unit Test テストファーストしなくても、 ほとんどバグが出ないし、デ バッグしやすいコードを書け る 結合テストの自動化 例) FizzBuzzなら単体テスト からではなく、結合テストか らやる。
34.
単体テストのテスト ファースト 複数の人がその同じテストを
頻繁に(1日に10回以上)繰り 返すことが出来る 自動化する事がそもそも難し すぎる(ツールやAPIが用意さ れていない、副作用が大きす ぎる 結合テストの自動化 Not Import Integration Test
35.
Agenda Test First
Test Level Judgement Conclusion Reference
36.
Conclusion
37.
テストファーストを しないのは毒を飲み 続けること。
忘れがちだけど大切 な習慣 Conclusion テスト自動化はつらい。だけ ど、やらないと更につらいだ けだ。 勘に頼った成果物は出さない というプロ意識。 普段からやらないと急になん て出来ません。
38.
Agenda Test First
Test Level Judgement Conclusion Reference
39.
Reference
40.
Reference(Wiki) 「テストはあとで書く」について テストを書くメリット
テストを考えた設計 テストレベル入門
Download now