Software Testing and Analysis by Michal Young & Mauro Pezze