-
-
Traducción de "Boceto del motor analítico invenado por Charles Babbage", donde anexó un algoritmo para usar la máquina analítica para el cálculo de Bernoulli. "El primer programa de computación"
“La máquina analítica no tiene pretensiones de crear nada. Puede hacer cualquier cosa que sepamos como ordenarle que realice.” -
"Sobre la comprobación de una rutina grande", considerado uno de los padres de la ciencia de la computación e informática plantea. ¿Cómo se puede comprobar una rutina en el sentido de asegurarse que es correcta?.
-
-
Publica "Programación de computadores digitales", el primer texto sobre programación.
-
Publicó "Tablas matemáticas y otros medios de cálculo" reseña sobre "Programación de comptadores digitales", explicando el probar programas y depuralos. Aún no existía el concepto de pruebas ni probadores.
-
En le proyecto Mercurio de la NASA, aplicó mini-incrementos. Publicó "Fundamentos de la programación informática", primer libro dedicado a las pruebas de software.
1. Escribir el programa correctamente.
2. Pensar en la comprobación al codificar.
3. Conocerlas herramientas de depuración diponibles.
4. Hacer que el programa funcione. -
Escribió el artículo “Evaluación de las pruebas funcionales de programas de control” donde se explica la necesidad de un enfoque disciplinado para pruebas funcionales.
-
Participa en la conferencia de Ingeniería de Software patrocinada por el comité científico de la Organización del Tratado del Atlántico Norte, donde se trató la garantía de la calidad de software. Se incluyó “Lista de chequeo para planificar la producción de sistemas de software". Se plantea preguntas para entender si un producto es de calidad o no.
-
Escribió una carta a la revista Communications de la Asociación de Maquinaria Computacional con el título "Sentencia Go To considerada perjudicial"que era una crítica al uso de Go Yo, marcó el inicio de la programación etructurada.
-
Propone la aplicación de las pruebas basadas en modelos para probar software.
-
-
El aspecto humano de la programación
“En septiembre de 1962, se publicó una noticia en la que se afirmaba que un
cohete de 18 millones de dólares se había destruido en el primer vuelo porque
se omitió un guión en la cinta de instrucciones... Siendo la naturaleza de la
programación lo que es, no hay relación entre el tamaño del error y el problema
que causa. Por lo tanto, es difícil formular cualquier objetivo para las pruebas, salvo la eliminación de todos los errores, tarea imposible.” -
Discurso "EL humilde programador"
“Si quieres programadores más eficaces, descubrirás que no deben perder el tiempo depurando, no deben introducir los errores para empezar (...) Una técnica habitual es hacer un programa y luego probarlo. Pero, las pruebas de programas pueden ser una forma muy eficaz de mostrar la presencia de defectos, pero son
irremediablemente inadecuadas para demostrar su ausencia. La única forma eficaz de aumentar el nivel de confianza.” -
Publica “Métodos de prueba de programas” que compila los artículos presentes en un simposio del mismo nombre llevado a cabo en Chapel Hill, donde se expusieron problemas relativos a la validación y pruebas de software.
-
Publicó su obra "El mítico hombre-mes", con un conjunto de ensayos sobre ingeniería de software, el más conocido "No hay bala de plata". Sus ideas expuestas aún tienen vigencia en entornos ágiles y DevOps. Una afirmación:
“Como regla general, estimo que un programa de computación cuesta al menos
tres veces más que un programa depurado con la misma función.” -
Publica “Leyes de la no fiabilidad”, es uno de los primeros informáticos en concepturalizar la fiabilidad del sistema y del software, y la relación entre error humano y error de sistemas.
-
Se considera un texto de referencia por la cantidad de métricas que se representa.
-
Publicó “Inspecciones de diseño y código para reducir errores en el desarrollo de programas”, donde propone un proceso sistemático de inspección tanto de diseño como de código para reducir costos del trabajo. IBM logró importantes mejoras de la calidad llegando a duplicar el número de líneas de código producidas a la vez que el número de defectos por cada mil líneas de código se redujo en dos tercios.
-
Publicó el articulo “Una medida de la complejidad”, donde introduce la complejidad ciclomática como métrica de software para el control cuantitativo de la complejidad de un programa. Se basa en la teoría de grafos y toma en cuenta la estructura del programa independientemente de su tamaño o lenguaje de programación. Prueba de "caja blanca".
-
Publicó el libro “Fiabilidad del software: Principios y prácticas”, donde proclama:
“El objetivo de los probadores es hacer que el programa falle.” -
Publicó el artículo “Estudios teóricos y empíricos sobre la comprobación de programas” donde acuña el término oráculo para referirse al mecanismo para determinar si una prueba ha pasado o fallado.
-
Establece la terminología base de las pruebas de software en uno de los primeros libros que tratan exclusivamente sobre pruebas de software, donde se introduce el concepto de pruebas "caja negra".
-
-
Publicó el libro “Economía de la ingeniería de software” donde introduce la noción de que el costo de arreglar un defecto en el software llamado retrabajo. Trabaja con dos ejes; Horizontal "Etapas del ciclo de vida de la creación de Software"; Vertical "Costo relativo de corregir un defecto detectado en una fase determinada comparando con arreglar el mismo defecto en una frase posterior".
-
Ambos organizan la conferencia y exposición internacional sobre Pruebas de Software, que fue la primera conferencia enfocada eclusivamente en pruebas de software de la que se tiene registros.
-
Publicó el libro “Manifiesto de los sistemas de información” donde indica que la distribución de la inserción de defectos en un proyecto de software es el siguiente: 56% de los defectos se introducen durante la fase de requisitos, 27% durante el diseño, y 7% durante la codificación.
-
Artículo “Control de proyectos de software”, donde introduce un enfoque para las pruebas. El modelo V se asocia a cada fase del ciclo de vida una correspondiente fase de pruebas: requisitos con pruebas de aceptación, diseño de sistema con pruebas de sistemas, diseño con pruebas de integración y diseño de componentes.
Fig. Costo relativo de correcciones durante el ciclo de vida en la creación de software. -
En conjunto con Deborah L. Caswell, publicaron el libro “Métricas de software: Establecimiento de un programa para toda la empresa” donde se explican qué son las métricas y cuándo son útiles. Este libro presenta un estudio detallado de un programa de métricas.
-
Donde describen cuatro modelos para pruebas de software:
1. Demostración: Demuestra que el software satisface especificaciones.
2. Destrucción: Detectar fallos de implementación.
3. Evaluación: Detectar defectos en requisitos, diseño, e implementación.
4. Evitar defectos en requisitos, diseño e implementación. -
Publicó el libro “Pruebas de software informático”, en conjunto con Jack Falk y Hung Q. Nguyen, que se convirtió en un clásico para su enfoque pragmático. En este libro se utiliza por primera vez el término prueba exploratoria.
-
Es considerado el padre de la calidad de software por sus contribuciones a la mejora del proceso de software (SPI). Publicó el libro “Gestión del proceso de software” donde propone el modelo de madurez de las capacidades para mejorar la calidad y productividad del proceso de desarrollo de software.
-
En su libro “Técnicas de pruebas de software”, propone una clasificación de defectos de software. Adicionalmente, acuña el término "paradoja del pesticida" para describir el fenómeno de que cuanto más se prueba el software, más inmine se vuelve éste a las pruebas a las que se le somete.
-
-
Publica el primer “Reporte sobre pruebas de software asistidas por computador (CAST)”.
-
Innauguran la conferencia “Software Testing, Analysis, and Review”, al siguiente año se inaugura en Europa la conferencia paralela denominada EuroSTAR.
-
Se presenta una taxonomía de defectos de software elaboradas para la empresa Hewlett-Packard con el objetivo de identificar tendencias de defectos en productos ya terminados y utilizar la información para la prevención de defectos en proyectos futuros.
-
Publican “Inspecciones de software”, donde se detalla este proceso de revisión formal de software.
-
Publicó el libro “El arte de las pruebas de software: Pruebas de subsistemas, incluidas las pruebas basadas en objetos y las orientadas a objetos” donde probar el software es un oficio, como la carpintería, que se aprende mejor en persona, observando cómo lo hacen los más experimentados e intentando hacerlo bajo supervición. Se enfoca en subsistemas medianos, controladores de dispositivos, bibliotecas de clases, etc.
-
Publica el libro “Pruebas de software: Un enfoque artesanal”.
-
Donde se explica como aplicar el ciclo de PDCA a esfuerzos de mejorar en el ámbito de software.
-
En la Confederancia y Exposición Internacional sobre Pruebas de Software Informático introducen la noción de escuelas de pensamiento de las pruebas de software.
-
En su artículo “Acorralando a la quimera”, 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”
-
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 de este modelo 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.
-
Considerado una obra clásica en el ámbito de la automatización de pruebas
-
Publica el libro “La catedral y el bazar”, donde describe el método de desarrollo de software que utilizó Linus Torvalds para crear el sistema operativo Linux. En sus 19 pautas para crear un buen software afirma:
“Si hay suficientes ojos, todos los errores son superficiales.” -
Publica el artículo “Gestión de pruebas basada en la sesión”. 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.
-
-
1999 Nace oficialmente la Escuela de Pruebas Dirigidas por el contexto. En 2001 publican el libro “Lecciones aprendidas en pruebas de software: Un enfoque orientado al contexto”, Kaner ha aportado además con leyes en Estados Unidos para el licenciamiento de software, regulación de calidad de software, y comercio electrónico.
-
Bach crea la metodología Pruebas Rápidas de Software (RST) - bajo el acrónimo en inglés, Rapid Software Testing - alineada a la Escuela de Pruebas Dirigidas por el Contexto.
-
Publica el libro “Desarrollo dirigido por pruebas: Mediante el ejemplo” donde "re-descubre" la técnica de desarrollo de software que consiste las pruebas antes de escribir el código "a Desarrollo Guiado por las Pruebas (TDD)".
-
En 2001 participa como uno de los autores del Manifesto Ágil. En 2003 publica una serie de artículos sobre pruebas águles, 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.
-
Participa en un taller de capacitación en pruebas de software donde expone la conferencia "Cuatro escuelas de pruebas de software", propone las denominadas: analítica, dirigída por normas, orientada hacia la calidad y dirigida por el contexto. Posterior se incorpora a la escuela ágil.
-
Se suma como co-autor de la metodología RST creada por James Bach.
-
Publica el libro “PSP, un proceso de auto-superación para ingenieros de software”, describe un proceso personal de software donde reduce prácticas de software industrial para adaptarlas a las necesidades del desarrollo de programas de tamaño modular.
-
En conjunto con otros expertos, crea la Fundación TMMI con el objetivo de desarrollar el Modelo de Madurez de Pruebas Integrado TMMI, bajo el acrónimo en inglés, Test Maturity Model Integration. El modelo TMMI sirve para evaluar y mejorar el proceso de pruebas de las organizaciones y se basa en su predecesor
-
Se explica cómo liderar a equipos de ingenieros de software formados en PSP utilizando un proceso de software en equipo (TSP) Team Software Process.
-
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.
-
En conjunto con Roy Solomon, publican "Guía escencial de 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.
-
En su artículo "Probando vs. Comprobando" distingue entre estos dos conceptos.
Comprobar es confirmar, verificar, y validar utilizando herramientas automáticas.
Probar es el proceso de exploración, descubrimiento, investigación, y aprendizaje realizado por los probadores. -
Publica el libro “Triunfando con la agilidad” donde propone la "pirámide de automatización de pruebas". Con este modelo argumenta que una estrategia de automatización de pruebas eficaz requierela automatización de pruenas de 3 niveles: unidad, servicioe interfaz de usuario.
-
En conjunto con Janeth Gregory publica el libro “Pruebas ágiles: Una guía práctica para probadores y equipos ágiles”, que incluye un capítulo sobre pruebas exploratorias con ayuda de Michael Bolton. Es considerado el pionero en la disciplina de las pruebas ágiles.
-
Sostiene que las pruebas son necesarias porque las personas no somos
perfectas, pero el hecho de probar más, no garantiza una mayor calidad. -
Contribuye con el capítulo “La automatización es mucho más que pruebas de regresión: Pensando fuera de la caja” que forma parte del libro “Experiencias de automatización de pruebas: Casos prácticos de automatización de pruebas de software” escrito por Dorothy Graham y Mark Fewster.
Propone la automatización para llevar a cabo tareas tales como configurar pruebas, generar datos y avance a lo largo de un flujo de trabajo. Además, propone utilizar pruebas exploratorias manuales. -
Publican “Más pruebas ágiles: Viajes de aprendizaje para todo el equipo”. Este libro 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
-
Lima, Perú. Dorothy Graham y Sandra Sánchez Gordón en el 7mo. Congreso Mundial de Calidad de Software.
-
Premio Turing 2020:
Por sus contribuciones fundamentales al diseño y análisis de algoritmos, así como a los fundamentos de los lenguajes de programación y su compilación, sintetizados en libros influyentes que han educado a generaciones de científicos informáticos. -
Premio Turing 2021:
Por sus contribuciones pioneras a los algoritmos numéricos y bibliotecas que permitieron que el software computacional de alto rendimiento mantuviera el ritmo de las mejoras exponenciales del hardware durante más de cuatro décadas. -
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.
-
Premio Turing 2022:
Por desarrollar los fundamentos conceptuales y algorítmicos del aprendizaje por refuerzo, una técnica clave en inteligencia artificial que permite a los sistemas aprender a tomar decisiones óptimas mediante prueba y error. -
Premio Turing 2022:
Por la invención, estandarización y comercialización de Ethernet, una tecnología fundamental para las redes de área local y la conectividad global. -
Premio Turing 2023:
Por sus contribuciones fundamentales a la teoría de la computación, incluyendo la remodelación de nuestra comprensión del papel de la aleatoriedad en la computación, y por sus décadas de liderazgo intelectual en la informática teórica.