-
Ada Lovelace
En la década de 1840, Augusta Ada Byron, condesa de Lovelace, tradujo al inglés un artículo sobre el "motor analítico" de Charles Babbage, escrito originalmente por Luigi Menabrea. Durante esta traducción, incluyó notas que superaban en extensión al texto original, y añadió un algoritmo destinado al cálculo de los números de Bernoulli utilizando el motor analítico, lo cual es considerado el primer programa de computación. -
Period: to
Fundamentos de la Ingeniería de Software
Este período abarca los inicios de la computación y los principios básicos de la ingeniería, donde se sentaron las bases para el desarrollo de software. -
Alan Turing
Alan Turing, uno de los padres de la computación, escribió el artículo "Sobre la comprobación de una rutina grande", donde se preguntó cómo asegurar la corrección de un programa. Propuso un método general de verificación que aún se utiliza hoy, y subrayó que quien prueba el programa debe ser diferente de quien lo programa. Además, sugirió que el programador debe hacer aserciones claras que faciliten la verificación del programa completo. -
Period: to
Era de la Programación y Control de Calidad
Durante este tiempo, se comenzaron a formalizar técnicas de programación y control de calidad, sentando las bases para métodos de prueba y validación. -
Charles L. Baker
Charles L. Baker publicó una reseña sobre el libro "Programación de computadores digitales" de Daniel McCracken, donde destacó la diferencia entre probar programas y depurarlos. A principios de los años 50, no se distinguía entre estas dos actividades, y los desarrolladores se centraban en corregir defectos, depurando el código cuando encontraban problemas. En ese momento, el concepto de pruebas de software y probadores aún no existía. -
Daniel D. McCracken
Daniel D. McCracken publicó "Programación de computadores digitales", el primer libro sobre programación, donde recomendaba que el cliente preparara los casos de prueba. Este enfoque permitía identificar errores lógicos y malentendidos entre el programador y el cliente. Además, McCracken sugirió que el cliente preparara la solución de la prueba con anticipación, ya que su cálculo podría llevar varios días o semanas para problemas complejos. -
Gerald M. Weinberg
Durante el proyecto Mercurio de la NASA, se introdujo una técnica de mini-incrementos en el desarrollo de software, planificando y escribiendo pruebas antes de cada incremento. Basado en esta experiencia, Gerald M. Weinberg y Herbert D. Leeds publicaron en 1961 "Fundamentos de la programación informática". Ahí expusieron principios clave: escribir el programa correctamente, considerar las pruebas al codificar, conocer las herramientas de depuración y hacer que el programa demuestre que funciona. -
Bill Elmendorf
Bill Elmendorf publicó el artículo "Evaluación de las pruebas funcionales de programas de control", donde introdujo por primera vez la necesidad de un enfoque disciplinado para las pruebas funcionales de software. Más tarde, en 1970, publicó "Diseño automatizado de librerías de pruebas de programas", proponiendo la aplicación de pruebas basadas en modelos para evaluar software. -
Robert W. Bemer
Bemer participó en la Conferencia de Ingeniería de Software, donde se abordó la garantía de calidad del software. El informe incluyó el documento "Lista de chequeo para planificar la producción de sistemas de software", con preguntas clave sobre si el producto ha sido probado para garantizar su utilidad, si las pruebas siguen el mismo ciclo que el software evaluado, y si se asigna una persona a la garantía de calidad por cada diez en producción. -
Period: to
Evolución de Metodologías y Procesos de Calidad
Este período se caracteriza por el desarrollo de metodologías estructuradas, modelos de calidad y la profesionalización del campo, incluyendo prácticas como el CMM. -
Edsger Dijkstra
Dijkstra recibió el Premio Turing por sus contribuciones a la informática. En su discurso, destacó que para mejorar la eficacia de los programadores, es esencial evitar la introducción de errores en lugar de perder tiempo depurando. Aunque las pruebas son útiles para detectar defectos, no garantizan la ausencia de errores. Por ello, subrayó la necesidad de pruebas convincentes que validen la corrección del programa y aumenten la confianza en su funcionamiento. -
Tom Gilb
Tom Gilb publica el artículo "Leyes de la no fiabilidad", siendo uno de los primeros en abordar la fiabilidad del sistema y la relación entre el error humano y el error de sistema. Su libro Métricas de software, publicado en 1976, se considera un texto de referencia por sus diversas métricas. En 1993, junto con Dorothy Graham, publica Inspecciones de software, que detalla el proceso de revisión formal de software. -
Frederick Brooks
Frederick Brooks publica El mítico hombre-mes, que incluye ensayos sobre ingeniería de software, destacando el famoso "No hay bala de plata". Entre sus afirmaciones sobre pruebas de software, destaca que:
Un programa cuesta al menos tres veces más que uno depurado.
El programador requiere un banco de casos de prueba, y el probador actúa como adversario y colaborador en su creación.
La dificultad principal en el desarrollo de software radica en la especificación, diseño y pruebas de conceptos. -
Glenford Myers
Glenford Myers publica Fiabilidad del software: Principios y prácticas, afirmando que "el objetivo de los probadores es hacer que el programa falle". En 1979, presenta El arte de las pruebas de software, uno de los primeros libros dedicados exclusivamente a este tema, donde establece la terminología básica de las pruebas de software e introduce el concepto de pruebas de caja negra. -
Thomas J. McCabe
Thomas McCabe publica el artículo "Una medida de la complejidad", donde introduce la complejidad ciclomática como métrica de software para cuantificar la complejidad de un programa. Esta métrica, basada en la teoría de grafos, considera la estructura del programa sin depender de su tamaño o del lenguaje de programación. McCabe también propone la prueba de ruta básica como técnica de prueba de caja blanca. -
Michael E. Fagan
Michael E. Fagan publica el artículo "Inspecciones de diseño y código para reducir errores en el desarrollo de programas", proponiendo un proceso sistemático de inspección para diseños y códigos con el fin de disminuir el costo del retrabajo. IBM implementó estas inspecciones, logrando importantes mejoras en la calidad, casi duplicando la producción de líneas de código y reduciendo en dos tercios el número de defectos por cada mil líneas. -
William C. Howden
En 1978, el matemático y doctor en ciencias de la computación William C. Howden publica
el artículo ”Estudios teóricos y empíricos sobre la comprobación de programas” donde acuña
el término oráculo para refererirse a un mecanismo para determinar si una prueba ha pasado
o fallado. -
Barry W. Boehm
Barry Boehm publica Economía de la ingeniería de software, donde introduce la idea de que el costo de arreglar un defecto en el software, conocido como costo de retrabajo, aumenta con el tiempo. Boehm presenta un gráfico que muestra las fases del ciclo de vida del software en el eje horizontal y el costo relativo de corregir un defecto en diferentes fases en el eje vertical. -
James Martin
James Martin publica Manifiesto de los sistemas de información, donde señala que la distribución de inserción de defectos en un proyecto de software es la siguiente: 56% de los defectos se introducen durante la fase de requisitos, 27% durante el diseño y 7% durante la codificación. -
Paul E. Rook
Paul E. Rook presenta en su artículo "Control de proyectos de software" el Modelo V para el desarrollo de software, que propone un enfoque estructurado para las pruebas. Este modelo se convierte en una alternativa al Modelo Cascada, asociando cada fase del ciclo de vida del desarrollo con su correspondiente fase de pruebas: requerimientos con pruebas de aceptación, diseño de sistema con pruebas de sistemas, diseño de software con pruebas de integración, y pruebas de unidad. -
Robert B. Grady
Robert B. Grady y Deborah L. Caswell publican Métricas de software: Establecimiento de un programa para toda la empresa, donde explican las métricas y su utilidad, además de detallar un programa de métricas. En 1992, Grady publica 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 Hewlett-Packard, destinada a identificar tendencias de defectos y prevenirlos en proyectos futuros. -
William C. Hetzel y David Gelperin
Gelperin y
Hetzel publican el artículo ”El crecimiento de las pruebas de software”, donde presentan cuatro modelos de pruebas: Demostración: Verificar que el software cumple con su especificación.
Destrucción: Identificar fallos de implementación.
Evaluación: Detectar defectos en requisitos, diseño e implementación.
Prevención: Evitar defectos en requisitos, diseño e implementación. -
Cem Kaner
Cem Kaner, junto con Jack Falk y Hung Q. Nguyen, publica Pruebas de software informático, un libro clásico por su enfoque pragmático, donde se introduce el término "prueba exploratoria". En 1996, Kaner y James Bach presentan las escuelas de pensamiento sobre pruebas de software en una conferencia, y en 1999 se establece oficialmente la Escuela de Pruebas Dirigidas por el Contexto. -
Watts Humphrey
Watts Humphrey, considerado el padre de la calidad de software, ha hecho importantes contribuciones a la mejora del proceso de software (SPI). Es el fundador del programa de procesos de software del Instituto de Ingeniería de Software (SEI) de la Universidad Carnegie Mellon. En 1989, publica Gestión del proceso de software, donde propone el modelo de madurez de las capacidades (CMM) para mejorar la calidad y productividad del desarrollo de software. -
Boris Beizer
Boris Beizer, físico e ingeniero, propone una clasificación de defectos de software en su libro Técnicas de pruebas de software. También introduce el término "paradoja del pesticida", que describe el fenómeno donde, cuanto más se prueba el software, más inmune se vuelve a las pruebas realizadas. -
Dorothy Graham
Unicom publica el primer "Reporte sobre pruebas de software asistidas por computador (CAST)", escrito por la consultora Dorothy Graham. En 1999, Graham y Mark Fewster publican Automatización de pruebas de software, una obra clásica en el campo de la automatización de pruebas. En 2006, junto con Erik Van Veenendaal, Isabel Evans y Rex Black, publica Fundamentos de las pruebas de software: Certificación ISTQB, que detalla el programa de estudios para la certificación básica del ISTQB -
Brian Marick
Brian Marick publica El arte de las pruebas de software, donde compara la prueba de software con la carpintería, enfatizando que es un oficio que se aprende mejor en persona bajo la supervisión de expertos. El libro se centra en subsistemas de tamaño medio, como controladores de dispositivos y módulos de optimización. En 2001, Marick se convierte en uno de los autores del Manifiesto Ágil. -
Paul C. Jorgensen
Paul C. Jorgensen publica Pruebas de software: Un enfoque artesanal, y en 2022 lanza la quinta edición junto a Byron DeVries. Las ediciones de este libro se han convertido en una referencia sobre las tecnologías en evolución en el ámbito de las pruebas de software. -
R. Geoff Dromey
En 1996, en su artículo ”Acorralando a la quimera”, el doctor en física-química australiano R. Geoff Dromey propone un modelo de calidad para resolver la intangibilidad de las características de calidad propuestas en la norma ISO/IEC 9126:1991 ”Ingeniería de Software - Calidad de Producto” -
James Bach
James Bach propone el Modelo de Estrategia de Pruebas Heurísticas, que presenta un conjunto de patrones para seleccionar y diseñar pruebas en proyectos de software, considerando el entorno del proyecto, los elementos del producto y los criterios de calidad. En 2001, Bach desarrolla la metodología Pruebas Rápidas de Software (RST), alineada con la Escuela de Pruebas Dirigidas por el Contexto. -
Eric S. Raymond
Eric S. Raymond publica La catedral y el bazar, donde describe el método de desarrollo de software de Linus Torvalds para crear Linux. Raymond presenta 19 pautas para desarrollar buen software de código abierto y introduce la Ley de Linus, que sostiene que "si hay suficientes ojos, todos los errores son superficiales". Esta ley sugiere que un código fuente accesible para una amplia base de probadores y desarrolladores facilita la rápida identificación y resolución de defectos. -
Jonathan Bach
Jonathan Bach publica el artículo Gestión de pruebas basada en la sesión, donde define una sesión como un periodo ininterrumpido de pruebas con un objetivo específico, utilizando pruebas exploratorias y reportando los resultados al finalizar. -
Period: to
Innovación y Agilidad en el Desarrollo de Software
En este tiempo, se observa un enfoque en la agilidad y la automatización de pruebas, con la integración de nuevas técnicas y metodologías para mejorar la calidad del software en entornos dinámicos. -
Kent Beck
Kent Beck publica Desarrollo dirigido por pruebas: Mediante el ejemplo, donde "redescubre" la técnica de escribir pruebas antes del código, conocida como Desarrollo Guiado por las Pruebas (TDD). Beck también contribuye al desarrollo de patrones de software, la familia de herramientas de pruebas unitarias xUnit y la programación extrema (XP). -
Bret Pettichord
En 2003, el arquitecto de calidad de software estadounidense Bret Pettichord participa en
un taller de capacitación en pruebas de software donde expone la conferencia titulada ”Cuatro
escuelas de pruebas de software” y propone la existencia de escuelas de pensamiento en
las pruebas de software, a las que denomina: analítica, dirigida por normas, orientada hacia
la calidad, y dirigida por el contexto. Posteriormente, se incorpora a la lista a la escuela ágil. -
Michael Bolton
Michael Bolton se une como coautor de la metodología RST de James Bach. En 2009, en su artículo Probando vs. comprobando, Bolton diferencia entre ambos términos: "comprobar" implica confirmar y validar mediante herramientas automáticas, mientras que "probar" se refiere a un proceso de exploración y aprendizaje realizado por los probadores. -
Erik Van Veenendaal
Erik Van Veenendaal y otros expertos fundan la Fundación TMMI para desarrollar el Modelo de Madurez de Pruebas Integrado (TMMI). Este modelo, basado en el anterior TMM creado en 1996 en el Instituto de Tecnología de Illinois, tiene como objetivo evaluar y mejorar el proceso de pruebas en las organizaciones. -
Doron Reuveni
Doron Reuveni y Roy Solomon publican "Guía esencial de crowdtesting", introduciendo el término "crowdtesting", derivado de "crowdsourcing", que fue acuñado en 2006. Este enfoque busca realizar pruebas en entornos naturales en lugar de en laboratorios, involucrando a grupos de voluntarios para capturar una amplia variedad de contextos de uso y dispositivos. -
Lisa Crispin
Lisa Crispin y Janeth Gregory publican "Pruebas ágiles: Una guía práctica para probadores y equipos ágiles", un libro pionero en la disciplina de las pruebas ágiles que incluye un capítulo sobre pruebas exploratorias, con la colaboración de Michael Bolton. En 2014, publican "Más pruebas ágiles: Viajes de aprendizaje para todo el equipo", que aborda la adaptación de las pruebas ágiles a diversos entornos, el aprendizaje a partir de la experiencia y la mejora continua de los procesos de prueba. -
Mike Cohn
Mike Cohn publica "Triunfando con la agilidad", donde introduce la pirámide de automatización de pruebas. Cohn sostiene que una estrategia de automatización eficaz debe abarcar tres niveles: pruebas de unidad, de servicio e interfaz de usuario. -
Jonathan Kohl
Jonathan Kohl contribuye 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. En este capítulo, Kohl sugiere usar la automatización para tareas como configuración de pruebas, generación de datos y avance en flujos de trabajo, además de promover las pruebas exploratorias manuales para detectar defectos sutiles que podrían pasar desapercibidos.