Dr. Carlo Pescio
Recensione: C++ and C Debugging, Testing, and Reliability


Scheda Libro
Autore: David A. Spuler Titolo: C++ and C Debugging, Testing, and Reliability
Editore: Prentice-Hall ISBN: 0-13-308172-9
Lingua: Inglese Anno: 1994 Pagine: 340 circa Allegati: floppy disk

Commenti
Il libro assume una ragionevole conoscenza del linguaggio, e non contiene (fortunatamente!) alcuna introduzione al C++, ma si concentra su due aspetti particolari della programmazione: la prevenzione e l’eliminazione dei bug. L’autore affronta sia problematiche di programmazione vera e propria (asserzioni, librerie di debugging, eccezioni) che argomenti relativi al processo di produzione del software (quality assurance, tecniche di testing), purtroppo senza una chiara distinzione tra processi e tecniche; il libro risulta comunque molto chiaro nell’esposizione, anche se un po’ disomogeneo nella presentazione degli argomenti.
Il testo è organizzato in due parti, la prima (170 pagine circa) dedicata alle tecniche ed ai tool di testing e debugging, incluse le tecniche preventive come le asserzioni, mentre la seconda parte è costituita da un lungo elenco degli "errori più comuni", suddivisi per categorie logiche (errori lessicali, errori nelle espressioni, errori nei tipi e dichiarazioni, eccetera). Per ogni errore vengono descritte le ragioni più ovvie, i sintomi, e normalmente una cura; al termine del libro è presente un "indice rovesciato" che, almeno nelle intenzioni dell’autore, dovrebbe servire a trovare una possibile causa dato un sintomo. Purtroppo in molti casi i sintomi sono troppo generici per poter rintracciare con successo la causa attraverso un semplice indice; si tratta in ogni caso di un esperimento interessante.
Il dischetto allegato contiene sia i listati riportati nel testo (in gran parte inutili essendo dimostrativi di errori) sia alcune librerie o macro per il debugging, che possono invece essere utili ai lettori che non abbiano già a disposizione librerie di debugging o tool per il check a run-time.

Pro
Il libro offre una panoramica molto ampia dei problemi legati al testing ed al debugging, senza concentrarsi troppo su un ambiente o sistema operativo specifico. Il catalogo degli errori può essere molto utile per chi inizia a programmare, per conoscere le potenziali trappole del linguaggio. Infine, il lettore può trovare utili riferimenti a siti internet dove reperire materiale addizionale, ad esempio altre librerie di debugging o semplici tools di verifica statica del codice.

Contro
Alcune importanti tecniche o tool di debugging (sniffers, testbed, ecc) non vengono neppure menzionate; l’autore si concentra troppo sugli aspetti più elementari (come la corretta scrittura di una macro di assert) e molto meno su punti più controversi, come i pericoli nascosti nell’uso stesso delle eccezioni in C++. Gli errori più comuni vengono elencati senza un filo conduttore di "stile corretto" che consenta di evitarli senza doversi guardare da ognuno di essi singolarmente. Infine, il prezzo è piuttosto elevato per un volume tutto sommato piuttosto contenuto.