“小打も積もれば大木を倒す” - Little strokes fell great oaks.
Introducing test-driven development to delivery-focused software development teams provides a unique set of challenges. For example, how to begin the process of deciding what to test? As a Software Engineering Coach tasked with improving software development practices across a large enterprise, I've been hard at work tackling this very problem. The solution I found is simple: describe the requirements, then let automation do most of the work!
Category partitioning (or category partition testing) is a testing methodology based on input/output analysis that emphasizes both coverage and error detection. Combining manual design and automated test generation, the systematic nature of this method takes a lot of the guesswork and anxiety out of deciding how to begin building out a TDD suite for teams starting out.
In this session, I will walk through a sample application of the category partitioning method centered around the development of a simple application, including all of the steps of the method: identifying independently testable features, splitting features into categories, partitioning categories into choices, identifying constraints and boundary conditions, and finally generating a suite of test frames through an automated tool that could be used to begin development using TDD.
Michael "Miggs" Migliacio is a Software Engineering Coach in the Target Dojo with over 15 years of experience in software development. Previously, he held engineering roles at IBM, IGN Entertainment, and Best Buy, where he led the team responsible for building the API that powers shipping and delivery for one of the largest eCommerce platforms in the world. He is also JLPT-certified and serves as a Japanese-to-English interpreter for the Bloomington-Izumi Sister City Organization. Outside of Target, Michael co-founded video game development studio Intropy Games and worked closely with Japanese publisher CrossFunction in order to launch a localized title on Nintendo consoles in Japan.
He earned a Bachelor's in Computer Science with a minor in Japanese from Purdue University and is currently pursuing a Master's in Computer Science from Georgia Tech.
Does this session sound interesting? You may also like these: