Software Testing Techniques by Geoffrey Miller & Michael Shannon