Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Finding Tranquility

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

Finding Tranquility

Avatar for Filipe Freire

Filipe Freire

June 27, 2019
Tweet

More Decks by Filipe Freire

Other Decks in Programming

Transcript

  1. 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
  2. INSPIRATION JUN-19 FINDING TRANQUILITY 3 1) Investing our free time

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

    Mike Duskis’s “Beautiful Automation” Also interesting: https://github.com/CyberGRX/twin-sister
  4. 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
  5. 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…
  6. WHAT WAS “NICE TO HAVE“ JUN-19 FINDING TRANQUILITY 7 Minimal

    Integration Minimal Structure Minimal Business orientation Minimal Reporting
  7. 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
  8. 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
  9. 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!
  10. 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!
  11. 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
  12. 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