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
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
Balanced Brackets
An uncomplicated kata focused on verifying that a string contains balanced brackets, suitable for honing coding skills.
Concepts: Algorithms
Character Copy
A great kata for introducing mocks. It's simple implementation allows for complete focus on understanding mocking.
Concepts: Mocking
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
Last Sunday of Each Month
A fun kata to find the last sunday of each month in a given year.
Concepts: Algorithms
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
Maze Walker
A refactoring kata in C#. It was found on RedGate's website. A great kata to do as a mob.
Concepts: Refactoring
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
Password
An intermediate kata involving DB integration test or Substitutes. It contains C# specific references.
Concepts: Validation
Memory Cache
An intermediate kata about building a in-memory cache, think advanced dictionary.
Concepts: Design
URL Parts
An intermediate kata about parsing a URL into its parts. A great kata to do as a mob.
Concepts: Strings
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
Calculator Refactor
A refactoring kata. The code base is a WPF Calculator sample app.
Concepts: Refactoring
Time Sheet Calculator
An intermediate kata about building a time calculator to figure billable hours for a day.
Concepts: Algorithms
Laundry Reservation
A kata about an IoT device for the laundromat industry. It is very mocking focused.
Concepts: Mocking
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
Social Network
A kata about building the fundamentals of a social network experience.
Concepts: Design
Greeting
A kata about greeting people. Starts off simple and increases in complexity.
Concepts: Strings
Metric Converter
A very simple kata about converting metric units to imperial units. A great kata to learn a new language with.
Concepts: Strings
Robot Factory
A kata about building custom robots. It is a more interesting take on the traditional shopping cart.
Concepts: Design
Change Maker
A kata about offering change for a purchase - think vending machine.
Concepts: Algorithms
Age Calculator
A kata about calculating someones age. Great for finding boundaries and partitions
Concepts: Edge Cases Algorithms
String Calculator
A fundamental TDD kata that teaches string parsing, error handling, and incremental development.
Concepts: Strings
Roman Numerals
A classic kata for learning TDD through number conversion and validation.
Concepts: Algorithms Validation
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
Tennis Score
Implement a tennis scoring system. Practice handling game states, deuce scenarios, and match progression through TDD.
Concepts: State
Leap Year Calculator
Create a leap year validator. Practice implementing business rules, handling edge cases, and input validation through TDD.
Concepts: Validation
Word Wrap
Implement a text wrapping algorithm. Practice string manipulation, edge cases, and text processing through TDD.
Concepts: Strings
Text Justification
Create a text justification system. Practice string manipulation, space distribution, and text formatting through TDD.
Concepts: Strings Algorithms
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
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
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
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
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
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
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
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