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
なぜCodeceptJSを選んだか
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
goataka (GOAMI Takaaki)
December 17, 2024
Programming
0
420
なぜCodeceptJSを選んだか
goataka (GOAMI Takaaki)
December 17, 2024
Tweet
Share
More Decks by goataka (GOAMI Takaaki)
See All by goataka (GOAMI Takaaki)
リリース時」テストから「デイリー実行」へ!開発マネージャが取り組んだ、レガシー自動テストのモダン化戦略
goataka
0
200
2025-04-25 GitHub Copilot Agent ライブデモ(スクリプト)
goataka
0
270
Other Decks in Programming
See All in Programming
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
4
2.2k
おれのAgentic Coding 2026/03
tsukasagr
1
120
AI時代の脳疲弊と向き合う ~言語学としてのPHP~
sakuraikotone
1
1.6k
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
3
420
Redox OS でのネームスペース管理と chroot の実現
isanethen
0
480
ネイティブアプリとWebフロントエンドのAPI通信ラッパーにおける共通化の勘所
suguruooki
0
220
Geminiをパートナーに神社DXシステムを個人開発した話(いなめぐDX 開発振り返り)
fujiba
0
120
Tamach-sre-3_ANDPAD-shimaison93
mane12yurks38
0
200
モックわからないマン卒業記 ~振る舞いを起点に見直した、フロントエンドテストにおけるモックの使いどころ~
tasukuwatanabe
3
430
AI 開発合宿を通して得た学び
niftycorp
PRO
0
180
OTP を自動で入力する裏技
megabitsenmzq
0
130
Symfonyの特性(設計思想)を手軽に活かす特性(trait)
ickx
0
110
Featured
See All Featured
Practical Orchestrator
shlominoach
191
11k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
870
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.5k
The Curse of the Amulet
leimatthew05
1
11k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
310
Building a Scalable Design System with Sketch
lauravandoore
463
34k
How to make the Groovebox
asonas
2
2.1k
The Curious Case for Waylosing
cassininazir
0
280
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
260
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
150
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Transcript
なぜCodeceptJSを選んだか? GOAMI,Takaaki (X: tkg -> @goataka_) JaSST nano vol.43 -
Dec. 17th, 2024 1
自己紹介 役割:エンジニアリング・マネージャー 担当:DevOps ex. CI/CD, SET, DX 資格: [ JSTQB
] Test Automation Engineer [ AWS ] Solutions Architect - Professional [ Scrum Inc. ] Registered Scrum Master & Product Owner 趣味: 娘(2人)/ 漫画(安彦良和)/ ランニング(LSD) 物理(素粒子)/ 数学(オイラーの等式) JaSST nano vol.43 - Dec. 17th, 2024 2
関心・記事 関心: 自走力 ex. オンボーディング 実用性の高いドキュメント ex. マニュアル、開発ドキュメント 記事: 理解しやすいコードの書き方~理解容易性の7つの観点~
開発マネージャがメンバーに知って欲しい事 開発視点で便利なユニットテストの使い方 JaSST nano vol.43 - Dec. 17th, 2024 3
アンケート E2E自動テストに取り組んでいますか? 1. 運用中 2. 実装中 3. 計画中 4. 未定
JaSST nano vol.43 - Dec. 17th, 2024 4
目的 CodeceptJS の利用促進です。 JaSST nano vol.43 - Dec. 17th, 2024
5
CodeceptJS https://codecept.io/ E2Eテストフレームワーク 特徴 オープンソース TypeScriptサポート Gherkin記法サポート 他ライブラリのラッパー ex. Selenium,
Playwright, Puppeteer, WebDriverIO, TestCafe, Appium JaSST nano vol.43 - Dec. 17th, 2024 6
Gherkin記法 自然言語で記述するシナリオ・フォーマットの1つです。 振る舞い駆動開発 (Behavior Driven Development: BDD) で利用されます。 Cucumberで利用されている記法として知られています。 Feature:
ログイン シンプルなテキストインプットとボタンの画面です。 ログイン情報はCookieに保存されます。 会員登録画面で保存したユーザの他、登録済みのユーザ(下記)があります。 Scenario: 定義済みユーザでログインができること Given ホームを開く。 And ログインペ―ジに移動する。 And "
[email protected]
" "password"でログインする。 Then マイペ―ジである事を確認する。 JaSST nano vol.43 - Dec. 17th, 2024 7
利用方法 時間の都合上、詳しい紹介ができないので、次を参考にして頂ければ幸いです。 Qiita:CodeceptJSにトライしてみた 投稿者:私 基本的な使い方をハンズオン形式で紹介しています。 書籍:テスト自動化実践ガイド - 継続的にWebアプリケーションを改善するための知 識と技法 著者:末村
拓也 / 出版社:翔泳社 実装例として、CodeceptJS + Playwright が紹介されています。 JaSST nano vol.43 - Dec. 17th, 2024 8
主題 なぜ CodeceptJS を選んだか? JaSST nano vol.43 - Dec. 17th,
2024 9
結論 詳細が冗長な為、先に結論としての観点を述べておきます。 シナリオの保守性が高い。 機能・非機能要件の充足度が高い。 環境変化への適応度が高い。 JaSST nano vol.43 - Dec.
17th, 2024 10
以降 結論までの詳細です。 JaSST nano vol.43 - Dec. 17th, 2024 11
前提 テスト対象です。 システム:大手企業向け統合人事システム サービス:勤怠管理 JaSST nano vol.43 - Dec. 17th,
2024 12
特徴 テスト対象の特徴です。 複雑 カスタマイズ: なし 設定数: 多い 多機能 大分類: 24
/ 小分類: 145 サービス: 600弱 長期 開発期間: 30年 バージョン: 5 JaSST nano vol.43 - Dec. 17th, 2024 13
選定前 E2E自動テストの状況 体制 担当 QA 専任1名 / 兼任3名 JaSST nano
vol.43 - Dec. 17th, 2024 14
ツール シナリオ管理 スプレッドシート形式 スクリプト管理 内製ツール ブラウザ管理 テスト実行 半自動化 JaSST nano
vol.43 - Dec. 17th, 2024 15
体制変更 まず、体制を変更させました。 担当 QA -> 開発者 仕様変更に追随しづらい -> やすい 専任1名
/ 兼任3名 -> 兼任40名 担当者数が少ない -> 多い カバレッジを上げづらい -> やすい JaSST nano vol.43 - Dec. 17th, 2024 16
課題 課題を整理しました。 シナリオ管理 スプレッドシート形式 可読性が低い アクセシビリティが悪い レビューしづらい JaSST nano vol.43
- Dec. 17th, 2024 17
スクリプト管理 内製ツール 保守要員数が多い 機能拡張しづらい 安定性が低い ブラウザ管理 スクリプトが管理しづらい 学習コストが高い モジュール化できない バージョン管理できない
JaSST nano vol.43 - Dec. 17th, 2024 18
テスト実行 半自動化 実行工数が多い 実行時期が遅い 実行頻度が少ない JaSST nano vol.43 - Dec.
17th, 2024 19
理想と方針 理想と大まかな方針を作成しました。 シナリオ管理 スプレッドシート形式 -> Gherkin形式 可読性が 高い アクセシビリティが 良い
レビューし やすい スクリプト管理 ブラウザ管理 -> コード管理 スクリプトが管理し やすい モジュール化 できる バージョン管理 できる テスト実行 半自動化 -> 全自動化 実行工数が 少ない 実行時期が 早い 実行頻度が 多い JaSST nano vol.43 - Dec. 17th, 2024 20
候補 選定の候補となったツールです。 商用サービス: 有償・クローズド Mabl、Autify、DataDog、Ranorex 自社開発: 無償・オープン(限定) Selenium拡張 オープンソース: 無償・オープン(公開)
Python系 Cucumber+ Cypress、Selenium、Playwrightなど CodeceptJS JaSST nano vol.43 - Dec. 17th, 2024 21
検討・分類 まずは分類レベルで比較・検討しました。 結果 分類 シナリオ管理 スクリプト管理 拡張性 保守要員数 全自動 コスト変動
× 商用サービス なし ブラウザ 困難 少ない 可能 高い × 自社開発 ファイル ブラウザ 可能 多い 不可 低い 〇 オープンソース Gherkin コード 容易 少ない 可能 低い JaSST nano vol.43 - Dec. 17th, 2024 22
検討・個別 次は個別ツールで比較・検討しました。 結果 個別 言語 学習コスト プロジェクト存続リスク × Python系 Python
高い 低い △ Cucumber+ TypeScript 低い 高い 〇 CodeceptJS TypeScript 低い 低い JaSST nano vol.43 - Dec. 17th, 2024 23
観点・詳細 最終的な観点の詳細を整理しました。 シナリオの保守性が高い Gherkin形式をサポートしている。 可読性が高い アクセシビリティが良い レビューしやすい JaSST nano vol.43
- Dec. 17th, 2024 24
機能・非機能要件の充足度が高い コード管理できる。 スクリプトが管理しやすい モジュール化できる バージョン管理できる 全自動化が可能。 実行工数が少ない 実行時期が早い 実行頻度が多い 保守要員数が少ない。
学習コストが低い。 JaSST nano vol.43 - Dec. 17th, 2024 25
環境変化への適応度が高い 拡張性が高い。 コスト変動が低い。 プロジェクト存続リスクが低い。 JaSST nano vol.43 - Dec. 17th,
2024 26
観点・概要 改めて、最終的な観点の概要です。 シナリオの保守性が高い。 機能・非機能要件の充足度が高い。 環境変化への適応度が高い。 JaSST nano vol.43 - Dec.
17th, 2024 27
観点と特徴 観点は特徴と対応しています。 特徴 詳細 観点 複雑 シナリオが複雑になる シナリオの保守性 多機能 機能が多様である
機能・非機能要件の充足度 長期 環境が変化する 環境変化への適応度 JaSST nano vol.43 - Dec. 17th, 2024 28
選定後 色々と課題はありますが、割と順調に進んでいます。 プロトタイプを作成し、評価を行いました。 社内での利用を決定し、導入を開始しました。 現在、複数グループに展開中です。 今後、全グループへの展開を予定しています。 JaSST nano vol.43 -
Dec. 17th, 2024 29
良かった点 All-in-One なので、立ち上がりが早い。 コード管理 は開発者には馴染みやすい。 機能が豊富 で、 拡張が容易 である。 JaSST
nano vol.43 - Dec. 17th, 2024 30
課題・現在 現在、取り組んでいる課題ですが、主にシナリオ関係です。 記述粒度をどの程度にするか。 改廃が容易なテストデータをどう管理するか。 カバレッジをどう整理するか。 JaSST nano vol.43 - Dec.
17th, 2024 31
宣伝 CI/CD、SETを募集しています。 会社:株式会社Works Human Intelligence 求人:職種一覧 一言:やりがいもあり、フルリモートで、QOLが高めの会社かと思います。 JaSST nano vol.43
- Dec. 17th, 2024 32
質問 質問があればX:@goataka_までお気軽にご連絡ください。 JaSST nano vol.43 - Dec. 17th, 2024 33
最後 本内容が CodeceptJS を選ぶ参考になれば幸いです。 JaSST nano vol.43 - Dec. 17th,
2024 34
ご清聴ありがとうございました。 JaSST nano vol.43 - Dec. 17th, 2024 35