SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブスト2021】セッションレポート(AD)

脱レガシーコード!すべての開発者が単体テストを書く文化を作るまでの取り組み【デブスト2021】

【A-2】脱レガシープロダクトに向けて開発環境にCIを整備し単体テストを布教した話

  • このエントリーをはてなブックマークに追加

単体テストの数を増やすために、研修を企画

 寺尾氏は今後追加される新規コードにテストを書いてもらうことから始めることにした。

 そのために寺尾氏が企画したのは、「JUnit dojo」というオンラインハンズオン形式の研修コンテンツ。1回30~60分という限られた時間で10~20名ごとに実施し、合計40人の開発者が研修を受講した。

 まず、JUnit dojoマインド編としてt_wada氏の「TDD Boot Camp 2020 Online #1基調講演/ライブコーディング」の鑑賞会を実施。次にJUnit dojo基礎編として単体テストの基本的な書き方を習得するハンズオン形式の研修を行った。

 この2つの研修を実施したことで、単体テストのメリットを理解し、新規コードに単体テストを書く人が増えたという。だがそれでも脱レガシーはできなかった。なぜならレガシーコードに対して単体テストが書けなかったからだ。

 「リファクタリングを実施するにはテストが必要だが、テストを書くためにはリファクタリングが必要」というレガシーコードのジレンマを克服するための方法論として、寺尾氏が新たに企画したのがJUnit dojo実践編。これは、レガシーコードに単体テストを書くための実践的なスキルを習得するための研修だ。「研修内容が比較的高度になるため、全員を対象とするのではなく、各チームから1~2名を募って実施しました」(寺尾氏)

 そして受講した人にJUnitのエバンジェリストになってもらい、各チームにレガシーコードの単体テストを書くスキルを広めてもらうことにしたのだ。この研修用コンテンツはGitHubで公開されている。興味のある人はぜひ、チェックしてほしい。

 実践編を実施したことで、レガシーコードにも単体テストが書けるという認識ができ、「気軽に単体テストにチャレンジする人が増えてきた」と寺尾氏は語る。

 開発者の意識が変わったことで、開発組織にも次のような変化が起こった。dojo参加者が講師役となり、JUnit dojoの再放送が行われたり、単体テストの勉強会がチームで開催されていたり、単体テストを書きやすくするための共通モックが整備されたりしたという。さらに他プロダクトまで噂が広がり、単体テストの環境が各プロダクトに整備され、実務で単体テストを書いていく定期的な活動「JUnit部」が発足した。開発者からも「テストを書くのが楽しい」「リファクタリングできそう」「JUnitでテストを書くことで、問い合わせの回答がしやすくなった」など、嬉しい声がたくさん寺尾氏の元に届いているという。

研修1年後のチームの状態
研修1年後のチームの状態

 単体テストを書く人が増えていることは、数値でも明らかとなっている。「JUnit部が発足したことで書く人が増え、現在は月150件超えるペースで単体テストが作成されている」(寺尾氏)

 現在のWorks Human Intelligenceの開発組織は、単体テストを書くのはもちろん、その上でロジックをリファクタリングすることも当たり前のように行われるようになっているという。

 「当社のプロダクトはソースコードが数百万行と巨大なので、全コードに単体テストを書くことは難しい。だが、戦略的にテストを書いていくことでリファクタリングが進んでいくと考えている。時間はかかるが必ず脱レガシーを達成し、変化に強い製品開発体制を整えていきたい」

 最後にこう力強く語り、寺尾氏はセッションを締めた。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
【デブスト2021】セッションレポート連載記事一覧

もっと読む

この記事の著者

中村 仁美(ナカムラ ヒトミ)

 大阪府出身。教育大学卒。大学時代は臨床心理学を専攻。大手化学メーカー、日経BP社、ITに特化したコンテンツサービス&プロモーション会社を経て、2002年、フリーランス編集&ライターとして独立。現在はIT、キャリアというテーマを中心に活動中。IT記者会所属。趣味は読書、ドライブ、城探訪(日本の城)。...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/15428 2022/02/14 12:57

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング