Slide 1

Slide 1 text

新卒⼊社の⼈達に テストの⼤切さを 伝えた話 ブロッコリー ( @nihonbuson )

Slide 2

Slide 2 text

⾃⼰紹介 ● ブロッコリー ( @nihonbuson ) ● 2018年10⽉にビズリーチへ転職 ● QA基盤推進室に所属 ● 社外活動 - JaSST Review(ソフトウェアレビューシンポジウム) 実⾏委員⻑ - WACATE(テストの宿泊型ワークショップ) 実⾏委員

Slide 3

Slide 3 text

今⽇話すこと ● 新卒研修を受け持つまでの経緯 ● 新卒研修のカリキュラム紹介 ● 新卒研修で⼯夫した点 ● 研修⽣の受講アンケート公開

Slide 4

Slide 4 text

新卒研修を 受け持つまでの経緯

Slide 5

Slide 5 text

ビズリーチ社内での取り組み ● TDD講座&演習は定期的に実施していた ● 「TDDで⾏っていこう︕」という⽂化がある

Slide 6

Slide 6 text

⼊社時の開発者の印象 ● ⾮常に品質に対して興味を持っている ● テストもどうにかしたいと思っている ● ただし、テストのやり⽅が分からない →在籍社員向けにテスト講座を実施

Slide 7

Slide 7 text

今年の新卒研修監修者からの希望 ● 今年の新卒研修の監修をしていた⼈からの希望 ○ TDDのやり⽅を伝えてほしい ○ 期間は1⽇ →TDD以前に伝えるべきことがある︕

Slide 8

Slide 8 text

私が提案した新卒研修の内容 ● 2⽇間 ● 内容は以下の4つ ○ テストに対しての考え⽅ ○ テスト設計について ○ ⾃動テストについて ○ TDD

Slide 9

Slide 9 text

新卒研修の カリキュラム紹介

Slide 10

Slide 10 text

カリキュラム(1⽇⽬ 1限⽬) ● 品質とは何か︖テストとは何か︖ ○ 品質、テストの⽬的 ○ テストの7原則 ○ Vモデル、Wモデル ○ テスト観点 ○ 品質特性 ○ テストレベル ○ CheckingとTesting ワーク ワーク ワーク D3QAや JJUGでも 講演

Slide 11

Slide 11 text

カリキュラム(1⽇⽬ 2限⽬) ● テスト設計(その1) ○ テスト設計の⽬的 ○ テスト設計の紹介 ■ 同値分割法 ■ 境界値分析 ■ 状態遷移 ワーク ワーク ワーク D3QAや JJUGでも 講演

Slide 12

Slide 12 text

カリキュラム(1⽇⽬ 3限⽬) ● テスト設計(その2) ○ テスト設計の紹介 ■ ディシジョンテーブル ■ CFD ○ ⾼位テストケースと低位テストケース ○ 適切なテストケース名 ワーク デモ

Slide 13

Slide 13 text

カリキュラム(1⽇⽬ 4限⽬) ● ⾃動テスト ○ ⾃動テストのピラミッド ○ テスト⾃動化の8原則 ○ E2Eテストとは ○ TDDの書き⽅ デモ デモ

Slide 14

Slide 14 text

カリキュラム(1⽇⽬ 5限⽬) ● TDDの書き⽅ ○ TDDの写経 ○ TDDの実践 ワーク

Slide 15

Slide 15 text

カリキュラム(1⽇⽬ 6限⽬) ● モブワーク ○ モブワークとは何か︖ ○ モブワークで気をつけること

Slide 16

Slide 16 text

カリキュラム(2⽇⽬ 1限⽬) ● チームでTDDのサイクルを体験 ○ モブワーク&TDD ■ FizzBuzz ○ ソフトスキル ワーク

Slide 17

Slide 17 text

カリキュラム(2⽇⽬ 2限⽬) ● ⾒やすいコード ○ モブワーク&TDD ■ クラスの設計が必要なお題 ○ 読みやすいコードへの意識 ○ テストケース名の⼤切さ ワーク

Slide 18

Slide 18 text

カリキュラム(2⽇⽬ 3限⽬) ● レガシーコードに⽴ち向かおう ○ レガシーコード ○ リファクタリング ○ Code Smell ○ モブワーク&TDD ■ Tennis-Refactoring-Kata ワーク

Slide 19

Slide 19 text

カリキュラム(2⽇⽬ 4限⽬) ● TDDサイクルが⾝についたかの確認 ○ モブワーク&TDD ■ Number Names ■ Cyber Dojoを利⽤ ○ TDDサイクルが⻑いとどうなるか ○ レガシーコードを作成する過程 ワーク

Slide 20

Slide 20 text

新卒研修で ⼯夫した点

Slide 21

Slide 21 text

1⽇⽬で⼯夫した点 ● を多めにした ○ 極⼒、新卒研修⽣に考えさせた ● TDDのコーディングを動画にして、研修⽣に配布した ○ 字幕も付け、TDD中の思考も極⼒伝えた ワーク

Slide 22

Slide 22 text

2⽇⽬で⼯夫した点 ● モブワークのやり⽅を題材ごとに変えた ○ やり⽅についてはブログ参照 ■ http://nihonbuson.hatenadiary.jp/entry/2018/12/25/193000 ● モブワーク中に発⽣した困りごとを題材に解説した ○ ⾃らの体験を基に⾏うので納得度が⾼い

Slide 23

Slide 23 text

研修⽣の 受講アンケート公開

Slide 24

Slide 24 text

研修⽣からの評価 受講者平均9.75

Slide 25

Slide 25 text

研修⽣の感想(1) ● とても勉強になった。 テストを書く意義や、チーム開発の⾯⽩さと難しさを 学べた。 ● 開発の考え⽅がすごい変わるし⾝に付く ● テストは⾯倒なものという概念が払拭できた。

Slide 26

Slide 26 text

研修⽣の感想(2) ● ぜひ、来年もまた受けたいと思いました。 特に、 「なぜ」テストを書くのか︖ 「なぜ」モブプロをやるのか︖ やるべき理由をぶらさず、 聞くのではなく「体験」するを通して教えてくれた

Slide 27

Slide 27 text

研修⽣の感想(3) ● 個⼈開発の中で、テストをきちんと書いていたが、 これまでは実装の後にテストを書いていた。 しかし、それではただ実装に合わせてテストを 書いていたので、何の意味もないことが理解できた。 実際に、このような開発を⾏なっているエンジニアは 多いのではないのかと思うので、TDDを体験して、 本当のテストの意味をわかってほしい。

Slide 28

Slide 28 text

研修⽣の感想(4) ● テストに対する良質な考え⽅が⾝についた。 テストをやる機会が今までなかったので、研修で初めて やったが、⼀番初めにこんなに質の⾼いものを学べて とてもよかった。 研修構成として完璧すぎた。 2⽇間とても濃厚な研修で、 研修史上、最⾼の充実度だった。

Slide 29

Slide 29 text

まとめ

Slide 30

Slide 30 text

まとめ ● ⼊社後、テストのやり⽅について啓蒙 ● 啓蒙した実績を元に、新卒研修も2⽇間確保 ● テストの考え⽅からTDDのやり⽅まで⾏う カリキュラムを作成 ● ただ伝えるだけの講座ではなく、 体験型のコンテンツを⽤意 ● 研修⽣からも概ね良い評価を貰えた