Bot de software - Software bot
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. Los robots de software a menudo componen servicios de software y proporcionan una interfaz de usuario alternativa, que a veces, pero no necesariamente, es conversacional.
Los bots de software se utilizan normalmente para ejecutar tareas, sugerir acciones, entablar un diálogo y promover los aspectos sociales y culturales de un proyecto de software.
El término bot se deriva de robot . Sin embargo, los robots actúan en el mundo físico y los robots de software actúan solo en espacios digitales. Algunos bots de software están diseñados y se comportan como chatbots , pero no todos los chatbots son bots de software. Erlenhov y col. discuta el pasado y el futuro de los bots de software y demuestre que los bots de software se han adoptado durante muchos años.
Uso
Los bots de software se utilizan para respaldar las actividades de desarrollo, como la comunicación entre los 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 y Stack Overflow .
Los bots de GitHub tienen cuentas de usuario y pueden abrir, cerrar o comentar sobre solicitudes de extracción y problemas . Los bots de GitHub se han utilizado para asignar revisores, pedir a los colaboradores que firmen el Acuerdo de licencia de colaborador , informar fallas de integración continua, revisar el código y las solicitudes de extracción, dar la bienvenida a los recién llegados, ejecutar pruebas automatizadas, fusionar solicitudes de extracción, corregir errores y vulnerabilidades, etc.
La herramienta Slack incluye una API para desarrollar bots de software. Hay bots de holgura para realizar un seguimiento de las listas de tareas pendientes, coordinar reuniones de stand-up y administrar tickets de soporte. Los productos de la empresa Chatbot 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 resguardo, actualizar constantemente el formato de varios artículos, etc. Los bots como ClueBot NG son capaces de reconocer el vandalismo y eliminar automáticamente el contenido perturbador.
Taxonomías y marcos de clasificación
Lebeuf y col. Proporcionar una taxonomía facetada para caracterizar los bots basándose en una revisión de la literatura. Se compone de 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 sub-facetas debajo de cada una de las facetas principales.
Paikari y van der Hoek definieron un conjunto de dimensiones para permitir la comparación de bots de software, aplicados específicamente a los chatbots. Resultó en seis dimensiones:
- Tipo : el objetivo 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)
- Previsibilidad (determinista o en evolución)
- Estilo de interacción (aburrido, vocabulario alternativo, constructor de relaciones, similar a un humano)
- Canal de comunicación (texto, voz o ambos)
Erlenhov y col. planteó la cuestión de la diferencia entre un bot y la automatización simple, ya que muchas investigaciones realizadas en nombre de bots de software utilizan el término bot para describir varias herramientas diferentes y, a veces, las cosas son "simplemente" herramientas de desarrollo viejas. Después de entrevistar y encuestar a más de 100 desarrolladores, los autores encontraron que no una, sino tres definiciones dominaban la comunidad. Crearon tres personas basadas en estas definiciones y la diferencia entre lo que las tres personas ven como un bot es principalmente la asociación con un conjunto diferente de rasgos similares a los humanos.
- La persona 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 (generalmente voz o chat), y no se preocupan mucho por las tareas para las que se usa el bot o cómo realmente implementa estas tareas.
- La persona de bot autónoma (Alex) piensa en los bots como herramientas que funcionan por sí mismas (sin requerir mucho aporte de un desarrollador) en una tarea que normalmente sería realizada por un humano.
- La persona del bot inteligente (Sam) separa los bots de las herramientas de desarrollo antiguas y sencillas a través de lo inteligente (técnicamente sofisticada) que es una herramienta. A Sam le importa menos cómo se comunica la herramienta, pero más si es inusualmente buena o adaptativa para ejecutar una tarea.
Los autores recomiendan que las personas que investigan o escriben sobre bots intenten poner su trabajo en el contexto de una de las personas, ya que las personas tienen diferentes expectativas y problemas con las herramientas.
Ejemplo de bots notables
- Dependabot y Renovatebot actualizan las dependencias de 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 sentimiento ( 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
- Me parece bien el bot ( 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 ha comparado cómo los desarrolladores activos en Stack Overflow perciben las respuestas generadas por los bots de software. Encuentran que los desarrolladores perciben que la calidad de las respuestas generadas por bots de software es significativamente peor si se hace evidente la identidad del bot de software. Por el contrario, las respuestas de los robots de software con identidad humana se recibieron mejor. En la práctica, cuando se utilizan bots de software en plataformas como GitHub o Wikipedia, su nombre de usuario deja en claro que son bots, por ejemplo, DependaBot, RenovateBot, DatBot, SineBot.
Los bots pueden estar sujetos a reglas especiales. Por ejemplo, los términos de servicio de GitHub no permiten "bot" pero aceptan "cuenta 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.