Finding Tranquility

Finding Tranquility

64999497a1bea392bb5f23c9353e6c3a?s=128

Filipe Freire

June 27, 2019
Tweet

Transcript

  1. JORGE MARTÍNEZ & FILIPE FREIRE– JUNE 2019 ADIDAS TECH SUMMIT

    FINDING TRANQUILITY
  2. ABOUT US JUN-19 FINDING TRANQUILITY 2 DevOps lover. Developer. Learner.

    True cinephile. Open-source software lover and contributor. People tell me I’m good playing Mario Kart. Currently working as a DevOps for Hype 2.0 in adidas. Tester. Developer. Husband. Learner. Open-source software lover and contributor. Don’t play Mario Kart with Jorge. Currently working as a Software Tester for Hype 2.0 in adidas. Filipe Jorge
  3. INSPIRATION JUN-19 FINDING TRANQUILITY 3 1) Investing our free time

    in something better than playing (and finding bugs) in Red Dead Redemption 2
  4. INSPIRATION JUN-19 FINDING TRANQUILITY 4 2) “Beat the Americans” Example:

    Mike Duskis’s “Beautiful Automation” Also interesting: https://github.com/CyberGRX/twin-sister
  5. INSPIRATION JUN-19 FINDING TRANQUILITY 5 3) We needed something to

    quickly prototype HTTP automated checks without much structure clutter, but maintainable. 4) time wasted in “dependencies setup” on pipelines for API automated checks
  6. DISCOURAGEMENT JUN-19 FINDING TRANQUILITY 6 Serenity Not bad but… -

    Clutter (>170 dependencies) - Slow to prototype tests - Forced code structure (Ex.: @Steps -> @Step -> @Given/@When/...) Postman Fast but… - Clutter (848 dependencies) - Maintainability = Zero - Json as Code…
  7. WHAT WAS “NICE TO HAVE“ JUN-19 FINDING TRANQUILITY 7 Minimal

    Integration Minimal Structure Minimal Business orientation Minimal Reporting
  8. WHAT WE NEEDED JUN-19 FINDING TRANQUILITY 8 Maintainable Featherweight Flexible

  9. PLAYING WITH LEGOS? JUN-19 FINDING TRANQUILITY 9 Request Pre-request Test

  10. WHITEBOARD TIME JUN-19 FINDING TRANQUILITY 10 a) Mimic Serenity? -

    “Overkill” internal structure - To many dependencies (plus weird ones: OpenCV? AspectJ?...) b) Mimic Postman’s “feeling”? - Simplicity with a harsh price - Ok… we ramp up the maintainability
  11. STRUCTURE PLAN JUN-19 FINDING TRANQUILITY 11 Action Action Pre Action

    Test Environment In Environment: global config “key”:”value” In PreAction: setup work In Action: GET /user/{.key} In Test: assert response
  12. NOW WE ONLY NEEDED A NAME…

  13. JUN-19 FINDING TRANQUILITY 13

  14. BREAKING STUFF DOWN JUN-19 FINDING TRANQUILITY 14 All of tranquility

    was done on our free time. (We have little of it) Solution: break stuff into micro-tasks!
  15. GO NO-GO? JUN-19 FINDING TRANQUILITY 15 Which programming language? We

    chose Go (aka. Golang) - Lots of “Hype” in the office J - A wonderful standard library. No need to include external dependencies. - We wanted to challenge ourselves!
  16. REQUEST JUN-19 FINDING TRANQUILITY 16

  17. PRE-ACTION AND TEST JUN-19 FINDING TRANQUILITY 17

  18. ACTION JUN-19 FINDING TRANQUILITY 18

  19. ENV JUN-19 FINDING TRANQUILITY 19 Importing Postman environment files also

    possible ✅
  20. TRANQUILITY + CUCUMBER JUN-19 FINDING TRANQUILITY 20 ✅ https://github.com/tranquility-bdd/tranquility-cucumber-example/

  21. BEYOND JUN-19 FINDING TRANQUILITY 21 - Broaden type of checks

    (not just REST) - Export/import to/from tranquility - Create integration plugins for typical tools we use & create more examples Find us at: https://github.com/tranquility-bdd https://tranquility-bdd.com
  22. LEARNINGS JUN-19 FINDING TRANQUILITY 22 - Most ideas and needs

    are already there, but we just need to pay attention - Bootstrapping an OSS project is easy - Maintaining an OSS project is hard - Free-time management, there is time for everything but tradeoff is needed - Harsh reality: there is no “silver bullet tool” - Jorge is still better in Mario Kart and Smash Bros
  23. THANK YOU! QUESTIONS?