Navegación

Búsqueda

Búsqueda avanzada

Anonimización de datos guiada por pruebas para aplicaciones inteligentes

En la actualidad gran cantidad de datos son compartidos para su uso, tratamiento o análisis entre empresas y terceros. Es habitual que estos datos tengan que ser protegidos con diferentes técnicas de preservación de la privacidad para dar cumplimiento a las leyes y regulaciones. Una de las técnicas más comunes es la anonimizacion que, aunque provee de privacidad a los datos, presenta como efecto colateral la perdida de información. Esta pérdida de información puede afectar negativamente al comportamiento de aquellos desarrollos altamente dependientes de dichos datos como son las aplicaciones inteligentes. Para abordar este problema, proponemos un enfoque guiado por pruebas para seleccionar el conjunto de datos anonimizado que mantenga un compromiso entre la calidad no funcional (privacidad) y la funcional (utilidad). Para ello se alimenta a las aplicaciones con los datos anonimizados para que tomen los patrones de comportamiento de estos, y seguidamente validar las predicciones con los datos originales, midiendo así su calidad funcional. Dicha calidad junto con la no funcional (privacidad), es ponderada según los criterios de usuario con el fin de alcanzar el punto de compromiso entre ambas características de calidad

Enfoque dirigido por modelos para probar Sistemas de Información con Bases de Datos

La base de datos es un componente esencial de los sistemas de información. En efecto, para una base de datos dada, una organización tendrá, probablemente, múltiples aplicaciones que la gestionen, de acuerdo a los diferentes tipos de usuarios, plataformas, dispositivos, etcétera. Aunque la propia base de datos ya incorporará su propio conjunto de restricciones, la lógica de los programas asociados a ella debe también contemplarlas y manejarlas correctamente. En este artículo proponemos un enfoque de generación de casos de prueba centrado en la base de datos, donde se prueba el comportamiento de las aplicaciones que la gestionan, comprobando si son capaces de manejar las particularidades de las estructuras definidas en forma adecuada para las distintas capas de la arquitectura (lógica, interfaz de usuario, etc.). Esta propuesta representa el modelo de datos usando UML Data Modeling Profile, el cual es extraído automáticamente a partir del esquema relacional de la base de datos mediante técnicas de ingeniería inversa, para luego generar el modelo de pruebas de forma automática usando transformaciones entre modelos. Dicha transformación busca ocurrencias de patrones que, desde el punto de vista del testing, representan situaciones de prueba interesantes, y genera casos de prueba siguiendo el estándar UML Testing Profile. En este artículo se describe el entorno de trabajo y se presentan, a modo de ejemplo, el diseño de las pruebas para las operaciones de creación y eliminación de instancias.

Generación de Prueba Rendimiento a Partir de Pruebas Funcionales para Sistemas Web

Las pruebas de rendimiento consisten en simular carga en el sistema bajo pruebas para analizar el desempeño de la infraestructura durante la ejecución de la prueba, pudiendo encontrar cuellos de botella y oportunidades de mejora. Para la simulación se utilizan herramientas específicas, en las que se debe automatizar las acciones que generarán esa carga, esto es: las interacciones entre el usuario y el servidor. Para poder simular muchos usuarios con poca infraestructura de pruebas, se automatizan las interacciones a nivel de protocolo (en scripts), lo cual hace que la automatización sea más compleja (en cuanto al trabajo necesario para su preparación) que la automatización de pruebas funcionales, que se realiza a nivel de interfaz gráfica. Generalmente la tarea de automatización consume entre el 30% y el 50% del esfuerzo de un proyecto de pruebas de rendimiento. En este artículo presentamos la herramienta desarrollada para seguir un nuevo enfoque para generar scripts para pruebas de rendimiento a partir de scripts de pruebas funcionales. La herramienta implementada ya ha sido puesta en funcionamiento en proyectos reales, de los cuales se muestran los principales resultados que reflejan mayor flexibilidad y menor costo de automatización.

Pruebas funcionales en programas MapReduce basadas en comportamientos no esperados

MapReduce es un paradigma de programación que permite el procesamiento paralelo de grandes cantidades de datos. Los programas MapReduce se suelen ejecutar sobre el framework Hadoop, el cual no garantiza que se ejecuten siempre en las mismas condiciones, pudiendo producir comportamientos no esperados desde el punto de vista de su funcionalidad. En este artículo se analizan y describen diferentes tipos de defectos específicos que pueden estar presentes en programas MapReduce sobre Hadoop y se muestra cómo se pueden derivar casos de prueba que permiten la detección de dichos defectos. Lo anterior se ilustra sobre varios programas de ejemplo.

Pruebas basadas en flujo de datos para programas MapReduce

MapReduce es un paradigma de procesamiento masivo de información. Estos programas realizan varias transformaciones de los datos hasta que se obtiene la salida representando la lógica de negocio del programa. En este artículo se elabora una técnica de prueba basada en data flow y que deriva las pruebas a partir de las transformaciones que ocurren en el programa. Se muestran resultados de la ejecución de los casos de prueba derivados de la aplicación de la técnica, los cuales permiten detectar algunos defectos.