SapporoRubyKaigi02 t-wada LT

Preview:

DESCRIPTION

Lightning talks at Sapporo RubyKaigi 02. Dec 5, 2009

Citation preview

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

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

& Taisho.rb

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

メール takuto.wada@gmail.com

blog id:t-wada

twitter @t_wada

github twada

自己紹介

提供 / 宣伝

よろしくおねがいします

RubyConf09

Orthodoxy

Agenda

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

注意:答えはありません

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

Slow Tests

TDDと黄金の回転

きれい

汚い

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

Red

Green

Refactoring

回転速度が落ちたら…

緩やかな死

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

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

1,2,3 は別の機会に

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

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

Sub Suite自前でサブセット

をつくる

taggingcategorizationannotation

RSpec 2.0

テストの数自体を減らす

展望へ

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

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

重複したテストの検知

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

そこでカバレッジ

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

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

提案 :micro

coverage

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

測定

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

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

産学共同研究

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

乞うご期待

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

ruby1.9coverage.so

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

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

Recommended