2-day on-prem or online training

Introduction

Audience

Developers, software architects, technical project managers, system administrators.

Certification

You earn eXtreme Automation certificate by attending the course.

View example certificate

Language

The course is taught in English.

Detailed outline

🌞 Day 1

  • 📚 Part 1:

    Introduction and setup check.

  • 🛠 Exercise 1: We start right away with coding exercise. The task is to code a complex firewall policy logic with some hints and skeleton code. No TDD, just code. 30 minutes will be not enough, but from the task description, most engineers will tell that it is doable in 30 minutes. After failure, we go into discussion mode.

  • 📚 Part 2:

    TDD cycle: red, green, refactor.

    Overview of Python unittest library.

  • 🛠 Exercise 2: Implement the same task with firewall policy, but using a TDD cycle by writing unit tests (with hints).

    Looking at the test coverage.

  • ❓ Quiz 1: TDD principles.

  • 📚 Part 3:

    Overview of Python mocking libraries.

  • 🛠 Exercise 3: Build on top of firewall policy logic and add integration with firewall log storage. Mock the storage and access logic.

    Commit/push to Git + verify that code builds and tests run in CI. Discussion about the importance of automatic feedback.

    Code review session. Trainer takes the code of several students and reviews it live with giving recommendations.

  • 📚 Part 4:

    Clean code principles for Python.

    Integration tests vs unit tests.

    Introduction to ATDD and double feedback loop.

    Overview of Docker and Python implementation of testcontainers.

  • 🛠 Exercise 4:Implement integration tests with a real database for firewall log storage and query. Make sure they run in CI.

  • ❓ Quiz 2: Mocking, integration tests.

🌞 Day 2

  • 📚 Part 5:

    Introduction into pair programming.

    Overview of Python requests library.

  • 🛠 Exercise 5: Split into pairs. Implement firewall management API with Flask from a template. Add HTTP API acceptance tests.

  • 📚 Part 6:

    Introduction into BDD.

    Overview of Python behave library.

  • 🛠 Exercise 6: Re-implement acceptance tests with the BDD approach.

  • ❓ Quiz 3: ATDD, BDD.

  • 📚 Part 7:

    Introduction to performance testing.

    Overview of Python faker library for test data generation.

    Overview of Python locust library for the performance test suite.

  • 🛠 Exercise 7:Implement a performance test suite for firewall components.

  • ❓ Quiz 4: Performance testing.

  • ❓ Final Quiz.

  • Q/A + conclusion.

Trainer

Andrey Adamovich is a software craftsman with many years of experience in different life cycle phases of software creation. He is passionate about defining good development practices, documenting and presenting architecture, reuse of code and design patterns, profiling and analysis of application performance as well as extreme automation of development and operations activities.

At the moment, Andrey works as a free-lance DevOps consultant offering his expertise in implementing DevOps initiatives, selecting automation tooling, switching to infrastructure-as-code and immutable infrastructure and constructing software delivery pipelines.

Andrey is a frequent speaker at international conferences and local communities. He presented at more than 60 events in 19 countries. He is one of the leaders of LatCraft - Latvian Software Craftsmanship Community as well as co-founder and organizer of DevTernity  conference.

Limited offer. Grab your ticket today.

 

On-premises

Exclusively for your company

6000 5200€