Have you ever found yourself grappling with a hard-to-maintain or brittle test code base?
Are your tests providing you with the confidence to refactor freely and safely?
Have you encountered confusion when faced with different testing styles or approaches in a project?
Should I write an integration test, unit tests, acceptance tests or a mixture?
How do you manage test fixtures?
The world of testing can be overwhelming.
Maintaining a robust and efficient test suite is paramount for the evolution of an application.
Tests play a pivotal role in safeguarding our codebases.
Yet, all too often, test codebases become a chaotic amalgamation of ideas and approaches, jeopardizing their true purpose.
A test suite that is difficult to work with can significantly hamper the productivity and velocity of both the development team and the product
When laying down the architecture of an application, the testing aspect is often given insufficient attention.
This can lead to fragmented and poorly designed test suites that fail to fulfill their intended purpose.
It's high time that we prioritize the testing aspect and treat it as a vital component of our application's architecture.
In this talk, we will explore the reasons and motivations behind testing, allowing us to effectively address the common pitfalls encountered in test codebases. 
By understanding the core purposes of testing, we can implement strategies to create maintainable and efficient test suites, ensuring the success and growth of our software projects.
Jonas Geiregat
Curious software engineer with a focus on all things Java.
Currently working for Cymo specializing in event driven and streaming architectures.