Mathieu Bastian explores the mechanics of unit, integration, data and performance testing for large, complex data workflows, along with the tools for Hadoop, Pig and Spark.
Pawel Sawicz suggests putting tests to the test by mutating the code to see if the codebase is properly covered by tests and how errors are propagated.
Brannen and Fränkel cover the latest testing features in Core Spring, Spring Boot, and Spring Security, and tips on integration testing with TestNG, DB transactions, SQL script execution, etc.
Brian Westrich shows examples of testing anti-patterns, including redundant testing, white box testing, and using the wrong type of test double. All examples are in Groovy and Spock.
John Hughes presents automated techniques that can improve testing, focusing on what the code should do rather than which cases should be tested, with war stories from Ericsson, Volvo Cars, and Basho.
In this talk Alan Blount gives a quick overview of the main categories of testing and how they may apply to various web application projects.
Roy van Rijn explains what mutation testing is and how it works, comparing several Java frameworks (PIT, Jester, Jumble) that enable automatic mutation testing in a continuous build.
Kevlin Henney discusses unscalable tests, tricks and tips that make tests more specification-like and scalable to large codebases, and choosing between scenario-based and property-based test cases.
Ben Christensen discusses the mental shift from imperative to declarative programming, working with blocking IO such as JDBC and RPC, service composition, debugging and unit testing.
Nicolas Frankel discusses the pros and cons of unit testing and integration testing, and looks at the unique challenges posed by integration testing, presenting tools and techniques to deal with them.
Reid Draper shows how real world distributed database work, communicate and are tested, trading RPC for messaging, unit-tests for QuickCheck, and micro-benchmarks for multi-week stress tests.