Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Taller TestingUy 2019 - Machine learning para refinar el testing de software

87 views

Published on

Expositor: Juliana Herbert

Duración: 2 horas

Resumen: Como efecto colateral de la realización del testing de software, tenemos la generación de una gran cantidad de datos. Estos datos están relacionados a información sobre el código del software, sobre el perfil de los desarrolladores, sobre la complejidad del sistema y del dominio, además de la identificación de tendencias de tipos de defectos.

Con el uso de machine learning, es posible hacer que la computadora defina correlaciones entre los datos, de forma de generar un algoritmo. En el contexto del testing, ese algoritmo puede seleccionar casos de prueba con más alta probabilidad de identificar defectos.

Durante el taller veremos conceptos básicos de machine learning y ejemplos prácticos de cómo esos conceptos pueden ser utilizados para analizar y clasificar casos de prueba, de acuerdo a objetivos específicos predefinidos. Con la clasificación, es posible no sólo seleccionar los casos de prueba que tienen más alta probabilidad de identificar defectos, sino también los que estén relacionados a riesgos con grado más alto de exposición. Veremos ejemplos de aplicaciones del área de la salud para ver en un contexto real los conceptos presentados durante el taller.

Published in: Technology
  • DOWNLOAD FULL BOOKS, INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Taller TestingUy 2019 - Machine learning para refinar el testing de software

  1. 1. @herbert_juliana | #testinguy TALLER Juliana Herbert julianash@ufcspa.edu.br @herbert_juliana 13 y 14 de mayo, 2019 testinguy.org @testinguy | #testinguy MACHINE LEARNING PARA REFINAR EL TESTING DE SOFTWARE
  2. 2. @herbert_juliana | #testinguy PresentaciónPresentaciónPresentaciónPresentación • Soy profesora en la Universidade Federal de Ciências da Saúde de Porto Alegre (UFCSPA) - https://www.ufcspa.edu.br/ - en el área de Informática Biomédica. • También soy investigadora asociada de PEDECIBA-Informática, en UdelaR. • Trabajo con testing de software desde 1991. • Mis tesis de maestría y de doctorado fueron sobre testing de software. • Uso el machine learning como herramienta para mejorar mi proceso de testing.
  3. 3. @herbert_juliana | #testinguy AgendaAgendaAgendaAgenda I. Introducción II. Datos Generados por el Testing III. Inteligencia Artificial IV. Machine Learning (ML) V. ML en el Testing VI. Consideraciones Finales
  4. 4. @herbert_juliana | #testinguy IntroducciónIntroducciónIntroducciónIntroducción “Testing es el proceso de ejecutar el programa con la intención de encontrar errores.” Glendford Myers, 1979 “Una investigación técnica hecha para identificar información relacionada a la calidad del producto en testing.” Cem Kaner, 2004
  5. 5. @herbert_juliana | #testinguy IntroducciónIntroducciónIntroducciónIntroducción https://dle.rae.es/?w=restricci%C3%B3n
  6. 6. @herbert_juliana | #testinguy IntroducciónIntroducciónIntroducciónIntroducción Restricciones de tiempo y de presupuesto. Necesidad de obtener mucha información. Casos de testing que identifiquen errores. Aprendizaje sobre el software. ¿Lo que tenemos en el testing?
  7. 7. @herbert_juliana | #testinguy Datos GeneradosDatos GeneradosDatos GeneradosDatos Generados por el Testingpor el Testingpor el Testingpor el Testing DATOS SOBRE… El código del software. El perfil de las personas. La complejidad del sistema. La complejidad del dominio. Tendencias de tipos de defectos.
  8. 8. @herbert_juliana | #testinguy DesafíosDesafíosDesafíosDesafíos • Utilizar de la mejor forma posible los datos generados por el testing. • Generar casos de testing que tengan más probabilidad de encontrar defectos. • ¡Hacer todo considerando las restricciones comunes de tiempo, presupuesto y de recursos que tenemos en el testing!
  9. 9. @herbert_juliana | #testinguy AgendaAgendaAgendaAgenda I. Introducción II. Datos Generados por el Testing III. Inteligencia Artificial IV. Machine Learning (ML) V. ML en el Testing VI. Consideraciones Finales
  10. 10. @herbert_juliana | #testinguy Inteligencia ArtificialInteligencia ArtificialInteligencia ArtificialInteligencia Artificial • Capacidad de las máquinas de “resolver los tipos de problemas que hoy son reservados para los seres humanos” – John McCarthy, 1956.
  11. 11. @herbert_juliana | #testinguy Inteligencia ArtificialInteligencia ArtificialInteligencia ArtificialInteligencia Artificial Modelos de Datos Poder de Procesamiento Big Data IA
  12. 12. @herbert_juliana | #testinguy Inteligencia ArtificialInteligencia ArtificialInteligencia ArtificialInteligencia Artificial ---- Algunos Ejemplos ConocidosAlgunos Ejemplos ConocidosAlgunos Ejemplos ConocidosAlgunos Ejemplos Conocidos Siri. Amazon Alexa. Reconocimiento de imágenes de Facebook. Búsquedas en Google. Identificación de rutas por Waze.
  13. 13. @herbert_juliana | #testinguy MachineMachineMachineMachine LearningLearningLearningLearning Datos de Entrada Computadora (Reglas) Salidas PROGRAMACIÓN TRADICIONAL
  14. 14. @herbert_juliana | #testinguy MachineMachineMachineMachine LearningLearningLearningLearning Datos de Entrada Computadora (Reglas) Salidas MACHINE LEARNING
  15. 15. @herbert_juliana | #testinguy MachineMachineMachineMachine LearningLearningLearningLearning –––– Fase deFase deFase deFase de LearningLearningLearningLearning Datos de Entrenamiento Vector de Features Algoritmo Modelo
  16. 16. @herbert_juliana | #testinguy MachineMachineMachineMachine LearningLearningLearningLearning –––– Fase de InferenciaFase de InferenciaFase de InferenciaFase de Inferencia Datos de Prueba Vector de Features Modelo Predicción
  17. 17. @herbert_juliana | #testinguy Proceso GeneralProceso GeneralProceso GeneralProceso General 1 - Definir una pregunta. 2 - Colectar datos. 3 - Visualizar datos. 6 - Entrenar el algoritmo. 5 - Probar el algoritmo. 4 - Colectar feedback. 7 - Refinar el algoritmo. 8 - Repetir las etapas 4 a 7 hasta que sea necesario. 9 - Usar el modelo para hacer predicciones.
  18. 18. @herbert_juliana | #testinguy Tipos de MachineTipos de MachineTipos de MachineTipos de Machine LearningLearningLearningLearning Fuente: https://www.guru99.com/machine-learning-tutorial.html
  19. 19. @herbert_juliana | #testinguy Aprendizaje con SupervisiónAprendizaje con SupervisiónAprendizaje con SupervisiónAprendizaje con Supervisión • El algoritmo usa datos de entrenamiento y de feedback de personas para aprender la relación entre datos de entrada y datos de salida. Regresión – cuando las características son continuas. Clasificación – cuando las características son discretas.
  20. 20. @herbert_juliana | #testinguy Aprendizaje con SupervisiónAprendizaje con SupervisiónAprendizaje con SupervisiónAprendizaje con Supervisión ---- ClasificaciónClasificaciónClasificaciónClasificación • Genero del Cliente • Altura • Peso • Sueldo • Productos Comprados • Hora de la Compra Identificación de la probabilidad de genero del cliente, con base en esos datos.
  21. 21. @herbert_juliana | #testinguy Aprendizaje con SupervisiónAprendizaje con SupervisiónAprendizaje con SupervisiónAprendizaje con Supervisión ---- ClasificaciónClasificaciónClasificaciónClasificación • Caso de Testing • Defectos Identificados • Complejidad en Ejecución • Tipo de Sistema • Calidad del Proceso de Desarrollo • Uso de Herramienta de Testing Caso de Testing priorizado con relación a la probabilidad de identificación de defectos.
  22. 22. @herbert_juliana | #testinguy Aprendizaje con SupervisiónAprendizaje con SupervisiónAprendizaje con SupervisiónAprendizaje con Supervisión • Ejemplo de técnica: árboles de decisión:
  23. 23. @herbert_juliana | #testinguy Aprendizaje con SupervisiónAprendizaje con SupervisiónAprendizaje con SupervisiónAprendizaje con Supervisión ---- RegresiónRegresiónRegresiónRegresión • Regresión lineal:
  24. 24. @herbert_juliana | #testinguy Aprendizaje sin SupervisiónAprendizaje sin SupervisiónAprendizaje sin SupervisiónAprendizaje sin Supervisión • Usada cuando es necesario identificar padrones para la clasificación de los datos. • No hay relaciones anteriores explícitas entre las variables. • Identificación de clusters.
  25. 25. @herbert_juliana | #testinguy Aprendizaje sin SupervisiónAprendizaje sin SupervisiónAprendizaje sin SupervisiónAprendizaje sin Supervisión • Similitud • Medida numérica de semejanza entre objetos. • Valor alto para objetos parecidos. • A menudo definida en el intervalo [0,1]. • Disimilitud • Medida numérica de diferencia entre objetos. • Valor bajo para objetos parecidos. • Varia entre [0, ∞). • Usualmente es una distancia. • Proximidad • Se refiere a similitud o disimilitud.
  26. 26. @herbert_juliana | #testinguy Aprendizaje sin SupervisiónAprendizaje sin SupervisiónAprendizaje sin SupervisiónAprendizaje sin Supervisión ---- RegresiónRegresiónRegresiónRegresión • Regresión lineal:
  27. 27. @herbert_juliana | #testinguy Sin embargo, hay que tenerSin embargo, hay que tenerSin embargo, hay que tenerSin embargo, hay que tener algunos cuidados muyalgunos cuidados muyalgunos cuidados muyalgunos cuidados muy importantes...importantes...importantes...importantes...
  28. 28. @herbert_juliana | #testinguy Cuidados antes de aplicarCuidados antes de aplicarCuidados antes de aplicarCuidados antes de aplicar MachineMachineMachineMachine LearningLearningLearningLearning • Preparación de los datos: • Caracterización. • Análisis. • Preprocesamiento: • Equilibrio. • Limpieza. • Transformaciones. • Confiabilidad de los datos. • Eliminación de cualquier parcialidad (bias).
  29. 29. @herbert_juliana | #testinguy AgendaAgendaAgendaAgenda I. Introducción II. Datos Generados por el Testing III. Inteligencia Artificial IV. Machine Learning (ML) V. ML en el Testing VI. Consideraciones Finales
  30. 30. @herbert_juliana | #testinguy Machine Learning em el TestingMachine Learning em el TestingMachine Learning em el TestingMachine Learning em el Testing
  31. 31. @herbert_juliana | #testinguy Caso 1Caso 1Caso 1Caso 1 –––– MLMLMLML enenenen elelelel TestingTestingTestingTesting • Testing de caja negra. • Priorización de casos de testing de regresión para probar sistemas. • Escenario: • requisitos y casos de testing especificados en lenguaje natural; • sin acceso al código fuente; • sin automación del testing.
  32. 32. @herbert_juliana | #testinguy Caso 1Caso 1Caso 1Caso 1 –––– MLMLMLML enenenen elelelel TestingTestingTestingTesting • Base: uso de meta-datos y de descripciones de casos de testing en lenguaje natural. • Aprendizaje con supervisión. • Algoritmo: ranked vector machine (SVM rank) – ranking de acuerdo con la prioridad de los casos de testing. Clasificación Binaria Clasificación Ranked
  33. 33. @herbert_juliana | #testinguy Caso 1Caso 1Caso 1Caso 1 –––– MLMLMLML enenenen elelelel TestingTestingTestingTesting • Aprendizaje con supervisión. • Algoritmo: ranked vector machine (SVM rank) – ranking de acuerdo con la prioridad de los casos de testing.
  34. 34. @herbert_juliana | #testinguy Caso 1Caso 1Caso 1Caso 1 –––– MLMLMLML enenenen elelelel TestingTestingTestingTesting • Learning & Clasification: • Transformación de los datos en vectores de características (features vector). • Datos discretos → diretos. • Lenguaje natural – preprocesamiento con el uso de un diccionario.
  35. 35. @herbert_juliana | #testinguy Caso 1Caso 1Caso 1Caso 1 –––– MLMLMLML enenenen elelelel TestingTestingTestingTesting • Vectores de características (features vector): • Palabras del diccionario, describiendo el caso de testing. • Requisitos relacionados al caso de testing (0 o 1); • Fallos: • Número de fallos relacionados al caso; • Severidad de los fallos (soma); • Age of failures (fallos ya identificados anteriormente).
  36. 36. @herbert_juliana | #testinguy Caso 1Caso 1Caso 1Caso 1 –––– MLMLMLML enenenen elelelel TestingTestingTestingTesting • Consideración de precondiciones:
  37. 37. @herbert_juliana | #testinguy Caso 1Caso 1Caso 1Caso 1 –––– MLMLMLML enenenen elelelel TestingTestingTestingTesting • Preguntas de investigación: • Cuán efectivo el la estrategia de priorización de testing? • El procesamiento de lenguaje natural aumenta la efectividad del testing? • Cual es la efectividad de la estrategia de priorización propuesta en comparación a un expert en testing priorizando los casos de testing? • Cuán eficiente es la estrategia de priorización de casos de testing?
  38. 38. @herbert_juliana | #testinguy Caso 1Caso 1Caso 1Caso 1 –––– MLMLMLML enenenen elelelel TestingTestingTestingTesting
  39. 39. @herbert_juliana | #testinguy Caso 1Caso 1Caso 1Caso 1 –––– MLMLMLML enenenen elelelel TestingTestingTestingTesting
  40. 40. @herbert_juliana | #testinguy Machine Learning em el TestingMachine Learning em el TestingMachine Learning em el TestingMachine Learning em el Testing
  41. 41. @herbert_juliana | #testinguy Caso 2Caso 2Caso 2Caso 2 –––– MLMLMLML enenenen TestingTestingTestingTesting • Preguntas de investigación: • Cual es impacto del uso de las features de cada caso de testing en la calidad de los diferentes algoritmos? • Hay algún algoritmo de ML específico, más adecuado para la priorización de caso de testing black box? • Es posible entrenar el sistema sin la ayuda de un experto y conseguir resultados adecuados?
  42. 42. @herbert_juliana | #testinguy Caso 2Caso 2Caso 2Caso 2 –––– MLMLMLML enenenen TestingTestingTestingTesting • Algoritmos utilizados: • Ranked Support Vector Machines (SVM Rank); • K-Nearest Neighbor (KNN); • Regresión lineal; • Redes neurales.
  43. 43. @herbert_juliana | #testinguy Uso de Árboles de DecisiónUso de Árboles de DecisiónUso de Árboles de DecisiónUso de Árboles de Decisión Caso 3 – ML en el Testing
  44. 44. @herbert_juliana | #testinguy Caso 3Caso 3Caso 3Caso 3 ---- ÁrbolesÁrbolesÁrbolesÁrboles dededede DecisiónDecisiónDecisiónDecisión
  45. 45. @herbert_juliana | #testinguy Testing de Interfaz GráficaTesting de Interfaz GráficaTesting de Interfaz GráficaTesting de Interfaz Gráfica Caso 4 – ML en el Testing
  46. 46. @herbert_juliana | #testinguy Caso 4Caso 4Caso 4Caso 4 –––– Testing de Interfaz GráficaTesting de Interfaz GráficaTesting de Interfaz GráficaTesting de Interfaz Gráfica • Con ML: no es necesario identificar de antemano todos los problemas posibles. • Redes neurales convolucionales para la identificación de patrones en las pantallas.
  47. 47. @herbert_juliana | #testinguy Caso 4Caso 4Caso 4Caso 4 –––– Testing de Interfaz GráficaTesting de Interfaz GráficaTesting de Interfaz GráficaTesting de Interfaz Gráfica • Uso de lenguaje natural para la especificación de los casos de testing. Fuente: https://rangle.io/blog/better-software-testing-with-machine-learning-2/
  48. 48. @herbert_juliana | #testinguy Automación del TestingAutomación del TestingAutomación del TestingAutomación del Testing Caso 5 – ML en el Testing
  49. 49. @herbert_juliana | #testinguy Herramientas que ya usan MLHerramientas que ya usan MLHerramientas que ya usan MLHerramientas que ya usan ML • Selenium • Applitools • SauceLabs • Testim • Sealights • Test.AI • Mabl • ReTest • ReportPortal https://endtest.io/ Otras ideas: https://blog.goodaudience.com/machine-learning-for-automation-testing- 698230917082 https://www.softwaretestpro.com/how-machine-learning-is-being-used-in- new-age-qa-automation-tools/ https://www.testcraft.io/machine-learning-used-test-automation/
  50. 50. @herbert_juliana | #testinguy Referencias de Material UtilizadoReferencias de Material UtilizadoReferencias de Material UtilizadoReferencias de Material Utilizado GÉRON, A. Hands-on Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems – 2 ed. O´Reilly Media. 2019. 600p. Kaner, C. et al. Testing Computer Software – 2 ed. John Wiley & Sons. 1999. 496 p. Kaner, C. et al. The Domain Testing Workbook. Context Driven Press. 2013. 488 p. Myers, G. J. et al. The Art of Software Testing – 3 ed. Wiley. 2011. 240 p. TOPOL, E. Deep Medicine: How Artificial Intelligence Can Make Healthcare Human Again. Basic Books. 2019. 400 p.
  51. 51. @herbert_juliana | #testinguy Juliana Herbert julianash@ufcspa.edu.br @herbert_juliana 13 y 14 de mayo, 2019 testinguy.org | @testinguy | #testinguy ¿PREGUNTAS? ¡MUCHAS GRACIAS!

×