Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
テストを書くのが嫌いな君へ #m3dev
Search
Kazuhiro Sera
August 30, 2013
Programming
220
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
テストを書くのが嫌いな君へ #m3dev
テストコード自動生成ツールの紹介です。
Kazuhiro Sera
August 30, 2013
More Decks by Kazuhiro Sera
See All by Kazuhiro Sera
5 tips to build long-lasting Scala OSS (cont’d)
seratch
0
170
5 tips to build long-lasting Scala OSS
seratch
1
260
ScalikeJDBC / Skinny ORM Beginners' Guide
seratch
5
140k
All I learned while working on a Scala OSS project for over six years #ScalaMatsuri
seratch
1
970
What I learned by creating 'Scala on Rails' #trbmeetup
seratch
0
260
Scala on Rails @ Scalae by the Bay 2016 #scalae
seratch
1
1.1k
Contributing to Scala OSS from East Asia #ScalaMatsuri
seratch
0
1.2k
Skinny 2 Update
seratch
0
180
Future on Servlet #scala_ks
seratch
0
590
Other Decks in Programming
See All in Programming
Seven New Principles of Software Engineering
yegor256
0
470
複数ドメインを一つのアプリに統合するFlutterの設計と運用_FlutterKaigi2026登壇資料(須永高弘)
takahirosunaga
0
160
AI時代のTerminal環境を UNIX哲学で設計・運用する
yasunori0418
1
350
baseline으로 마이그레이션, 리팩토링 안전하게 맡기기
fornewid
1
960
React Native에 현대적인 빌드 도구 더하기: Rollipop 구현기
leegeunhyeok
0
180
Vapor Mode でアクセシビリティは 壊れないか検証した話
fuqda
1
330
Engineering Biometric UX Across Android Versions | DroidKnights 2026
ryunen344
1
190
Event is what happens
moro
2
4k
DroidKnights 2026 Android A2UI Jetpack Compose 기반의 안전한 AI UI 렌더링 - 박제창
itsmedreamwalker
1
210
Kawaiicon: Kubernetes, it's no longer cool, but let's secure it anyway!
barnbarn
0
130
React Native経験者が Flutterを30⽇間触って驚いたこと
3saito
0
160
高橋メソッドでCVE解説シリーズ 〜CVE-2026-112816〜
hakkadaikon
0
230
Featured
See All Featured
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
760
The World Runs on Bad Software
bkeepers
PRO
72
12k
Code Review Best Practice
trishagee
74
20k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
60k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
440
The Curious Case for Waylosing
cassininazir
1
610
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
980
Joys of Absence: A Defence of Solitary Play
codingconduct
1
570
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
3
1.2k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2.1k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.5k
Transcript
テストを書くのが 嫌いな君へ #m3dev Kazuhiro Sera @seratch
- テスタビリティが考慮されていないものをメンテ している(例:SerlvetFilter、生 jsp、生 PHP、 CGI・・) - ユニットテスト≠ QA、全体の工数が増えるだけ (という近視眼的な考え方)
- 書き捨てのスクリプトまで書くの? - この辺の話題は今日はスコープ外 なぜテストを書かないのか?
それだけじゃない - 心理的障壁(ぶっちゃけ面倒)、〆切 - コーディング量は、開発するコードよりテスト コードの方が多くなる - 普段からテストコードを書いていないと、いざと いうとき、テストを効率的に書けない -
だから書かない?
◯◯書くの面倒・・ - 「Java 書くの面倒・・」 “Java は半分以上 IDE に書かせる言語 です(キリッ” -
「テストコード書くの面倒・・」 “テストコードは・・・”
“テストコードも ツールに書かせればいい” (ある程度までは) FA
- 全てを書かせることはできない、あくまでひな 形レベルまで - 「何をテストしたいか」は「何をやりたいか」に よって決まる、人間にしかわからない - とはいえ、テストコードはボイラープレートの 嵐、自動生成に向いている 自動化はできない
Eclipse プラグイン、Maven プラグイン、sh、bat スクリプト http://junithelper.org/ JUnit Helper (Java)
Eclipse プラグイン、Maven プラグインを使った デモをします Demo
- getter/setter 無視、型毎に引数宣言・パターン 網羅をカスタマイズ可能 - モックを使ったひな形(Mockito、JMock、 EasyMock、JMockit) - テストを一つも書いてないメソッドを自動検出し てテストを書くことを強制する
- テストが足りなかったら追記してくれる 良いところ
- メソッドに対してテストを書いている →API 設計が適切ならそれ自体は有効、もちろ んこれだけで十分ではない - typeという無益なテストメソッド →テスト 0 件のクラスを
JUnit が許容しないこ とへの対応だが、選択可能にしたい - テストメソッドの名前が独特すぎる →細かくカスタマイズできる - IntelliJ IDEA のプラグインがない →そのうち作りたい・・ 悪いところ
rspec-kickstarter (Ruby)
- gem install rspec-kickstarter - rspec-kickstarter というスクリプトにパスが通 ります - rspec-kickstarter
-h 参照 スクリプトつきの RubyGem です
実際に社内のプロジェクトに rspec-kickstarter を実行してみる・・・ Demo
- public なメソッドに対して一つ以上のテストを 書かせる - Rails モードで実行すると Rails の事情に合わ せたテストコードが生成される(現状は
controller、helper のみ) - ERB のテンプレートを差し替え可能 良いところ
- ERB カスタマイズの仕方が微妙 →もう少しよい形を提供したいとは思っていま す、プラグイン機構とか - Rails 連携が弱い →プラグイン機構ができれば、もっとリッチな対 応を
3rd party でつくれるはず 悪いところ
- 自動生成で労力が減らせます - TODO つきのテストコードを目の前にすると ちゃんと書き換えたい衝動が湧いてきて「テスト 書くモード」に切り替えやすいです - 使ってみてフィードバックがあればお気軽にど うぞ
Happy Testing!