Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
なぜCodeceptJSを選んだか? GOAMI,Takaaki (X: tkg -> @goataka_) JaSST nano vol.43 - Dec. 17th, 2024 1
Slide 2
Slide 2 text
自己紹介 役割:エンジニアリング・マネージャー 担当: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
Slide 3
Slide 3 text
関心・記事 関心: 自走力 ex. オンボーディング 実用性の高いドキュメント ex. マニュアル、開発ドキュメント 記事: 理解しやすいコードの書き方~理解容易性の7つの観点~ 開発マネージャがメンバーに知って欲しい事 開発視点で便利なユニットテストの使い方 JaSST nano vol.43 - Dec. 17th, 2024 3
Slide 4
Slide 4 text
アンケート E2E自動テストに取り組んでいますか? 1. 運用中 2. 実装中 3. 計画中 4. 未定 JaSST nano vol.43 - Dec. 17th, 2024 4
Slide 5
Slide 5 text
目的 CodeceptJS の利用促進です。 JaSST nano vol.43 - Dec. 17th, 2024 5
Slide 6
Slide 6 text
CodeceptJS https://codecept.io/ E2Eテストフレームワーク 特徴 オープンソース TypeScriptサポート Gherkin記法サポート 他ライブラリのラッパー ex. Selenium, Playwright, Puppeteer, WebDriverIO, TestCafe, Appium JaSST nano vol.43 - Dec. 17th, 2024 6
Slide 7
Slide 7 text
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
Slide 8
Slide 8 text
利用方法 時間の都合上、詳しい紹介ができないので、次を参考にして頂ければ幸いです。 Qiita:CodeceptJSにトライしてみた 投稿者:私 基本的な使い方をハンズオン形式で紹介しています。 書籍:テスト自動化実践ガイド - 継続的にWebアプリケーションを改善するための知 識と技法 著者:末村 拓也 / 出版社:翔泳社 実装例として、CodeceptJS + Playwright が紹介されています。 JaSST nano vol.43 - Dec. 17th, 2024 8
Slide 9
Slide 9 text
主題 なぜ CodeceptJS を選んだか? JaSST nano vol.43 - Dec. 17th, 2024 9
Slide 10
Slide 10 text
結論 詳細が冗長な為、先に結論としての観点を述べておきます。 シナリオの保守性が高い。 機能・非機能要件の充足度が高い。 環境変化への適応度が高い。 JaSST nano vol.43 - Dec. 17th, 2024 10
Slide 11
Slide 11 text
以降 結論までの詳細です。 JaSST nano vol.43 - Dec. 17th, 2024 11
Slide 12
Slide 12 text
前提 テスト対象です。 システム:大手企業向け統合人事システム サービス:勤怠管理 JaSST nano vol.43 - Dec. 17th, 2024 12
Slide 13
Slide 13 text
特徴 テスト対象の特徴です。 複雑 カスタマイズ: なし 設定数: 多い 多機能 大分類: 24 / 小分類: 145 サービス: 600弱 長期 開発期間: 30年 バージョン: 5 JaSST nano vol.43 - Dec. 17th, 2024 13
Slide 14
Slide 14 text
選定前 E2E自動テストの状況 体制 担当 QA 専任1名 / 兼任3名 JaSST nano vol.43 - Dec. 17th, 2024 14
Slide 15
Slide 15 text
ツール シナリオ管理 スプレッドシート形式 スクリプト管理 内製ツール ブラウザ管理 テスト実行 半自動化 JaSST nano vol.43 - Dec. 17th, 2024 15
Slide 16
Slide 16 text
体制変更 まず、体制を変更させました。 担当 QA -> 開発者 仕様変更に追随しづらい -> やすい 専任1名 / 兼任3名 -> 兼任40名 担当者数が少ない -> 多い カバレッジを上げづらい -> やすい JaSST nano vol.43 - Dec. 17th, 2024 16
Slide 17
Slide 17 text
課題 課題を整理しました。 シナリオ管理 スプレッドシート形式 可読性が低い アクセシビリティが悪い レビューしづらい JaSST nano vol.43 - Dec. 17th, 2024 17
Slide 18
Slide 18 text
スクリプト管理 内製ツール 保守要員数が多い 機能拡張しづらい 安定性が低い ブラウザ管理 スクリプトが管理しづらい 学習コストが高い モジュール化できない バージョン管理できない JaSST nano vol.43 - Dec. 17th, 2024 18
Slide 19
Slide 19 text
テスト実行 半自動化 実行工数が多い 実行時期が遅い 実行頻度が少ない JaSST nano vol.43 - Dec. 17th, 2024 19
Slide 20
Slide 20 text
理想と方針 理想と大まかな方針を作成しました。 シナリオ管理 スプレッドシート形式 -> Gherkin形式 可読性が 高い アクセシビリティが 良い レビューし やすい スクリプト管理 ブラウザ管理 -> コード管理 スクリプトが管理し やすい モジュール化 できる バージョン管理 できる テスト実行 半自動化 -> 全自動化 実行工数が 少ない 実行時期が 早い 実行頻度が 多い JaSST nano vol.43 - Dec. 17th, 2024 20
Slide 21
Slide 21 text
候補 選定の候補となったツールです。 商用サービス: 有償・クローズド Mabl、Autify、DataDog、Ranorex 自社開発: 無償・オープン(限定) Selenium拡張 オープンソース: 無償・オープン(公開) Python系 Cucumber+ Cypress、Selenium、Playwrightなど CodeceptJS JaSST nano vol.43 - Dec. 17th, 2024 21
Slide 22
Slide 22 text
検討・分類 まずは分類レベルで比較・検討しました。 結果 分類 シナリオ管理 スクリプト管理 拡張性 保守要員数 全自動 コスト変動 × 商用サービス なし ブラウザ 困難 少ない 可能 高い × 自社開発 ファイル ブラウザ 可能 多い 不可 低い 〇 オープンソース Gherkin コード 容易 少ない 可能 低い JaSST nano vol.43 - Dec. 17th, 2024 22
Slide 23
Slide 23 text
検討・個別 次は個別ツールで比較・検討しました。 結果 個別 言語 学習コスト プロジェクト存続リスク × Python系 Python 高い 低い △ Cucumber+ TypeScript 低い 高い 〇 CodeceptJS TypeScript 低い 低い JaSST nano vol.43 - Dec. 17th, 2024 23
Slide 24
Slide 24 text
観点・詳細 最終的な観点の詳細を整理しました。 シナリオの保守性が高い Gherkin形式をサポートしている。 可読性が高い アクセシビリティが良い レビューしやすい JaSST nano vol.43 - Dec. 17th, 2024 24
Slide 25
Slide 25 text
機能・非機能要件の充足度が高い コード管理できる。 スクリプトが管理しやすい モジュール化できる バージョン管理できる 全自動化が可能。 実行工数が少ない 実行時期が早い 実行頻度が多い 保守要員数が少ない。 学習コストが低い。 JaSST nano vol.43 - Dec. 17th, 2024 25
Slide 26
Slide 26 text
環境変化への適応度が高い 拡張性が高い。 コスト変動が低い。 プロジェクト存続リスクが低い。 JaSST nano vol.43 - Dec. 17th, 2024 26
Slide 27
Slide 27 text
観点・概要 改めて、最終的な観点の概要です。 シナリオの保守性が高い。 機能・非機能要件の充足度が高い。 環境変化への適応度が高い。 JaSST nano vol.43 - Dec. 17th, 2024 27
Slide 28
Slide 28 text
観点と特徴 観点は特徴と対応しています。 特徴 詳細 観点 複雑 シナリオが複雑になる シナリオの保守性 多機能 機能が多様である 機能・非機能要件の充足度 長期 環境が変化する 環境変化への適応度 JaSST nano vol.43 - Dec. 17th, 2024 28
Slide 29
Slide 29 text
選定後 色々と課題はありますが、割と順調に進んでいます。 プロトタイプを作成し、評価を行いました。 社内での利用を決定し、導入を開始しました。 現在、複数グループに展開中です。 今後、全グループへの展開を予定しています。 JaSST nano vol.43 - Dec. 17th, 2024 29
Slide 30
Slide 30 text
良かった点 All-in-One なので、立ち上がりが早い。 コード管理 は開発者には馴染みやすい。 機能が豊富 で、 拡張が容易 である。 JaSST nano vol.43 - Dec. 17th, 2024 30
Slide 31
Slide 31 text
課題・現在 現在、取り組んでいる課題ですが、主にシナリオ関係です。 記述粒度をどの程度にするか。 改廃が容易なテストデータをどう管理するか。 カバレッジをどう整理するか。 JaSST nano vol.43 - Dec. 17th, 2024 31
Slide 32
Slide 32 text
宣伝 CI/CD、SETを募集しています。 会社:株式会社Works Human Intelligence 求人:職種一覧 一言:やりがいもあり、フルリモートで、QOLが高めの会社かと思います。 JaSST nano vol.43 - Dec. 17th, 2024 32
Slide 33
Slide 33 text
質問 質問があればX:@goataka_までお気軽にご連絡ください。 JaSST nano vol.43 - Dec. 17th, 2024 33
Slide 34
Slide 34 text
最後 本内容が CodeceptJS を選ぶ参考になれば幸いです。 JaSST nano vol.43 - Dec. 17th, 2024 34
Slide 35
Slide 35 text
ご清聴ありがとうございました。 JaSST nano vol.43 - Dec. 17th, 2024 35