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
E2Eの過去・現在・未来 そしてE2Eにおいて重要なこと
Search
takayuki-hayashi
April 27, 2021
Technology
1
440
E2Eの過去・現在・未来 そしてE2Eにおいて重要なこと
Qiita × Uzabase Tech Meetup#1での発表資料です。
https://connpass.com/event/210103/
takayuki-hayashi
April 27, 2021
Tweet
Share
More Decks by takayuki-hayashi
See All by takayuki-hayashi
いかにしてテスト文化を醸成させたか.pdf
takayukihayashi
3
1.4k
リーダー、マネージャーが存在しない開発組織のつくり方
takayukihayashi
0
28k
AngularDartでDart入門
takayukihayashi
1
840
E2Eテスト駆動開発実践記_-_Web用.pdf
takayukihayashi
2
3.3k
KubernetesとGaugeを活用したTDD開発事例
takayukihayashi
0
850
FlutterとAngularDartを DIとClean Architectureで いい感じにする
takayukihayashi
3
2.1k
Gaugeによるe2eテスト
takayukihayashi
5
28k
Dartエコシステムの紹介
takayukihayashi
2
580
Other Decks in Technology
See All in Technology
ゼロからわかる!!AWSの構成図を書いてみようワークショップ 問題&解答解説 #デッカイギ #羽田デッカイギおつ
_mossann_t
0
1.5k
2024年活動報告会(人材育成推進WG・ビジネスサブWG) / 20250114-OIDF-J-EduWG-BizSWG
oidfj
0
230
iPadOS18でフローティングタブバーを解除してみた
sansantech
PRO
1
140
KMP with Crashlytics
sansantech
PRO
0
240
AWS re:Invent 2024 re:Cap Taipei (for Developer): New Launches that facilitate Developer Workflow and Continuous Innovation
dwchiang
0
160
ドメイン駆動設計の実践により事業の成長スピードと保守性を両立するショッピングクーポン
lycorptech_jp
PRO
12
2.1k
comilioとCloudflare、そして未来へと向けて
oliver_diary
6
440
完全自律型AIエージェントとAgentic Workflow〜ワークフロー構築という現実解
pharma_x_tech
0
350
0→1事業こそPMは営業すべし / pmconf #落選お披露目 / PM should do sales in zero to one
roki_n_
PRO
1
1.5k
テストを書かないためのテスト/ Tests for not writing tests
sinsoku
1
170
深層学習と3Dキャプチャ・3Dモデル生成(土木学会応用力学委員会 応用数理・AIセミナー)
pfn
PRO
0
460
Copilotの力を実感!3ヶ月間の生成AI研修の試行錯誤&成功事例をご紹介。果たして得たものとは・・?
ktc_shiori
0
350
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
137
6.7k
Statistics for Hackers
jakevdp
797
220k
jQuery: Nuts, Bolts and Bling
dougneiner
62
7.6k
Site-Speed That Sticks
csswizardry
3
270
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
500
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Thoughts on Productivity
jonyablonski
68
4.4k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Scaling GitHub
holman
459
140k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
113
50k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Transcript
1 E2Eの過去・現在・未来 そしてE2Eにおいて重要なこと
2 自己紹介 • プログラマー • 好きなもの ◦ XP(Extreme programming) ◦
TDD ◦ DDD • ユーザベースとの関わり ◦ 2013年にフリーランスとしてジョイン ◦ 2017年に正社員 ◦ 2018年 SPEEDA事業 執行役員CTO ◦ 2020年 BtoB SaaS事業 執行役員CTO • E2Eの取り組み歴は15年くらい • Twitter ◦ @t_hyssh 林 尚之 Takayuki Hayashi 株式会社ユーザベース BtoB SaaS事業 執行役員CTO
前提 3 E2Eテスト、自動テスト、UAT、受け入れテスト、インテグレーション テスト等いろいろな表現と意図がありますが、一旦今日はこれらを総称 して「E2Eテスト」という表現を使わせて頂きます。
2000年代〜 (E2E関連) 4 Selenium(2004年)、DBUnit(2002年)等の登場により特にWebア プリケーションにおいてE2Eテストの技術が登場しはじめる。 SeleniumにはSelenium IDEというFirefox用アドオンもあり、UI 上の操作をレコーディング&実行が出来た。 ※ただし当時のSelenium IDEだけだとリグレッションテストとして実行するのは難しかっ
た。一時期Selenium IDEの開発は停滞していたがここ数年開発が活発に。
5 しかしWebとDBのアサーションを含めたE2Eの技術 には技術習得コストとメンテナンスコストという課題が 存在。
課題 6 • Ajaxなどの非同期処理に対する画面テストの難しさ • 時間経過によるシステムの状態変化に対するテストの難しさ • DBのアサーションに関する難しさ ◦ 外部キー制約によるデータ作成
◦ Timestamp、日付のアサーション ◦ Sequence、Auto Incrementのアサーション ◦ 大量データのアサーション • テスト実行時間の長さ • テスト環境準備 このあたりの解決方法については別途何処かで話せれば・・・
2010年前後〜現在 (プロダクト関連) 7 RedisやMongoDBに代表されるNoSQLの利用、Elasticsearch等の全文検索 エンジン、デバイスの多様化(スマホのネイティブアプリ、スマホのWeb 及びデスクトップWeb)、マイクロサービス化等でシステム(プロダク ト)における内部構造の複雑性が増している。 RDB
2010年前後〜現在 (E2E関連) 8 • Web DriverがW3C勧告になる(2018年) • 機械学習を取り入れたE2Eの試み • Selenium関連の継続的な開発
◦ selenium-docker、selenide、etc... • Selenium以外のUIテストフレームワークやE2Eテストフレームワーク の登場&普及 ◦ cypress、Serenity、Gauge、WebdriverIO、Appium、etc...
9 プロダクト側での技術の多様化は進むなか、E2Eテス ト関係の技術も少しずつ変化してきている
10 また、ビジネスのスピードが速くなる中でいかに速く継 続的にリリースするかが重要視されるようになり、そ のためにいかにテストを自動化するかという点におい て関心が高まっている
Cypress io の例 11 cypressというWeb E2Eテストフレームワークを開発している会社 • 2015年設立 • 2018年に約4億円
• 2019年に約10億円 • 2020年末には約43億円を調達
12 投資家目線でもそこ(E2E)に大きなニーズがあり、ビ ジネスチャンスがあると捉えられている
Googleの例 13 「Googleでは全て(UI含む)のテストを自動化している」 JaSTT’18 Tokyoにて当時GoogleのCI/CD責 任者であった John Micco氏の発言
未来 14 ビジネスの変化への対応(迅速なリリース)のための重要性は増 していくはず。 ただし、E2Eの根本的な難易度の高さ、複雑さは今後も変わらな いしむしろ増していく可能性が高い。 ソフトウェア業界全体として急激にE2Eが浸透していくという可 能性は低いが、ゆっくりと確実に広がっていくはず。
未来 15 TDDも2000年代は 「Unitテストなんか必要ない」 という人も少なくなかったが、先にテストを書くかどうかは別と して「Unitテストは必要だよね」という考えが浸透してきてい る。例えばOSSにおいてもUnitTestが書かれてあるケースが2000 年代に比べて圧倒的に増えている。 E2Eは感覚としてUnitTestに比べて10年くらい後ろを走っている イメージ。UnitTestの浸透と同じようにE2Eもゆっくり、確実に
浸透していくのでは。
16 E2Eテストにおいて重要なこと
17 10数年E2Eテストと向き合ってきて最も重要だと思うこ と。それは・・・
18 「TDD」の考え
E2Eにおいて重要なこと 19 E2Eであったとしても最も重要なのはTDDの考え方。 • テストの独立性 • アサートファースト • アサーションの数 •
テストダブル これらをきちんと理解し、実践できなければすぐにフラジャイル なE2Eになってしまう。良いE2Eを書くにはまずは良いUnit Test を書けるようにスキルを磨くこと。 そして小さく始める事。小さく始めて常にGreenな状態を保つと いう強い意思を持つこと。
まとめ 20 • プロダクトの複雑性は増している • E2E技術も進化してきている • E2Eに対する関心、興味も増してきている • TDDの考え大事
21 ご清聴ありがとうございました