Historia de la Calidad

  • Ada Lovelace

    Ada Lovelace
    • Tradujo el artículo "Boceto del motor analítico inventado por Charles Babbage", en notas anexó un algoritmo para utilizar la máquina analítica para el cálculo de números de Bernoulli.
    • Dicho algoritmo es considerado el primer programa de computación.
    • Lovelace es fue la primera en envisionar el potencial futuro de las computadoras y el software.
    • Se dio cuenta de que un funcionamiento equivocado puede deberse no necesariamente al hardware sino también a defectos de programación.
  • Period: to

    Período 1840-1950

  • Alan Turing

    Alan Turing
    ¿Cómo se puede comprobar una rutina en el sentido de asegurarse que es correcta?
    Para responde a esto, Turing propone un método general de prueba que todavía es la base de la verificación de programas.
    También señala que la persona que prueba debe ser distinta a la persona que programa.
    Un poco más sobre Alan Turing.
  • Period: to

    Período 1951-1970

  • Daniel D. McCracken

    Daniel D. McCracken
    • Publica el libro “Programación de computadores digitales” considerado el primer texto sobre programación.
    • En el libro hace referencia a las pruebas señalando que el cliente debe preparar el caso de comprobación y así poder señalar errores lógicos y malentendidos entre el cliente y el programador.
  • Charles L. Baker

    Charles L. Baker
    • Publicó en la revista “Tablas matemáticas y otros medios de cálculo” una reseña sobre el libro de Daniel McCracken donde explica la diferencia entre probar programas y depurarlos.
    • Los desarrolladores solían escribir el código y, cuando se encontraban con un defecto, analizaban y depuraban los problemas.
  • Gerald M. Weinberg

    Gerald M. Weinberg
    En el marco del proyecto Mercurio de la NASA, se aplicó mini-incrementos con ventanas de tiempo y una técnica que consistía en planificar y escribir las pruebas antes de cada mini-incremento de desarrollo de software.
  • Gerald M. Weinberg

    Gerald M. Weinberg
    En base a la experiencia en el proyecto, Weinberg y el ingeniero estadounidense Herbert D. Leeds publican el libro “Fundamentos de la programación informática” que es el primer libro en tener un capítulo dedicado completamente a pruebas de software, donde plantean los siguientes principios de las pruebas:
    1. Escribir el programa correctamente.
    2. Pensar en la comprobación al codificar.
    3. Conocer las herramientas de depuración disponibles.
    4. Hacer que el programa demuestre que funciona.
  • Bill Elmendorf

    Bill Elmendorf
    Publica el artículo “Evaluación de las pruebas funcionales de programas de control” donde se explica por primera vez la necesidad de un enfoque disciplinado para las pruebas funcionales del software.
  • Robert W. Bemer

    Robert W. Bemer
    • Participa de la Conferencia de Ingeniería de Software, donde uno de los temas tratados fue la garantía de calidad de software.
    • El informe de la conferencia incluyó el documento “Lista de chequeo para planificar la producción de sistemas de software” en el cual se dedica una sección a la garantía de la calidad de software.
  • Edsger Dijkstra

    Edsger Dijkstra
    • Se publicó su carta que criticaba el uso excesivo del Go To porque implicaba dificultades para las pruebas, esto marcó el inicio de la programación estructurada.
    • En 1972, recibe el premio Turing y en su discurso menciona que los programadores no deben perder el tiempo depurando, sino que deben evitar los errores desde un principio.
  • Bill Elmendorf

    Bill Elmendorf
    Publica el artículo “Diseño automatizado de librerías de pruebas de programas” donde propone la aplicación de las pruebas basadas en modelos
    para probar software.
  • Gerald M. Weinberg

    Gerald M. Weinberg
    Publica su libro clásico ”La psicología de la programación informática” donde resalta el aspecto humano de la programación.
  • Period: to

    Período 1971-1980

  • William C. Hetzel y David Gelperin

    William C. Hetzel y David Gelperin
    Hetzel publica el libro “Métodos de prueba de programas” que contiene una compilación de los artículos presentados en un simposio del mismo nombre, donde se expusieron problemas relativos a la validación y pruebas de software.
  • Frederick Brooks

    Frederick Brooks
    Publica su obra clásica “El mítico hombre-mes”, este libro contiene un conjunto de ensayos sobre ingeniería de software.
  • Tom Gilb

    Tom Gilb
    Es uno de los primeros informáticos en conceptualizar la fiabilidad del sistema y del software, y la relación entre error humano y error de sistema.
  • Michael E. Fagan

    Michael E. Fagan
    Propone un proceso sistemático de inspección tanto de diseños como de códigos con el objetivo de reducir el costo del retrabajo.
  • Thomas J. McCabe

    Thomas J. McCabe
    • Introduce la complejidad ciclomática como métrica de software para el control cuantitativo de la complejidad de un programa.
    • Propuso la prueba de ruta básica como una técnica de prueba de caja blanca.
  • 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
    Establece la terminología base de las pruebas de
    software en un libro titulado “El arte de las pruebas de software” donde introduce el concepto de pruebas de caja negra.
  • Barry W. Boehm

    Barry W. Boehm
    Introduce la noción de que el costo de arreglar un defecto en el software, llamado costo de retrabajo, aumenta conforme pasa el tiempo.
  • Period: to

    Período 1981-1990

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

    Paul E. Rook
    Presenta el Modelo V para la creación de software, donde introduce un enfoque estructurado para las pruebas.
  • Robert B. Grady

    Robert B. Grady
    Publica, en conjunto con Deborah L. Caswell, el libro “Métricas de software: Establecimiento de un programa para toda la empresa” donde explican qué son las métricas y cuándo son útiles.
  • William C. Hetzel y David Gelperin

    • Publican el artículo “El crecimiento de las pruebas de software” donde describen cuatro modelos para pruebas de software.
    • Hetzel publica el libro “Guía completa de pruebas de software” que describe metodologías, técnicas de prueba, y principios de las pruebas de software.
  • Cem Kaner

    Cem Kaner
    • Se publica el libro “Pruebas de software informático”, que se convirtió en un clásico por su enfoque pragmático.
    • Se utiliza por primera vez el término prueba exploratoria.
    • Kaner ha aportado además con leyes en Estados Unidos para el licenciamiento de software, regulación de la calidad de software, y comercio electrónico.
  • Watts Humphrey

    Watts Humphrey
    • Es considerado el padre de la calidad de software por sus contribuciones a la mejora del proceso de software.
    • Es el fundador del programa de procesos de software del Instituto de Ingeniería de Software
    • Publica el libro “Gestión del proceso de software” donde propone el modelo de madurez de las capacidades (CMM) para mejorar la calidad y productividad del proceso de desarrollo de software.
  • Boris Beizer

    Boris Beizer
    • Propone una clasificación de defectos de software en el libro “Técnicas de pruebas de software”.
    • Acuña el término “paradoja del pesticida” para describir el fenómeno de que cuanto más se prueba el software, más inmune se vuelve éste a las pruebas a las que se le somete.
  • Dorothy Graham

    Dorothy Graham
    Unicom publica el primer “Reporte sobre pruebas de software asistidas por computador (CAST)” escrito por la consultora en pruebas de software Dorothy Graham.
  • Period: to

    Período 1991-2000

  • Robert B. Grady

    Robert B. Grady
    Publica el libro “Métricas de software prácticas para la gestión de proyectos y la mejora de procesos” donde presenta una taxonomía de defectos de software elaborada para la empresa Hewlett-Packard con el objetivo de identificar tendencias de defectos en productos ya terminados y utilizar esa información para la prevención de defectos en proyectos futuros.
  • Brian Marick

    Brian Marick
    • Manifiesta que probar software es un oficio, como la carpintería, que se aprende mejor en persona, viendo cómo lo hace otra persona más experimentada e intentado hacerlo bajo su supervisión.
    • Se enfoca en subsistemas de tamaño medio, tales como controladores de dispositivos, bibliotecas de clases, módulos de optimización en compiladores, entre otros.
  • Paul C. Jorgensen

    Paul C. Jorgensen
    • Publica el libro “Pruebas de software: Un enfoque artesanal”.
    • En 2022, Jorgensen publica la quinta edición en conjunto con Byron DeVries.
    • Las ediciones de este libro se han convertido en referencia de las tecnologías en evolución en el ámbito de las pruebas de software.
  • Robert B. Grady

    Robert B. Grady
    Publica el libro “Mejora exitosa de los procesos de software” donde explica como aplicar el ciclo PDCA a esfuerzos de mejora en el ámbito de software.
  • R. Geoff Dromey

    R. Geoff Dromey
    Propone un modelo de calidad para resolver la intangibilidad de las características de calidad propuestas en la norma ISO/IEC 9126:1991 “Ingeniería de Software - Calidad de Producto”
  • James Bach

    James Bach
    • Propone el Modelo de Estrategia de Pruebas Heurísticas, que consiste en un conjunto de patrones para diseñar y elegir las pruebas que se van a realizar en un proyecto de pruebas de software.
    • El propósito es enfatizar que la selección de técnicas o heurísticas de prueba a utilizar debe tomar en cuenta el ambiente del proyecto, los elementos del producto, y los criterios de calidad.
  • Dorothy Graham

    Dorothy Graham
    Publica en conjunto con Mark Fewster el libro “Automatización de pruebas de software”, considerado una obra clásica en el ámbito de la automatización de pruebas.
  • Eric S. Raymond

    Eric S. Raymond
    • Describe el método de desarrollo de software que utilizó Linus Torvalds para crear el sistema operativo Linux.
    • Presenta la llamada Ley de Linus, implica que cuanto más públicamente disponible esté el código fuente de un software para su comprobación, escrutinio, y experimentación por parte una base grande de probadores y desarrolladores, más rápidamente se descubrirán, caracterizarán, y solucionarán los defectos presentes en dicho software.
  • Jonathan Bach

    Una sesión es un bloque ininterrumpido de esfuerzo de prueba con una misión puntual donde se utiliza pruebas exploratorias y se reportan los resultados al término de la misma.
  • Brian Marick

    Brian Marick
    Participa como uno de los autores del Manifiesto
    Ágil.
  • James Bach

    James Bach
    Crea la metodología Pruebas Rápidas de Software (RST) alineada a la Escuela de Pruebas Dirigidas por el Contexto.
  • Period: to

    Período 2001-2024

  • Kent Beck

    Kent Beck
    • “Re-descubre” la técnica de desarrollo de software que consiste en escribir las pruebas antes escribir el código, y la denomina Desarrollo Guiado por las Pruebas (TDD).
    • También contribuye con los patrones de software, la familia de herramientas de pruebas unitarias xUnit , y la programación extrema (XP).
  • Brian Marick

    Brian Marick
    Publica una serie de artículos sobre pruebas ágiles, entre ellos el artículo “Cuadrantes de pruebas ágiles” donde define dos dimensiones para categorizar los tipos de pruebas: pruebas de cara al negocio versus pruebas de cara a la tecnología; y pruebas que dan soporte a la programación versus pruebas que critican el producto.
  • Bret Pettichord

    Bret Pettichord
    • Expone la conferencia titulada “Cuatro escuelas de pruebas de software” y propone la existencia de escuelas de pensamiento en las pruebas de software, a las que denomina: analítica, dirigida por normas, orientada hacia la calidad, y dirigida por el contexto.
    • Se incorpora a la lista a la escuela ágil.
  • Michael Bolton

    Para Bolton, comprobar es confirmar, verificar, y validar utilizando herramientas automáticas, mientras que probar es el proceso de exploración, descubrimiento, investigación, y aprendizaje realizado por los probadores.
  • Watts Humphrey

    Watts Humphrey
    Publica el libro “PSP, un proceso de auto-superación para ingenieros de software” donde describe un proceso personal de software (PSP) donde reduce las prácticas de software industrial para adaptarlas a las necesidades del desarrollo de programas de tamaño modular.
  • Erik Van Veenendaal

    Erik Van Veenendaal
    Crea la Fundación TMMI con el objetivo de desarrollar el Modelo de Madurez de Pruebas Integrado TMMI, sirve para evaluar y mejorar el proceso de pruebas de las organizaciones y se basa en su predecesor, el modelo TMM desarrollado en 1996 en el Instituto de Tecnología de Illinois.
  • Watts Humphrey

    Watts Humphrey
    Publica el libro “TSP, Dirigiendo un equipo de desarrollo” donde explica cómo liderar a equipos de ingenieros de software formados en PSP utilizando un proceso de software en equipo (TSP).
  • Dorothy Graham

    Dorothy Graham
    Publica en conjunto con Erik Van Veenendaal, Isabel Evans, y Rex Black el libro “Fundamentos de las pruebas de software: Certificación ISTQB” donde se describe el programa de estudios para la certificación de nivel básico de pruebas del Comité Internacional de Cualificaciones de Pruebas de Software (ISTQB).
  • Doron Reuveni

    Doron Reuveni
    • Publica el libro “Guía esencial de crowdtesting”.
    • Crowdtesting se basa en el enfoque de pruebas en el medio natural en lugar del laboratorio de calidad o la organización desarrolladora, buscando incluir la mayor cantidad de contextos de usos y dispositivos.
  • Jonathan Bach

    Propone la escala de libertad del probador, modela el grado en que se nos permite pensar.
  • Mike Cohn

    Mike Cohn
    • Propone la “pirámide de automatización de pruebas”.
    • Argumenta que una estrategia de automatización de pruebas eficaz requiere la automatización de pruebas en tres niveles: unidad, servicio, e interfaz de usuario.
  • Lisa Crispin

    Lisa Crispin
    Publica, en conjunto con Janeth Gregory, el libro “Pruebas ágiles: Una guía práctica para probadores y equipos ágiles” que incluye un capítulo sobre pruebas exploratorias escrito con el apoyo de Michael Bolton.
    Este libro es considerado pionero en la disciplina de las pruebas ágiles.
  • Gerald M. Weinberg

    Gerald M. Weinberg
    Publica el libro “Software perfecto y otras ilusiones sobre las pruebas” donde sostiene que las pruebas son necesarias porque las personas no somos perfectas, pero el hecho de probar más, no garantiza una mayor calidad.
  • Jonathan Kohl

    Jonathan Kohl
    • Propone utilizar la automatización para llevar a cabo tareas tales como configuración de pruebas, generación de datos, y avance a lo largo de un flujo de trabajo.
    • Además, propone la utilización de pruebas exploratorias manuales para encontrar aquellos defectos insidiosos que de otro modo escaparían a la atención de los probadores.
  • Lisa Crispin

    Lisa Crispin
    Crispin y Gregory publicaron otro texto importante en el mismo ámbito, titulado “Más pruebas ágiles: Viajes de aprendizaje para todo el equipo”, abarca la adaptación de las pruebas ágiles a entornos y equipos, el aprendizaje a partir de la experiencia, y la mejora continua de los procesos de prueba.