Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
アジャイル開発とE2Eテストの話
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
SHIFT EVOLVE
PRO
July 01, 2021
Business
570
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
アジャイル開発とE2Eテストの話
SHIFT EVOLVE
PRO
July 01, 2021
More Decks by SHIFT EVOLVE
See All by SHIFT EVOLVE
価値実現重視へとシフトした時代を生き抜くには / 20260713 Takeshi Watarai
shift_evolve
PRO
1
110
SHIFTのコミュニティ活動 / 20260828 Yumiko Ohata
shift_evolve
PRO
2
96
AI活用によるレガシーモダナイゼーションとプロジェクトマネジメント / 20260827 Tsukasa Takemura & Takashi Maekawa
shift_evolve
PRO
0
100
兼務の事務局から、組織へ SHIFTのAWSアライアンス立ち上げ記 / 20260807 Satoshi Torano
shift_evolve
PRO
1
95
AIは実装を速くする。では、私たちは何を今作るべきか?-立場を越えてリリースに向き合ったチーム開発の実践 / 20260801 Hiromi Nakaya and Naoki Takahashi
shift_evolve
PRO
3
1.4k
Issue設計から始める仕様駆動開発 / 20260731 Mizuki Hirata
shift_evolve
PRO
1
340
”そのまま移行”からの脱却へ ― AI解析で実現するSAP S/4HANA導入成功メソッド / 20260729 Akio Hane
shift_evolve
PRO
1
94
区民の問い合わせ、AIにどこまで任せる? 品川区×SHIFTが挑む自治体音声AI実証の現在地 / 20260626 Taku Nishizawa and Satoshi Torano
shift_evolve
PRO
1
360
コミュニティを、仕事にした。‐ 学びの場が会社の価値になるまで / 20260724 Ayana Chandler
shift_evolve
PRO
0
200
Other Decks in Business
See All in Business
インパクトレポート2026
nessu_inc
0
1.2k
uniam_事業概要.pdf
uniam
PRO
0
1k
EDRを入れたので 安心しきっていませんか? 「導入した」から、「使いこなす」へ。
kamadamakoto
0
140
採用ピッチ資料(2026年8月版)|ナカソネ住設株式会社
nakasonejusetsu
0
470
Trend Cloud OneからTrendAI Vision Oneへの切替 - 事前に押さえたい疑問とつまずきやすいポイント
todatomohiro
0
220
カンパニーデック_260910.pdf
kojima1
0
580
アドバリスター株式会社 プロフェッショナルサービス事業
advalistar
0
18k
2026.10_中途採用資料.pdf
superstudio
PRO
5
120k
丸石グループ会社紹介
maruishi
0
290
シナジーマーケティング株式会社 採用ピッチ資料
synergymarketing
1
68k
アジャイルのインストールと実践 ~導入の軌跡と現在地~
nakahara
0
300
キャンバスエッジ株式会社 会社説明資料
canvasedge
0
20k
Featured
See All Featured
Paper Plane
katiecoart
PRO
5
54k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
850
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Mobile First: as difficult as doing things right
swwweet
225
10k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
380
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
220
Documentation Writing (for coders)
carmenintech
77
5.6k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
520
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
First, design no harm
axbom
PRO
2
1.3k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
260
Transcript
ΞδϟΠϧ։ൃͱ E2Eςετͷ 2021/06/25 DevOps & QAΤϯδχΞLTେձ Vol.1 Yyoshitomi
ࣗݾհ • גࣜձࣾτϦΫτϥοΫ • QA୲ • ৽ଔࡾ • ٢ඦ߹ࡊ
ฐࣾͷ։ൃମ੍ • ΞδϟΠϧ։ൃΛ࠾༻ • εϓϦϯτ2िؒ͝ͱ • CircleCIͳͲͷܧଓతσϓϩΠ • ຖ3ճͷE2Eςετͷఆظ࣮ߦ
• ࢄாʢϒϩοΫνΣʔϯʣܕαʔϏε • औҾࢀՃاۀɹ1ࣾ͝ͱʹ1ϊʔυʢαʔόʔʣཱ͕ͭ • औҾ͝ͱʹೝఆೝূہͷλΠϜελϯϓΛԡ͢ • ϑϨʔϜϫʔΫɿCordaɺSpringɺRails • ϑϩϯτΤϯυɿReact
ݱϓϩδΣΫτʹ͍ͭͯ
ςελʔ͔ΒݟͨݱϓϩδΣΫτͷݫ͍͠ • औҾʹؔ͢Δૢ࡞͕·͍ͣ • ຖिಥવػೳՃ͕ੜ͑ͯ͘Δ • ը໘ϝʔϧͷจݴ͕ߴසͰมΘΔ • UIߴසͰมߋ͕ೖΔͷͰɺSPAͷߏෳࡶ •
ॏ͍ ͱʹ͔͘ςετ͕͍͔ͭͳ͍
E2EςετΛؤுΖ͏ͱࢥͬͨ • ܾ·ͬͨखॱͰςετͰ͖Δ • จݴͷมߋͷͨͼʹςετ͕མͪΔ͔Βݟམͱ͕͠ൃੜ͠ͳ͍ • ςελʔҎ֎ͷࢹͰςετͰ͖Δ
͜͏ͨ͠Λ ղফͰ͖Δʂ ୯ମςετRequest specͰΧόʔ Ͱ͖ͳ͍෦Λܾ·ͬͨखॱͰςετͰ͖Δ • ޡೖྗͳͲɺखಈͩͱੜ͡Δೖྗ༰ૢ࡞ͷΒ͖͕ͭൃੜ͠ͳ͍ • ͍͜͠ૢ࡞Λཏతʹ࣮ߦͰ͖Δ ೖྗཝʹʮ༗͏ʯͬͯ
ೖྗ͢ΔͭΓ͕ ʮٜࠈʯͬͯೖྗͯ͠ ͠·ͬͨʂ ͏͔Ε͜Ε4ճ͘Β͍ ҧ͏ϘλϯΛΫϦοΫͯ͠ ςετΓͯ͠Δʂ
ςετΛ ϝϯςφϯε͠ͳ͕Β ϦϑΝΫλϦϯά Ͱ͖Δʂ จݴͷมߋͷͨͼʹςετ͕མͪΔ͔Β ݟམͱ͕͠ൃੜ͠ͳ͍ • 1ͭͷ༻ޠ͕มߋʹͳΔͱը໘શମͷจݴ͕มߋʹͳΔ͜ͱ͠͠ ͕ͩɺe2eͳΒࣗಈతʹը໘্ͷจݴΛ֬ೝͯ͘͠ΕΔ ͜͜Α͘จݴ͕
มΘΔ͔Βe2eͰ ֬ೝ͠Α͏ʂ
ςελʔҎ֎ͷࢹͰςετͰ͖Δ • ςετγφϦΦΛQAҎ֎ͷϓϩάϥϚʹϨϏϡʔͯ͠Β͑ΔͷͰ ςελʔҎ֎ͷࢹͰςετͰ͖Δ ͜ͷςετ ୯ମςετͰ͚ෛͬͯ ͬ͜͜ͱ ςετέʔεΛ૿͠ ·͠ΐ͏ʂ ͳΔ΄Ͳʂ
E2Eςετͷߏ • Cucumber • Capybara • Selenium Chrome • CIͰͷςετheadlessϞʔυ
• CircleCI
• γφϦΦ • ࣗવݴޠͰॻ͚Δ • ຊޠͰ લఏɾ͠ɾ͔ͭɾͳΒ • Step •
rubyͰ࣮ Cucumber
ςετγφϦΦ γφϦΦ: ϢʔβʔϝʔϧΞυϨεͱύεϫʔυ ͰγεςϜʹϩάΠϯͰ͖Δ લఏ ϩάΠϯը໘Λද͍ࣔͯ͠Δ ͠ ϝʔϧΞυϨεೖྗཝʹ"
[email protected]
"ͱೖྗ͢Δ ͔ͭ ύεϫʔυೖྗཝʹ"password"ͱೖྗ͢Δ
͔ͭ "ϩάΠϯ"ΛΫϦοΫ͢Δ ͳΒ μογϡϘʔυΛද͍ࣔͯ͠Δ ͔ͭ ϔομʔࢯ໊ʹ"ࢁా Ֆࢠ"ͱදࣔ͞ΕΔ
γφϦΦͷॻ͖ํ • ̍γφϦΦͰςετ͢Δ͜ͱγϯϓϧʹ • ಉ͜͡ͱΛԿճςετ͠ͳ͍ • എܠલఏͳͲΛ͏·͔ͭ͘͏ ͍ͱ୭ ಡΜͰ͘Εͳ͍ʂ
γφϦΦͷ ॻ͖ํ γφϦΦΞτϥΠϯ: ޡͬͨύεϫʔυϝʔϧΞυ ϨεͰϩάΠϯͰ͖ͳ͍ લఏ ϩάΠϯը໘Λද͍ࣔͯ͠Δ ͠ ϝʔϧΞυϨεೖྗཝʹ"<ϝʔϧΞυϨε>"ͱೖྗ͢Δ ͔ͭ
ύεϫʔυೖྗཝʹ"<ύεϫʔυ>"ͱೖྗ͢Δ ͔ͭ "ϩάΠϯ"ΛΫϦοΫ͢Δ ͳΒ "ϝʔϧΞυϨε·ͨύεϫʔυʹޡΓ͕͋Γ·͢ɻ࠶͝ೖྗ ͍ͩ͘͞ɻ"ͱදࣔ͞ΕΔ ྫ: | ϝʔϧΞυϨε | ύεϫʔυ | |
[email protected]
| passpass | |
[email protected]
| password | • ExampleʢྫʣΛ͏·͔ͭ͘͏ • ͨͩ͠ςʔϒϧ͕ڊେʹͳΓ ͗͢ͳ͍Α͏ʹ͢Δ • Scenario OutlineͰςετͨ͠ ͍͜ͱ̍γφϦΦͰͻͱͭʹ ߜΔ
γφϦΦͷ ॻ͖ํ γφϦΦΞτϥΠϯ: Ϣʔβʔඞਢ߲Λೖྗͯ͠هͷ৽ن࡞͕Ͱ͖Δ લఏ Ϣʔβʔ”<Ϣʔβʔ>"ͰϩάΠϯ͍ͯ͠Δ ͔ͭ هͷ࡞ը໘Λද͍ࣔͯ͠Δ ͔ͭ ໊݅ʹ"<໊݅>"ͱೖྗ͢Δ
͔ͭ ຊจʹ"<ຊจ>"ͱೖྗ͢Δ ͔ͭ ը૾ʹ”<ϑΝΠϧ>"ΛΞοϓϩʔυ͢Δ ͠ "ৄࡉ߲ʢҙʣ"ͱදࣔ͞ΕΔ ͔ͭ ߦͬͨॴʹ”<ॴ>”ͱೖྗ͢Δ ͔ͭ ༻ֹۚʹ”<ֹۚ>"ͱೖྗ͢Δ ͔ͭ "࡞"ΛΫϦοΫ͢Δ ͔ͭ "<ϝοηʔδ>"ͱදࣔ͞ΕΔ ͔ͭ ϝχϡʔ͔Β"<ϖʔδ>"ΛΫϦοΫ͢Δ ͳΒ “<ϖʔδ>”ʹ”<໊݅>”ͱ”<දࣔ݁Ռ>" ྫ: ɹ | Ϣʔβʔ | ໊݅ | ຊจ | ϑΝΠϧ | ॴ | ֹۚ | ϝοηʔδ | ϖʔδ | දࣔ݁Ռ | | Ϣʔβʔ1 | ɹ| | | | | ೖྗͯ͠Լ͍͞ | μογϡϘʔυ | දࣔ͞Εͳ͍ | | Ϣʔβʔ1 | ɹ| | | | | ೖྗͯ͠Լ͍͞ | هҰཡ | දࣔ͞Εͳ͍ | | Ϣʔβʔ1 | ͍͋͏ | | | | | ೖྗͯ͠Լ͍͞ | μογϡϘʔυ | දࣔ͞Εͳ͍ | | Ϣʔβʔ2 | ɹ| | | | | ೖྗͯ͠Լ͍͞ | μογϡϘʔυ | දࣔ͞Εͳ͍ | | Ϣʔβʔ2 | ɹ| | | | | ೖྗͯ͠Լ͍͞ | هҰཡ | දࣔ͞Εͳ͍ | | Ϣʔβʔ1 | ͍͋͏ | ͔͖͘ | | | | ೖྗͯ͠Լ͍͞ | μογϡϘʔυ | දࣔ͞Εͳ͍ | | Ϣʔβʔ1 | ͍͋͏ | ͔͖͘ | test.png | | | هΛ࡞͠·ͨ͠ | μογϡϘʔυ | දࣔ͞ΕΔ | | Ϣʔβʔ1 | ͍͋͏ | ͔͖͘ | test.png | | | هΛ࡞͠·ͨ͠ | هҰཡ | දࣔ͞ΕΔ | | Ϣʔβʔ1 | ͍͋͏ | ͔͖͘ | test.jpeg | | | هΛ࡞͠·ͨ͠ | μογϡϘʔυ | දࣔ͞ΕΔ | | Ϣʔβʔ1 | ͍͋͏ | ͔͖͘ | test.jpeg | | | هΛ࡞͠·ͨ͠ | هҰཡ | දࣔ͞ΕΔ | • γφϦΦλΠτϧͱ༰߹͍ͬͯΔ͔ʁ • ಉ͡ૢ࡞Λϖϧιφͷ͚ͩ֬ೝ͢Δҙຯ͋ Δͷ͔? • γφϦΦΞτϥΠϯʹཔΓ͗ͯ͢҉߸ͷΑ͏ ͳγφϦΦʹͳ͍ͬͯͳ͍͔? • ͦͷςετຖճࣗಈͰ࣮ߦ͢Δඞཁ͋Δͷ ͔? • ςετέʔεͷਫ਼ࠪΛͤͣɺطଘͷγφϦΦΛ ίϐϖͯ͠গ͠ม͚͑ͨͩʹͳ͍ͬͯͳ͍͔ʁ • ςετ͕ಈ͚ྑ͍ͱࢥ͍ͬͯͳ͍͔ʁ • ԿͷͨΊͷςετͳͷ͔ʁ
Stepͷॻ͖ํ • ؾΛ͚ͭΔ͜ͱ • ΫϥεXPathͳΔ͘Θͳ͍ E2Eςετʹϝϯςφϯε͖ͭͷ͕ͩɺ ɹ ΫϥεͳͲSPAͷมߋʹΑͬͯมΘͬͯ͠·͏͜ͱ͋ΔͷͰɺ ϝϯςφϯεසΛ͑ΔͨΊʹ༻͢Δlocatorߟྀ͢Δ
Stepͷॻ͖ํ • ςετ͍ͨ͠จݴϕλॻ͖͢Δ • i18nͳͲͰߏԽ͠ͳ͍ when ‘ OKϘλϯΛΫϦοΫ͢Δ’ find(‘<“data-test=“submit-button”>’).click end
t(‘test_string’) ͳͲආ͚Δ
Stepͷॻ͖ํ MPDBUPSͱςΩετΛࢦఆͯ͠จݴΛ֬ೝ͢Δ when ‘ OKϘλϯΛΫϦοΫ͢Δ’ find(‘<“data-test=“submit-button”>’, text: “OK”).click end
Stepͷॻ͖ํ ςετͷత ʮػೳUI͕༷௨Γʹͳ͍ͬͯΔ͜ͱΛ อূ͢ΔͨΊʯͰ͋Δ͜ͱΛΕͳ͍Α͏ʹ͍ͨ͠ ςετͷత͕ʮϝϯςφϯεΛ͠ͳ͍Α͏ʹςετΛճ͢͜ͱʯʹ ͳͬͯ͠·͏ͱҙຯ͕ແ͍
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ