for Startups Tech blog

このブログのデザインを刷新しました。(2023/12/26)

t_wadaさんに社内向けTDD研修を開いてもらったよ

どうも、ばやし(@bayashimura)です。

先日、和田卓人(@t_wada)さんにフォースタートアップスのエンジニア向けにTDD(テスト駆動開発)研修をやってもらったので、紹介していきます。

きっかけ

フォースタートアップスでは私が入社する前から自動テストに一定の投資をしていました。 大体の機能に関してはテストが存在し、テストを書かずにプルリクを投げると「書いてください」と返ってくる文化でもあります。 しかしプロダクトのコードが増えるに従い、テストコードも増加し、以下のような問題が発生しておりました。

  • テストの可読性が低く、テスト内容に対する認知負荷が高い
  • テストのメンテナンスコストが高くてしんどい(すぐ壊れる)
  • e2eテストを導入したがflakyで、導入したことをちょっと後悔してる

こういった課題にもやもやしたものを抱えつつそのうちどうにかしないとな、と日々を過ごしていた中、CTOから「研修やりたいんだけどなにか心当たりない?」と聞かれました。
これは!と思い和田さんのTDD研修を提案し、実現する運びとなりました。 最初は問い合わせ先もわからなかったのですが、NTTコミュニケーションズの岩瀬(iwashi86)さんに紹介していただき、見事開催の運びとなりました。岩瀬さんありがとうございます!

研修内容に関しての詳細は割愛しますが、午前中は和田さんのライブコーディングを見て、午後はみんなで実際にTDDで書きつつ、和田さんとの公開1on1をするという形式でした。
これがめちゃめちゃ良くて、研修実施後アンケートでも、満足度は最高5のところ、驚異の平均4.9。 感想も「学びしかない」「これまで受けてきた研修で一番良かった」といった感想がきており、最高といった感じです。

テスト研修後にチームに起きた変化も書いていこうと思います。

テスト駆動開発で書くメンバーがでてきた

今回のTDD研修を受け、TDDで開発する人が私を含め何人かでてきました。慣れないテスト駆動開発で、正直コードを書くスピードは遅くなったなという感覚はありますが

  • 設計に対して丁寧に向き合えるようになった
  • 一度に向き合うものを減らしたことで沼にはまらなくなった

という感覚があります。もうちょっと熟達したらもっとメリットが出てきそうな感覚です。

生みの苦しみ中

一山越えたあと

テストケースを日本語で書くようになった

今までRSpecのテストケースは英語で書いていました。 ただ母国語ではない英語で書くにあたり、細かいニュアンスを書くのが難しく

context 'if valid request' do
  it 'response success' do
  end
end

上記のようなテストケース名などがたくさんありました。

TDD研修でテストケースは仕様を表すということを学び、和田さんから 「テストケースは母国語、チームの公用語で書くのをおすすめしています」 という教えもあり、それから一部のチームではテストケースは日本語で書くようになりました。 新しく書く場合や、テストケースに変更を加える場合は基本的に日本語にしているのですが、早速地獄の蓋が開いてきてる感じがあり、最高だなといった感じです。 以上、t_wadaさんに社内向けTDD研修を開いてもらった話でした。 想像以上に良い学びを得たので、今後も有識者を招いてこういった研修をやっていきたいと思います。

うらやましいと思ったそこのあなた。弊社採用大募集中なので、お気軽にどうぞ。

採用ページはこちら