Upgrade to Pro — share decks privately, control downloads, hide ads and more …

なぜCodeceptJSを選んだか

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

 なぜCodeceptJSを選んだか

Avatar for goataka (GOAMI Takaaki)

goataka (GOAMI Takaaki)

December 17, 2024
Tweet

More Decks by goataka (GOAMI Takaaki)

Other Decks in Programming

Transcript

  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
  2. 関心・記事 関心: 自走力 ex. オンボーディング 実用性の高いドキュメント ex. マニュアル、開発ドキュメント 記事: 理解しやすいコードの書き方~理解容易性の7つの観点~

    開発マネージャがメンバーに知って欲しい事 開発視点で便利なユニットテストの使い方 JaSST nano vol.43 - Dec. 17th, 2024 3
  3. 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
  4. 特徴 テスト対象の特徴です。 複雑 カスタマイズ: なし 設定数: 多い 多機能 大分類: 24

    / 小分類: 145 サービス: 600弱 長期 開発期間: 30年 バージョン: 5 JaSST nano vol.43 - Dec. 17th, 2024 13
  5. 体制変更 まず、体制を変更させました。 担当 QA -> 開発者 仕様変更に追随しづらい -> やすい 専任1名

    / 兼任3名 -> 兼任40名 担当者数が少ない -> 多い カバレッジを上げづらい -> やすい JaSST nano vol.43 - Dec. 17th, 2024 16
  6. 理想と方針 理想と大まかな方針を作成しました。 シナリオ管理 スプレッドシート形式 -> Gherkin形式 可読性が 高い アクセシビリティが 良い

    レビューし やすい スクリプト管理 ブラウザ管理 -> コード管理 スクリプトが管理し やすい モジュール化 できる バージョン管理 できる テスト実行 半自動化 -> 全自動化 実行工数が 少ない 実行時期が 早い 実行頻度が 多い JaSST nano vol.43 - Dec. 17th, 2024 20
  7. 検討・分類 まずは分類レベルで比較・検討しました。 結果 分類 シナリオ管理 スクリプト管理 拡張性 保守要員数 全自動 コスト変動

    × 商用サービス なし ブラウザ 困難 少ない 可能 高い × 自社開発 ファイル ブラウザ 可能 多い 不可 低い 〇 オープンソース Gherkin コード 容易 少ない 可能 低い JaSST nano vol.43 - Dec. 17th, 2024 22
  8. 検討・個別 次は個別ツールで比較・検討しました。 結果 個別 言語 学習コスト プロジェクト存続リスク × Python系 Python

    高い 低い △ Cucumber+ TypeScript 低い 高い 〇 CodeceptJS TypeScript 低い 低い JaSST nano vol.43 - Dec. 17th, 2024 23
  9. 観点と特徴 観点は特徴と対応しています。 特徴 詳細 観点 複雑 シナリオが複雑になる シナリオの保守性 多機能 機能が多様である

    機能・非機能要件の充足度 長期 環境が変化する 環境変化への適応度 JaSST nano vol.43 - Dec. 17th, 2024 28