Make writing tests more joyful

by | Sep 29, 2019 | Voxxed Days Cluj-Napoca 2019

Sebastian Daschner is a Java Developer Advocate at IBM, a consultant, author, and trainer. He is participating in the JCP, helping forming the future standards of Java EE, serving in the JSR 370 and 374 Expert Groups and collaborating on various open source projects. For his contributions in the Java community and ecosystem he was recognized as a Java Champion, Oracle Developer Champion and double 2016 JavaOne Rockstar. He has been working with enterprise Java for more than 8 years. Besides Java, Sebastian is also a heavy user of Linux and container technologies like Docker. He evangelizes computer science practices on blog.sebastian-daschner.com, his Newsletter, and on Twitter via @DaschnerS. When not working with Java, he also loves to travel the world — either by plane or motorbike.

Testing is still a topic that most developers would like to avoid. Even though it is crucial for working software, developing and maintaining tests takes certain time and effort — especially for distributed applications or when changes in existing functionality forces test scenarios to adapt.

Omitting software tests can’t be the solution; therefore, how can we tackle enterprise tests in an effective and productive way?

This session shows what is necessary to effectively test Java Enterprise microservices in an automated way. We’ll see which approaches worked well in real-world projects, how to keep fast feedback and constant velocity in our development circle, how to manage complex test scenarios that involve multiple services, and how to verify our API contracts. It’s crucial for the development productivity to keep an immediate feedback loop, not only for unit but also integrative tests.

We’ll see how container orchestration and service meshes support our tests in regard to distributed applications. One of the key aspects will be how to write maintainable test code with high quality that embraces principles of software craftsmanship. All of the time will be spent live-coding typical test cases with different scopes using different technologies. While I’ll be focusing on Jakarta EE, the concepts and approaches hold true for all enterprise Java projects.