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 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 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 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 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 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 Slide

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

    View Slide

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

    View Slide

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

    View 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 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 Slide

  12. NOW WE ONLY
    NEEDED A NAME…

    View Slide

  13. JUN-19
    FINDING TRANQUILITY 13

    View 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 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 Slide

  16. REQUEST
    JUN-19
    FINDING TRANQUILITY 16

    View Slide

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

    View Slide

  18. ACTION
    JUN-19
    FINDING TRANQUILITY 18

    View Slide

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

    View Slide

  20. TRANQUILITY + CUCUMBER
    JUN-19
    FINDING TRANQUILITY 20

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

    View 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 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 Slide

  23. THANK YOU!
    QUESTIONS?

    View Slide