Evolución de la calidad de software

  • Period: to

    1. Período 1840–1950: Los Primeros Conceptos

    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
  • Ada Lovelace

    Ada Lovelace

    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").
  • Alan Turing

    Alan Turing

    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
  • Period: to

    2. Período1951–1970: Nacimiento del Control de Calidad

    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
  • Charles Baker

    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
  • Daniel McCracken

    Daniel McCracken

    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
  • Gerald Weinberg

    Gerald Weinberg

    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
  • Bill Elmendorf

    Bill Elmendorf

    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
  • Robert Bemer

    Robert Bemer

    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)
  • Edsger Dijkstra

    Edsger Dijkstra

    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
  • Period: to

    3. Período 1971-1980: Crisis de Calidad

    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
  • William Hetzel

    William Hetzel

    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
  • Frederick Brooks

    Frederick Brooks

    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
  • Tom Gilb

    Tom Gilb

    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
  • Michael Fagan

    Michael Fagan

    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
  • Thomas McCabe

    Thomas McCabe

    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
  • William C. Howden

    William C. Howden

    Acuña el término oráculo para referirse a un mecanismo para determinar si una prueba ha pasado
    o fallado.
  • Glenford Myers

    Glenford Myers

    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
  • Barry Boehm

    Barry Boehm

    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
  • Period: to

    4. Período 1981-1990: Estandarización

    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
  • James Martin

    James Martin

    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.
  • Paul Rook

    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
  • Robert Grady

    Robert Grady

    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%
  • Watts Humphrey

    Watts Humphrey

    Desarrolló el modelo CMM para madurez de procesos Institucionalizó las revisiones formales Documentó que procesos maduros reducen defectos en 75%
  • Boris Beizer

    Boris Beizer

    Clasificó los defectos por categorías técnicas Descubrió que las pruebas repetidas pierden efectividad Desarrolló técnicas para pruebas de regresión
  • Dorothy Graham

    Dorothy Graham

    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)
  • Period: to

    5. Período 1991-2000: Internet y Agilidad

    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)
  • Brian Marick

    Brian Marick

    Desarrolló técnicas para pruebas en sistemas orientados a objetos Creó los cuadrantes de pruebas ágiles (negocio/tecnología) Firmante del Manifiesto Ágil (2001)
  • Paul Jorgensen

    Paul Jorgensen

    Publicó "Pruebas de software: Un enfoque artesanal" Desarrolló técnicas para pruebas de sistemas embebidos Actualizó su obra por 5 ediciones hasta 2022
  • Geoff Dromey

    Geoff Dromey

    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
  • James Bach

    James Bach

    Inventó el Modelo de Estrategia Heurística de Pruebas Fundó la escuela Context-Driven Testing Creó Rapid Software Testing (RST)
  • Eric Raymond

    Eric Raymond

    Formuló la "Ley de Linus" sobre desarrollo open source Demostró que la revisión masiva reduce defectos Documentó el modelo bazar para desarrollo colaborativo
  • Jonathan Bach

    Jonathan Bach

    Desarrolló el enfoque de pruebas basadas en sesiones Creó la escala de libertad del tester Integró pruebas exploratorias en procesos formales
  • Period: to

    6. Período 2001-2024: Era de DevOps

    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
  • Kent Beck

    Kent Beck

    Popularizó Test-Driven Development (TDD) Creó la familia de herramientas xUnit Integró pruebas unitarias en Extreme Programming
  • Bret Pettichord

    Bret Pettichord

    Clasificó escuelas de pensamiento en testing Desarrolló el modelo de pruebas basadas en riesgos Integró enfoques ágiles con testing tradicional
  • Michael Bolton

    Michael Bolton

    Diferenció conceptualmente "testing" vs "checking" Co-desarrolló Rapid Software Testing Enfatizó el pensamiento crítico en pruebas
  • Erik Van Veenendaal

    Erik Van Veenendaal

    Lideró el desarrollo del modelo TMMI Estableció estándares para madurez en procesos de prueba Integró mejores prácticas de testing en CMMI
  • Doron Reuveni

    Doron Reuveni

    Pionero en crowdtesting comercial Desarrolló plataformas para pruebas distribuidas Optimizó cobertura de testing con comunidades globales
  • Lisa Crispin

    Lisa Crispin

    Estandarizó pruebas en equipos ágiles Desarrolló estrategias de automatización progresiva Promovió la colaboración continua Dev-Test-Ops
  • Mike Cohn

    Mike Cohn

    Creó la pirámide de automatización de pruebas Integró testing en Scrum mediante Definition of Done Desarrolló métricas ágiles para calidad
  • Jonathan Kohl

    Jonathan Kohl

    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