Slide 1

Slide 1 text

© 2023 Wantedly, Inc. テスト文化の成熟:自動テストが 浸透した組織が次に目指すべきステップ テストパフォーマンス向上のためのテスト戦略〜自動化の秘訣 Lunch LT〜 Sep. 13 2023 - Sora Ichigo

Slide 2

Slide 2 text

© 2023 Wantedly, Inc. 自己紹介 ● 市古 空 / いちご そら ● Wantedly, Inc. 所属 ● DX (開発者体験) 改善チーム・基盤開発 ● DevOps に関する Enabling 活動 X (Twitter): @igsr5_ GitHub: @igsr5

Slide 3

Slide 3 text

© 2023 Wantedly, Inc. 話すこと 1. “テスト文化の成熟” を目指して行った取り組みの話 2. そこで得た知見

Slide 4

Slide 4 text

© 2023 Wantedly, Inc. 事例 “テスト文化の成熟”を目指して行った取り組みの話 初期 / 中期 / 後期

Slide 5

Slide 5 text

© 2023 Wantedly, Inc. 初期:“テスト文化の成熟”を目指して行った取り組み(2022/10 ~ 11) 現状 ● 自動テスト初導入: 2012年 ● テストカバレッジ: 主要リポジトリで50~80%程度 ※1 ● 自動テストを書くという文化は既に浸透 問題 ● 自動テストの効果が十分に発揮しきれていない (という仮説) ※1 単体テストを対象に計測

Slide 6

Slide 6 text

© 2023 Wantedly, Inc. 初期:“テスト文化の成熟”を目指して行った取り組み(2022/10 ~ 11) > 自動テストの効果が十分に発揮しきれていない 例えば、、 ● 自動テストが書かれていないコードの動作確認に時間がかかる ● 自動テストが書かれていないコードが本番環境で壊れる

Slide 7

Slide 7 text

© 2023 Wantedly, Inc. 自動テストをより徹底すれば これらの問題を防げるのでは?

Slide 8

Slide 8 text

© 2023 Wantedly, Inc. 初期:“テスト文化の成熟”を目指して行った取り組み(2022/09 ~ 11) “テスト文化の成熟”を目指すプロジェクトがスタート

Slide 9

Slide 9 text

© 2023 Wantedly, Inc. 初期:やったこと(2022/10 ~ 2022/11) 「自動テストが一つもないコードは改善されにくく問題も起きやすい」という仮説 の検証 → 全く自動テストが存在しないコードにフォーカス ● テストカバレッジの強化、テストコードのリファクタリング、... ● 主に手のつけやすかった単体テストを増やした

Slide 10

Slide 10 text

© 2023 Wantedly, Inc. 初期:やったこと(2022/10 ~ 2022/11) 「自動テストが一つもないコードは改善されにくく、問題も起きやすい」という仮 説の検証 → 全く自動テストが存在しないコードにフォーカス ● テストカバレッジの強化、テストコードのリファクタリング、... ● 主に手のつけやすかった単体テストを増やした → テストカバレッジは上がったものの新たな問題が、、

Slide 11

Slide 11 text

© 2023 Wantedly, Inc. 中期:新たな問題(2022/12 ~ 2023/01) 確かにテストカバレッジは上がるものの、現実としては我々の本来考えていた “テスト文化の成熟” という期待値とはズレることに気づく。 例えば、、 ● (テストカバレッジ) ≠ (自動テストの網羅性) である ● 自動テストが存在しても実際に活用されるかどうか

Slide 12

Slide 12 text

© 2023 Wantedly, Inc. 中期:新たな問題(2022/12 ~ 2023/01) つまり: むやみに自動テストを足していっても、 真に自動テストの効果が発揮できたとは言えない そもそも、、

Slide 13

Slide 13 text

© 2023 Wantedly, Inc. そもそも ”テスト文化の成熟” とは何だろう?

Slide 14

Slide 14 text

© 2023 Wantedly, Inc. 中期:プロジェクト再整理 我々の目指すべき理想(テスト文化の成熟)とは何だろうか 目指すべき理想の認識がズレてしまうとプロジェクトを通して真に価値を生む ことは難しい

Slide 15

Slide 15 text

© 2023 Wantedly, Inc. 中期:プロジェクト再整理 我々の目指すべき理想(テスト文化の成熟)とは何だろうか そこで我々はプロジェクトメンバーで理想に関する認識合わせを行った

Slide 16

Slide 16 text

© 2023 Wantedly, Inc. 中期:理想設定。issue そのまま抜粋。 我々の目指すべき理想(テスト文化の成熟)とはテストの効果が信頼されてい る状態のことを指す。具体的には以下の4点を目指す。 ● コードベースに高品質なテストが存在する ● 開発者が高品質なテストの存在を知っている ● 開発者が高品質のテストの存在が十分な効果につながることを知ってい る ● 開発者が高品質なテストを生産できる

Slide 17

Slide 17 text

© 2023 Wantedly, Inc. 中期:理想設定。issue そのまま抜粋。 我々の目指すべき理想(テスト文化の成熟)とはテストの効果が信頼されてい る状態のことを指す。具体的には以下の4点を目指す。 ● コードベースに高品質なテストが存在する ● 開発者が高品質なテストの存在を知っている ● 開発者が高品質のテストの存在が十分な効果につながることを知ってい る ● 開発者が高品質なテストを生産できる コードベースの問題 < 人 (文化) の問題

Slide 18

Slide 18 text

© 2023 Wantedly, Inc. 中期:やったこと(2022/12~2023/01) 目標 テストの効果が信頼されている状態を目指す 取り組み ● テストカバレッジの向上 ○ テストピラミッドの中で不足していた E2E テストの拡充 ● チーム内で自動テスト勉強会 ● 自動テストにまつわる社内発信 Enabling よりのアプローチを多くとった

Slide 19

Slide 19 text

© 2023 Wantedly, Inc. 中期:やったこと(2022/12~2023/01) 当時の自動テスト勉強会の議事録

Slide 20

Slide 20 text

© 2023 Wantedly, Inc. 後期:成果(2023/02) テストの効果が信頼されている状態を目指してプロジェクトは進む。 成果 ● 社内発信: LTを7回実施 ● 自動テスト関連の社内ドキュメント: 3ページ追加 ● Playwright ※2 によるE2Eテストの整備: 初期設定 & テスト拡充 ※2 https://github.com/microsoft/playwright

Slide 21

Slide 21 text

© 2023 Wantedly, Inc. 後期:成果(2023/02) ではこれらの成果は開発組織にどう貢献した?

Slide 22

Slide 22 text

© 2023 Wantedly, Inc. 後期:成果(2023/02) ではこれらの成果は開発組織にどう貢献した? A. 🤔

Slide 23

Slide 23 text

© 2023 Wantedly, Inc. 後期:成果(2023/02) もちろん個別の取り組みで開発者の助けになる成果は出せた しかし実際に我々の目指した “テスト文化の成熟” が ● どの程度達成されたのか ● どの程度開発組織に貢献したのか はパッと判断できない状況になっていた

Slide 24

Slide 24 text

© 2023 Wantedly, Inc. 後期:関心はより広いスコープへ( 2023/02) 文化と向き合うために ● 開発組織に貢献するとは? ○ 今の開発組織には何が求められる? ○ 開発組織のパフォーマンスとは何だろう ● “テスト文化の成熟” は開発組織に対してどのような影響を与えるだろう か ● 現状・達成度合いを判断するための指標は?

Slide 25

Slide 25 text

© 2023 Wantedly, Inc. 後期:関心はより広いスコープへ( 2023/02) 文化と向き合うために ● 開発組織に貢献するとは? ○ 今の開発組織には何が求められる? ○ 開発組織のパフォーマンスとは何だろう ● “テスト文化の成熟” は開発組織に対してどのような影響を与えるだろう か ● 現状・達成度合いを判断するための指標は? 関心は自動テストのみでなく開発組織のパフォーマンスへ (DevOps)

Slide 26

Slide 26 text

© 2023 Wantedly, Inc. 後期:関心はより広いスコープへ( 2023/02) その後の話:社内勉強会の実施へ

Slide 27

Slide 27 text

© 2023 Wantedly, Inc. 後期:関心はより広いスコープへ( 2023/02) その後の話:社内勉強会の実施へ DevOps についてはまた今度どこかで話します

Slide 28

Slide 28 text

© 2023 Wantedly, Inc. 知見 プロジェクトを通して得た知見 より良い自動テストとDevOps の考え

Slide 29

Slide 29 text

© 2023 Wantedly, Inc. プロジェクトを通して得た知見 ① 自動テストはただ書くだけではない 自動テストはただ書くだけでは真にその効果は発揮できない ● テストピラミッドに基づく自動テストの量 ● xUTP Patterns に基づくテストコードのリファクタリング ● Flaky、実行スピード → より良いテストに向けた継続的改善が必要

Slide 30

Slide 30 text

© 2023 Wantedly, Inc. プロジェクトを通して得た知見 ② 良い自動テストが存在するだけでは不十分 良い自動テストがあってもそれらを活用する文化がなければ不十分 ● 開発者は自動テストの存在に気づいているか? ● 開発者は自動テストの有用な使い方を知っているか? ○ 例: TDD等のプラクティス 開発組織への貢献にはDevOpsの理解も必要になる。

Slide 31

Slide 31 text

© 2023 Wantedly, Inc. まとめ ● Wantedly では “テスト文化の成熟” を目指していくつかの取り組みを 行っている ○ 未だ成熟したとは言えず道半ば ● 得られた知見 ● 自動テストはただ書くだけではない。より良い自動テストが必要にな る。 ● 良い自動テストが存在するだけでは不十分。文化と向き合うためには より広い視野が必要になる (DevOps)。

Slide 32

Slide 32 text

© 2023 Wantedly, Inc. ご清聴ありがとうございました!

Slide 33

Slide 33 text

© 2023 Wantedly, Inc. 参考資料 ● What is Test Driven Development (TDD) ? | BrowserStack ● Fast and reliable end-to-end testing for modern web apps | Playwright ● DevOps 技術: 継続的テスト | Cloud アーキテクチャ センター | Google Cloud ● index at XUnitPatterns.com ● Nicole Forsgren Ph.D., Jez Humble, Gene Kim(著), 武舎広幸, 武 舎るみ(翻訳), "LeanとDevOpsの科学[Accelerate] テクノロジーの 戦略的活用が組織変革を加速する", インプレス, 2018年