-
Period: to
Período 1840-1950
Durante este período, se introdujeron conceptos fundamentales como la lógica matemática y el álgebra booleana, que influenciaron el diseño de circuitos y máquinas computacionales. -
Ada Lovelace
"La máquina analítica no tiene pretensiones de crear nada. Puede hacer cualquier cosa que sepamos como ordenarle que realice.” Fue la primera persona en anticipar el potencial de las computadoras más allá de los cálculos matemáticos.
Además, mencionó que los errores no solo eran causados por fallos de hardware, sino también por defectos en la programación, adelantándose al concepto moderno de bugs y debugging. -
Boceto del motor analítico inventado por Charles Babbage
- Artículo traducido del francés al ingles por Ada Lovelace.
-
Alan Turing
Considerado el padre de la ciencia de la computación y la inteligencia artificial.
- Desarrolla la idea de la Máquina de Turing en 1936, un concepto matemático fundamental para la teoría de la computación.
- Durante la Segunda Guerra Mundial, Turing fue parte del equipo que descifró el código de la máquina Enigma de los nazis, lo que aceleró el fin del conflicto. -
Period: to
Período 1951-1970
Durante este período, se introdujeron lenguajes de alto nivel como Fortran y COBOL, que facilitaron la escritura de programas complejos y promovieron la adopción del uso de computadoras en diversas industrias. -
Daniel D. McCracken
Introduce la idea de que los clientes deben preparar los casos de prueba para detectar errores lógicos y malentendidos con los programadores. -
Charles L. Baker
Publica una reseña sobre el libro de McCracken y explica la diferencia entre probar programas y depurarlos.
- En esta reseña comenta que antes de los años 50, los desarrolladores no diferenciaban entre pruebas y depuración, enfocándose más en la corrección de errores que en las pruebas formales. -
Digital Computer Programming
Daniel D. McCracken publica el libro “Programación de computadores digitales”, considerado uno de los primeros textos sobre programación. -
Gerald M. Weinberg
Coautor del libro “Fundamentos de la programación informática”, el primer libro en incluir un capítulo completo dedicado a las pruebas de software.
Establece principios clave:
1. Escribir correctamente el programa desde el inicio.
2. Pensar en las pruebas al codificar.
3. Conocer las herramientas de depuración.
4. Hacer que el programa demuestre que funciona. -
Bill Elmendorf
- En 1967, el artículo "Evaluación de las pruebas funcionales de programas de control" enfatiza la importancia de realizar pruebas funcionales de manera disciplinada.
- En 1970, propone el uso de pruebas basadas en modelos, un enfoque que permite simular el comportamiento del software y mejorar su fiabilidad y robustez, estableciendo una base metodológica más rigurosa para la validación del software.
-
Robert W. Bemer
- Participa en la primera Conferencia de Ingeniería de Software de la OTAN, donde se discuten temas como la garantía de calidad de software.
- Publica el libro “Lista de chequeo para planificar la producción de sistemas de software”, en el cual establece preguntas clave para asegurar la calidad del software, como si los productos han sido probados para satisfacer las necesidades del cliente.
-
Edsger Dijkstra
Escribe una carta a la revista ACM criticando el uso del Go To, marcando el inicio de la programación estructurada.
- En 1972, recibe el Premio Turing y en su discurso “El humilde programador” expone que la mejor manera de mejorar la calidad del software no es depurando errores, sino evitándolos desde el principio. -
Period: to
Período 1971-2000
Durante este período, se publicaron obras fundamentales, como “El mítico hombre-mes” de Frederick Brooks y “Métodos de prueba de programas” de William C. Hetzel y David Gelperin, que sentaron las bases de la ingeniería de software y la gestión de proyectos. Se organizaron conferencias internacionales sobre pruebas de software, destacando la primera en 1984, y se introdujeron modelos de prueba innovadores, como los propuestos por Hetzel. -
1971
Gerald M. Weinberg publica el libro "La psicología de la programación informática", donde resalta la importancia del factor humano en la programación. -
William C. Hetzel
-En 1973, William C. Hetzel publica "Métodos de prueba de programas", una recopilación de artículos de un simposio en Chapel Hill, EE.UU., enfocado en problemas de validación y pruebas de software. -
Tom Gilb
Pionero en métricas de software y enfoques de inspección de software. -
Frederick Brooks
Autor de "El mítico hombre-mes", que discute la gestión de proyectos de software y la importancia de las pruebas.
Afirmando que el proceso de prueba es tanto una ayuda como un adversario en el desarrollo. -
Michael E. Fagan
Precursor en el uso de inspecciones de código y diseño para mejorar la calidad del software, desarrolló un proceso que se aplicó exitosamente en IBM desde 1976. -
Thomas J. McCabe
Introdujo la complejidad ciclomática en 1976, una métrica clave para la prueba de software que ayudó a medir y controlar la complejidad de los programas. -
Glenford Myers
Publicó en 1979 "El arte de las pruebas de software", donde introdujo el concepto de pruebas de caja negra, una técnica todavía usada ampliamente en la industria. -
William C. Howden
Acuñador del término "oráculo" para la evaluación de pruebas de software. -
Barry W. Boehm
- Desarrollador del Modelo de Costos Constructivos (COCOMO) y presentó el concepto de que el costo de corregir errores aumenta drásticamente en fases posteriores del desarrollo.
-
David Gelperin
Junto con William C.Hetzel organiza la primera conferencia internacional sobre pruebas de software en 1984.
- En 1988, ambos publicaron el artículo "El crecimiento de las pruebas de software", donde describen cuatro modelos de pruebas: demostración, destrucción, evaluación y prevención. -
James Martin
Publica el libro "Manifiesto de los sistemas de información", donde aborda la importancia de los sistemas de información en la transformación digital de las organizaciones. -
Paul E. Rook
Propuso el Modelo V en 1986, una alternativa al modelo en cascada que mejoró la estructura y enfoque de las pruebas en cada etapa del desarrollo de software. -
Robert B. Grady
Con sus trabajos sobre métricas de software, ayudó a Hewlett-Packard a mejorar la calidad y a prevenir defectos futuros. Sus libros de 1987 y 1992 son referencias en el uso de métricas en gestión de proyectos. -
Cem Kaner
Introdujo el concepto de pruebas exploratorias en su libro "Pruebas de software informático" (1988). - En 1999, fue cofundador de la Escuela de Pruebas Dirigidas por el Contexto, que influyó en las prácticas de pruebas modernas. -
Watts Humphrey
Fundador del programa de procesos de software en el SEI y el creador del CMM (Modelo de Madurez de Capacidades) y del PSP (Proceso de Software Personal), publicado en su libro "Gestión del proceso de software" (1989). -
Boris Beizer
Con su libro "Técnicas de pruebas de software", introdujo la famosa paradoja del pesticida, recordando la importancia de diversificar las pruebas para descubrir nuevos errores. -
Dorothy Graham
Pionera en la automatización de pruebas, su trabajo ha influido en las prácticas modernas de pruebas automatizadas y en el desarrollo de estándares de certificación ISTQB. -
Software Inspection
Libro publicado por Tom Gilb junto con Dorothy Graham, donde se detalla este proceso de revisión formal de software -
Brian Marick
Contribuyó al desarrollo del enfoque ágil en pruebas. En 2001, participó en la creación del Manifiesto Ágil, y su modelo de cuadrantes de pruebas ágiles sigue siendo un marco útil para equipos de desarrollo. -
Paul C. Jorgensen
Autor de "Pruebas de software: Un enfoque artesanal", evolucionando con las tecnologías en pruebas de software. -
R. Geoff Dromey
En su artículo "Acorralando a la quimera", el doctor australiano R. Geoff Dromey presenta un modelo de calidad que aborda la dificultad de medir las características de calidad propuestas en la norma ISO/IEC 9126:1991.
Su modelo tiene como objetivo hacer más** tangibles** y medibles estas características, mejorando la evaluación de la calidad del software. -
James Bach
Bach ha sido un defensor de la experimentación en el proceso de pruebas, promoviendo la idea de que las pruebas son un arte que se perfecciona a través de la práctica y la reflexión.
Su enfoque en heurísticas ha llevado a una mejor comprensión de cómo los testers pueden adaptarse a diferentes contextos y desafíos. -
Eric S. Raymond
En su libro "La catedral y el bazar", describe el método colaborativo de desarrollo que Linus Torvalds utilizó para crear Linux. Raymond establece 19 pautas para el desarrollo de software de código abierto y presenta la Ley de Linus, que sostiene que "si hay suficientes ojos, todos los errores son superficiales". -
Jonathan Bach
Introduce el concepto de sesión de pruebas, un bloque ininterrumpido de pruebas con una misión específica, utilizando el enfoque de pruebas exploratorias y reportando los resultados al final.
- Bach propone la escala de libertad del probador, que modela el grado de autonomía que un probador tiene al realizar pruebas, desde "completamente guiado" hasta "estilo libre exploratorio". (2007) -
Period: to
Período 2001-2020
Este período vio la publicación de obras influyentes como "El arte de las pruebas de software" de Brian Marick y "Lecciones aprendidas en pruebas de software" de Cem Kaner, que enfatizaban la importancia de las pruebas exploratorias y la adaptabilidad en el proceso de prueba. La transformación digital y el auge del desarrollo de software basado en la nube y la automatización impulsaron la necesidad de enfoques más eficientes en la calidad del software. -
Kent Beck
Re-descubre la técnica de Desarrollo Guiado por las Pruebas (TDD), que implica escribir las pruebas antes de escribir el código.
- Introduce programación extrema (XP), que enfatiza la colaboración y la adaptabilidad en el desarrollo de software.
- Contribuye a la creación de patrones de software y a la familia de herramientas de pruebas unitarias xUnit. -
Bret Pettichord
En 2003, presenta la conferencia "Cuatro escuelas de pruebas de software", donde clasifica las escuelas de pensamiento en pruebas de software como:
1. Analítica
2. Dirigida por normas
3. Orientada hacia la calidad
4. Dirigida por el contexto
Posteriormente, incluye la escuela ágil, promoviendo una visión integral de las metodologías de prueba. -
Michael Bolton
En 2004, se convierte en co-autor de la metodología RST (Rapid Software Testing) creada por James Bach.
En 2009, publica el artículo "Probando vs. comprobando", donde distingue entre: Comprobar: Confirmar y validar utilizando herramientas automáticas. -
Erik Van Veenendaal
Crea la Fundación TMMI junto a otros expertos para desarrollar el Modelo de Madurez de Pruebas Integrado (TMMI).
- El modelo TMMI ayuda a evaluar y mejorar el proceso de pruebas en las organizaciones,. -
Doron Reuveni
Introduce el término crowdtesting, que se refiere a la realización de pruebas a través de grupos de voluntarios, buscando contextos de uso variados y dispositivos. -
Mike Cohn
En 2009, publica "Triunfando con la agilidad", donde presenta la pirámide de automatización de pruebas. Argumenta que una estrategia eficaz de automatización debe incluir tres niveles:
1. Pruebas unitarias: En la base, muchas y granulares.
2. Pruebas de integración: Interacciones entre componentes.
3. Pruebas E2E: Verificación del software completo desde el inicio hasta el final. -
Lisa Crispin
Co-autora de "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, Crispin y Gregory lanzan un segundo libro titulado "Más pruebas ágiles: Viajes de aprendizaje para todo el equipo", donde se enfocan en la adaptación de las pruebas ágiles a diferentes equipos y entornos. -
Jonathan Kohl
- Contribuye con el capítulo "La automatización es mucho más que pruebas de regresión" en el libro "Experiencias de automatización de pruebas". Donde propone utilizar la automatización para tareas como configuración de pruebas y generación de datos, así como incorporar pruebas exploratorias manuales para identificar defectos insidiosos.