🛋️

チームで「単体テストの考え方/使い方」読書会をしたよ

2024/06/28に公開

背景

私たちの開発チームは、統合テストが多い状態で開発してきたため、プロジェクトが複雑化するにつれ、以下のような問題が顕著になりました。

  • テストケースの増加により、テストの実行時間が長くなる。
  • 統合テストでは、すべてのパスをカバーするためのテストデータの準備が大変。

これらの問題を解決するため、すでにある統合テストを単体テストへ置き換えていく動きがありました。ただし、進め方には様々な考え方があるため、用語や方針を統一することが重要です。

ちょうどメンバーが読んでいて、知識ベースを揃えつつ、単一トピックに限らず広範囲に効きそうな書籍「単体テストの考え方/使い方」があったので、この本を題材に読書会を企画しました。

進め方

チームメンバーの島さんが、過去に読書会を開催したことがあり、そのフォーマットを導入してもらって以下のような形式で読書会を実施しました:

  • 毎週金曜日の13時から1時間、Google Meetでリモート開催。
  • 前半30分は読書時間、後半30分はディスカッション時間。
  • Notionにメモを記録するスペースを設け、リアルタイムで気になる点を共有するスタイル。

Notionにあるメモスペースイメージ

参加者は、社内のエンジニア全員と、関わりのあった社外エンジニアの方1名でスタートしました。

取り組む中での試行錯誤

  • 通常、1回の会で1章を進めるペースでしたが、難しい内容の場合は2回に分けて進めました。
  • 毎週実施することが常ではなく、急な対応が入ることもありました。
  • 最初は全員が読書時間に参加していましたが、すでに読んでいるメンバーもいたため、途中からは任意参加に変更しました。
  • お休みを取る場合などもあり、完全に全セッションに参加したメンバーはいませんでした。

振り返り

読書会の完走後、振り返りを実施しました。そこで出てきたものの一部を紹介します。

  • Keep
    • 楽しかった!読書会続けていきたい!
    • こういう考え方、読んだよね、という共通の土台ができてよかった
    • 明日からテストをこうやって書こう!!!と一部思うことはできた
    • 自分だけでは読み取れなかったような部分も読み取れて色々気づきがあったのとシンプルに楽しかった。
  • Problem
    • 読むの結構大変な回とそうでない会の幅ががあった
    • とはいえテスト書くときにちゃんと学べたことを活かすのは難しい
    • 週1だと読み終えるのに3~4ヶ月はかかるので、即座に効く系の本は読書会向きではないかも
    • 読んでなくてOKスタイルは続けるかどうか
    • もっと議論したかった章とかあった
  • Try
    • 読書会のブログ!(本記事がそれになります)
    • 「飛ばし読んで全体掴む」「1章ずつ精読する」など、モードを決めて取り掛かってみるのもいいかも
    • 実践ドメイン駆動設計とかドメイン駆動設計関連の本で次はやりたい

今後の方針

チーム全体の知識とスキルの向上を図るため、継続的に読書会を行いたいと考えています。
開発の土台となる知識を揃える本が良さそうという話があり、振り返りの中でも「セキュア・バイ・デザイン」や「チームトポロジー」などが具体名として上がっていました。

もしNstockの読書会に関心がある方や、こういう本がいいよ、というオススメがあれば、ぜひXなどで教えていただければうれしいです!

Nstockではエンジニアを募集しています!
👨‍👩‍👧‍👦カジュアル面談から気軽にお話しましょう🤞

https://speakerdeck.com/nstock/we-are-hiring
https://nstock.co.jp/recruit

エンジニアのポッドキャストもはじめました。
https://open.spotify.com/show/0m4TGTqbD6AuHFOrIbpkxx?si=69da590e409b4221

Nstock Tech Blog

Discussion