Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
みんなで自動テストに取り組む ために必要だったこと / Essentials for Tea...
Search
コドモン開発チーム
PRO
March 27, 2025
1.9k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
みんなで自動テストに取り組む ために必要だったこと / Essentials for Team-Based Automated Testing
コドモン開発チーム
PRO
March 27, 2025
More Decks by コドモン開発チーム
See All by コドモン開発チーム
ペアプロの価値はコードを書くことだけじゃない
codmoninc
PRO
0
150
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
330
「正解の仕様」を求めて、決断する
codmoninc
PRO
0
71
AI時代のPHP開発にASTクエリツール で コードベースの地図を作る / ast-query-tool-php-codebase-map
codmoninc
PRO
0
360
コネクションをピン留めさせずに SELECTクエリのタイムアウトを設定した話
codmoninc
PRO
0
370
コドモンに入社してAI活用により、 設計がより重要だと感じた背景
codmoninc
PRO
0
120
実装・設計だけでなく、運用・保守にもAIを広げてみた / We Took AI Beyond Coding and Into Operations and Maintenance
codmoninc
PRO
0
110
AIが無かった頃の素敵な出会いの話
codmoninc
PRO
1
570
5分で問診!Composer セキュリティ健康診断
codmoninc
PRO
0
1.3k
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
50
15k
Abbi's Birthday
coloredviolet
3
9.9k
Ethics towards AI in product and experience design
skipperchong
2
360
Practical Orchestrator
shlominoach
191
12k
Fireside Chat
paigeccino
42
4k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
AI: The stuff that nobody shows you
jnunemaker
PRO
9
980
Prompt Engineering for Job Search
mfonobong
0
450
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
240
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
250
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
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