テストを書く負担を減らそうとしてる話
イントロダクション
00
00 目次
今日話すこと
3
なぜテスト負担を減らすことを取り組もうと思ったか
01 背景
01 なぜテスト負担を減らすことを取り組もうと思ったか
チームのテスト負担を減らそう!などとは思っていなかった…!
もともとの出発点はチームに足りていないものって何か?を考えるところからだった
�
5
明日から使える
将来使える
一人が話す
みんなで話す
読書会
勉強会
レビュー
01 なぜテスト負担を減らすことを取り組もうと思ったか
テストコードの書き方は課題にも感じていた
6
01 なぜテスト負担を減らすことを取り組もうと思ったか
Specディスカッション会爆誕👶
7
01 なぜテスト負担を減らすことを取り組もうと思ったか
Specディスカッション会
8
01 なぜテスト負担を減らすことを取り組もうと思ったか
(specディスカッション会を経て) やっぱり指針があると良いなぁと思った
9
テスト指針をチームで作る
02 指針をつくる
02 テスト指針をチームで作る
何らかの指針 = ?
=> これらを 0 から言語化するのは大変そう…
11
02 テスト指針をチームで作る
何らかの指針 = テスト規約 で良いのでは?
=> テスト規約の輪読会を行うことで、
それぞれが持つ共通認識の再確認や課題の洗い出しが出来るのでは!?
12
01 なぜテスト負担を減らすことを取り組もうと思ったか
テストコード輪読会爆誕👶
13
02 テスト指針をチームで作る
rspec-style-guide
14
02 テスト指針をチームで作る
テストコード規約輪読会で取り上げた規約
15
02 テスト指針をチームで作る
規約例: スコープを考慮する
16
02 テスト指針をチームで作る
まずは、規約ではなく指針として使う
17
指針がチームに馴染むようにする
03 指針を根付ける
03 指針がチームに馴染むようにする
指針を守るのは大変
=> 指針が指針足るような仕組みがあると良い
19
03 指針がチームに馴染むようにする
rubocop-rspec
20
03 指針がチームに馴染むようにする
現状を把握してみる①
$ bundle exec rubocop -a
21
03 指針がチームに馴染むようにする
現状を把握してみる②
$ bundle exec rubocop --auto-gen-config
=> 4608 files inspected, 26211 offenses detected
22
03 指針がチームに馴染むようにする
主な違反
23
03 指針がチームに馴染むようにする
チームでルールを決めて運用していく
24
テストの見える化を進める
04 見える化
04 テストの見える化を進める
書かれているテストはよくなった、では書かれていないテストは?
26
04 テストの見える化を進める
書かれているテストはよくなった、では書かれていないテストは?
=> みたいな根性論や属人化した考え方はなるべく減らしていきたい
27
04 テストの見える化を進める
simplecov
28
04 テストの見える化を進める
カバレッジの見える化をする①
29
04 テストの見える化を進める
カバレッジの見える化をする②
30
04 テストの見える化を進める
カバレッジの見える化をする③
31
04 テストの見える化を進める
カバレッジの持つ意味
32
04 テストの見える化を進める
カバレッジを高めていく取り組み
=> ただ、どのコードが使われていて、どのコードが使われていないのかを判断するのは難しい
33
04 テストの見える化を進める
coverband
34
04 テストの見える化を進める
coverband①
35
04 テストの見える化を進める
coverband②
36
04 テストの見える化を進める
テストまわりの改善を進めることでテスト以外の開発も捗る
37
まとめ
05 まとめ
05 まとめ
テストを書く負担を減らせるようにするといろいろナイスな気がしてる
=> 少しずつチームで良いテストやコードを書けるように進化して
みんなで良いサービスを作っていきたい!
39
ご清聴ありがとうございました🙌