Books on design patterns and testing