At TDD Buddy, we're proud to offer a unique kata catalog that goes beyond the usual suspects. In addition to well-known katas, we've curated a selection of lesser-known katas from a variety of sources to keep things fresh and exciting. We've also created a number of custom-made katas designed specifically to challenge your skills and help you become a better tester. These katas are carefully crafted to test different aspects of testing, such as edge cases, boundary values, and more, to help you hone your testing skills and think outside the box.

Whether you're seasoned or just starting out, our diverse selection of katas will keep you engaged and help you continue to grow on your TDD journey.

You can see all the solutions we have on github.

Filter by Difficulty

  • Beginner Simple concepts, basic TDD practices, and straightforward implementations. Great for learning the fundamentals of test-driven development.
  • Intermediate More complex logic, multiple components, and advanced TDD techniques. Suitable for developers with some TDD experience.
  • Advanced Complex algorithms, multiple design patterns, and extensive edge cases. Challenges for experienced developers looking to master TDD.

Filter by Concept

Beginner

100 Doors

A beginner-friendly kata features 100 doors being toggled during each pass, providing an excellent exercise for those new to programming languages.

Concepts: Algorithms

Solutions: C# | Python

Beginner

Balanced Brackets

An uncomplicated kata focused on verifying that a string contains balanced brackets, suitable for honing coding skills.

Concepts: Algorithms

Solutions: C# | Python

Intermediate

Character Copy

A great kata for introducing mocks. It's simple implementation allows for complete focus on understanding mocking.

Concepts: Mocking

Solutions: C# | Python

Intermediate

Heavy Metal Bake Sale

The program must manage inventory for four items, calculate totals, check if there's enough stock, and determine change to give if a customer overpays.

Concepts: Algorithms

Solutions: C# | Python

Beginner

IP Validator

A simple kata involving the validation of IPv4 addresses.


Concepts: Validation

Solutions: C# | Python

Beginner

Last Sunday of Each Month

A fun kata to find the last sunday of each month in a given year.

Concepts: Algorithms

Solutions: C# | Python

Intermediate

Mars Rover

A kata to build a rover that moves around Mars. This is a fun kata. A follow-on action would be to build a UI using Angular or React on-top of the library.

Concepts: Design

Intermediate

Maze Walker

A refactoring kata in C#. It was found on RedGate's website. A great kata to do as a mob.

Concepts: Refactoring

Beginner

Numbers to Words

An intermediate kata about converting numbers to words. E.g. 2400 is two thousand four hundred. It is a great kata for learning a new language.

Concepts: Strings

Solutions: C# | Python

Intermediate

Password

An intermediate kata involving DB integration test or Substitutes. It contains C# specific references.

Concepts: Validation

Intermediate

Memory Cache

An intermediate kata about building a in-memory cache, think advanced dictionary.

Concepts: Design

Intermediate

URL Parts

An intermediate kata about parsing a URL into its parts. A great kata to do as a mob.

Concepts: Strings

Beginner

End-of-line Trim

A simple kata about trimming whitespace at the end of a line. A great kata to do as a mob.

Concepts: Strings

Advanced

Calculator Refactor

A refactoring kata. The code base is a WPF Calculator sample app.

Concepts: Refactoring

Intermediate

Time Sheet Calculator

An intermediate kata about building a time calculator to figure billable hours for a day.

Concepts: Algorithms

Advanced

Laundry Reservation

A kata about an IoT device for the laundromat industry. It is very mocking focused.

Concepts: Mocking

Advanced

Poker Hands

A difficult kata about ranking and comparing poker hands.

Concepts: Algorithms

Advanced

Bingo Kata

A difficult kata about making a bingo game driven by user stories.

Concepts: Algorithms

Beginner

Rock Paper Scissors

A kata about the classic game.

Concepts: Algorithms

Advanced

Fluent Calculator

An intermediate kata making a calculator, with fluent syntax, that has add and subtract operations. Check out our solution on github.

Concepts: Algorithms

Intermediate

Clam Card

A kata about implementing a contact-less travel card for subways.

Concepts: Design

Intermediate

Social Network

A kata about building the fundamentals of a social network experience.

Concepts: Design

Beginner

Fizz Buzz Whiz

A kata classic TDD kata with a twist.

Concepts: Algorithms

Intermediate

URL Shortener

A kata about building a URL shortener service.

Concepts: Strings

Beginner

Todo List

A kata about creating a command line todo list application

Concepts: Strings

Beginner

Greeting

A kata about greeting people. Starts off simple and increases in complexity.

Concepts: Strings

Beginner

Metric Converter

A very simple kata about converting metric units to imperial units. A great kata to learn a new language with.

Concepts: Strings

Intermediate

Robot Factory

A kata about building custom robots. It is a more interesting take on the traditional shopping cart.

Concepts: Design

Intermediate

Change Maker

A kata about offering change for a purchase - think vending machine.

Concepts: Algorithms

Intermediate

Age Calculator

A kata about calculating someones age. Great for finding boundaries and partitions

Concepts: Edge Cases Algorithms

Intermediate

String Calculator

A fundamental TDD kata that teaches string parsing, error handling, and incremental development.

Concepts: Strings

Advanced

Roman Numerals

A classic kata for learning TDD through number conversion and validation.

Concepts: Algorithms Validation

Advanced

Bowling Game

Practice TDD by implementing a bowling score calculator. Learn to handle complex scoring rules, edge cases, and game state management.

Concepts: Edge Cases State

Intermediate

Tennis Score

Implement a tennis scoring system. Practice handling game states, deuce scenarios, and match progression through TDD.

Concepts: State

Beginner

Leap Year Calculator

Create a leap year validator. Practice implementing business rules, handling edge cases, and input validation through TDD.

Concepts: Validation

Intermediate

Word Wrap

Implement a text wrapping algorithm. Practice string manipulation, edge cases, and text processing through TDD.

Concepts: Strings

Advanced

Text Justification

Create a text justification system. Practice string manipulation, space distribution, and text formatting through TDD.

Concepts: Strings Algorithms

Beginner

Tic Tac Toe

Practice TDD by implementing the classic game of Tic Tac Toe. Learn to handle game state, win conditions, and player turns through test-driven development.

Concepts: State Design

Intermediate

Parking Lot

Implement a parking lot management system using TDD. Practice object-oriented design by handling different vehicle types, parking spots, and parking rules.

Concepts: Design State

Intermediate

Shopping Cart

Implement a shopping cart system that handles products, quantities, pricing, and various types of discounts. Great for practicing business rules and state management.

Concepts: State Business Rules

Advanced

Game of Life

Implement Conway's Game of Life, a cellular automaton that simulates the evolution of a population of cells based on simple rules. Great for practicing grid-based algorithms.

Concepts: State Algorithms

Beginner

Recipe Calculator

Create a recipe calculator that scales ingredients and converts between different units of measurement. Learn to handle unit conversions and input validation.

Concepts: Edge Cases Algorithms

Beginner

Time Zone Converter

Practice TDD by implementing a time zone conversion system. Learn to handle different time zones, daylight saving time, and date/time formatting.

Concepts: Edge Cases Algorithms

Advanced

Weather Station

Implement a weather station system that processes weather data, calculates statistics, and predicts trends. Learn to handle complex data processing and analysis.

Concepts: State Algorithms

Intermediate

Library Management

Build a library management system that handles book checkouts, returns, and reservations. Practice state management and business rule implementation.

Concepts: State Business Rules