Evolución de la Calidad de Software

  • Ada Lovelace

    Ada Lovelace
    Matemática y escritora inglesa, tradujo y amplió el artículo sobre el motor analítico de Charles Babbage, incluyendo el primer algoritmo para calcular números de Bernoulli. Es considerada la primera programadora de la historia. También reconoció la posibilidad de errores en los programas, no solo en el hardware, lo que introdujo la noción de defectos de programación.
  • Alan Turing

    Alan Turing
    Matemático y uno de los padres de la computación, propuso en su artículo "Sobre la comprobación de una rutina grande" un método general para verificar programas, que sigue siendo base para la verificación de software. Subrayó que la persona que prueba un programa debe ser distinta a quien lo programó, y que los programadores deben incluir aserciones claras para facilitar las pruebas.
  • Daniel D. McCracken

    Daniel D. McCracken
    Científico computacional que publicó "Programación de computadores digitales", el primer libro sobre programación. Destacó la importancia de que el cliente prepare los casos de prueba para identificar errores lógicos y malentendidos entre el programador y el cliente. Subrayó la necesidad de preparar las pruebas con anticipación debido a la complejidad de los problemas no triviales.
  • Charles L. Baker

    Charles L. Baker
    Físico e ingeniero aeroespacial que, en una reseña sobre el libro de Daniel McCracken, explicó la diferencia entre probar y depurar programas. A inicios de los años 50, no se distinguía entre ambos conceptos, y los desarrolladores se enfocaban en arreglar defectos a medida que surgían, sin un enfoque formal de pruebas ni probadores dedicados.
  • Gerald M. Weinberg

    Gerald M. Weinberg
    En 1958, participó en el proyecto Mercurio de la NASA. En 1961, junto con Herbert D. Leeds, publicó "Fundamentos de la programación informática", el primer libro con un capítulo dedicado exclusivamente a pruebas de software, destacando principios como pensar en la comprobación al codificar. En su obra de 1971 "La psicología de la programación informática", resaltó el aspecto humano de la programación y la imposibilidad de eliminar todos los errores en un software.
  • Bill Elmendorf

    Bill Elmendorf
    Ingeniero eléctrico que, en 1967, publicó un artículo donde destacó la necesidad de un enfoque disciplinado para las pruebas funcionales de software. En 1970, propuso la aplicación de pruebas basadas en modelos para mejorar la automatización de librerías de pruebas de programas.
  • Robert W. Bemer

    Robert W. Bemer
    Matemático e ingeniero aeronáutico que participó en la Conferencia de Ingeniería de Software de la OTAN, donde se abordó la garantía de calidad de software. En el informe resultante, se propuso una "Lista de chequeo para planificar la producción de sistemas de software", con preguntas clave sobre la utilidad, pruebas y recursos asignados a la calidad de software, destacando la necesidad de que la garantía de calidad siga los mismos ciclos y métodos de producción que el software probado.
  • Edsger Dijkstra

    Edsger Dijkstra
    Científico de computación neerlandés que publicó la carta "Sentencia Go To considerada perjudicial", donde criticó el uso excesivo de "Go To", lo que dificultaba las pruebas de software. Esta carta marcó el inicio de la programación estructurada. En 1972, recibió el Premio Turing y en su discurso "El humilde programador", al recibir el Premio Turing, afirmó que es mejor evitar errores desde el inicio, ya que las pruebas solo muestran la presencia de defectos, no su ausencia.
  • William C. Hetzel y David Gelperin

    William C. Hetzel y David Gelperin
    Hetzel publicó "Métodos de prueba de programas" en 1973, recopilando artículos de un simposio sobre pruebas de software. En 1984, organizaron la primera Conferencia Internacional sobre Pruebas de Software. En 1988, publicaron un artículo que describía cuatro modelos de pruebas: demostración, destrucción, evaluación y prevención. También publicaron "Guía completa de pruebas de software" y, en 1992, inauguraron la conferencia STAR en EE. UU., seguida por EuroSTAR en Europa.
  • Frederick Brooks

    Frederick Brooks
    Publicó "El mítico hombre-mes", una obra clásica en ingeniería de software que incluye el famoso ensayo "No hay bala de plata". Brooks afirmó que el costo de un programa es al menos tres veces mayor que el de uno depurado y subrayó que las pruebas son fundamentales para el desarrollo de software. Resaltó que los errores conceptuales son más críticos que los errores de sintaxis, enfatizando la importancia de una buena especificación, diseño y pruebas en la creación de software.
  • Michael E. Fagan

    Michael E. Fagan
    Publicó el artículo "Inspecciones de diseño y código para reducir errores en el desarrollo de programas", donde propuso un proceso sistemático de inspección de diseños y códigos para reducir costos de retrabajo. Su enfoque mejoró significativamente la calidad en IBM, duplicando la producción de líneas de código y reduciendo los defectos en dos tercios.
  • Thomas J. McCabe

    Thomas J. McCabe
    Publicó el artículo "Una medida de la complejidad", donde introdujo la complejidad ciclomática como una métrica para cuantificar la complejidad de un programa, basándose en la teoría de grafos. Esta métrica considera la estructura del programa sin importar su tamaño o lenguaje. También propuso la prueba de ruta básica como técnica de prueba de caja blanca.
  • Tom Gilb

    Tom Gilb
    Publicó el artículo "Leyes de la no fiabilidad" en 1975, donde conceptualizó la fiabilidad del sistema y su relación con el error humano. Su libro "Métricas de software", lanzado en 1976, se considera un texto clave por su amplia gama de métricas. En 1993, junto con Dorothy Graham, publicó "Inspecciones de software", que detalla el proceso de revisión formal de software.
  • William C. Howden

    Publicó el artículo "Estudios teóricos y empíricos sobre la comprobación de programas", donde acuñó el término "oráculo" para describir un mecanismo que determina si una prueba ha pasado o fallado.
  • Glenford Myers

    Glenford Myers
    Publicó "Fiabilidad del software: Principios y prácticas" en 1976, donde afirmó que "el objetivo de los probadores es hacer que el programa falle". En 1979, estableció la terminología básica de las pruebas de software en "El arte de las pruebas de software", donde introdujo el concepto de pruebas de caja negra, convirtiéndose en uno de los primeros libros dedicados exclusivamente al tema.
  • Barry W. Boehm

    Barry W. Boehm
    Publicó el libro "Economía de la ingeniería de software", donde introdujo la noción de que el costo de corregir defectos en el software, denominado costo de retrabajo, aumenta con el tiempo. Presentó un gráfico que ilustra cómo los costos de corrección varían según la fase del ciclo de vida del software, destacando que los defectos son más costosos de arreglar en fases posteriores. También presentó el COCOMO para la estimación de costos en proyectos de software.
  • James Martin

    James Martin
    Publicó el libro "Manifiesto de los sistemas de información", donde destacó que el 56% de los defectos en un proyecto de software se introducen durante la fase de requisitos, el 27% durante el diseño, y el 7% durante la codificación.
  • Paul E. Rook

    Paul E. Rook
    En su artículo "Control de proyectos de software", presentó el Modelo V para el desarrollo de software, introduciendo un enfoque estructurado para las pruebas. Este modelo, que se popularizó en Europa como alternativa al Modelo Cascada, asocia cada fase del ciclo de vida del desarrollo con una fase correspondiente de pruebas, incluyendo pruebas de aceptación, pruebas de sistemas, pruebas de integración y pruebas de unidad.
  • Robert B. Grady

    Robert B. Grady
    En 1987, publicó "Métricas de software: Establecimiento de un programa para toda la empresa" con Deborah L. Caswell, donde definieron las métricas y su utilidad. En 1992, lanzó "Métricas de software prácticas para la gestión de proyectos y la mejora de procesos", que incluye una taxonomía de defectos de software para identificar tendencias. En 1996, publicó "Mejora exitosa de los procesos de software", explicando cómo aplicar el ciclo PDCA para mejorar procesos en el software.
  • Cem Kaner

    Cem Kaner
    Publicó "Pruebas de software informático" en 1988, donde se introdujo el término "prueba exploratoria". En 1996, junto a James Bach, presentó la noción de escuelas de pensamiento en pruebas de software, dando origen a la Escuela de Pruebas Dirigidas por el Contexto en 1999. En 2001, publicó "Lecciones aprendidas en pruebas de software: Un enfoque orientado al contexto". Kaner también ha contribuido a leyes sobre el licenciamiento y la calidad del software en EE. UU.
  • Watts Humphrey

    Watts Humphrey
    Considerado el padre de la calidad de software, fundó el programa de procesos de software del Instituto de Ingeniería de Software (SEI). En 1989, publicó "Gestión del proceso de software", donde introdujo el Modelo de Madurez de las Capacidades (CMM). En 2005, lanzó "PSP, un proceso de auto-superación para ingenieros de software", y en 2006, "TSP, Dirigiendo un equipo de desarrollo", que detalla la dirección de equipos utilizando el Proceso de Software en Equipo (TSP).
  • Boris Beizer

    Boris Beizer
    En su libro "Técnicas de pruebas de software", propuso una clasificación de defectos de software y acuñó el término "paradoja del pesticida", que describe cómo, cuanto más se prueba un software, más resistente se vuelve a las pruebas realizadas.
  • Dorothy Graham

    Dorothy Graham
    En 1991, publicó el primer "Reporte sobre pruebas de software asistidas por computador (CAST)". En 1999, publicó "Automatización de pruebas de software", una obra clásica en el campo. En 2006, junto con otros autores, lanzó "Fundamentos de las pruebas de software: Certificación ISTQB", que describe el programa de estudios para la certificación de pruebas. En 2017, participó en el 7mo Congreso Mundial de Calidad de Software en Lima, Perú.
  • Brian Marick

    Brian Marick
    En 1994, publicó "El arte de las pruebas de software", comparando las pruebas con la carpintería y destacando la importancia del aprendizaje práctico. En 2001, fue coautor del Manifiesto Ágil. En 2003, escribió sobre pruebas ágiles y presentó los "Cuadrantes de pruebas ágiles", clasificando pruebas en dos dimensiones: de cara al negocio versus de cara a la tecnología, y de apoyo a la programación versus críticas al producto.
  • Paul C. Jorgensen

    Paul C. Jorgensen
    En 1995, publicó "Pruebas de software: Un enfoque artesanal", y en 2022 lanzó la quinta edición junto con Byron DeVries. Este libro se ha convertido en una referencia importante sobre las tecnologías en evolución en el ámbito de las pruebas de software.
  • James Bach

    James Bach
    En 1996, propuso el Modelo de Estrategia de Pruebas Heurísticas, que consiste en patrones para diseñar y seleccionar pruebas en proyectos de software, enfatizando la importancia del contexto del proyecto y los criterios de calidad. En 2001, desarrolló la metodología de Pruebas Rápidas de Software (RST), alineada con la Escuela de Pruebas Dirigidas por el Contexto.
  • R. Geoff Dromey

    R. Geoff Dromey
    En su artículo "Acorralando a la quimera", propuso un modelo de calidad para abordar la intangibilidad de las características de calidad establecidas en la norma ISO/IEC 9126:1991 sobre la calidad del producto en ingeniería de software.
  • Eric S. Raymond

    Eric S. Raymond
    Publicó "La catedral y el bazar", donde describe el método de desarrollo de software utilizado por Linus Torvalds para crear Linux. Presentó 19 pautas para desarrollar buen software de código abierto y formuló la Ley de Linus, que sostiene que "si hay suficientes ojos, todos los errores son superficiales". Esta ley implica que cuanto más accesible sea el código fuente, más rápidamente se identificarán y resolverán los defectos.
  • Jonathan Bach

    En 2000, publicó el artículo "Gestión de pruebas basada en la sesión", que define una sesión como un bloque de esfuerzo de prueba con un objetivo específico, utilizando pruebas exploratorias y reportando resultados al finalizar. En 2007, introdujo la escala de libertad del probador, que varía desde "Completamente guiado" hasta "Estilo libre exploratorio", modelando el grado de libertad permitido al probador durante las pruebas.
  • Kent Beck

    Kent Beck
    Publicó "Desarrollo dirigido por pruebas: Mediante el ejemplo", donde "redescubrió" la técnica de desarrollo de software conocida como Desarrollo Guiado por las Pruebas (TDD), que implica escribir pruebas antes de codificar. Además, contribuyó al desarrollo de patrones de software, la familia de herramientas de pruebas unitarias xUnit y la programación extrema (XP).
  • Bret Pettichord

    Bret Pettichord
    En un taller de capacitación en pruebas de software, presentó la conferencia "Cuatro escuelas de pruebas de software", proponiendo varias escuelas de pensamiento en pruebas, que incluyen: analítica, dirigida por normas, orientada hacia la calidad y dirigida por el contexto. Más tarde, se añadió la escuela ágil a esta clasificación.
  • Michael Bolton

    Michael Bolton
    En 2004, se unió a James Bach como coautor de la metodología de Pruebas Rápidas de Software (RST). En 2009, en su artículo "Probando vs. comprobando", diferenció entre ambos conceptos: "comprobar" implica confirmar y validar usando herramientas automáticas, mientras que "probar" se refiere al proceso de exploración, descubrimiento e investigación realizado por los probadores.
  • Erik Van Veenendaal

    Erik Van Veenendaal
    Junto con otros expertos, creó la Fundación TMMI para desarrollar el Modelo de Madurez de Pruebas Integrado (TMMI), que se utiliza para evaluar y mejorar los procesos de pruebas en las organizaciones. Este modelo se basa en el anterior Modelo de Madurez de Pruebas (TMM), desarrollado en 1996 en el Instituto de Tecnología de Illinois.
  • Doron Reuveni

    Doron Reuveni
    Junto con Roy Solomon, publicó "Guía esencial de crowdtesting", donde introdujo el término "crowdtesting", que se deriva del "crowdsourcing" acuñado en 2006. Este enfoque busca realizar pruebas en un entorno natural en lugar de en un laboratorio de calidad, con el objetivo de incluir una variedad de contextos de uso y dispositivos.
  • Mike Cohn

    Mike Cohn
    Publicó "Triunfando con la agilidad", donde propuso la pirámide de automatización de pruebas. En este modelo, Cohn argumenta que una estrategia eficaz de automatización de pruebas debe incluir la automatización en tres niveles: unidad, servicio e interfaz de usuario.
  • Lisa Crispin

    Lisa Crispin
    En 2009, junto con Janeth Gregory, publicó "Pruebas ágiles: Una guía práctica para probadores y equipos ágiles", que incluye un capítulo sobre pruebas exploratorias con contribuciones de Michael Bolton y es considerado pionero en pruebas ágiles. En 2014, Crispin y Gregory lanzaron "Más pruebas ágiles: Viajes de aprendizaje para todo el equipo", que se centra en adaptar las pruebas ágiles a diferentes entornos y equipos, así como en la mejora continua de los procesos de prueba.
  • Jonathan Kohl

    Jonathan Kohl
    Contribuyó con el capítulo "La automatización es mucho más que pruebas de regresión: Pensando fuera de la caja" en el libro "Experiencias de automatización de pruebas", de Dorothy Graham y Mark Fewster. Propuso usar la automatización para tareas como la configuración de pruebas y la generación de datos, y recomendó emplear pruebas exploratorias manuales para detectar defectos que podrían pasar desapercibidos.