Your SlideShare is downloading. ×
0
テストを書くのが
嫌いな君へ
#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 が許容しないこ
とへの対応だが、選択可能にしたい
...
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!
Upcoming SlideShare
Loading in...5
×

テストを書くのが嫌いな君へ #m3dev

1,985

Published on

テストコード自動生成ツールに関する紹介です

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,985
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
3
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Transcript of "テストを書くのが嫌いな君へ #m3dev"

  1. 1. テストを書くのが 嫌いな君へ #m3dev Kazuhiro Sera @seratch
  2. 2. - テスタビリティが考慮されていないものをメンテ している(例:SerlvetFilter、生 jsp、生 PHP、 CGI・・) - ユニットテスト≠ QA、全体の工数が増えるだけ (という近視眼的な考え方) - 書き捨てのスクリプトまで書くの? - この辺の話題は今日はスコープ外 なぜテストを書かないのか?
  3. 3. それだけじゃない - 心理的障壁(ぶっちゃけ面倒)、〆切 - コーディング量は、開発するコードよりテスト コードの方が多くなる - 普段からテストコードを書いていないと、いざと いうとき、テストを効率的に書けない - だから書かない?
  4. 4. ◯◯書くの面倒・・ - 「Java 書くの面倒・・」 “Java は半分以上 IDE に書かせる言語 です(キリッ” - 「テストコード書くの面倒・・」 “テストコードは・・・”
  5. 5. “テストコードも ツールに書かせればいい” (ある程度までは) FA
  6. 6. - 全てを書かせることはできない、あくまでひな 形レベルまで - 「何をテストしたいか」は「何をやりたいか」に よって決まる、人間にしかわからない - とはいえ、テストコードはボイラープレートの 嵐、自動生成に向いている 自動化はできない
  7. 7. Eclipse プラグイン、Maven プラグイン、sh、bat スクリプト http://junithelper.org/ JUnit Helper (Java)
  8. 8. Eclipse プラグイン、Maven プラグインを使った デモをします Demo
  9. 9. - getter/setter 無視、型毎に引数宣言・パターン 網羅をカスタマイズ可能 - モックを使ったひな形(Mockito、JMock、 EasyMock、JMockit) - テストを一つも書いてないメソッドを自動検出し てテストを書くことを強制する - テストが足りなかったら追記してくれる 良いところ
  10. 10. - メソッドに対してテストを書いている →API 設計が適切ならそれ自体は有効、もちろ んこれだけで十分ではない - typeという無益なテストメソッド →テスト 0 件のクラスを JUnit が許容しないこ とへの対応だが、選択可能にしたい - テストメソッドの名前が独特すぎる →細かくカスタマイズできる - IntelliJ IDEA のプラグインがない →そのうち作りたい・・ 悪いところ
  11. 11. rspec-kickstarter (Ruby)
  12. 12. - gem install rspec-kickstarter - rspec-kickstarter というスクリプトにパスが通 ります - rspec-kickstarter -h 参照 スクリプトつきの RubyGem です
  13. 13. 実際に社内のプロジェクトに rspec-kickstarter を実行してみる・・・ Demo
  14. 14. - public なメソッドに対して一つ以上のテストを 書かせる - Rails モードで実行すると Rails の事情に合わ せたテストコードが生成される(現状は controller、helper のみ) - ERB のテンプレートを差し替え可能 良いところ
  15. 15. - ERB カスタマイズの仕方が微妙 →もう少しよい形を提供したいとは思っていま す、プラグイン機構とか - Rails 連携が弱い →プラグイン機構ができれば、もっとリッチな対 応を 3rd party でつくれるはず 悪いところ
  16. 16. - 自動生成で労力が減らせます - TODO つきのテストコードを目の前にすると ちゃんと書き換えたい衝動が湧いてきて「テスト 書くモード」に切り替えやすいです - 使ってみてフィードバックがあればお気軽にど うぞ Happy Testing!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×