Test Driven Development By Example