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

Finding Tranquility

Finding Tranquility

Filipe Freire

June 27, 2019
Tweet

More Decks by Filipe Freire

Other Decks in Programming

Transcript

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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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…

    View full-size slide

  7. WHAT WAS “NICE TO HAVE“
    JUN-19
    FINDING TRANQUILITY 7
    Minimal
    Integration
    Minimal
    Structure
    Minimal
    Business
    orientation
    Minimal
    Reporting

    View full-size slide

  8. WHAT WE NEEDED
    JUN-19
    FINDING TRANQUILITY 8
    Maintainable
    Featherweight
    Flexible

    View full-size slide

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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  12. NOW WE ONLY
    NEEDED A NAME…

    View full-size slide

  13. JUN-19
    FINDING TRANQUILITY 13

    View full-size slide

  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!

    View full-size slide

  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!

    View full-size slide

  16. REQUEST
    JUN-19
    FINDING TRANQUILITY 16

    View full-size slide

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

    View full-size slide

  18. ACTION
    JUN-19
    FINDING TRANQUILITY 18

    View full-size slide

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

    View full-size slide

  20. TRANQUILITY + CUCUMBER
    JUN-19
    FINDING TRANQUILITY 20

    https://github.com/tranquility-bdd/tranquility-cucumber-example/

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  23. THANK YOU!
    QUESTIONS?

    View full-size slide