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

SapporoRubyKaigi02 t-wada LT

Nov 28, 2014

Download

Technology

Takuto Wada

Lightning talks at Sapporo RubyKaigi 02. Dec 5, 2009
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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

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