Mis obras favoritas sobre Software Testing
Una pregunta que mucha gente me ha venido realizando en los últimos meses, bien a través de conversaciones directas, correos electrónicos, mensajes privados o comentarios a través del blog trata acerca de qué libros, qué recursos o fuentes de información acerca de Software Testing les podría recomendar.
En primer lugar, me gustaría dejar claro que no me considero en absoluto un gurú o una referencia en esta disciplina, por tanto la pregunta no deja de pillarme un poco por sorpresa. En este post no voy a ofrecer ninguna verdad absoluta sino más bien mis opiniones personales basadas en alrededor de 18 meses de continuo aprendizaje e investigación en los cuales, al margen de la aplicación práctica de estos conceptos, he tenido la oportunidad (y gran suerte) de leer y analizar alrededor de 30 libros y whitepapers sobre esta apasionante disciplina.
En segundo lugar, y a pesar de que pueda resultar una distinción obvia para la gran mayoría de nosotros, quiero puntualizar que Software Testing y Depuración son disciplinas distintas, como bien estableció el gran Glenford Myers allá por el año 1979… Fue el propio Myers quien asoció el concepto de Software Testing con el propósito de “romper” o más bien, como él afirmó: "a successful test is one that finds a bug".
Desde esta perspectiva, las obras que voy a recomendar se centran en un análisis de alto nivel acerca de metodologías para hacer más efectiva y ordenada esta búsqueda. Con esto no quiero decir que sean descartables aquellas obras orientadas al software testing en una determinada plataforma o tecnología, sino más bien que el primer paso que deberíamos dar es tener una visión amplia y unos conceptos metódicos apropiados para que luego sea la experiencia propia en un marco concreto (nuestras pruebas diarias) las que nos den esos matices específicos de cada contexto.
Bien, una vez situados en una misma perspectiva, vamos a comenzar a analizar títulos concretos…
Sería un pecado mortal hablar sobre bibliografía relativa a Software Testing sin citar al autor Boris Beizer. Si antes hablaba de Myers como creador de la disciplina, la evolución de la misma en estos últimos 30 años no podría entenderse sin la labor de Beizer. El Dr. Boris Beizer tiene un PhD en Ciencias de la Computación por la universidad de Pennsylvania y a lo largo de su carrera profesional ha escrito alrededor de 15 libros referidos a distintos campos como la arquitectura de sistemas, y también sobre Software Testing. Sus tres obras maestras sobre Software Testing son:



Por supuesto, también es obligatorio incluir en esta lista de preferencias la gran “Biblia del Software Testing”, que no es ni más ni menos que la obra cumbre de Glenford Myers:
Al margen de estas obras históricas de obligada lectura, recomiendo dos libros más de reciente aparición y que resultan complementarios entre sí.
El primero de ellos es Manage Software Testing, se centra en distintas metodologías de Software Testing en sí mismo, desde la perspectiva del Test Manager o líder del equipo de pruebas y además es digno de mención el minucioso análisis que realiza sobre diversos casos de estudio reales.
El segundo de ellos se titula Software Testing – Testing Across The Entire Software Development LifeCycle y, como su propio nombre indica, se centra en la conjunción de los procesos de software testing con el resto de procesos que forman parte del ciclo de vida del desarrollo de nuestras aplicaciones, realizando muy buenos análisis sobre qué tipos de pruebas realizar en cada etapa del desarrollo (fase de requerimientos, diseño, desarrollo, etc) y por qué realizarlas, qué beneficios nos aportan y hasta qué punto es vital la “anticipación” en la detección de bugs, relacionando estos conceptos con distintos modelos de Software Testing tales como el Modelo V, entre otros.
Creo que para empezar a formarse una idea clara, con estos 6 libros tendremos suficiente. No obstante, recuerdo que son tan sólo una base sobre la cual comenzar a evolucionar en nuestra propia experiencia y técnicas, una tarea diaria basada también en la intuición, perspicacia y, sobre todo, actitud inconformista del tester.
En esta línea, me permitiré el lujo de concluir el post con una gran frase del Dr Boris Beizer en la primera de las obras recomendadas (“Software Testing Techniques”):
You must be a constructive schizophrenic. Be clear about the difference between your role as a programmer and as a tester. The tester in you must be suspicious, uncompromising, hostile, and compulsively obsessed with destroying, utterly destroying, the programmer's software. The tester in you is your Mr. Hyde - your Incredible Hulk. He must exercise what Gruenberger calls 'low cunning.'