-
Surgen los primeros conceptos de programación, errores, y la idea de verificación formal en el contexto del hardware mecánico y primeros algoritmos.
-
Primera programadora. Publica un algoritmo para la máquina analítica de Babbage y anticipa errores lógicos en programación. -
Sugiere separar el rol del programador y el verificador. Introduce principios aún usados para validar la corrección de software. -
Se comienzan a distinguir las pruebas de la depuración. Nacen los primeros principios de validación y control de calidad del software.
-
Fomenta que el cliente cree casos de prueba anticipadamente para evitar errores conceptuales entre usuarios y programadores. -
Explica que pruebas y depuración son procesos distintos, un concepto novedoso en la época. -
Desde la NASA, promueve planificar pruebas antes de codificar y enfocarse en la adaptabilidad del software. -
Primera formulación formal de pruebas funcionales. Sugiere modelos para diseñar pruebas sistemáticamente. -
En la conferencia NATO sobre ingeniería de software, plantea preguntas críticas para establecer garantías de calidad en sistemas complejos. -
Lanza las bases de la programación estructurada con su crítica al uso indiscriminado del Go To. -
Aparecen técnicas estructuradas, métricas para la calidad y fiabilidad, y conceptos fundamentales para las pruebas modernas.
-
Critica los errores de gestión en proyectos y subraya que las pruebas deben comenzar desde la especificación. -
Propone procesos formales de revisión de código que disminuyen costos de defectos y aumentan la productividad. -
Establece que el objetivo del probador es hacer fallar al software, introduciendo pruebas de caja negra. -
Plantea que el costo de corregir errores se incrementa exponencialmente según la etapa de detección. -
Surgen modelos para gestionar la calidad como CMM y COCOMO, y se consolida la importancia de los procesos en la ingeniería de software.
-
Introduce el Modelo V que alinea fases de desarrollo con fases de prueba específicas. -
Promueve pruebas guiadas por el contexto y el pensamiento crítico en la práctica de pruebas. -
Introduce el modelo de madurez para procesos de software y programas de mejora personal (PSP) y de equipo (TSP). -
Advierte que usar las mismas pruebas muchas veces reduce su efectividad al no detectar nuevos errores. -
Proliferan herramientas automatizadas de prueba, se introducen métodos contextuales y se enfatiza el rol del probador.
-
Clasifica las pruebas según si apoyan la programación o critican el producto y si están orientadas al negocio o a la tecnología. -
Populariza el modelo de desarrollo colaborativo del software libre y la Ley de Linus: más ojos detectan más errores. -
Las pruebas se adaptan a metodologías ágiles, aparecen enfoques personalizados como TDD, RST y las escuelas de pruebas.
-
Desarrolla el concepto de escribir pruebas antes del código (Test Driven Development), clave en metodologías ágiles. -
Propone cinco escuelas de pensamiento sobre cómo abordar las pruebas de software según el contexto. -
Se une a James Bach como coautor de la metodología Rapid Software Testing, centrada en el pensamiento crítico.