大江戸Ruby会議01 高速なテストサイクルを回すには

Yuichi Tateno
Yuichi TatenoCTO at Cookpad Inc.
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
大江戸Ruby会議01 高速なテストサイクルを回すには
1 of 59

Recommended

継続的インテグレーション - Ruby勉強会@札幌-18 by
継続的インテグレーション - Ruby勉強会@札幌-18継続的インテグレーション - Ruby勉強会@札幌-18
継続的インテグレーション - Ruby勉強会@札幌-18Yuichi Tateno
4.1K views46 slides
さいきんの JavaScript テスト / Test.js - Shibuya.js 発表資料 by
さいきんの JavaScript テスト / Test.js - Shibuya.js 発表資料さいきんの JavaScript テスト / Test.js - Shibuya.js 発表資料
さいきんの JavaScript テスト / Test.js - Shibuya.js 発表資料Yuichi Tateno
5.2K views76 slides
クックパッドの開発プロセス by
クックパッドの開発プロセスクックパッドの開発プロセス
クックパッドの開発プロセスHiroyuki Inoue
15.2K views34 slides
分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司 by
分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司
分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司schoowebcampus
274.5K views46 slides
fluentd を利用した大規模ウェブサービスのロギング by
fluentd を利用した大規模ウェブサービスのロギングfluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギングYuichi Tateno
27.2K views50 slides
Ruby を利用した大規模ウェブサービスの開発・運用 by
Ruby を利用した大規模ウェブサービスの開発・運用Ruby を利用した大規模ウェブサービスの開発・運用
Ruby を利用した大規模ウェブサービスの開発・運用Yuichi Tateno
7.8K views120 slides

More Related Content

Featured

ChatGPT and the Future of Work - Clark Boyd by
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
26.2K views69 slides
Getting into the tech field. what next by
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
6.3K views22 slides
Google's Just Not That Into You: Understanding Core Updates & Search Intent by
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
6.7K views99 slides
How to have difficult conversations by
How to have difficult conversations How to have difficult conversations
How to have difficult conversations Rajiv Jayarajah, MAppComm, ACC
5.4K views19 slides
Introduction to Data Science by
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data ScienceChristy Abraham Joy
82.5K views51 slides
Time Management & Productivity - Best Practices by
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
169.8K views42 slides

Featured(20)

ChatGPT and the Future of Work - Clark Boyd by Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd26.2K views
Getting into the tech field. what next by Tessa Mero
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
Tessa Mero6.3K views
Google's Just Not That Into You: Understanding Core Updates & Search Intent by Lily Ray
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray6.7K views
Time Management & Productivity - Best Practices by Vit Horky
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
Vit Horky169.8K views
The six step guide to practical project management by MindGenius
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
MindGenius36.7K views
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright... by RachelPearson36
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson3612.7K views
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present... by Applitools
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Applitools55.5K views
12 Ways to Increase Your Influence at Work by GetSmarter
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
GetSmarter401.7K views
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G... by DevGAMM Conference
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
DevGAMM Conference3.6K views
Barbie - Brand Strategy Presentation by Erica Santiago
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
Erica Santiago25.1K views
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well by Saba Software
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Saba Software25.3K views
Introduction to C Programming Language by Simplilearn
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming Language
Simplilearn8.4K views
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr... by Palo Alto Software
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...
Palo Alto Software88.4K views
9 Tips for a Work-free Vacation by Weekdone.com
9 Tips for a Work-free Vacation9 Tips for a Work-free Vacation
9 Tips for a Work-free Vacation
Weekdone.com7.2K views
How to Map Your Future by SlideShop.com
How to Map Your FutureHow to Map Your Future
How to Map Your Future
SlideShop.com275.1K views

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. テスト時間は早ければ早いにこしたことはない。全部のテスト通すの遅いとやらなくなりがち\n
  8. 1テストと、全テスト実行・主に二つに分けられる\n
  9. ソリューションはいくつかありますがこんなものがあります なんでこんなのがあるかというと巨大なフレームワーク rails とかは実行コスト高いから\n
  10. rails などは初期化コストが高いため、そのコストを削ることで高速化\n
  11. 初期化処理=Railsでいうboot.rbの読み込み=必須ライブラリ等の読み込み\n
  12. prefetch-rspec は自分自身を立ち上げ直してる。実際にテスト実行後すぐにコードを書き直して実行することは少ない(すくなくとも数秒かかる)ので、その空き時間を利用\n
  13. テストを実行して結果を知るフィードバックの高速化\n
  14. 明示的に「テストを実行」しなくてもゼロコストで実行\n
  15. \n
  16. \n
  17. \n
  18. \n
  19. autotest はイレギュラーなことをやろうと思うとソース読んだりで面倒。watchr はまんま ruby でなんでもできる。この辺は好き嫌い。\n
  20. \n
  21. \n
  22. クックパッドの事例\n
  23. \n
  24. テスト16分が遅いかどうか感じるのは日とそれぞれかも知れませんが\n
  25. Cookpad ではどんどんエンジニアが増えていき、書かれてない箇所のコードはspecを追加して云ってるのでテストの実行時間は右肩上がり(ここも見直す必要があるかも知れないけど、テストが遅くなるから必要なspecを書かなくなるのは全く持って良くない)\n
  26. ちなみにCIが通ってないともちろんデプロイ自体できない仕組みになってるので、他チームに大きく迷惑が\n
  27. ちなみにCIが通ってないともちろんデプロイ自体できない仕組みになってるので、他チームに大きく迷惑が\n
  28. \n
  29. \n
  30. るびーえんたーぷらいずえでぃしょん\n
  31. \n
  32. \n
  33. \n
  34. \n
  35. メモリたくさん食べるけど…\n
  36. 続いて…\n
  37. \n
  38. \n
  39. \n
  40. gcc なんかは結構昔からできたけど、LL のテストにも使えるなんて全然考えても居なかった\n最近のマシンって複数コアだったりスレッド実行できたりするよね\n
  41. ただ並列実行時にも問題はあるはある\n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. ならリモートにマシン用意して実行させれば良くない?\n
  49. \n
  50. \n
  51. \n
  52. メモリも減ってるのは、ローカルではリモートにタスク投げて結果を受け取るだけだから\n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n