Edición 2014
3 de abril - Facultad de Ingeniería, Universidad de la República - Montevideo, Uruguay
La primera edición de TestingUy, realizada el 3 de abril en la Facultad de Ingeniería de la Universidad de la República, reunió a más de 200 profesionales de la disciplina y de la industria.
Charlas
acreditación
bienvenida
AGILE TESTING: UNA REALIDAD POSIBLE
Juliana Herbert y Silvia Nane
Los métodos ágiles enfocan el testing como una parte del proyecto integrada al proceso de desarrollo. En general en los equipos de trabajo “ágiles” es común que se utilice el término “whole-team” para referirse a un equipo compuesto por desarrolladores y testers, donde la calidad “se construye” y no sólo “se controla”.
En esta charla estaremos contando experiencias sobre la aplicación de esta forma de trabajo, y contando algunas técnicas que usamos habitualmente
TESTING IN PRODUCTION
Fernando Machado
«Testing in production» resume varias experiencias de pruebas sobre productos que necesitan estar siempre funcionando. Cuenta experiencias de testing en Google, Facebook y Microsoft.
TESTING TRENDS
Fabián Baptista y Matías Reina
¿Para qué nos tenemos que preparar los testers?
¿Cuáles son las tendencias y necesidades del mercado en Testing?
¿Cómo afrontamos los cambios tecnológicos?
COFFEE BREAK
PROBANDO CÓMO IR AUTOMÁTICAMENTE
Gustavo Mažeikis
El objetivo de la presentación es compartir algunas ideas sobre la construcción de una prueba funcional automatizada para una aplicación web real. La prueba está escrita en lenguaje Java, empleando el marco de pruebas TestNG y la interfaz de programación Selenium WebDriver.
La aplicación a probar se llama Cómo Ir y es una de las más accedidas en el sitio de la Intendencia de Montevideo. La misma permite, ingresando una dirección origen y una destino, desplegar en el mapa el recorrido más corto para ir a pie o en ómnibus (con sus horarios).
Como se desprende de su título, la presentación aborda la prueba automatizada como dos problemas en uno. Por una parte, la automatización con Selenium Webdriver implica trabajar con manejadores (drivers) que representan al navegador y construir un modelo de la página web. El desafío es modelar la interacción con la página empleando las condiciones y mecanismos de sincronización adecuados. Por otra parte, TestNG permite especificar pruebas como métodos de una clase Java simple, que debidamente anotados y parametrizados pueden integrarse en diferentes grupos (suites), con distintos grados de distribución (local o remota) y de paralelismo. Los resultados de las pruebas son generados automáticamente y permiten incluir capturas de pantalla en cada uno de los pasos de la prueba, independientemente de su éxito o fracaso.
Separando y contraponiendo los diferentes aspectos involucrados en la construcción de la prueba automatizada, se pretende dar al espectador una idea general de los problemas y desafíos que se presentan.
CROWDSOURCE TESTING
Guillermo Skrilec
“Crowdsourcing” es un paradigma que se ha vuelvo muy popular en los últimos años. Se basa en la colaboración de personas de distintos lugares del mundo para llevar adelante una tarea, en lugar de contratar a alguien para hacerlo.
Hoy en día tenemos plataformas de testing basadas en este paradigma, que han sido utilizadas principalmente por startups y pequeñas empresas. En esta charla queremos contarles cómo funciona el modelo, cuáles son las ventajas y de qué forma las empresas podrían aprovecharlas.
ALMUERZO
TESTING PARA TODOS
Darío Silva y Fernando Panizza
Nahual es un proyecto que nace hace un par de años en Buenos Aires que busca la contención y la integración social mediante la enseñanza de técnicas de programación y testing. Actualmente cuentan con nodos en Banfield, Bariloche y La Plata. Desde noviembre del 2013 están trabajando con varios profesionales del medio local para generar un nodo en Montevideo, con la idea de difundir el testing y hacer llegar a personas que no tienen acceso a las carreras formales en la materia. La charla pretende mostrar la forma de trabajo que tienen los nodos actuales, en
qué punto estamos con el nodo en Uruguay y sumar a aquellos interesados en colaborar. Más información sobre el proyecto se puede encontrar en www.nahual.com.ar.
Foundation Forge una organización sin fines de lucro, creada en el año 2005. Con sede central en Suiza, que opera en Argentina, Uruguay y Perú con proyección a toda América Latina. Trabaja en la inserción laboral de calidad de jóvenes pertenecientes a familias de bajos recursos económicos.
El programa es complementario de la educación formal y estimula la terminalidad escolar. Para egresar de Forge es requisito haber completado los estudios secundarios. La fase central del programa se extiende a través de dos años.
El primer año es de formación y el segundo de inserción laboral y tutoría.
Los jóvenes pueden elegir entre distintas orientaciones técnicas. Pero el alma de la formación es humanística, estimulando un proceso transformador importante para el trabajo y para la vida.
Durante el segundo año los jóvenes son presentados a una red de empresas de calidad seleccionadas por Forge, para su inserción laboral. A través de un sistema de tutoría son asistidos para sostener el empleo en el tiempo.
EXPERIMENTACIÓN EN LA INDUSTRIA
Cecilia Apa
La experimentación es uno de los métodos de investigación que utiliza la comunidad científica para estudiar un determinado fenómeno. Es un método riguroso, basado en evidencia y los resultados se obtienen con la aplicación de técnicas estadísticas.
En Ingeniería de Software la experimentación ha tenido un creciente aumento en los últimos años y la disciplina del Testing ha sido el foco en numerosos estudios. Sin embargo, la mayoría de los experimentos se han realizado en contextos académicos y no industriales.
En esta presentación hablaremos sobre los conceptos básicos de experimentación, los experimentos que hemos realizado en Uruguay en torno al Testing y los beneficios que podría tener realizar experimentación en la industria…. ¿Alguien se anima?
CERTIV6 – TESTING DE SISTEMAS EN RED DUAL-STACK IPV4 / IPV6
Carlos Martínez
Internet se encuentra en un momento de transición. El espacio de direccionamiento que puede proveer el protocolo de capa 3 que al día de hoy transporta el 95% del tráfico en la red, el IP version 4, está alcanzando su máxima utilizacion y la disponibiliad de direcciones disponibles esta llegando a su n.
La version 6 del protocolo IP, IPv6, cuenta con un espacio de direccionamiento de 128 bits, y por ello promete hacer que la cuestion de la escasez de direcciones deje de tener relevancia. Sin embargo, IPv4 e IPv6 son dos protocolos diferentes, implementados en pilas de protocolo independientes, lo que da surgimiento al concepto de ‘host dual stack’ en Internet, siendo aquel host que implementa ambas pilas de protocolo.
Un servidor anuncia su disponibilidad en dual stack a traves de registros DNS ‘A’ (para IPv4) y ‘AAAA’ (para IPv6) asociados a un mismo nombre de dominio. En un escenario ideal, un cliente solo tiene que elegir uno de los dos TestingUy – 5 posibles caminos y comenzar a establecer conexiones.
Sin embargo en la practica un cliente dual-stack enfrenta multiples desafos a la hora de lograr establecer conexiones con un servidor dual stack exitosamente. >Se debe dar prioridad a una pila sobre la otra? Que debe hacerse si una de las pilas no responde en un cierto tiempo? >Debe un cliente mantener estado indicando cual pila tiene el mejor comportamiento de acuerdo a ciertos criterios?
Esta complejidad se suma al hecho de que hasta muy recientemente los desarrolladores no contemplaban la posibilidad de que sus sistemas pudieran correr en entornoscon IPv6 ha creado una serie de potenciales puntos de falla que afectan a aplicaciones de red cuando las mismas son instaladas en ambientes dual stack.
En esta presentacion presentaremos algunos ejemplos de estas potenciales fallas, algunos ejemplos de como pueden testearse aplicaciones en estos entornos y comentaremos sobre la metodologa de testing generada por el proyecto Certiv6 de LACNIC.
COFFEE BREAK
CONOCIENDO LAS HERRAMIENTAS DE OWASP PARA TESTING DE SEGURIDAD
Mateo Martínez
El problema del software inseguro es quizás el reto técnico más importante de nuestro tiempo. La seguridad es ahora el factor limitante respecto a lo que somos capaces de crear con las tecnologías de la información. No hace falta decir que no se puede construir una aplicación segura sin realizar pruebas de seguridad en ella. Sin embargo, muchas organizaciones de desarrollo no incluyen pruebas de seguridad como parte de su proceso de desarrollo de software estándar. Las guías de OWASP son un buen comienzo hacia la construcción y el mantenimiento de aplicaciones seguras y serán explicadas durante la presentación.
ADAPTANDO CERTIFICACIONES AL ENTORNO
Gustavo Guimerans
Certificar un equipo físico o un software implica una dificultad que va más allá de lo que es una prueba de un sistema. Hay que definir un conjunto de pruebas que sea aplicable no solamente a una implementación del software, sino a cualquier implementación que se quiera certificar con el estándar o protocolo definido. Muchas veces se tiene como un adicional la necesidad de probar contra un estándar que es adaptado a las realidades de un país o región o que incluso no está especificado.
Vamos a hablar de la experiencia del CES (junto con el Instituto de Ingeniería Eléctrica de Facultad de ingeniería) en el proyecto para la certificación de los receptores de TV Digital realizado para DINATEL. Este proyecto tuvo un impacto significativo en las políticas de implantación de la nueva tecnología en Uruguay y dio un resultado que ninguno de los que nos embarcamos en el mismo hubiéramos imaginado.
Vamos a ver al testing no solo como una herramienta para disminuir riesgos sino como una herramienta para tomar decisiones, incluso a nivel de políticas país.
MAPEO SISTEMÁTICO Y ESTUDIO DE CASO SOBRE TÉCNICAS DE GENERACIÓN AUTOMÁTICA DE PRUEBAS
Gerardo Quintana
La automatización de la generación de los casos de prueba puede tener un impacto significativo en la eficacia y la eficiencia de las pruebas de software. Para reducir el trabajo manual de crear datos de prueba, los profesionales pueden usar técnicas automáticas. En la literatura se reportan muchos estudios que evalúan nuevas técnicas para la generación automática de casos de prueba estructurales. Si bien se han desarrollado herramientas para la generación automática de casos de prueba que pueden alcanzar una alta cobertura, la adopción de estas por parte de la industria es limitada. Para la transferencia exitosa de estas técnicas de la academia a la industria, es esencial que la comunidad de investigadores continúe resolviendo muchos de los desafíos que quedan por delante. En la presente investigación se realizó un mapeo sistemático de la literatura, para conocer las técnicas y los problemas investigados. A partir de este mapeo, se realizó un estudio de caso con herramientas de generación para evaluar su eficacia con respecto a la detección de defectos.
Se concluye que las técnicas que tienen más estudios son las basadas en búsqueda mediante algoritmos genéticos, que se combinan distintos enfoques para incrementar la eficiencia de la generación y que los problemas con más estudios son: generación de datos de prueba, reducción de los casos de prueba y técnicas para tratar con estructuras complejas de programas. Por otra parte, el estudio de caso con las herramientas muestra baja cobertura y que no son eficaces para la detección de defectos reales.
Mesa Redonda
3 de abril – Anfiteatro del Aulario – Facultad de Ingeniería, Universidad de la República
MESA REDONDA
Silvia Nane – moderardora (Make It Work), Juliana Herbert (Herbert Consulting), Andrés Aguiar (Infragistics), Martín Solari (ORT), Federico Toledo (Abstracta) y Gustavo Vázquez (CES).