Comparación de herramientas de testing automático para detección de permisos en aplicaciones Android - Pulice, Ignacio (2017)
Una de las mayores preocupaciones tanto para los usuarios como para los desarrolladores de software es la seguridad. Cuando usamos un programa, no es trivial, incluso para un usuario avanzado, saber si dicho programa hace lo que dice y no más que eso. Poder aseverar esto sin acceder al código fuente implica probar todos los caminos posibles que puede tomar el programa, y está más allá de la capacidad de cualquier persona. Ante esta imposibilidad, ha tomado relevancia el testing automático, donde es la misma computadora quien se encarga de probar diferentes secuencias de entrada para tratar de cubrir la mayor cantidad de comportamiento posible, ya sea para encontrar defectos, buscar comportamiento indebido o asegurar la correctitud del programa. En Android, el sistema operativo más usado en la actualidad en el mundo, las aplicaciones deben como medida de seguridad declarar las funciones restringidas del sistema a las que desean acceder, a manera de permisos. Pero estos permisos están definidos de una manera demasiado amplia, por lo que no es fácil entender para qué son requeridos. Como alternativa a este modelo, se creó un entorno de sandbox, Boxmate, en el cual se corren aplicaciones de forma segura, y así ejecutar funcionalidades restringidas que fueron previamente detectadas mediante testing automático. Para este fin se creó la herramienta Droidmate. Pero cabe preguntarse si existen otras herramientas de testing automático que sean más efectivas a la hora de localizar el comportamiento restringido de una aplicación. Para tal fin, vamos a comparar a Droidmate con otras dos herramientas, Monkey y Sapienz. A la vez, vamos a evaluar cual es la situación actual en materia de detección de comportamiento en Android, y si ésta nos permite aseverar que las aplicaciones son seguras luego de pasar dicha prueba.