Ruby Hiroba Lightning Talk
How Many Tests?
2013年6月2日
Martin J. DÜRST
duerst@it.aoyama.ac.jp
Aoyama Gakuin
University
© 2013 Martin J.
Dürst, Aoyama Gakuin University
自己紹介
- スイス出身
- 青山学院大学理工学部情報テクノロジー学科
- Ruby 大好き、Ruby Core Committer
- 授業で Ruby を疑似コードとして使用
- 演習のために Rails アプリを開発・運用
- PPT 等使わない人間 (HTML/CSS で十分)
- Facebook/Twitter/Google+ 等なし
発表の目的
テストのアサーションは何個ありますか?
- 5 個以上
- 50 個以上
- 500 個以上
- 5'000 個以上
- 50'000 個以上
- 500'000 個以上
テストの数
526918 assertions
何を作ったか?
- ユニコード正規化 (NFC/NFKC/NFD/NFKD)
- か゛↔が、㍍↔メートル、u ̈↔ü
- Ruby で一番早い実装を!
- 野島 歩 (2013年三月修士修了) と共同
テストの数の要点
- 簡単にテストできるものを選ぶ
- テストデータが存在するものを選ぶ
(www.unicode.org)
- テストの加速
なぜテストの加速?
- テストが早いと開発が早い
- 実装が早いとテストが早い
テストの速さ
- 500'000 秒以下
- 50'000 秒以下
- 5'000 秒以下
- 500 秒以下
- 50 秒以下
- 5 秒以下
→ デモ (4.5秒強)
テストの加速
ソースの断片
if @@debug
assert_equal a, b, "... #{a} ... #{b} ..."
else
assert_equal a, b
end
実際に半分の時間で終了
もっといい方法があれば教えて下さい
結論
- どんどんテストしましょう
- テストは多くて速い方がいい
- ユニコード正規化は近いうちに公開