Un bot de software es un tipo de agente de software al servicio de la gestión de proyectos de software y la ingeniería de software. Un bot de software tiene una identidad y aspectos potencialmente personificados para servir a sus partes interesadas. [1] Los bots de software a menudo componen servicios de software y brindan una interfaz de usuario alternativa, que a veces es conversacional, pero no necesariamente.
Los bots de software se utilizan normalmente para ejecutar tareas, sugerir acciones, entablar diálogos y promover aspectos sociales y culturales de un proyecto de software. [2]
El término bot se deriva de robot . Sin embargo, los robots actúan en el mundo físico y los bots de software actúan solo en espacios digitales. [1] Algunos bots de software están diseñados y se comportan como chatbots , pero no todos los chatbots son bots de software. Erlenhov et al. [3] analizan el pasado y el futuro de los bots de software y muestran que estos se han adoptado durante muchos años.
Uso
Los bots de software se utilizan para respaldar actividades de desarrollo, como la comunicación entre desarrolladores de software y la automatización de tareas repetitivas. Los bots de software han sido adoptados por varias comunidades relacionadas con el desarrollo de software, como las comunidades de código abierto en GitHub [4] y Stack Overflow .
Los bots de GitHub tienen cuentas de usuario y pueden abrir, cerrar o comentar solicitudes de incorporación de cambios y problemas . Los bots de GitHub se han utilizado para asignar revisores, solicitar a los colaboradores que firmen el Acuerdo de licencia de colaborador , informar sobre errores de integración continua, revisar código y solicitudes de incorporación de cambios, dar la bienvenida a los recién llegados, ejecutar pruebas automatizadas, fusionar solicitudes de incorporación de cambios, corregir errores y vulnerabilidades, [5] etc.
La herramienta Slack incluye una API para desarrollar bots de software. [6] Existen bots de Slack para realizar un seguimiento de listas de tareas pendientes, coordinar reuniones de pie y administrar tickets de soporte. Los productos de la empresa ChatBot [7] simplifican aún más el proceso de creación de un bot de Slack personalizado.
En Wikipedia, los bots de Wikipedia automatizan una variedad de tareas, como crear artículos de esbozo, actualizar constantemente el formato de múltiples artículos, etc. Los bots como ClueBot NG son capaces de reconocer el vandalismo y eliminar automáticamente el contenido disruptivo. [8]
Taxonomías y marcos de clasificación
Lebeuf et al. [1] proporcionan una taxonomía por facetas para caracterizar a los bots basándose en una revisión de la literatura. Está compuesta por 3 facetas principales: (i) propiedades del entorno en el que se creó el bot; (ii) propiedades intrínsecas del propio bot; y (iii) las interacciones del bot dentro de su entorno. Además, detallan las facetas en conjuntos de subfacetas bajo cada una de las facetas principales.
Paikari y van der Hoek [9] definieron un conjunto de dimensiones para permitir la comparación de bots de software, aplicado específicamente a los chatbots. El resultado fueron seis dimensiones:
- Tipo : el propósito principal del bot (información, colaboración o automatización)
- Dirección de la "conversación" (entrada, salida o bidireccional)
- Orientación (mediada por humanos o autónoma)
- Predictibilidad (determinista o evolutiva)
- Estilo de interacción (aburrido, vocabulario alternativo, generador de relaciones, parecido a un humano)
- Canal de comunicación (texto, voz o ambos)
Erlenhov et al. [10] plantearon la cuestión de la diferencia entre un bot y una automatización simple, ya que muchas investigaciones realizadas en nombre de los bots de software utilizan el término bot para describir varias herramientas diferentes y, a veces, las cosas son "simplemente" herramientas de desarrollo tradicionales. Después de entrevistar y encuestar a más de 100 desarrolladores, los autores descubrieron que no una, sino tres definiciones dominaban la comunidad. Crearon tres personajes basados en estas definiciones y la diferencia entre lo que los tres personajes ven como un bot es principalmente la asociación con un conjunto diferente de rasgos similares a los humanos.
- El personaje del bot de chat (Charlie) piensa principalmente en los bots como herramientas que se comunican con el desarrollador a través de una interfaz de lenguaje natural (normalmente voz o chat) y le importa poco para qué tareas se utiliza el bot o cómo implementa realmente estas tareas.
- El personaje bot autónomo (Alex) piensa en los bots como herramientas que trabajan por sí solas (sin requerir mucha intervención de un desarrollador) en una tarea que normalmente realizaría un humano.
- El personaje del robot inteligente (Sam) distingue a los robots de las herramientas de desarrollo tradicionales en función de lo inteligente (técnicamente sofisticada) que es una herramienta. A Sam le importa menos cómo se comunica la herramienta, sino más bien si es excepcionalmente buena o adaptable a la hora de ejecutar una tarea.
Los autores recomiendan que las personas que investigan o escriben sobre bots intenten poner su trabajo en el contexto de uno de los personajes, ya que estos tienen diferentes expectativas y problemas con las herramientas.
Ejemplos de bots notables
- Dependabot y Renovatebot actualizan las dependencias del software y detectan vulnerabilidades. (https://dependabot.com/)
- Probot es una organización que crea y mantiene bots para GitHub. Los bots de ejemplo que utilizan Probot son los siguientes.
- Asignación automática (https://probot.github.io/apps/auto-assign/)
- bot de licencia (https://probot.github.io/)
- Bot de sentimientos (https://probot.github.io/apps/sentiment-bot/)
- Bot Untrivializer (https://probot.github.io/apps/untrivializer/)
- Refactoring-Bot (Refactoring-Bot): proporciona refactorización basada en análisis de código estático
- El bot Looks good to me (LGTM) es un producto de Semmle que inspecciona las solicitudes de extracción en GitHub en busca de estilos de código y prácticas de código inseguras.
Problemas y amenazas
Los robots de software pueden no ser bien aceptados por los humanos. Un estudio de la Universidad de Amberes [11] ha comparado cómo los desarrolladores activos en Stack Overflow perciben las respuestas generadas por robots de software. Encontraron que los desarrolladores perciben que la calidad de las respuestas generadas por robots de software es significativamente peor si se hace evidente la identidad del robot de software. Por el contrario, las respuestas de robots de software con identidad similar a la humana fueron mejor recibidas. En la práctica, cuando se utilizan robots de software en plataformas como GitHub o Wikipedia, su nombre de usuario deja claro que son robots, por ejemplo, DependaBot, RenovateBot, DatBot, SineBot.
Los bots pueden estar sujetos a reglas especiales. Por ejemplo, los términos de servicio de GitHub [12] no permiten el uso de "bots", pero sí de "cuentas de máquina", donde una "cuenta de máquina" tiene dos propiedades: 1) un humano asume la responsabilidad total de las acciones del bot 2) no puede crear otras cuentas.
Véase también
Referencias
- ^ abc Lebeuf, Carlene; Zagalsky, Alexey; Foucault, Matthieu; Storey, Margaret-Anne (2019). "Definición y clasificación de bots de software: una taxonomía por facetas". 2019 IEEE/ACM 1er Taller internacional sobre bots en ingeniería de software (BotSE) . págs. 1–6. doi :10.1109/BotSE.2019.00008. ISBN . 978-1-7281-2262-5.S2CID 195064960 .
- ^ Equipo, The SOBotics (17 de septiembre de 2019). "Conoce a los bots que ayudan a moderar Stack Overflow". Blog de Stack Overflow . Consultado el 22 de noviembre de 2019 .
- ^ Erlenhov, Linda; Gomes de Oliveira Neto, Francisco; Scandariato, Riccardo; Leitner, Philipp (2019). "Bots actuales y futuros en el desarrollo de software". 2019 IEEE/ACM 1er Taller internacional sobre bots en ingeniería de software (BotSE) . Montreal, QC, Canadá: IEEE. págs. 7–11. doi :10.1109/BotSE.2019.00009. ISBN 978-1-7281-2262-5.S2CID 195065273 .
- ^ Wessel, Mairieli; de Souza, Bruno Mendes; Steinmacher, Igor; Wiese, Igor S.; Polato, Ivanilton; Chaves, Ana Paula; Gerosa, Marco A. (1 de noviembre de 2018). "El poder de los bots: caracterización y comprensión de los bots en proyectos OSS". Actas de la ACM sobre interacción persona-computadora . 2 (CSCW): 1–19. doi :10.1145/3274451. S2CID 53235433.
- ^ "¡Envíe sus parches aquí! GitHub ofrece generar solicitudes de incorporación de cambios automáticas cargadas con correcciones de vulnerabilidades". www.theregister.co.uk . Consultado el 22 de noviembre de 2019 .
- ^ Guay, Matthew (22 de noviembre de 2019). «Cómo crear un bot de Slack en 5 minutos». Blog de Slack . Consultado el 22 de noviembre de 2019 .
- ^ "Integración de Slack: chatbot con IA". LiveChat Inc. 22 de noviembre de 2019. Consultado el 22 de noviembre de 2019 .
- ^ "Conoce a los 'bots' que editan Wikipedia". BBC News . 25 de julio de 2012 . Consultado el 19 de septiembre de 2021 .
- ^ Paikari, Elahe; van der Hoek, André (2018). "Un marco para comprender los chatbots y su futuro". Actas del 11.º Taller internacional sobre aspectos cooperativos y humanos de la ingeniería de software - CHASE '18 . págs. 13-16. doi :10.1145/3195836.3195859. ISBN 9781450357258.S2CID 49562888 .
- ^ Erlenhov, Linda; Gomes de Oliveira Neto, Francisco; Leitner, Philipp (2020). "Un estudio empírico de los bots en el desarrollo de software: características y desafíos desde la perspectiva de un profesional". Actas de la 28.ª reunión conjunta de la ACM sobre la conferencia y el simposio europeos de ingeniería de software sobre los fundamentos de la ingeniería de software . Evento virtual, EE. UU., Canadá: ACM. págs. 445–455. arXiv : 2005.13969 . doi :10.1145/3368089.3409680. ISBN 9781450370431. Número de identificación del sujeto 218971687.
- ^ Murgia, Alessandro; Janssens, Daan; Demeyer, Serge; Vasilescu, Bogdan (2016). "Entre las máquinas". Actas de la Conferencia CHI de 2016 Resúmenes ampliados sobre factores humanos en sistemas informáticos . págs. 1272–1279. doi :10.1145/2851581.2892311. ISBN 9781450340823.S2CID13026142 .
- ^ "Condiciones de servicio de GitHub - Ayuda de GitHub". help.github.com . Consultado el 22 de noviembre de 2019 .