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
自動テストにおけるコードベース戦略とローコード戦略のすみ分け
Search
odan tomohiro
December 22, 2021
Technology
2
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
自動テストにおけるコードベース戦略とローコード戦略のすみ分け
ソフトウェアテスト自動化カンファレンス2021 登壇資料
https://testautomationresearch.connpass.com/event/228204/
odan tomohiro
December 22, 2021
More Decks by odan tomohiro
See All by odan tomohiro
『AIに負けない』より『AIと遊ぶ』」〜ワクワクが最強のテスト・QA学習戦略_公開用
odan611
1
110
テスト設計コンテストで出てくるテスト技術について話すの。
odan611
0
45
DMMプロダクト群へのmabl活用
odan611
0
2
DMMアカウントサービス フロントエンド改善支援のためのTestcafeを用いた自動e2eテストの刷新
odan611
0
2
良いテストを作るためのテスト設計チュートリアルを考える
odan611
0
4
テストスイートアーキテクチャへのアーキテクチャ検証手法ATAMの 適用
odan611
0
3
softec asia2019_report
odan611
0
2
naite_samplequestion
odan611
0
3
Jasst'18 kansai テスコンからの納得できるテスト設計への挑戦
odan611
0
2
Other Decks in Technology
See All in Technology
スタートアップにおけるアジャイルの実践について #shibuyagile
murabayashi
1
160
徹底討論!ECS vs EKS!
daitak
3
1.8k
40代で“やっとエンジニアになれた”――閉じた学びを開き、空の青さを知る / 20260628 Naoki Takahashi
shift_evolve
PRO
4
1.3k
次世代ランサムウェア対策の考察 / 20260704 Mitsutoshi Matsuo
shift_evolve
PRO
2
350
Hatena Engineer Seminar 37 jj1uzh
jj1uzh
0
210
Kotlin 開発のツラミを爆破した話! / Explode the difficulty of Kotlin dev!
eller86
0
110
Text-to-SQLをAgentCoreで実現し、生成されるSQLの精度を定量的に評価する
yakumo
2
150
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
11k
時期が悪い!それでもRaspberry Piを買って遊んで活用するには / 20260627-osc26do-rpi-jikigawarui
akkiesoft
1
910
Comment regagner la souveraineté de vos données tout en étant payé grâce à Nostr !
rlifchitz
0
230
トークン最適化のためのユーザーストーリー分析 / User Story Analysis for Token Optimization
oomatomo
0
130
「軸足」は 固定しなくていい - 熱量と強みで描く、しなやかなキャリアの形
kakehashi
PRO
1
290
Featured
See All Featured
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
260
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
620
Ethics towards AI in product and experience design
skipperchong
2
320
A designer walks into a library…
pauljervisheath
211
24k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
210
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
240
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
750
Game over? The fight for quality and originality in the time of robots
wayneb77
1
210
Transcript
© DMM.comc 自動テストにおける コードベース戦略とローコード戦略 のすみ分け 合同会社 DMM.com テクノロジー本部 QA部 高山英介
大段智広 2021/12/11
© DMM.comc 名前:高山 英介(たかやま えいすけ) 所属:テクノロジー本部 QA部 2020年3月入社 • 動画配信事業部向けのQAチームとりまとめを行
っています。 • 前職は、組み込み機器の検証業務を10数年経験。 2 自己紹介
© DMM.comc 名前:大段 智広(おおだん ともひろ) 所属:テクノロジー本部 QA部 2021年4月入社 • プラットフォーム事業本部向けのQAチームとり
まとめを行っています。 会社以外では、こんなところで活動しています。 NPO法人 ソフトウェアテスト技術振興協会 ASTER • JSTQB(Japan Software Testing Qualifications Board)技術委員 • 試験問題を作る人 • テスト設計コンテスト実行委員&U-30クラス審査委員 3 自己紹介
© DMM.comc 目次 1. 背景・課題 2. 自動E2Eテスト開発戦略 3. 自動E2Eテスト事例(ローコードベース戦略) 4.
自動E2Eテスト事例(コードベース戦略) 5. 開発戦略のすみ分けのために必要なこと 6. 今後の取り組み 4
© DMM.comc 1. 背景・課題 • DMM.com QA部の役割 • DMM.com QA部が目指すもの
• 当たり前品質を徹底できるカルチャーを根付かせる 5
© DMM.comc
© DMM.comc
© DMM.comc 8 8
© DMM.comc DMM.com QA部の役割 QAが挑戦を支える アジリティ高く挑戦 高品質で効率的な アウトプット ※アジリティ •
誰もが素早く挑戦し、失敗が許容できる技術的基盤がある。 • 見つけた最適解を全体に広める仕組みがある 9
© DMM.comc 10 DMM.com QA部が目指すもの • 開発チームに入り、品質に 関わる基準やプロセス整備 • 横断的なナレッジや環境整
備と展開 品質保証体制の整備 • ツール/内製環境を利用し、 仕組み化やシステム化を目 指す • 多様な事業をカバーするた めにも人手に頼らない環境 を作る テクノロジーの活用 • チーム自身が品質に対する 意識を持つ • 開発者自身がテスト自動化 品質に対する文化形成 これらを目指してアジリティの高い挑戦を支える
© DMM.comc 当たり前品質を徹底できる文化を根付かせる • 課題 • 様々なプロダクトのリリースが頻繁に行われる状況で、欠陥流出を未然に 防ぎ、開発全体で品質に対する文化形成するためには、仕組み化やシステ ム化が必要。 •
QA部 施策 • E2Eレベルを対象に自動テストシステムを開発・構築して、継続的にテスト することで、常に品質を見れる、維持できる状態にする。 • 特に「維持できる」自動テストシステムや体制を作り上げることを重視。 11
© DMM.comc 2.自動E2Eテスト開発戦略 • 自動E2Eテスト開発プロジェクトの流れ • 自動E2Eテスト開発戦略 • ローコードベース vs
コードベース • 自動E2Eテスト開発のためのすみわけ方針 12
© DMM.comc 要求収集・分析フェーズ 実現性検討フェーズ 計画フェーズ 開発フェーズ 運用 フェーズ (略) 自動E2Eテスト開発プロジェクトの流れ
13 自動化要件の 洗い出し ツール の評価と選定 自動テスト 開発計画 策定と合意 自動テスト開発 自動テスト 開発方針・ 運用ルール決め テストシナリオ 洗い出し • 自動E2Eテスト目的の識別 • 自動E2Eテスト要件・制約の識別 • 自動E2Eテスト要件化 • 開発/テストプロセスの把握 • ツール制約の把握 • サンプルの開発 • 自動化アプローチの決定 (自動E2Eテスト開発戦略の決定) • 自動化範囲の合意 • スケジュールの合意 • 要員調整 • テスト対象の把握 • スクリプトの開発 • スクリプトのテスト • テストの実行 • 設計、実装方針 • 運用ルール • 欠陥マネジメント
© DMM.comc 自動E2Eテスト開発戦略 下記のいずれが妥当かを検討し、テスト開発を進めていく必要がある 14 項目 ノーコードベース ローコードベース コードベース テスト
成果物 • テストモデル • テストモデル or 一部コード • コード 説明 • 主にユーザーの操作を記録・ 定義のみでテストを開発する • ユーザーの操作を記録・定義 +コードでテストを開発する • テストを効率的に開発するた めのDSLを利用してテストを 開発する • プロダクト開発と同様にコード を用いてテストを開発する ツール • Autify • MagicPod など • mabl • Eggplant • Airtest • Gauge • Autify • MagicPod など • Selenium • Appium • TestCafe • Cypress • Playwright など and
© DMM.comc ローコードベース vs コードベース • ツール適用範囲を超えてテストを改善していくことを考え、ノーコード は採用せず、残りの二つの戦略の特性を比較した。 15 特性
項目 ローコードベース コードベース SUTとの親和性 Webシステムに加えて、 アプリ全般に対応しやすい (特に画像、動画に対応できる) 主にWebシステム テスト対応の柔軟性 ツールの仕様により、 制約が掛かってしまうことがある 制約はほとんど受けない (ただし、作りこみが必要) 開発・運用体制 QAメンバ中心 (開発メンバも含む) 開発メンバ中心 必要なスキル ツール固有開発知識 コーディング スキル習得コスト コーディングと比較して、 習得コストはかからない ローコードに比べて、 習得コストが掛かる 設備コスト 無償~コスト大 無償~コスト小 運用・保守コスト プロダクトの作りによる プロダクト/自動テストの作りによる ※SUT:System under testの略。テスト対象システム。
© DMM.comc 自動E2Eテスト開発のためのすみわけ方針 戦略の特性に合わせて、どちらの方針でもQA部として支援を行った。 • すみ分けの検討項目 ① SUTと相性が良いか A) Webシステム以外も対象とするか
B) Webシステムで完結するか ② 誰主体で運用するか A) QAメンバ主体 B) 開発メンバ主体(QAメンバ含む) ③ 導入時期に余裕があるか A) すぐに導入したい B) 少しずつ作り上げていきたい ⇒明確な境界線はないため、最終的には関係者(開発、QA)で合意する。 16 ※SUT:System under testの略。テスト対象システム。 ローコードベース コードベース A B A B A B
© DMM.comc 3.自動E2Eテスト事例 (ローコードベース) 17 • テスト対象 • 背景、課題 •
自動E2Eテスト開発戦略の決定 • 開発/運用体制 • 構築した自動E2Eテスト
© DMM.comc テスト対象 DMM動画サービス 動画の購入、再生を担当するアプリケーション 18 × 説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、 説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、 説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、
説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文 ★ お気に入り登録数 0 購入はこちらから 今すぐ購入 バスケットに入れる サムネイル 商品タイトル 対応デバイス : パソコン、iPhone/iPad、Android、Chromecast 配信開始日 : XXXX/XX/XX 商品発売日 : XXXX/XX/XX 収録時間 : XXXX 出演者 : XXXX ジャンル : XXXX 品番 : XXXX 平均評価 : ★★★★★ イメージを拡大 ▶ お気に入りリストに登録 クレジットカード決済なら: 30pt獲得 2,450円 無期限 HD版ダウンロード+ HD版ストリーミング 1,980円 無期限 ダウンロード+ ストリーミング 980円 7日間 HD版ストリーミング PC モバイル 再生アプリ
© DMM.comc 背景、課題 • 致命的なインシデントを未然に防ぎたい。 • 手動でやるとコストが掛かる全社メンテナンス明けテストを定期的に実施したい。 • 開発のDeliveryを現状から落としたくない。 19
開発メンバ QA部メンバ 自動テストシステム
© DMM.comc 自動E2Eテスト開発戦略の決定 ⇒「ローコードベース」を選択。 20 • すみ分けの検討項目 ① SUTと相性が良いか A)
Webシステム以外も対象とするか B) Webシステムで完結するか ② 誰主体で運用するか A) QAメンバ主体 B) 開発メンバ主体(QAメンバ含む) ③ 導入時期に余裕があるか A) すぐに導入したい B) 少しずつ作り上げていきたい ローコードベース コードベース A B A B A B
© DMM.comc 開発/運用体制 21 • QA部メンバが自動E2Eテストの実装・レビューを実施。(開発期間:約3カ月) • テストの追加があれば都度開発する。 • 開発完了した自動E2Eテストは、ステージング/本番環境で日次定期実行を実施。
QA部メンバ 3名⇒現状5名 テストモデル作成 スクリプト作成 テストモデル、スクリプト レビュー/検証 日次定期実行 を確認 テスト環境 構築
© DMM.comc 構築した自動E2Eテスト(1) • テスト内容 • 致命的なインシデントにつながるユーザーシナリオが動作するか • 購入、再生のシナリオ •
商品カテゴリ、アプリ、端末の組み合わせで動作保証ができているか • 商品購入パターン(100以上) • 採用したツール • ツール名:Eggplant • 開発言語:状態遷移モデル+ツール独自言語 • 利用技術:画像処理ベース • 選定理由: • PC/スマートフォン以外のデバイスがテスト可能 • テスト自動化の経験者が少ない中からスケールしやすい • テストケースの作りがわかりやすい&テストコードが長くならない 22 参考:Eggplant https://www.eggplantsoftware.com/
© DMM.comc 改善③ ・どこでも実機でテスト開発可能 構築した自動E2Eテスト(2) 23 日次定期実行、手動実行トリガー テスト実行環境 Github 開発リポジトリ
テスト実行 (on stg) テスト対象の アプリケーション環境 QA部メンバ Eggplant DAI テスト実行 テスト結果通知 Windows テストモデル Upload & 結果確認 テストモデル 成果物管理 Eggplant Functional テスト開発 Eggplant Functional Android iOS Mac mini ChromeCast Slack 手動実行 改善② ・他デバイスでテスト可能 改善① ・いつでも実行可能 (on 本番)
© DMM.comc 4.自動E2Eテスト事例 (コードベース) • テスト対象 • 背景、課題 • 自動E2Eテスト開発戦略の決定
• 開発/運用体制 • 構築した自動E2Eテスト 24
© DMM.comc テスト対象 DMMアカウントサービス 認証認可を担当するアプリケーション 会員登録&退会、アカウント情報管理 25 モバイルブラウザ PCブラウザ 認証メールを送信する
新規登録 メールアドレスで登録 メールアドレス パスワード 他のアカウントで登録 Googleで登録 Twitterで登録 Facebookで登録 × 認証メールを送信する 新規登録 メールアドレスで登録 メールアドレス パスワード 他のアカウントで登録 Googleで登録 Twitterで登録 Facebookで登録
© DMM.comc 背景、課題(1) • DMMアカウントサービスのフロントエンドを改善する 26 目的 • 既存の機能を担保しながら、高速&安心なUI開発に変えてゆく 課題
• 自動E2Eテストが壊れやすく、メンテナンスもされていない 施策:自動E2Eテスト刷新 • メンテナンスされていないE2Eを保守しやすくするwith QA部 参考: 2021/06/18(金) DMM meetup #29 〜DMMのプラットフォーム基盤における認証認可に関する改善〜 DMMアカウントサービスのフロントエンド改善 https://speakerdeck.com/okmttdhr/dmmakauntosabisufalsehurontoendogai-shan
© DMM.comc 背景、課題(2) 27 開発メンバ 課題① 壊れやすい & メンテナンス されていないテスト
課題② PCブラウザ環境として Chromeも想定していたが、 Firefoxでの動作確認のみ 日次定期実行 テスト環境 構築 テスト実行環境 Github 開発リポジトリ 開発リポジトリ 成果物利用 (on stg) テスト対象の アプリケーション環境 テスト実行 CircleCI Selenium Slack テスト結果通知
© DMM.comc 自動E2Eテスト開発戦略の決定 28 • すみ分けの検討項目 ① SUTと相性が良いか A) Webシステム以外も対象とするか
B) Webシステムで完結するか ② 誰主体で運用するか A) QAメンバ主体 B) 開発メンバ主体(QAメンバ含む) ③ 導入時期に余裕があるか A) すぐに導入したい B) 少しずつ作り上げていきたい ローコードベース コードベース A B A B A B ⇒「コードベース」を選択。
© DMM.comc 開発/運用体制 29 • 2週間スプリントで自動E2Eテストを開発。(開発期間:約5カ月) • QA部メンバが開発し、開発メンバも含めてレビューを実施。 • 開発完了した自動E2Eテストは、ステージング環境で日次定期実行を実施。
テストシナリオA Firefoxをテスト モバイルをテスト テストシナリオB テストシナリオC ・・・ テストシナリオA テストシナリオB CIツールによる 日次定期実行 を確認 2週間スプリント 日次夕会 QA部メンバ 開発メンバ ※開発イメージ スプリントバックログ 自動E2Eテストバックログ 2名~ 3名
© DMM.comc 構築した自動E2Eテスト(1) • テスト内容 • ユーザーが利用できないと困る、基本的なユーザーシナリオが動作するか • 会員登録、ログイン/ログアウト、2段階認証、メールアドレス/パスワード再設定 など
• ページ、ブラウザ、端末の組み合わせで動作保証ができているか • 採用したツール • ツール名:TestCafe • 開発言語:TypeScript • 利用技術:ブラウザベース • 選定理由: • Webドライバが要らないため、Seleniumなどに比べて環境構築がしやすい。 • プロダクトと同じ開発言語(TypeScript)で開発できる。 • QA部メンバにコーディングスキルが求められるが、開発メンバもレビューや開発がしやすい。 • コード品質を保つためのツールもテストコードに適用できる。 30 参考:TestCafe https://testcafe.io/
© DMM.comc 構築した自動E2Eテスト(2) 31 日次定期実行、onPushトリガー テスト実行環境 Github 開発リポジトリ 成果物利用 テスト実行
CircleCI Github Actions (on stg) テスト対象の アプリケーション環境 Slack OR 開発&QA部メンバ Test Cafe テスト環境 構築 Edge 改善② ・PCブラウザ、モバイルのテストを実行 ・クロスブラウザのテストを実行 改善① ・メンテナンスを考慮したテスト実装方針 ・運用ルール・体制 テスト結果通知
© DMM.comc 5.開発戦略のすみ分け のために必要なこと • 自動テストを開発して得られたこと • 課題として見えてきたこと • 開発戦略のすみ分けのために必要なこと
32
© DMM.comc 自動テストを開発して得られたこと • 共通 • 継続的にテストした結果からプロダクトの品質情報を常に知ることができる。 • また、テストし続けると開発の動きを知るきっかけにもなる。 •
不安定なところ、テストされていないところが明確になった。 • ローコードベースの場合 • コーディングスキルが高くないQAメンバも開発することができる。 • 要員が入れ替わっても学習コストは変わらない(2week程度) • コードベースの場合 • 開発目線でテスト開発をどのように行えばよいかの共通認識が得られる • 開発との距離も近いので常に相談することができる 33
© DMM.comc 課題として見えてきたこと • 共通 • 方針に沿って開発・運用できるように開発環境を整備&改善する必要がある。 • ローコードベースの場合 •
ツール活用方針の策定やツール教育を行う。 • ツールを習熟するコストをあらかじめ見込んでおかないと、ツール本来のやれるべきことでき ずに限定的な活用になってしまう。 • コードベースの場合 • コーディング、 CI/CDパイプライン構築スキルのあるメンバの教育&参画させる。 • コーディングできる&QAやテストに興味があるメンバはとても貴重。 • CI/CDパイプラインを構築したことがある人ももっと貴重。 • 継続的にテストするためには、CI/CDに組み込むことが必須。 • テスト設計スキルの教育もしくは持っているメンバの参画させる。 • コーディングスキルが重視されるため、全体のテスト設計をどのようにすればよいかを考える メンバが不足しがち。 34
© DMM.comc 開発戦略のすみ分けのために • 導入時は、プロダクト、プロジェクト、チームの状況に応じて、 やりやすいものを選択する。 • ただし、テストすべき領域を増やしていく場合は、現状では、ハイブリ ットで適用する必要が出てきている。 •
QAメンバであっても対応できるように、エンジニアリングスキルが求められる。 35 ローコードベース テストシステム コードベース テストシステム ローコードベース テストシステム コードベース テストシステム 導入初期① 導入初期② 最終的な運用イメージ テ ス ト 環 境 構 成 管 理 対応領域 自動テストシステムアーキテクチャ例 コード ローコード 特殊デバイス 自動テスト サブシステム テスト適合 テスト実行 テスト定義 テスト生成 Web 自動テスト サブシステム テスト適合 テスト実行 テスト定義 テスト生成 テスト結果の統合 ・・・ テ ス ト 環 境 欠陥管理 CI/CD
© DMM.comc 6. 今後の取り組み • テスト可能な範囲を広げる 36
© DMM.comc テスト可能な範囲を広げる(1) 適用範囲部分が限定的であるため、より広範囲にテストすることで日々の変化を 検知しやすくする。 例えば… ①単一のユースケースからユーザー体験へ 一部のサービスのユースケース(動画購入、再生) ↓ 特定のユーザー体験(会員登録⇒動画購入⇒再生⇒退会)
②特殊なデバイス PC/スマートフォン + TV、ゲーム機、VR 37
© DMM.comc テスト可能な範囲を広げる(2) そのためには… 自動化ニーズに対応できるチーム体制を 構築・強化する プロセス • ツールを適切に活用できるようにル ールや手順を洗練させる
技術 • 良いツールがでたらどんどん試して 取り組む 人 • テスト自動化スキルがあるor意欲の ある良い人を採用する 38 ローコードベース 自動テスト開発チーム コードベース 自動テスト開発チーム プロセス 人 技術 ローコードベース 自動テスト開発チーム ハイブリッドな 自動テスト開発チーム
© DMM.comc 宣伝 39 採用強化中です!!事業と協同で品質を作り上げていくことや ゼロから品質保証の仕組み構築から関わりたい人は是非ご応募ください!! ただ話すだけの場も あります! QA部 採用
ちょっと聞く場 https://dmm-corp.com/recruit/ https://meety.net/matches/ZYgEWqhBfRIs
© DMM.comc ご清聴ありがとうございました。
© DMM.comc 参考 • テスト自動化に関連 • Advanced Level Specialist シラバス
テスト自動化エンジニア • AutomationTest.SSF Ver1.0 • DMM Meetup資料 • DMM meetup #23 〜DMMのQAとマーケティング領域での取り組み紹介〜 • DMM meetup #29 〜DMMのプラットフォーム基盤における認証認可に関する改善〜 • DMM meetup #34 〜アジャイルQA&テスト自動化の取り組み紹介〜 41