scieee AI-readable full text Open interactive document viewer

Generación de datos de prueba en el contexto de la Automatización Robótica de Procesos

Martínez Rojas, Antonio; López Carnicer, José Manuel; González Enríquez, José; Jiménez Ramírez, Andrés

Abstract

Un problema común en muchos ámbitos (e.g., automatización robótica de procesos, minería de procesos, o inteligencia artificial) es la obtención de registros de eventos que incluyan capturas de pantalla de la interfaz de usuario (i.e., UI Log). En este artículo se presenta AGOSUIRPA, una plataforma de código abierto para la generación automática de UI Logs y capturas de pantalla tomando como referencia la ejecución de un proceso base. Además, esta herramienta también ofrece la posibilidad de configurar ciertos parámetros permitiendo múltiples opciones de variabilidad en el conjunto de datos generado. AGOSUIRPA supone un gran avance para la comunidad científica e industrial ya que permite reducir los esfuerzos a la hora de realizar experimentación, casos de estudio, o pruebas, sobre soluciones RPA.

Full text

Generaci´on de datos de prueba en el contexto de la Automatizaci´on Rob´otica de Procesos ⋆ A. Mart´ınez-Rojas, J.M. L´opez-Carnicer, J.G. Enr´ıquez, and A. Jim´enez-Ram´ırez Departamento de Lenguajes y Sistemas Inform´aticos. Escuela T´ecnica Superior de Ingenier´ıa Inform´atica. Avenida Reina Mercedes, s/n. 41012, Sevilla. {amrojas,jlopez16,jgenriquez,ajramirez}@us.es Abstract. Un problema com´un en muchos ´ambitos (e.g., automatizaci´on rob´otica de procesos, miner´ıa de procesos, o inteligencia artificial) es la obtenci´on de registros de eventos que incluyan capturas de pantalla de la interfaz de usuario (i.e., UI Log). En este art´ıculo se presenta AGOSUIRPA, una plataforma de c´odigo abierto para la generaci´on autom´atica de UI Logs y capturas de pantalla tomando como referencia la ejecuci´on de un proceso base. Adem´as, esta herramienta tambi´en ofrece la posibilidad de configurar ciertos par´ametros permitiendo m´ultiples opciones de variabilidad en el conjunto de datos generado. AGOSUIRPA supone un gran avance para la comunidad cient´ıfica e industrial ya que permite reducir los esfuerzos a la hora de realizar experimentaci´on, casos de estudio, o pruebas, sobre soluciones RPA. Keywords: Robotic Process Automation ·Event Log Generation ·Task Mining ·User Interface Derivation 1 Introducci´on En la actualidad existe un inter´es creciente por la automatizaci´on rob´otica de procesos (RPA, de sus siglas en ingl´es) as´ı como por la miner´ıa de procesos [2, 5, 4]. Aunque existe alguna propuesta que plantea automatizar la ejecuci´on de las pruebas en este contexto [3], sigue siendo necesaria la obtenci´on de datos relativos a la ejecuci´on del proceso para poder estudiar el cumplimiento de los requisitos establecidos o realizar pruebas. Estos datos son dif´ıciles de conseguir, ya que la compartici´on de datos de procesos de negocio con terceros podr´ıa suponer una vulneraci´on de la privacidad de los datos de los usuarios finales (e.g., datos bancarios, direcciones o documentos de identificaci´on). Ante esta situaci´on, han aparecido distintas aproximaciones como [1] para la generaci´on de datasets, o [6] para producir capturas de pantalla para la generaci´on de webs, pero ninguna se aplica al ´ambito de procesos para la obtenci´on de UI Logs, es decir, de una serie ⋆Esta investigaci´on ha sido apoyada por el proyecto NICO (PID2019-105455GB-C31) del Ministerio de Ciencia, Innovaci´on y Universidades de Espa˜na y el Programa de becas FPU, concedido por el Ministerio de Educaci´on y Formaci´on Profesional de Espa˜na (FPU20/05984). 2 A. Mart´ınez-Rojas et al. de eventos identificados en el tiempo (por ejemplo, clics de rat´on y pulsaciones de teclado), obtenidos mediante la monitorizaci´on y grabaci´on de las interfaces de usuario. En este art´ıculo se presenta AGOSUIRPA1, una plataforma para la generaci´on autom´atica de UI Logs y capturas de pantalla, en base a una semilla (i.e., un UI log de tama˜no m´ınimo que luego ser´a extrapolado) y una configuraci´on dispuesta por el usuario. Estos datos de prueba pueden ser utilizados por la comunidad cient´ıfica para la ejecuci´on de experimentos, o bien, para generar un conjunto de pruebas para realizar el testing de robots RPA. 2 AGOSUIRPA 2.1 Plataforma Para la generaci´on de UI Logs sint´eticos, el usuario debe especificar como entrada (1) un log semilla, que incluir´a una serie de eventos por cada variante existente en el proceso, (2) el tama˜no del log a generar y (3) un archivo de configuraci´on que indique por cada variante y actividad: (i) las funciones de variabilidad (i.e. funciones generan variaciones sobre las capturas o datos del UI Log seg´un sean par´ametros de entrada) a emplear, (ii) los par´ametros de entrada de dichas funciones y, (iii) en caso de necesitar modificar un componente de interfaz gr´afica de usuario (GUI), los componentes GUI a emplear en las variaciones. Con el fin de facilitar la configuraci´on, tanto los par´ametros como los componentes GUI han sido catalogados. La configuraci´on se realiza a trav´es de un archivo en formato JSON. Este archivo, se puede generar desde cero siguiendo la plantilla disponible en el repositorio, o a trav´es de un asistente para generarlo de forma interactiva. La generaci´on de UI Logs consta de dos niveles de abstracci´on. El m´as b´asico es a nivel de caso (i.e., la ejecuci´on completa de una variante, por tanto comprende las acciones realizadas por el usuario durante la ejecuci´on de una instancia del proceso.), que consiste en realizar variaciones sint´eticas asociadas a la acci´on de un humano sobre el sistema (e.g., cambiar el contenido de un input de texto o la imagen adjunta de un correo). El m´as abstracto es a nivel de escenario (i.e., el propio ecosistema que va a tener un usuario durante todos los casos que tenga el UI Log, es decir, el look and feel de las aplicaciones que use), que se trata de una fase anterior a la generaci´on a nivel de caso, en la que, a partir de la semilla, se generan tantas semillas como escenarios adicionales se especifiquen. AGOSUIRPA permite especificar variaciones de botones, de estilo del texto, de los campos de los formularios, etc. La plataforma ofrece estos dos niveles de abstracci´on a trav´es de una entidad denominada experimento, donde se almacenar´a la siguiente informaci´on: – Nombre: texto con el nombre del experimento. – Descripci´on: texto con la descripci´on del experimento. – UI Log semilla: archivo CSV base para la configuraci´on de UI Logs sint´eticos. – Capturas de pantalla: en caso de generar variabilidad en capturas, archivo comprimido con las capturas del UI Log semilla. 1Codigo: https://github.com/RPA-US/agosuirpa Generaci´on de datos de prueba 3 Fig. 1. Arquitectura del sistema – N´umero de escenarios adicionales: n´umero de escenarios a generar en caso de querer crear escenarios adicionales al base. – Variabilidad a nivel de escenario: archivo JSON de configuraci´on con la variabilidad a nivel de escenario. – Tama˜no del UI Log: n´umero de eventos contenidos en el UI Log a generar. – Porcentajes para UI Logs imbalanceados: por cada tama˜no se genera un log balanceado (con el mismo n´umero de instancias por variante) y otro imbalanceado con el porcentaje de instancias de cada variante indicado. – Variabilidad a nivel de caso: archivo JSON de configuraci´on con la variabilidad a nivel de caso. Una vez configurado y ejecutado el experimento, se obtendr´an tantos UI Logs sint´eticos como tama˜nos y n´umero de escenarios se hayan indicado. Cada variaci´on configurada por el usuario se almacena en base de datos para mantener la trazabilidad de los cambios y para su posterior consulta. Cuando finaliza el proceso de generaci´on, quedar´a disponible para su descarga un archivo comprimido con todos datos de prueba generados, i.e., los UI Log generados en formato CSV junto con las capturas de pantalla asociadas a cada evento. 2.2 Arquitectura tecnol´ogica Para el desarrollo de la plataforma, se ha usado una arquitectura desacoplada que usa React para asistir en el desarrollo del frontend, Django para el backend, donde se implementan todas las variaciones para la generar logs y capturas, y PostgreSQL que se utiliza como base de datos (cf. Fig. 1). Dentro de ´esta, cabe destacar dos puntos: (1) frontend y backend se comunican con conexiones HTTP a trav´es de una API REST soportada por Django REST framework. Y (2) considerando que Django permite la modularizaci´on de las funcionalidades del sistema, si nos fijamos espec´ıficamente en el de experimentos podemos ver que hace un reconocimiento de todos scripts de python que est´an presentes en la carpeta de plugins, y carga las funciones presentes en ellos para ser utilizadas en el sistema como funciones de variabilidad. Por tanto para a˜nadir una nueva, basta con almacenarla en la carpeta plugins. 4 A. Mart´ınez-Rojas et al. 2.3 Demostraci´on En este caso, exhibiremos una demostraci´on de generaci´on de UI logs y capturas en base a un proceso definido. Dicho proceso simula la operaci´on de un operador que comprueba el correo, accede a uno de ellos, y extrae la informaci´on adjunta para ser almacenada en un CRM.2Se configuran variaciones a nivel de caso sobre: (1) los datos del UI log, en concreto la definici´on los clics del rat´on cuando se accede al correo y el timestamp autom´atico. (2) Y las captura de pantalla, donde primero se modifica el adjunto al correo, que se variar´a entre un conjunto de DNIs seleccionados, y luego se agrega una dependencia entre capturas de diferente actividad, para que se use el mismo DNI aleatorio a lo largo de un caso espec´ıfico, para mantener la coherencia entre actividades del mismo caso. 3 Conclusiones En este art´ıculo se presenta AGOSUIRPA, una plataforma de c´odigo abierto que ofrece a la comunidad una forma de generar de forma sint´etica UI Logs con sus capturas de pantalla asociadas. Estos datos se pueden utilizar para diversos fines en el contexto de RPA, e.g., generaci´on de experimentos de forma sistem´atica o testeo de robots con el fin de comprobar su correcto funcionamiento antes de ponerlos en producci´on. Aunque AGOSUIRPA ya es una herramienta funcional, su roadmap conlleva los siguientes trabajos futuros: (1) aumento del n´umero de funciones de variabilidad, para permitir m´as opciones sobre los datos generados, con datos m´as realistas y orientados a dominios espec´ıficos, (2) mejorar la experiencia de usuario mediante la integraci´on de funciones que faciliten la configuraci´on del UI Log semilla, (3) ampliar las funcionalidades proporcionadas por la herramienta, para aportar metadatos de las im´agenes generadas autom´aticamente, con el objetivo de obtener conjuntos de datos etiquetados para modelos de extracci´on de caracter´ısticas en imagen. References 1. Albuquerque, G., Lowe, T., Magnor, M.: Synthetic generation of high-dimensional datasets. IEEE transactions on visualization and computer graphics 17(12), 2317– 2324 (2011) 2. Enr´ıquez, J.G., Jimenez-Ramirez, A., Dominguez-Mayo, F., Garcia-Garcia, J.: Robotic process automation: a scientific and industrial systematic mapping study. IEEE Access 8, 39113–39129 (2020) 3. Jim´enez-Ram´ırez, A., Chac´on-Montero, J., Wojdynsky, T., Gonzalez Enriquez, J.: Automated testing in robotic process automation projects. Journal of Software: Evolution and Process p. e2259 (2020) 4. Leno, V., Dumas, M., Maggi, F.M., La Rosa, M.: Multi-perspective process model discovery for robotic process automation. In: CAiSE (2018) 5. Llewellyn Evans, G.: Disruptive technology and the board: The tip of the iceberg. Economics and Business Review 3(1) (2017) 6. Soto, A., Mora, H., Riascos, J.A.: Web generator: An open-source software for synthetic web-based user interface dataset generation. SoftwareX 17, 100985 (2022) 2V´ıdeo: https://youtu.be/RrrNs2wczos