“Creating a Unit Testing Strategy” Video from Agile Prague 2016

Agile Prague was great. You can check the slides here. And now the video.

“Why Everyone Should Care About TDD” Slides from Agile Greece

Had a very nice time at Agile Greece. Apart from the “Advanced Agile Programming” workshop, I gave a modified version of the “TDD for the rest of us”. Of course, Star Wars light sabers were involved. [slideshare id=66092356&doc=whytddisimportantforeveryone-160916114121]

“TDD Patterns” Slides from Agile Prague

It was the last talk of the day, but some people actually listened. That’s good. Here are the slides. [slideshare id=41506179&doc=tddpatterns-141113064130-conversion-gate01]  

“Creating A Unit Testing Strategy” Slides from Agile Prague

At Agile Prague 2016, we’ve discussed unit testing as a process, not tools. As such, we need to think about the process and how we’re going to attack. Here are slides. [slideshare id=65927397&doc=creatingaunittestingstrategy-160912093850]

Unit Testing Anti-Pattern: Code Matching

Sometimes, tests imitate code, and not in a good way. Here’s our tested code: public String encode(String word) { String result = word + word.length(); return result; } And here’s our test: @Test public void howItsDone() { Encoder enc =… Continue Reading…

Unit Testing Anti-Pattern: Misleading Tests

You’re testing the right thing, and the test passes, and everything is cool. Or is it? Check out this test: @Test public void encodeString_sizeAtEnd() { Encoder enc = new Encoder(); String result = enc.encode(“hello”); assertEquals(“hello5”, result); } This test looks… Continue Reading…

Unit Test Anti-Patterns: Logic in Tests

Logic is everything that causes two or more possible paths. For example, if-else or switch-case. Logic is good for production code, but not unit tests.

Unit Tests Anti-patterns: TDD without refactoring

Anti-patterns are patterns with negative consequences. In this series I’m going to tackle those patterns, explain what they signify in terms of risks, and what to do instead. Let’s look at a pattern common to people who start out on… Continue Reading…

TDD In Real Life – Part 2

Last time we’ve started talking about how to approach TDD in real, complex systems. While plain vanilla TDD assumes nothing about the world around our component, in real life, there are constraints we need to relate to. Where we stopped,… Continue Reading…

TDD In Real Life – Part 1

TDD comes from the world of unit testing. It’s optimized for small pieces of code; small increments of functionality. BDD takes the test-first approach, adds functional and user semantics and tries to follow the same formula for the whole software.… Continue Reading…

Copyright Gil Zilberfeld, 2025