SapporoRubyKaigi02 t-wada LT
-
Upload
takuto-wada -
Category
Technology
-
view
1.413 -
download
0
description
Transcript of SapporoRubyKaigi02 t-wada LT
![Page 1: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/1.jpg)
そろそろカバレッジについて一言いっておくかアンド ・ なう
和田 卓人 (a.k.a id:t-wada or @t_wada)Dec 5, 2009 @SapporoRubyKaigi 02
![Page 2: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/2.jpg)
& Taisho.rb
![Page 3: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/3.jpg)
名前 和田 卓人 (わだ たくと)
blog id:t-wada
twitter @t_wada
github twada
自己紹介
![Page 4: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/4.jpg)
提供 / 宣伝
![Page 5: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/5.jpg)
よろしくおねがいします
![Page 6: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/6.jpg)
RubyConf09
![Page 7: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/7.jpg)
Orthodoxy
![Page 8: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/8.jpg)
![Page 9: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/9.jpg)
Agenda
![Page 10: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/10.jpg)
1. TDDを殺すもの2. たちむかう3. 展望4. (可能なら)デモ
![Page 11: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/11.jpg)
注意:答えはありません
![Page 12: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/12.jpg)
1. TDDを殺すもの2. たちむかう3. 展望4. (可能なら)デモ
![Page 13: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/13.jpg)
Slow Tests
![Page 14: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/14.jpg)
TDDと黄金の回転
きれい
汚い
(すぐには)動かない 動作する
Red
Green
Refactoring
![Page 15: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/15.jpg)
回転速度が落ちたら…
![Page 16: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/16.jpg)
緩やかな死
![Page 17: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/17.jpg)
1. TDDを殺すもの2. たちむかう3. 展望4. (可能なら)デモ
![Page 18: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/18.jpg)
![Page 19: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/19.jpg)
Slow Tests の原因1. DB 等を使っている2. 一般的すぎるフィクスチャ3. 非同期テスト4. テストが多すぎる
1,2,3 は別の機会に
![Page 20: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/20.jpg)
増え続けるテストと戦わなければならない
![Page 21: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/21.jpg)
一度に実行するテストを減らす
![Page 22: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/22.jpg)
Sub Suite自前でサブセット
をつくる
![Page 23: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/23.jpg)
taggingcategorizationannotation
![Page 24: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/24.jpg)
RSpec 2.0
![Page 25: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/25.jpg)
テストの数自体を減らす
![Page 26: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/26.jpg)
展望へ
![Page 27: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/27.jpg)
![Page 28: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/28.jpg)
1. TDDを殺すもの2. たちむかう3. 展望4. (可能なら)デモ
![Page 29: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/29.jpg)
テストはモレなく、ダブりなく
重複したテストの検知
![Page 30: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/30.jpg)
テストとコードの関係を明らかにする
![Page 31: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/31.jpg)
そこでカバレッジ
![Page 32: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/32.jpg)
しかし…これまでのカバレッジ= 管理的な側面が強い
![Page 33: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/33.jpg)
俺たちのためのカバレッジが必要なんだよ!!
![Page 34: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/34.jpg)
提案 :micro
coverage
![Page 35: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/35.jpg)
これまでのカバレッジ= コードベース全体で
測定
![Page 36: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/36.jpg)
micro coverage =小さい単位でのカバレッジ測定
![Page 37: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/37.jpg)
リファクタリングを後押しするカバレッジ
![Page 38: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/38.jpg)
産学共同研究
![Page 39: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/39.jpg)
カバレッジに基づく重複テスト解析
![Page 40: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/40.jpg)
乞うご期待
![Page 41: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/41.jpg)
![Page 42: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/42.jpg)
1. TDDを殺すもの2. たちむかう3. 展望4. (可能なら)デモ
![Page 43: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/43.jpg)
ruby1.9coverage.so
![Page 44: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/44.jpg)
require "coverage"Coverage.startrequire "foo"p Coverage.result# => {"foo.rb"=>[1, 1, 10, nil, nil, 1, 1]}
![Page 45: SapporoRubyKaigi02 t-wada LT](https://reader033.fdocuments.in/reader033/viewer/2022051514/548129a9b4af9fef158b5f9c/html5/thumbnails/45.jpg)
ご清聴ありがとうございました