Are we testing like it’s 1999?

Kotlin incorporates the most recent understanding in software engineering into its language design. For example, we now understand that with implicit nullability it’s easy to make a mistake. So in Kotlin you can’t assign null to a variable unless you explicitly declare it to be nullable.

If the latest understanding of software engineering informs our language design, it’s prudent to ask whether these advancements inform our test design.

Unfortunately, even in this new language it’s so easy to write tests that are hard to understand, hard to maintain, and don’t give confidence that you’ve got it right. More about that in part two.