-
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.
-
"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. -
- Artículo traducido del francés al ingles por Ada Lovelace.
-
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. -
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.
-
Introduce la idea de que los clientes deben preparar los casos de prueba para detectar errores lógicos y malentendidos con los programadores.
-
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. -
Daniel D. McCracken publica el libro “Programación de computadores digitales”, considerado uno de los primeros textos sobre programación.
-
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. -
- 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.
-
- 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.
-
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. -
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.
-
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.
-
-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.
-
Pionero en métricas de software y enfoques de inspección de software.
-
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. -
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.
-
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.
-
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.
-
Acuñador del término "oráculo" para la evaluación de pruebas de software.
-
- 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.
-
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. -
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.
-
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.
-
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.
-
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.
-
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).
-
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.
-
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.
-
Libro publicado por Tom Gilb junto con Dorothy Graham, donde se detalla este proceso de revisión formal de software
-
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.
-
Autor de "Pruebas de software: Un enfoque artesanal", evolucionando con las tecnologías en pruebas de software.
-
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. -
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. -
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".
-
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) -
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.
-
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. -
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. -
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. -
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,. -
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.
-
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. -
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. -
- 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.