GTAC 2016: Presentaciones

Inicio del discurso de apertura

Matt Lowrie (Google)

Evolución de la productividad empresarial y de ingeniería

Manasi Joshi (Google)

Vínculos: Video, Presentaciones

En este discurso de apertura, tratamos de guiar a todos en el proceso de evolución de la disciplina de productividad de ingeniería en Google, y de cómo eso fue fundamental para el crecimiento empresarial de Google a fin de avanzar con rapidez, mantenerse estables y ofrecer confianza a través de los procesos de desarrollo, lanzamiento y supervisión. También aludimos a algunos de los desafíos a los que nos enfrentamos en la actualidad y a nuevos horizontes para probar plataformas en una experiencia de producto que esté altamente conectada/vertical.

Automatización de la conducción robótica mediante telepresencia

Tanya Jenkins (Cantilever Consulting)

Vínculos: Video, Presentaciones

Probar la interfaz de conducción de un dispositivo de telepresencia es un desafío. Funciona en el mundo real, interactúa con personas y objetos, pero debe probarse en un entorno controlado. ¿Cómo abordas la creación de un entorno de conducción remota realista y, al mismo tiempo, validas la ubicación y la posición del dispositivo cuando no puedes verlo? Presentaré una solución innovadora.

¿Qué se incluye en tu Billetera?

Hima Mandali (Capital One)

Vínculos: Video, Presentaciones

Capital One es una de las empresas de tarjetas de crédito más grandes de EE.UU. con más de 70 millones de cuentas. En Capital One, creamos muchos productos geniales que proporcionan experiencias digitales increíbles a nuestros clientes. Dado que los dispositivos móviles se están convirtiendo en el canal preferido de nuestros clientes, esta charla se centrará en cómo resolvimos el problema de la automatización de pruebas en las apps web móviles y qué hicimos para convertirnos en una canalización de entrega de software más rápida. También compartiremos las herramientas de código abierto que usamos y el panel de código abierto que creamos para resolver nuestros problemas.

Usar estadísticas de automatización de ejecución de pruebas para predecir qué pruebas ejecutar

Boris Prikhodky (Unity Technologies)

Vínculos: Video, Presentaciones

Las pruebas se convirtieron en una parte fundamental de los procesos de desarrollo de aplicaciones, pero qué hacer cuando una vez un salvador se convierte en un cuello de botella en la vida diaria. Aquí compartimos nuestra experiencia sobre lo que hicimos cuando tuvimos 3-6 horas de espera para que se ejecutara una configuración de prueba. En esta charla, se presenta un enfoque simple pero potente que ahorra el valioso tiempo de ejecutar pruebas ecológicas en una granja de compilación y pruebas. También se abordan las posibles formas de mejorar el proceso.

Automatización de pruebas basada en selenio para Windows y Windows Phone

Nikolai Abalov (2 Gig)

Vínculos: Video, Presentaciones

Hay Selenium para la automatización de pruebas de aplicaciones web. Hay Appium para aplicaciones móviles en iOS y Android. Sin embargo, para Windows Desktop y Windows Phone/Mobile, tuvimos que crear nuestra propia solución basada en Selenium. Así que se creó Winium. Winium es una solución de código abierto para la automatización de pruebas de aplicaciones de Windows Desktop y Windows Phone o Mobile. Winium se basa en el selenio, por lo que debería ser relativamente fácil comenzar a usarlo para tus necesidades de automatización si ya sabes usar Selenium o Appium, se puede integrar en tu infraestructura de selenio existente. En la charla, presentaré proyectos que componen Winium y demostraré tanto Winium.Desktop como Winium.Mobile en acción.

El lado peculiar de los ensayos

Brian Vanpee (Google)

Vínculos: Video, Presentaciones

No todos los errores son iguales. A veces, las peculiaridades de los lenguajes de programación que usamos son las culpables, y encontrar a menudo ha confundido incluso a los mejores programadores y verificadores. Únete a nosotros para echar un vistazo a lo peculiar de las pruebas con algunos ejemplos seleccionados de muchos de los lenguajes que usamos todos los días. Por último, te desafiaremos a tratar de adivinar la particularidad mientras presentamos una serie de ejemplos extraños que se encuentran en lenguajes como C, Java, Objective-C, PHP y JavaScript favorito de todos.

Algoritmo del AA para configurar el entorno de pruebas en dispositivos móviles

Rajkumar Bhojan (tecnología de Wipro)

Vínculos: Video, Presentaciones

Debido al rápido avance de la tecnología de computación para dispositivos móviles, existe una demanda significativa de pruebas de aplicaciones para estos dispositivos. La Administración de dispositivos móviles desempeña un papel fundamental en las pruebas de apps para dispositivos móviles y la comprensión de los desafíos en la Administración de dispositivos móviles es tan importante como resolverlos. Para evitar problemas específicos del dispositivo, los desarrolladores de automatización de pruebas deben probar sus apps en una gran cantidad de dispositivos, lo que es ineficiente y costoso. En esta charla, mostramos cómo el algoritmo de aprendizaje automático puede identificar el conjunto correcto de dispositivos para configurar el entorno de pruebas en dispositivos móviles.

"¿Puedes escucharme?" - Sobrevivir a las pruebas de calidad de audio

Alexander Brauckman y Dan Hislop (Citrix)

Vínculos: Video, Presentaciones

IATF: Un nuevo marco de trabajo automatizado para las pruebas multiplataforma y de múltiples dispositivos

Yanbin Zhang (Intel)

Vínculos: Video, Presentaciones

A fin de facilitar la adopción de la tecnología WebRTC y ponerla a disposición de la gente para que expanda o cree nuevas aplicaciones, Intel desarrolló la solución de extremo a extremo de WebRTC, Intel® Collaboration Suite for WebRTC. En la actualidad, Intel ya establece un ecosistema cada vez más grande de Intel® Collaboration Suite para WebRTC en todo el mundo. La cooperación abarca varias áreas, como la educación, la medicina, la nube del sector, la emisión en línea de redes sociales, las videoconferencias, el wearable, etc. La rápida expansión de las plataformas compatibles con las API de SDK hace que el esfuerzo de prueba de integración y compatibilidad entre plataformas aumente de manera explosiva. Cómo probar automáticamente la interoperabilidad en esos SDK en distintas plataformas se convierte en un gran problema. En esta charla, presentaremos el framework automatizado de varias plataformas y la API de dispositivos múltiples IATF. Se puede adoptar para cualquier prueba del SDK en varios dispositivos y multiplataforma que necesite comunicarse entre diferentes plataformas.

Cómo usar el análisis formal de conceptos en las pruebas de software

Fedor Strok (Yandex/NRU HSE)

Vínculos: Video, Presentaciones

El análisis de conceptos formal nos proporciona una caja de herramientas para crear ontología formal sobre el conjunto de objetos con descripciones (expresadas como un conjunto de atributos). Esta rama de la teoría algebraica se introdujo en 1984 y ahora se aplica a una gran variedad de tareas de minería de datos. Esta charla se centra en técnicas que podrían ser especialmente valiosas para la prueba de software: el uso de ontología formal para informes de prueba convenientes y la derivación de casos de prueba semiautomáticos.

Cómo las pruebas inestables en la integración continua: Práctica actual en Google y en Future Directions

John Micco (Google)

y

Atif Memon (Universidad de Maryland, College Park)

Vínculos: Video, Presentaciones

Google tiene un enorme corpus de pruebas que ejecutamos de forma continua en nuestro enorme sistema de integración continua. A partir de estos datos, descubrimos que las pruebas inestables nos generan muchos desperdicios en varias dimensiones diferentes. Estamos trabajando para mejorar nuestra capacidad de comprender el impacto, detectar y mitigar el nivel inherente de inestabilidad que observamos en nuestro sistema.

¡La experiencia del desarrollador, FTW!

Niranjan Tulpule (Google)

Vínculos: Video, Presentaciones

Granja de prueba de dispersión geográfica basada en Docker: Práctica de infraestructura de pruebas en el programa Intel para Android

Jerry Yu (Intel) y Guobing Chen (Intel)

Vínculos: Video, Presentaciones

OpenHTF: El framework de prueba de hardware de código abierto

Joe Ethier (Google) y John Hawley (Google)

Vínculos: Video, Presentaciones

Se redireccionó la generación de pruebas para detectar ineficiencias en los bucles

Monika Dhok (Indian Institute of Science)

Vínculos: Video, Presentaciones

Se ha identificado un recorrido redundante de bucles como fuente de errores de rendimiento en muchas bibliotecas de Java. Esto dio como resultado el diseño de técnicas de análisis estáticas y dinámicas para detectar estos errores de rendimiento automáticamente. Sin embargo, aunque la eficacia de los análisis dinámicos depende de las pruebas de entrada analizadas, los análisis estáticos son menos eficaces para validar automáticamente la presencia de estos problemas, validar las correcciones y evitar regresiones en versiones futuras. Proponemos un enfoque novedoso para generar pruebas de forma automática a fin de detectar ineficiencias de bucles en las bibliotecas de Java. Esta charla ofrece una breve descripción general de esta obra.

Necesidad de velocidad: Acelera las pruebas de automatización de 3 horas a 3 minutos

Emanuil Slavov (Komfo Inc)

Vínculos: Video, Presentaciones

Todas las pruebas automatizadas de alto nivel son lentas para el entorno acelerado de hoy en primer lugar. Este es el elefante en la sala que todos ignoran. Y por una buena razón. Lograr pruebas automatizadas rápidas, confiables y útiles es un trabajo duro. Sin embargo, no tienes otra opción, ya que con las pruebas automatizadas lentas, solo estás enviando residuos a tus clientes más rápido. En Komfo, se ejecutaban pruebas por más de 3 horas cada noche. El tiempo de ejecución siguió creciendo sin restricciones. Las pruebas se estaban convirtiendo en inestables y no se podían usar como bucle de retroalimentación. En un momento, las pruebas fallaron por más de 20 días seguidos. Los errores de regresión comenzaron a aparecer en producción. Decidimos detener esta locura y, después de un esfuerzo y dedicación considerables, las mismas pruebas se ejecutan durante menos de 3 minutos. Esta es la historia de la mejora continua de cómo logramos pruebas 60 veces más rápidas.

La cobertura de código es un predictor sólido de la eficacia del conjunto de pruebas en el mundo real

Rahul Gopinath (Universidad Estatal de Oregón)

Vínculos: Video, Presentaciones

ClusterRunner: Simplifica los comentarios rápidos de prueba mediante el escalamiento horizontal

Taejun Lee (Box Inc.) y Joseph Harrington (Box Inc.)

Vínculos: Video, Presentaciones

La caja se ejecuta en unas treinta horas de unidades y pruebas de integración en cada confirmación. Los paralelizamos para que se ejecuten en menos de 17 minutos con nuestra plataforma de distribución de pruebas de código abierto, ClusterRunner. ¿Por qué Box tiene tantas pruebas? ¿Cómo funciona ClusterRunner? ¿Es fácil configurar ClusterRunner para tus propias pruebas? (Spoiler: Sí). ClusterRunner te proporciona comentarios de prueba increíblemente rápidos mediante la paralelización de pruebas en un solo host y la distribución entre muchos hosts. Desarrollados por el equipo de Ingeniería de Productividad de Box, usamos ClusterRunner de forma interna para ejecutar un conjunto de más de treinta horas lineales de pruebas en 17 minutos, y lo hacemos cientos de veces al día. ClusterRunner es de código abierto y no depende del lenguaje, por lo que puedes usarlo fácilmente para tu propio proyecto. Creamos ClusterRunner para los equipos de ingeniería que tienen dificultades con los comentarios de prueba largos o el código que no se probó. Lo diseñamos desde abajo hacia arriba para que sea fácil de usar y pueda integrarse con tu sistema de CI existente. Además, aprende cuánto tardan en ejecutarse las pruebas y programa las ejecuciones futuras según corresponda para entregar comentarios lo más rápido posible. Sus componentes se comunican a través de una API de REST amigable, lo que la hace accesible y extensible.

Pruebas de integración con varios dispositivos móviles y servicios

Alexander Dorokhine (Google) y Ang Li (Google)

Vínculos: Video, Presentaciones

Mobly es un framework de código abierto desarrollado por Google para probar productos que requieren interacciones entre varios dispositivos, como apps sociales; o pruebas que requieren controlar el entorno de pruebas, como la conexión Wi-Fi. Analizaremos en qué se diferencian las pruebas de varios dispositivos de las que se prueban en un solo dispositivo y sus problemas únicos, como la sincronización y el flujo de código entre varios dispositivos, y cómo los resuelve Mobly.

Escala frente a valor: Prueba de automatización en la BBC

Jitesh Gosai (BBC) y David Buckhurst (BBC)

Vínculos: Video, Presentaciones

Desarrollamos una nube interna de dispositivo de código abierto para escalar las pruebas de nuestras aplicaciones para dispositivos móviles y de TV, pero rápidamente se convirtió en un monstruo que nos obligó a repensar nuestro enfoque para la automatización y a encontrar el equilibrio correcto entre escala y valor. Descubre cómo superamos los desafíos de las pruebas en el dispositivo con la automatización enfocada y la propiedad compartida. Además, descubre cómo compilar tu propia nube interna de dispositivo y aprovechar nuestras herramientas de código abierto.

Cómo buscar errores en bibliotecas C++ con LibFuzzer

Kostya Serebryany (Google)

Vínculos: Video, Presentaciones

Cómo aprendí a bloquear un servidor

Jonathan Abrahams (MongoDB)

Vínculos: Video, Presentaciones

Descubre cómo probamos la solidez del servidor de MongoDB para sobrevivir a varias situaciones de fallas del sistema. Obtén información sobre cómo pudimos automatizar la falla de un servidor de cualquier tipo de configuración del host y del SO (físico o virtual).