-
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.