-
No existía el término "software", se usaba "programas" o "rutinas" Los "programas" eran secuencias de instrucciones para máquinas mecánicas La calidad se medía por si la máquina ejecutaba correctamente las tarjetas perforadas No había diferenciación entre hardware y software - los errores se atribuían a la máquina Los primeros computadores electrónicos (ENIAC, 1945) requerían reprogramación física
-
Tradujo y amplió el artículo sobre la máquina analítica de Babbage Publicó el primer algoritmo para calcular números de Bernoulli Predijo que las máquinas podrían componer música y generar arte Calidad: Advirtió sobre errores en programas ("órdenes erróneas").
-
Desarrolló la prueba teórica para verificar la corrección de programas Propuso que los programas debían probarse con entradas representativas Estableció que el probador no debería ser el mismo que el programador
-
Surge el término "software" (1958) para diferenciarlo del hardware Aparecen los primeros bugs de software documentados La calidad se centraba en que los programas hicieran cálculos correctos No existían metodologías de prueba - se depuraba sobre la marcha Los lenguajes de alto nivel (FORTRAN, COBOL) introducen nuevos tipos de errores La NASA desarrolla los primeros procesos formales de verificación para el programa Apollo
-
Diferenció conceptualmente entre pruebas (validación) y depuración (corrección) Criticó la práctica común de que los programadores probaran su propio código Propuso que las pruebas debían diseñarse antes de la codificación
-
Publicó el primer libro sobre programación de computadoras Estableció que los clientes debían preparar casos de prueba Documentó métodos para verificar programas científicos
-
Documentó los primeros procesos sistemáticos de pruebas en la NASA Introdujo el concepto de pruebas de regresión Desarrolló técnicas para pruebas de sistemas en tiempo real
-
Publicó el primer marco para pruebas funcionales disciplinadas Diseñó bibliotecas de pruebas automatizadas para sistemas de control Propuso pruebas basadas en modelos para software complejo
-
Participó en la histórica conferencia NATO sobre ingeniería de software Desarrolló el primer checklist para garantía de calidad de software Estableció ratios ideales entre desarrolladores y testers (10:1)
-
Demostró que el uso excesivo de GOTO hacía imposible verificar programas Desarrolló el concepto de programación estructurada Creó algoritmos para verificación formal de programas
-
70% de los proyectos de software fallaban (sobrecostos, retrasos o cancelaciones) Los sistemas operativos complejos (UNIX) exponen problemas de calidad Surge el concepto de "ingeniería de software" para abordar la crisis La calidad empieza a medirse por defectos por mil líneas de código IBM desarrolla las primeras métricas formales de calidad Los mainframes corporativos hacen críticos los temas de confiabilidad
-
Organizó el primer simposio sobre métodos de prueba Recopiló casos de estudio de fallos en sistemas críticos Documentó técnicas para pruebas de sistemas complejos
-
Analizó por qué los proyectos de software fallaban Demostró que agregar personal retrasaba los proyectos Calculó que el retrabajo consumía el 75% del esfuerzo en proyectos
-
Desarrolló las primeras métricas cuantitativas de calidad Estableció que la complejidad aumenta exponencialmente los defectos Creó métodos para estimar la confiabilidad de sistemas
-
Diseñó el proceso formal de inspecciones de código Redujo defectos en sistemas de IBM en un 67% Documentó que las inspecciones encontraban un 60-90% de defectos
-
Creó la métrica de complejidad ciclomática Demostró que programas con alta complejidad tenían más defectos Desarrolló pruebas de ruta básica para verificación estructural
-
Acuña el término oráculo para referirse a un mecanismo para determinar si una prueba ha pasado
o fallado. -
Publicó el primer libro dedicado exclusivamente a pruebas Desarrolló técnicas sistemáticas de pruebas de caja negra Estableció que el propósito de las pruebas es encontrar fallos
-
Cuantificó que corregir errores en producción costaba 100x más Desarrolló el modelo COCOMO para estimación de costos Demostró que el 60% de los errores provenían de requisitos
-
El software empresarial (SAP, Oracle) exige nuevos estándares de calidad Surge ISO 9000 para sistemas de calidad en software Aparecen las primeras herramientas CASE para gestión de calidad La PC democratiza el software pero aumenta problemas de calidad Microsoft establece grupos de testing independientes Los virus informáticos muestran nuevos desafíos de calidad/sseguridad
-
Indica que la distribución de la 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.
-
Creó el Modelo V para desarrollo de software Alineó cada fase de desarrollo con su correspondiente prueba Integró pruebas de sistema, integración y unidad
-
Implementó el primer programa de métricas en HP Clasificó defectos por tipo y fase de introducción Redujo defectos en productos comerciales en un 50%
-
Desarrolló el modelo CMM para madurez de procesos Institucionalizó las revisiones formales Documentó que procesos maduros reducen defectos en 75%
-
Clasificó los defectos por categorías técnicas Descubrió que las pruebas repetidas pierden efectividad Desarrolló técnicas para pruebas de regresión
-
Publicó el primer reporte sobre herramientas CAST (Computer Aided Software Testing) Estableció estándares para automatización de pruebas funcionales Co-creó el syllabus de certificación ISTQB (2006)
-
El Y2K expone problemas de calidad en software heredado Los navegadores web introducen nuevos tipos de errores Surge el testing de compatibilidad entre navegadores Linux muestra el modelo de código abierto como alternativa de calidad Los ERP complejos (SAP R/3) requieren nuevos enfoques de prueba Aparecen las primeras herramientas de testing automatizado (Mercury)
-
Desarrolló técnicas para pruebas en sistemas orientados a objetos Creó los cuadrantes de pruebas ágiles (negocio/tecnología) Firmante del Manifiesto Ágil (2001)
-
Publicó "Pruebas de software: Un enfoque artesanal" Desarrolló técnicas para pruebas de sistemas embebidos Actualizó su obra por 5 ediciones hasta 2022
-
Creó modelo para cuantificar atributos de calidad ISO 9126 Desarrolló métricas para características intangibles de software Vinculó calidad de código con propiedades medibles
-
Inventó el Modelo de Estrategia Heurística de Pruebas Fundó la escuela Context-Driven Testing Creó Rapid Software Testing (RST)
-
Formuló la "Ley de Linus" sobre desarrollo open source Demostró que la revisión masiva reduce defectos Documentó el modelo bazar para desarrollo colaborativo
-
Desarrolló el enfoque de pruebas basadas en sesiones Creó la escala de libertad del tester Integró pruebas exploratorias en procesos formales
-
Shift-left testing lleva calidad a fases tempranas del desarrollo CI/CD exige automatización total de pruebas La nube permite testing en múltiples configuraciones Big Data introduce desafíos de calidad en grandes volúmenes IoT requiere testing en miles de dispositivos diferentes AI/ML crea nuevos paradigmas para testing automatizado
-
Popularizó Test-Driven Development (TDD) Creó la familia de herramientas xUnit Integró pruebas unitarias en Extreme Programming
-
Clasificó escuelas de pensamiento en testing Desarrolló el modelo de pruebas basadas en riesgos Integró enfoques ágiles con testing tradicional
-
Diferenció conceptualmente "testing" vs "checking" Co-desarrolló Rapid Software Testing Enfatizó el pensamiento crítico en pruebas
-
Lideró el desarrollo del modelo TMMI Estableció estándares para madurez en procesos de prueba Integró mejores prácticas de testing en CMMI
-
Pionero en crowdtesting comercial Desarrolló plataformas para pruebas distribuidas Optimizó cobertura de testing con comunidades globales
-
Estandarizó pruebas en equipos ágiles Desarrolló estrategias de automatización progresiva Promovió la colaboración continua Dev-Test-Ops
-
Creó la pirámide de automatización de pruebas Integró testing en Scrum mediante Definition of Done Desarrolló métricas ágiles para calidad
-
Expandió usos de automatización más allá de regresión Integró pruebas exploratorias en pipelines CI/CD Desarrolló técnicas para testing en dispositivos móviles