Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
みんなで自動テストに取り組む ために必要だったこと / Essentials for Tea...
Search
コドモン開発チーム
March 27, 2025
0
1.5k
みんなで自動テストに取り組む ために必要だったこと / Essentials for Team-Based Automated Testing
コドモン開発チーム
March 27, 2025
Tweet
Share
More Decks by コドモン開発チーム
See All by コドモン開発チーム
保育・子育てを支えるデザイン~横断UXチームの取り組みと成果~ / Designing for Childcare and Parenting
codmoninc
0
51
事業成長を後押しする ほどよいリプレイスの進め方 / Th Way to Replace for Business Growth
codmoninc
0
26
コドモンQAエンジニア紹介 / CoDMON QA Engineer Introduction
codmoninc
0
63
4年間、組織に向き合う中で出会った リアルな悩みと乗り越え方 / Facing Organizational Challenges: Real Struggles and Solutions
codmoninc
1
260
ひとりめEMとして70人組織になるまでにやったこと / What I did to help the organization grow to 70 people as the first EM
codmoninc
0
190
コドモンAnalyticsグループの、 2年間の成果と課題 / Codmon Analytics Group: Achievements and Challenges Over Two Years
codmoninc
0
120
ペアプロ × 生成AI 現場での実践と課題について / generative-ai-in-pair-programming
codmoninc
3
28k
組織&チームで取り組むプロポーザル企画の実践法 / Crafting Winning Proposals: A Practical Guide for Organizations and Teams
codmoninc
0
48
WebからモバイルへVue.js × Capacitor 活用事例
codmoninc
0
70
Featured
See All Featured
Fireside Chat
paigeccino
40
3.7k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
980
The Power of CSS Pseudo Elements
geoffreycrofte
79
6k
Building Applications with DynamoDB
mza
96
6.7k
Building a Modern Day E-commerce SEO Strategy
aleyda
44
7.8k
How GitHub (no longer) Works
holman
315
140k
Designing Experiences People Love
moore
142
24k
Designing for humans not robots
tammielis
254
26k
Bash Introduction
62gerente
615
210k
Context Engineering - Making Every Token Count
addyosmani
6
250
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
9
590
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Transcript
みんなで自動テストに取り組む ために必要だったこと 2025年3月25日 株式会社コドモン 水落 光
2 経歴 元C++エンジニア。「自動化できるテストは自動化し、人が やらなければならないことに注力する」ためにQAエンジニアに。 歯科矯正が最近終わり、反動でキャラメルをよく食べている。 自己紹介 水落 光 みずおち ひかる
2020.01 コドモンにQAエンジニアとして入社 主にテスト自動化・パイプライン構築に従事 (シチウ @dashi_no_ajiwai)
3 Mission
4 すべての先生に 子どもと向き合う 時間と心のゆとりを こんなプロダクトを開発しています メインプロダクトは、保育・教育施設向けWebアプリケーション。 保護者と施設のやり取りを支えるモバイルアプリケーションや、施設職員向けモバイル版 アプリケーション、外部サービスと連携するAPIなども開発しています。
5
6 はじめに
7 「みんなでテスト」 できてますか?
8 今回は実装前後の自動テストについて、 「みんなでテスト」するために 必要だったことを話します
9 今日話すこと 5年間のふりかえり - 頓挫と再構築 1 2 3 得られた教訓 -
何をすべきだったのか 明らかになってきた次なる課題
10 今日話すこと 5年間のふりかえり - 頓挫と再構築 1 2 3 得られた教訓 -
何をすべきだったのか 明らかになってきた次なる課題
11 CONFIDENTIAL - © 2022 CoDMON Inc. 11 前提 -
5年前くらいの私の思想 • テストの自動化は必須 ◦ 毎度毎度実行すべきテストを手作業でやるのは無駄が多い • 開発エンジニアもテストを作るべき ◦ 実装時点で最も詳細まで仕様を把握しているのは 開発エンジニアのはず ◦ QAは最後の砦?それは負け戦では? 当初から開発エンジニアを巻き込んで 自動テストを作っていこうと思っていた
12 自動テスト頓挫史
13 CONFIDENTIAL - © 2022 CoDMON Inc. 13 自動テスト頓挫史 -
内製テスト基盤 • 内製テスト基盤 ◦ 複数回挑戦 ◦ 各種ツールの組み合わせ ▪ テストランナー: Jest, Gauge ▪ UIテスト: Puppeteer, Playwright ▪ APIテスト: Axios ◦ 初期データの持ち方 ▪ 初期: DBにあらかじめinsert ▪ 中期: CSVのデータをinsert テスト実行基盤 specs CSV DB front API runner tools
14 CONFIDENTIAL - © 2022 CoDMON Inc. 14 自動テスト頓挫史 -
内製テスト基盤 頓挫 開発エンジニアによるテスト 作成の定着には至らず 実行環境・方法の課題 • そもそもの不安定性 ◦ CSSセレクタ依存 ◦ 無限に増えるwait • DOMの変更に追随できない ◦ テストが別リポジトリ など 安定性の課題 • ローカル実行のみ ◦ 手元で実施してもらう • 初期データの持ち方 ◦ DBは軽量にしたい ◦ CSVは並列実施できない など
15 CONFIDENTIAL - © 2022 CoDMON Inc. 15 自動テスト頓挫史 -
外部サービス • 外部サービスによるテスト ◦ リリース集約時(デイリー)のテスト ◦ GitHub ActionsのWFからテスト用環境に デプロイ後テスト実施 ◦ テストデータ全部入りDB ▪ LocalDBとしても利用 テスト環境 DB プロダ クト 外部 サービス デプロイ Hook
16 CONFIDENTIAL - © 2022 CoDMON Inc. 16 自動テスト頓挫史 -
外部サービス 利用終 了 開発エンジニアによるテスト 作成の定着には至らず シナリオ数(右軸) 利用料金 • シナリオ数の伸びの鈍化 ◦ リリース集約時点でFAILするため手 戻りが大きい →シナリオ増やしたくない心理 • 利用料金の大幅な増加 など (実際の利用状況)
17 再構築
18 CONFIDENTIAL - © 2022 CoDMON Inc. 18 現在の再構築状況 setup.ts
DB 実行環境 front / API spec • 新テスト基盤('24 -) ◦ Gauge × Playwright / Axios ◦ プログラマブルなsetup specで閉じた初期データ作成 ▪ DB軽量化 ▪ 並列実行性・再実行性 spec単位で setupスクリプト によるデータ投入
19 CONFIDENTIAL - © 2022 CoDMON Inc. 19 現在の再構築状況 •
CI環境('24 -) ◦ GitHub Actionsからトリガーして k8sにより自動環境構築 ◦ 境界を区切り選択的にテストを 作成・実行可能 ▪ 各チームの守備範囲明示 DB front / API Gauge test apply trigger コドモンSREによる詳細 → https://tech.codmon.com/entry/2024/02/21/090546
20 CONFIDENTIAL - © 2022 CoDMON Inc. 20 現在の再構築状況 CIできるの?
使ってみたい! これから始まるPJは厚めに リグレッションテストしたいから CIでテストし続けたいな あれはできる? これはできる? 開発エンジニアが積極的に 自動テストを作るようになってきた
21 今日話すこと 5年間のふりかえり - 頓挫と再構築 1 2 3 得られた教訓 -
何をすべきだったのか 明らかになってきた次なる課題
22 CONFIDENTIAL - © 2022 CoDMON Inc. 22 この5年ほどのまとめ •
テストの作りやすさ重視 • テストの自動実行 新テスト基盤・ CI環境を整えた アジャイル開発の プラクティスの一般化 • ATDD・TDDが当然にな りつつある
23 CONFIDENTIAL - © 2022 CoDMON Inc. 23 この5年ほどのまとめ •
テストの作りやすさ重視 • テストの自動実行 新テスト基盤・ CI環境を整えた アジャイル開発の プラクティスの一般化 • ATDD・TDDが当然にな りつつある 開発エンジニア自身が自動テストを実装し 安心感を得ながら開発する流れが広がっている
24 CONFIDENTIAL - © 2022 CoDMON Inc. 24 本当にやるべきだったこと 開発者体験の向上を念頭に
早くから環境を構築するべきだった • テストを作って実行しやすいこと • 開発エンジニアが安心感を得られること の両輪で
25 CONFIDENTIAL - © 2022 CoDMON Inc. 25 開発者体験の向上のために 理想的な
循環 自動テストを 作成する 自動テストが 実行され続ける 自動テストで 動作が保証 される テストがある 安心感が 得られる
26 CONFIDENTIAL - © 2022 CoDMON Inc. 26 開発者体験の向上のために 理想的な
循環 自動テストを 作成する 自動テストが 実行され続ける 自動テストで 動作が保証 される テストがある 安心感が 得られる 自動テストが作りやすくならないことには 何も始まらない • テスト環境・初期データの作りやすさ • 実行時間がかからない・並列実行 • メンテナンス容易性
27 CONFIDENTIAL - © 2022 CoDMON Inc. 27 開発者体験の向上のために 自動テストを
作成する 自動テストが 実行され続ける 自動テストで 動作が保証 される テストがある 安心感が 得られる テスト作成とテスト実行は つながっていない • テスト自体より先に実行環境の構築 • 実行環境を見越したテスト基盤の構築 • 「おもしろそうなおもちゃ」のような
28 CONFIDENTIAL - © 2022 CoDMON Inc. 28 開発者体験の向上のために 自動テストを
作成する 自動テストが 実行され続ける 自動テストで 動作が保証 される テストがある 安心感が 得られる 理想的な 循環 テストを作成し実行し続けなければ 安心にはつながらない • 動いていないテストは害悪でしかない • 「随時ローカルで実行してください」 ☝ 誰もやらない
29 今日話すこと 5年間のふりかえり - 頓挫と再構築 1 2 3 得られた教訓 -
何をすべきだったのか 明らかになってきた次なる課題
30 CONFIDENTIAL - © 2022 CoDMON Inc. 30 次なる課題 で
き 早めにやりたい つ つ あ る いつかやりたい… 結局まだ体系的な テストではない (特にテスト分析・テスト計画) 仕様のテストの定着 チーム最適化 →全体最適化 (データドリブン) 全社的な プロセス改善 (CREなど) なるべく早く 「包括的にテストせず開発するのはダサい」 くらいまで持っていきたい ATDD・TDDの定着 https://danashby.co.uk/2016/10/19/continuous-testing-in-devops/
31 CONFIDENTIAL - © 2022 CoDMON Inc. 31 まとめ 開発エンジニアを巻き込んで自動テストに取り組むためには…
• 開発者体験の向上 を念頭に環境を構築する必要がある 開発エンジニアが自動テストに取り組むようになって見えてきたのは… • 体系的なテスト を行うためにはアシストが必要 • シフトレフト・シフトライトしてよりよくテストするための具体 的な工程・課題 がよりクリアになってくる
32 ちなみに
33 コドモン採用ページ コドモンでは一緒に働きたい仲間を募集しています! 開発チームX
34 JaSST '25 Tokyo スポンサーセッションで登壇します! 3/28(2日目) 14:00〜 Track03 弊社QAエンジニアの砂川が 登壇します!
エクストリーム・プログラミングを取り 入れた開発組織におけるQA活動に ついてお話します
35 ご清聴ありがとうございました!
None