45
そろそろ カバレッジについて 一言いっておくか アンド ・ なう 和田 卓人 (a.k.a id:t-wada or @t_wada) Dec 5, 2009 @SapporoRubyKaigi 02

SapporoRubyKaigi02 t-wada LT

Embed Size (px)

DESCRIPTION

Lightning talks at Sapporo RubyKaigi 02. Dec 5, 2009

Citation preview

Page 1: SapporoRubyKaigi02 t-wada LT

そろそろカバレッジについて一言いっておくかアンド ・ なう

和田 卓人 (a.k.a id:t-wada or @t_wada)Dec 5, 2009 @SapporoRubyKaigi 02

Page 2: SapporoRubyKaigi02 t-wada LT

& Taisho.rb

Page 3: SapporoRubyKaigi02 t-wada LT

名前 和田 卓人 (わだ たくと)

メール [email protected]

blog id:t-wada

twitter @t_wada

github twada

自己紹介

Page 4: SapporoRubyKaigi02 t-wada LT

提供 / 宣伝

Page 5: SapporoRubyKaigi02 t-wada LT

よろしくおねがいします

Page 6: SapporoRubyKaigi02 t-wada LT

RubyConf09

Page 7: SapporoRubyKaigi02 t-wada LT

Orthodoxy

Page 8: SapporoRubyKaigi02 t-wada LT
Page 9: SapporoRubyKaigi02 t-wada LT

Agenda

Page 10: SapporoRubyKaigi02 t-wada LT

1. TDDを殺すもの2. たちむかう3. 展望4. (可能なら)デモ

Page 11: SapporoRubyKaigi02 t-wada LT

注意:答えはありません

Page 12: SapporoRubyKaigi02 t-wada LT

1. TDDを殺すもの2. たちむかう3. 展望4. (可能なら)デモ

Page 13: SapporoRubyKaigi02 t-wada LT

Slow Tests

Page 14: SapporoRubyKaigi02 t-wada LT

TDDと黄金の回転

きれい

汚い

(すぐには)動かない 動作する

Red

Green

Refactoring

Page 15: SapporoRubyKaigi02 t-wada LT

回転速度が落ちたら…

Page 16: SapporoRubyKaigi02 t-wada LT

緩やかな死

Page 17: SapporoRubyKaigi02 t-wada LT

1. TDDを殺すもの2. たちむかう3. 展望4. (可能なら)デモ

Page 18: SapporoRubyKaigi02 t-wada LT
Page 19: SapporoRubyKaigi02 t-wada LT

Slow Tests の原因1. DB 等を使っている2. 一般的すぎるフィクスチャ3. 非同期テスト4. テストが多すぎる

1,2,3 は別の機会に

Page 20: SapporoRubyKaigi02 t-wada LT

増え続けるテストと戦わなければならない

Page 21: SapporoRubyKaigi02 t-wada LT

一度に実行するテストを減らす

Page 22: SapporoRubyKaigi02 t-wada LT

Sub Suite自前でサブセット

をつくる

Page 23: SapporoRubyKaigi02 t-wada LT

taggingcategorizationannotation

Page 24: SapporoRubyKaigi02 t-wada LT

RSpec 2.0

Page 25: SapporoRubyKaigi02 t-wada LT

テストの数自体を減らす

Page 26: SapporoRubyKaigi02 t-wada LT

展望へ

Page 27: SapporoRubyKaigi02 t-wada LT
Page 28: SapporoRubyKaigi02 t-wada LT

1. TDDを殺すもの2. たちむかう3. 展望4. (可能なら)デモ

Page 29: SapporoRubyKaigi02 t-wada LT

テストはモレなく、ダブりなく

重複したテストの検知

Page 30: SapporoRubyKaigi02 t-wada LT

テストとコードの関係を明らかにする

Page 31: SapporoRubyKaigi02 t-wada LT

そこでカバレッジ

Page 32: SapporoRubyKaigi02 t-wada LT

しかし…これまでのカバレッジ= 管理的な側面が強い

Page 33: SapporoRubyKaigi02 t-wada LT

俺たちのためのカバレッジが必要なんだよ!!

Page 34: SapporoRubyKaigi02 t-wada LT

提案 :micro

coverage

Page 35: SapporoRubyKaigi02 t-wada LT

これまでのカバレッジ= コードベース全体で

測定

Page 36: SapporoRubyKaigi02 t-wada LT

micro coverage =小さい単位でのカバレッジ測定

Page 37: SapporoRubyKaigi02 t-wada LT

リファクタリングを後押しするカバレッジ

Page 38: SapporoRubyKaigi02 t-wada LT

産学共同研究

Page 39: SapporoRubyKaigi02 t-wada LT

カバレッジに基づく重複テスト解析

Page 40: SapporoRubyKaigi02 t-wada LT

乞うご期待

Page 41: SapporoRubyKaigi02 t-wada LT
Page 42: SapporoRubyKaigi02 t-wada LT

1. TDDを殺すもの2. たちむかう3. 展望4. (可能なら)デモ

Page 43: SapporoRubyKaigi02 t-wada LT

ruby1.9coverage.so

Page 44: SapporoRubyKaigi02 t-wada LT

require "coverage"Coverage.startrequire "foo"p Coverage.result# => {"foo.rb"=>[1, 1, 10, nil, nil, 1, 1]}

Page 45: SapporoRubyKaigi02 t-wada LT

ご清聴ありがとうございました