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