Dos herramientas: Sapienz y SapFix, son las que se utilizan para hacer pruebas y localizar y corregir los bugs. Sapienz está más desarrollada que SapFix, y ha sido usada por más tiempo ya en producción, es decir, en Facebook, desde septiembre del 2017 en las app de Android. Todo esto de acuerdo con un artículo del Simposio de Ingeniería de Software basado en búsquedas.

CNN te reta a diferenciar un video real de un deepfake con su test

Sapienz se construyó sobre FBLearner, una plataforma de aprendizaje de máquinas (Machine Learning – ML), el cual es donde más desarrollo se hace en la empresa. Además de Sapienz, Facebook usa FBLearner para problemas que incluyen las peticiones de búsquedas en videos, fotos, personas, eventos, detección anómala, entendimiento de imágenes, traducción de idiomas y reconocimiento de rostros y de voz.

Sapienz se usa para verificar un número grande de interacciones entre el número grande de dispositivos y sistemas operativos. Sapienz usa diseño de pruebas automatizado para hacer que el proceso de pruebas sea más rápido, así como para hacer pruebas más comprensivas. El sistema busca todas las posibles pruebas en lo que los programadores han llamado “búsqueda computacional inteligente” en un enfoque llamado “por búsquedas en las pruebas de software”. Hace pruebas de interfaz del usuario, lo que significa que Sapienz reporta a los ingenieros sus hallazgos a través de la propia interfaz del usuario, evitando así falsos positivos.

En la medida que Sapienz busca, construye un modelo del sistema bajo la prueba que está diseñando, a través de interacciones con la interfaz del usuario, y todas las pruebas correctas se guardan, por lo que pueden ser usadas. Facebook dice que la tecnología que usan puede permitir que los ingenieros corrijan errores en horas (a veces en minutos), del código que ha sido escrito (y que contiene algún problema).

Por otra parte, SapFix es una herramienta de la IA híbrida, que genera la corrección de los errores de forma automática para bugs específicos y entonces propone las correcciones potenciales a los ingenieros para su aprobación, Facebook indica que intenta compartir SapFix con la comunidad ingenieril, por lo que la siguiente fase en su evolución es la depuración automática, lo que podría tener el potencial de disparar estabilidad para el nuevo código en sistemas ya en producción, el cual podría ser usado por un amplio número de compañías y organizaciones de investigación y desarrollo. La forma en que SapFix es usado empieza con Sapienz, que localiza el código a parchar. Esta información la recibe SapFix que crea un número de formas de corregir el error (escribir el parche al código con bugs).

En el nivel más simple, SapFix toma el código a su estado antes del último cambio. Un enfoque más sofisticado es tratar de corregir lo que funcionaba con los desarrolladores humanos en casos anteriores. Estos parches se guardan y se acceden como templates o machotes. Si ninguna versión anterior o template corrige el problema, SapFix intentará una corrección mutada, haciendo pequeñas modificaciones al código original vía un árbol sintáctico abstracto, y este proceso se seguirá haciendo hasta que una solución potencial se encuentre.

SapFix genera múltiples correcciones potenciales para un error y evalúa la calidad verificando tres situaciones: que haya errores en la compilación, que no persista el error y que la corrección no introduzca nuevos errores. Si estos parches contienen estos criterios, pasan a los seres humanos para s aprobación.

Y aunque SapFix está en desarrollo aún, ya genera parches exitosos que han sido aceptados por programadores humanos poniéndolos en el código de producción.