Event Storming, DDD, CQRS and Testing
Details
17:30 - 17:45 Welcome and Mingle
17:45 - 18:30 Testing and infrastructure - Sandra Parsick
18:30 - 18:45 Pizza Break
18:45 - 19:30 Integration Testing with Docker and Testcontainers - Kevin Wittek
IMPORTANT
It is essential that you sign up for the event at FooCafé as well:
https://foocafe.org/malmoe/events/2306-event-storming-ddd-cqrs-and-testing
SPEAKERS
Sandra Parsick works as a freelance software developer and consultant in the Java environment. Since 2008 she occupies herself with agile software development in various roles. Her main focuses are on Java enterprise applications, Agile Methods, Software Craftmanship and on the automation of the software development processes. She likes to talk on conferences and write articles about it. She is in the organization team of Softwerkskammer Ruhrgebiet.
Kevin Wittek is Testcontainers co-maintainer and Testcontainers-Spock author. Software Craftsman and testing fan. Oracle Groundbreaker Ambassador. Loves to play the electric guitar and is a musician in his second life. Found his own company during his university years, developing mobile apps and client-server applications, which lead to his discovery of Grails and the Groovy ecosystem. Fell in love with TDD because of Spock. Nowadays Kevin is working at Software Engineer at Codecentric and focuses on topics such as software craftsmanship, infrastructure as code and continuous integration pipelines, trying to make the world a better place one container at a time.
ABSTRACTS
Talk 2: Testing and Infrastructure for Microservices that suck less!
Nowadays software don't run in isolation, but interacts with other systems. Apps communicate with each other using different infrastructure components. When testing, developers often face the question of how they can write tests in such a way that they are independent of a certain setup. In most cases this part of the software is tested rather late, often during some final end-to-end tests. However, it is very helpful to follow the paradigm "If something goes wrong, then as fast as possible". Developers should know as early as possible, if there are problems with infrastructure. Furthermore, infrastructure is also developed and created with the help of code. This also deserves to be tested. My talk will show how to effectively write integration tests that verify code interacting with infrastructure without requiring the same infrastructure. We will then discuss how to assure the quality of code that generates infrastructure - both for classical provisioning tool and for containers
Talk 2: Unit testing is fine, but without proper integration testing, especially if you work with external resources like databases and other services, you might not know how your application will actually behave once it has been deployed to the real production environment.
Before Docker, configuring the environment for integration testing was painful – people were using fake database implementations, mocking servers, usually it was not cross-platform as well. However, thanks to Docker, now we can quickly prepare the environment for our tests.
In this talk I would like to show how you can use Testcontainers ( github.com/testcontainers… ) – a popular Java testing library that harnesses Docker to easily, reliably, spin up test dependencies. We will use it with a Spring Boot microservice and test against real PostgreSQL and Redis data stores, we’ll isolate it from other microservices, then start Selenium browsers in Docker and test our application, and all with the same library!
Come and learn why Apache, Spring, ZeroTurnaround, JetBrains, Playtika, Zipkin and others already decided to use Testcontainers for their integration testing needs!
