engineering for compatibility
play

Engineering for Compatibility Presented by: Melissa - PDF document

W17 Compatibility Testing Wednesday, October 3rd, 2018 3:00 PM Engineering for Compatibility Presented by: Melissa Benua mParticle


  1. ¡ ¡ W17 ¡ Compatibility ¡Testing ¡ Wednesday, ¡October ¡3rd, ¡2018 ¡3:00 ¡PM ¡ ¡ ¡ ¡ ¡ Engineering ¡for ¡Compatibility ¡ ¡ Presented ¡by: ¡ ¡ ¡ ¡ Melissa ¡Benua ¡ ¡ mParticle ¡ ¡ Brought ¡to ¡you ¡by: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ 350 ¡Corporate ¡Way, ¡Suite ¡400, ¡Orange ¡Park, ¡FL ¡32073 ¡ ¡ 888 -­‑-­‑-­‑ 268 -­‑-­‑-­‑ 8770 ¡ ·√·√ ¡904 -­‑-­‑-­‑ 278 -­‑-­‑-­‑ 0524 ¡-­‑ ¡info@techwell.com ¡-­‑ ¡http://www.starwest.techwell.com/ ¡ ¡ ¡ ¡ ¡ ¡ ¡

  2. Melissa ¡Benua ¡ ¡ In ¡her ¡career ¡at ¡companies ¡from ¡large ¡to ¡small, ¡Melissa ¡Benua ¡has ¡worked ¡in ¡nearly ¡ every ¡software ¡development ¡role-­‑engineer, ¡test, ¡DevOps, ¡and ¡program ¡management. ¡ She's ¡created ¡and ¡run ¡high-­‑availability, ¡high-­‑quality ¡services ¡at ¡Boeing ¡and ¡ Microsoft ¡on ¡products ¡such ¡as ¡Bing, ¡Cortana, ¡and ¡Xbox ¡One. ¡Melissa ¡discovered ¡her ¡ love ¡of ¡massively-­‑scaled ¡systems ¡while ¡working ¡on ¡the ¡Bing ¡backend, ¡where ¡she ¡ honed ¡the ¡art ¡of ¡keeping ¡highly-­‑available ¡complex ¡systems ¡up ¡while ¡undergoing ¡ massive ¡code ¡churn. ¡Now ¡a ¡senior ¡engineer ¡and ¡manager ¡at ¡the ¡disruptive ¡gaming ¡ startup ¡PlayFab, ¡Melissa ¡isn’t ¡afraid ¡to ¡mix ¡traditional ¡approaches ¡with ¡bold ¡new ¡ ideas ¡to ¡make ¡her ¡products ¡better, ¡faster, ¡and ¡more ¡reliable. ¡She’s ¡passionate ¡not ¡ only ¡about ¡maximizing ¡efficiency ¡both ¡in ¡her ¡product ¡code ¡and ¡in ¡her ¡developer ¡ tools ¡but ¡also ¡about ¡sharing ¡best ¡practices ¡among ¡colleagues ¡and ¡the ¡tech ¡world ¡at ¡ large! ¡ ¡

  3. 8/22/2018 Test Design for Fully Automated Build Architectures Melissa Benua Senior Technical Lead, mParticle mbenua@gmail.com @queenofcode STARWEST 2018 1 About Me Boeing Microsoft PlayFab mParticle 2 1

  4. 8/22/2018 About The Tutorial Track + Deploy Source Build + Code + Control Test Review Monitor 3 Guiding Principles What are we doing here? 4 2

  5. 8/22/2018 G U I D I N G P R I N C I P L E S Key Test Features Important Reliable Specific 5 G U I D I N G P R I N C I P L E S Importance Triage scenarios based on priority IMPOSSIBLE to cover every scenario Understand what failures can be tolerated Run the most important tests first 6 3

  6. 8/22/2018 G U I D I N G P R I N C I P L E S Importance Build Failure? UI Test Failure? 7 G U I D I N G P R I N C I P L E S Reliability No flakiness No false-negatives or false-positives Repeatable without human intervention Cleans up after itself 8 4

  7. 8/22/2018 G U I D I N G P R I N C I P L E S Reliability 9 G U I D I N G P R I N C I P L E S Specificity Clear answer to a clear question Have one main goal Don’t ‘boil the ocean’ Minimal overlapping coverage 10 5

  8. 8/22/2018 G U I D I N G P R I N C I P L E S Specificity 11 G U I D I N G P R I N C I P L E S Proceed With Caution 1 2 3 4 Shared Single- Long duration Caching resource threading test time reliance 12 6

  9. 8/22/2018 G U I D I N G P R I N C I P L E S Exercise: Test Cases • Most important? Photo • Easiest? Gallery Site • Most reliable? UX FrontEnd (HTML5 + JS) Logic BackEnd (Java) Data Store (NoSQL) 13 Automated Pipeline Structure What does it even look like? 14 7

  10. 8/22/2018 A U T O M A T E D P I P E L I N E S T R U C T U R E CI + CD Pipeline Track + Deploy Source Build + Code + Control Test Review Monitor 15 A U T O M A T E D P I P E L I N E S T R U C T U R E Beyond Unit Tests • Project structure? Develop: Diff Build • Compile change against mainline • Moving parts? • Execute unit tests • Functional boundaries? Build: Continuous Integration • Shared resources? • Compile change as a part of mainline submit • Mocking potential? • Execute functional tests Deploy: Continuous Deployment • Start staging environment • Deploy staging environment • Execute UI + load tests 16 8

  11. 8/22/2018 A U T O M A T E D P I P E L I N E S T R U C T U R E Example Service Architecture Backend UI Layer Data Layer Layer RESTful API Auth Service Database Admin UI Logic Service File Storage Web Frontend Cache Service 17 18 9

  12. 8/22/2018 A U T O M A T E D P I P E L I N E S T R U C T U R E The Matrix Component Package Release • Compile • Functional • Acceptance • Unit • Integration • UX • Load Auth BE Machine Function Logic Product Web UI FE Machine Function Cache 19 A U T O M A T E D End to End 20 10

  13. 8/22/2018 A U T O M A T E D P I P E L I N E S T R U C T U R E Exercise: Mapping Categories to Stages Photo • What should we run? Gallery Site • When should we run it? • How long should we wait? UX FrontEnd (HTML5 + JS) Logic BackEnd (Java) Data Store (NoSQL) 21 A U T O M A T E D P I P E L I N E S T R U C T U R E Key Takeaways 1 2 3 4 Easy to Find the balance Machine time is Fail fast and fail conditionally run between too MUCH cheaper often different many stages and than human time categories too few 22 11

  14. 8/22/2018 Monitoring and Reporting What just happened? 23 M O N I T O R I N G A N D R E P O R T I N G Code Metrics 24 12

  15. 8/22/2018 M O N I T O R I N G A N D R E P O R T I N G Flaky Test Handling Test Failure Ease of Cost vs Value Fatigue Detection Net gain? Ignoring failures? How do we know? 25 M O N I T O R I N G A N D R E P O R T I N G Logging vs Counters Text Log File? Graph? 26 13

  16. 8/22/2018 M O N I T O R I N G A N D R E P O R T I N G Exercise: What Goes Where? Photo Gallery Site UX FrontEnd (HTML5 + JS) Logic BackEnd (Java) Data Store (NoSQL) 27 P U T T I N G I T T O G E T H E R Overall Summary 1 2 3 4 Don’t try to boil Follow natural Know where Use your data system your cutline is the ocean wisely boundaries and respect your time 28 14

  17. 8/22/2018 Thank you! Melissa Benua mbenua@gmail.com @queenofcode http://www.queenofcode.net 29 15

Recommend


More recommend