GTAC 2014: Presentaciones

Todas las grabaciones y diapositivas de video de GTAC 2014 están disponibles para el público. Puedes verlos en la lista de reproducción de GTAC 2014 o explorar las siguientes charlas:

Comentarios de apertura

Sonal Shah (Google)

Discurso de apertura: Moverse rápido y no romper cosas

Ankit Mehta (Google)

Vínculos: Video, Presentaciones

Automatización para mejorar la Web

James Graham (Mozilla)

La Web es la plataforma de aplicaciones más popular del mundo, pero una interoperabilidad con navegadores deficientes es una causa demasiado común de desconfianza y frustración entre los desarrolladores web. Con el fin de tratar de mejorar esta situación, el W3C ha facilitado un esfuerzo de la comunidad a fin de producir un paquete de prueba continuo para varios navegadores y la Web abierta; la Web-platform-tests. En esta charla, James presentará las pruebas de la plataforma web y describirá las herramientas que creamos para impulsar la automatización de las pruebas en una variedad de navegadores de escritorio y en dispositivos móviles con Firefox OS. Asimismo, mostrará cómo se diseñó este software para cumplir con los desafíos de ejecutar un conjunto de pruebas de código abierto y actualización frecuente en cientos de confirmaciones al día que se ejecutan en el sistema de integración continua de Mozilla.

Vínculos: Video, Presentaciones

Haz que Chrome sea el mejor navegador móvil

Karin Lundberg (Google)

Uno de los motivos del éxito de Chrome fueron sus principios fundamentales de velocidad, estabilidad, simplicidad y seguridad (las 4 s). Cuando lanzamos Chrome para iOS y Android, no solo aplicamos las cuatro S al navegador en sí, sino también la manera en que realizamos las pruebas automatizadas y el tipo de pruebas que ejecutamos:

  • La velocidad es para las pruebas de rendimiento y las pruebas rápidas.
  • La estabilidad es para las pruebas de estabilidad y las pruebas estables.
  • La simpleza es probar que Chrome tiene una experiencia del usuario simple y agregar y ejecutar pruebas.
  • La seguridad es para las pruebas de seguridad.

Vínculos: Video, Presentaciones

Un lenguaje de automatización de pruebas para modelos de comportamiento

Nan Li (Soluciones de MediData)

Los verificadores basados en modelos diseñan pruebas abstractas en términos de modelos, como rutas en gráficos. Luego, las pruebas abstractas deben convertirse en pruebas concretas, que se definen en términos de implementación. La transformación de pruebas abstractas a pruebas concretas debe automatizarse. Las técnicas de prueba basadas en modelos existentes para modelos de comportamiento usan muchos diagramas adicionales, como los diagramas de clase y de caso de uso, a fin de transformar y generar pruebas. Son muy difíciles de usar en la práctica porque los verificadores deben hacer que todos los diagramas relacionados sean coherentes, incluso cuando se cambian los requisitos con frecuencia.

En esta charla, se presenta un lenguaje de automatización de pruebas para permitir que los verificadores generen pruebas con solo un modelo de comportamiento, como un diagrama de máquina de estado. Se abordarán tres problemas: (1) creación de asignaciones desde modelos a código de prueba ejecutable y generación de valores de prueba, (2) transformación de grafos y uso de criterios de cobertura para generar rutas de prueba, y (3) resolución de restricciones y generación de pruebas concretas.

Vínculos: Video, Presentaciones

Prueba la cobertura en Google

Andrei Chirila (Google)

¿Alguna vez te preguntaste cómo se ven las pruebas en Google? ¿Qué herramientas utilizamos para ayudarnos y cómo medimos la cobertura de las pruebas y tomamos medidas al respecto? Describiremos brevemente el proceso de desarrollo en Google y, luego, nos centraremos en el uso de la medición de la cobertura de código y la manera en que usamos la cobertura de código para mejorar la calidad del código y la productividad de la ingeniería. Al final, presentaremos la gran cantidad de datos de cobertura, que abarcan más de 100,000 confirmaciones, recopilamos y llegamos a algunas conclusiones más ampliamente aplicables.

Vínculos: Video, Presentaciones

CATJS: Aplicaciones que prueban a sí mismas

Ran Snir (HP) y Reordeado (HP)

En los últimos años, hemos visto muchas anomalías que han cambiado nuestra forma de pensar acerca del mundo de la computación. Existen impresoras 3D que imprimen impresoras 3D, robots que piensan por sí solos y luego tenemos catjs.

catjs es un marco de trabajo de código abierto que agrega la posibilidad de que las aplicaciones web para celulares se prueben a sí mismas. Las anotaciones simples en su código HTML5 se traducirán a secuencias de comandos de pruebas incorporadas dentro del ciclo de vida de la aplicación. Estas pruebas web y para dispositivos móviles se pueden ejecutar en cualquier dispositivo, sistema operativo y navegador. El catjs es una forma rápida y sencilla de realizar el control del flujo de pruebas de su aplicación.

Vínculos: Video, Presentaciones

Integración continua y escalable: uso de código abierto

Vishal Arora (Dropbox)

Hay muchas herramientas de código abierto disponibles para la integración continua (CI). Solo unos pocos funcionan bien a gran escala. Además, casi ninguna está diseñada para escalar en un entorno distribuido. Descubre los desafíos de implementar la CI a gran escala y una forma de combinar las piezas de código abierto para compilar con rapidez tu propio sistema de CI distribuido y escalable.

Vínculos: Video, Presentaciones

No realizo pruebas con frecuencia ... Pero cuando lo hago, lo hago en producción

Gareth Bowles (Netflix)

Cada día, Netflix tiene más clientes que consumen más contenido en una cantidad creciente de dispositivos cliente. Además, innovamos constantemente para mejorar la experiencia de nuestros clientes. Realizar pruebas en un entorno con cambios tan rápidos es un gran desafío, y hemos concluido que ejecutar pruebas en nuestro entorno de producción suele ser la manera más eficiente de validar esos cambios. En esta charla, se abordarán tres métodos de prueba que utilizamos en la producción: simular todo tipo de interrupciones con el Ejército Simiano, buscar regresiones mediante versiones canary y medir la eficacia de las pruebas con el análisis de cobertura de código de la producción.

Vínculos: Video, Presentaciones

La importancia de las pruebas automatizadas en dispositivos móviles reales y virtuales

Jay Srinivasan (Google) y Manish Lachwani (Google)

En comparación con el mundo web, las pruebas para dispositivos móviles son un campo de minas. Aparentemente, existe una cantidad infinita de variables que los desarrolladores deben tener en cuenta a partir de diferentes dispositivos, sistemas operativos, redes y ubicaciones. En esta sesión educativa, analizaremos algunos de los desafíos singulares que conlleva optimizar el rendimiento y la calidad de las apps para dispositivos móviles, además de estrategias para abordarlas, como la necesidad de automatización, dispositivos reales y condiciones de usuario reales.

Vínculos: Video, Presentaciones

Las pruebas gratuitas son mejores que las bananas gratis: usar la minería de datos y el aprendizaje automático para automatizar la supervisión de la producción en tiempo real

Celal Ziftci (Google)

Cada vez hay más interés en aprovechar las técnicas de minería de datos y aprendizaje automático en los análisis, el mantenimiento y las pruebas de sistemas de software. En esta charla, Celal analizará cómo utilizamos dichas técnicas para extraer automáticamente las variantes del sistema, cómo usarlas para supervisar nuestros sistemas en tiempo real y alertar a los ingenieros sobre cualquier problema potencial de producción en cuestión de minutos.

La charla constará de dos herramientas que utilizamos internamente y cómo las combinamos para proporcionar supervisión de producción en tiempo real a los ingenieros casi de manera gratuita:

  1. Es una herramienta que puede extraer variantes del sistema.
  2. Una herramienta que supervisa los sistemas de producción y utiliza la primera herramienta para generar automáticamente parte de la lógica que utiliza para identificar posibles problemas en tiempo real.

Vínculos: Video, Presentaciones

Automatización de pruebas en un decodificador infrarrojo

Olivier Etienne (naranja)

En esta charla, se explica el contexto de una app para TV, así como los tipos de problemas que pueden surgir al intentar automatizar el proceso. Olivier repasará los errores anteriores, su enfoque y cuáles fueron los puntos clave para compilar una herramienta de prueba automática. Si el tiempo lo permite, profundizará en los detalles de la implementación.

Ven a escuchar cómo algunos soldados y algunas líneas de código han abierto un mundo de pruebas web en un decodificador.

Vínculos: Video, Presentaciones

El desafío de la comparación justa de proveedores de servicios en la nube y lo que estamos haciendo al respecto

Anthony Voellm (Google)

Esta charla abarcará el historial de comparativas desde la unidad central hasta Cloud. El objetivo es establecer una base sobre dónde comenzaron las comparativas y cómo llegaron a ese lugar. Se prepararán ideas para el futuro de las comparativas de Cloud y cómo podemos hacerlo de forma práctica.

Vínculos: Video, Presentaciones

Nunca envíes a una persona para que haga un trabajo: cómo Facebook usa bots para administrar pruebas

Roy Williams (Facebook)

Facebook no tiene una organización de prueba, los desarrolladores son propietarios de todo, desde escribir su código hasta probarlo y pegarlo en producción. Eso no significa que no realicemos pruebas. La forma en que realizamos esta escala fue automatizando el ciclo de vida de las pruebas para mantener la señal con un nivel alto y con poco ruido. Las pruebas nuevas se consideran poco confiables y la fragilidad se elimina rápidamente del árbol. Hablaremos sobre lo que funcionó y lo que no para generar confianza en las pruebas.

Vínculos: Video, Presentaciones

Espresso, Spoon, Wiremock, ¡Oh, no! ( o cómo aprendí a dejar de preocuparme y amar las pruebas de Android)

Michael Bailey (American Express)

Obtén información sobre cómo crear y ejecutar pruebas automatizadas de IU de Android rápidas y confiables. Las herramientas incluyen Espresso, Spoon, Wiremock y Jenkins. Se da por sentado que tienes conocimientos básicos de desarrollo para Android y Java.

Vínculos: Video, Presentaciones

Google BigQuery Analytics

Brian Vance (Google)

BigQuery es el servicio de macrodatos interactivo de Google Cloud. Los usuarios pueden analizar terabytes de datos en cuestión de segundos mediante consultas similares a las de SQL. Se basa en Dremel, un servicio que los verificadores de Google han usado internamente durante años. Explicaremos algunos ejemplos y le mostraremos cómo puede comenzar a usar BigQuery.

Vínculos: Video, Presentaciones

Selendroid, Selenium para Android

Dominik Dary (Adobe)

Selendroid es un marco de trabajo de automatización de pruebas de código abierto que impulsa la IU de las aplicaciones híbridas y nativas de Android y la Web móvil. Las pruebas se escriben con la API de cliente Selenium 2. No es necesario modificar la aplicación de prueba para automatizarla.

Esta presentación demuestra al público lo fácil que es llevar a cabo la automatización de pruebas en dispositivos móviles. Se indica cómo se puede usar Selendroid a fin de probar apps de Android híbridas y nativas, y cómo se puede usar Selenium Grid en pruebas paralelas en varios dispositivos. También se tratarán temas de avances como la extensión de Selendroid en el tiempo de ejecución y la realización de pruebas en varias plataformas.

Vínculos: Video, Presentaciones

Mantener la sanidad en un mundo de hipermedias

Amit Easow (Comcast)

A medida que Comcast pasó de ser una empresa de cable a ser líder de medios y tecnología, los equipos de ingeniería también se volvieron más inteligentes. Cuando Amit se unió a Comcast Interactive Media (CIM) en 2006, era una tienda de pruebas manuales. Después de que enviaron su primer sitio web en 2007, comenzó a crear prototipos para una infraestructura de pruebas de IU automatizada. Fue conocido por Selenium en el GTAC de 2008 y luego regresó a Comcast para desarrollar una infraestructura de pruebas automatizada con Selenium Grid, Hudson y Subversion. Actualmente, trabaja en pruebas de API con implementaciones en producción todos los días de semana. Esto es posible con Python, Git, Gerrit y Anthill.

Vínculos: Video, Presentaciones

¡Despierte el fuego más pronto y más rápido con MSL!

Bryan Robbins (FINRA) y Daniel Koo (FINRA)

Entregar el software más rápido sin comprometer la calidad no es una tarea trivial. Todos queremos avanzar a gran velocidad. Para ello, desarrollamos las pruebas con anticipación y las ejecutamos más rápido, con un mantenimiento mínimo. En FINRA, desarrollamos MSL (se pronuncia "Missile") para permitir que los equipos de Agile aprovechen arquitecturas en capas, como MVC, a fin de probar el código de la IU con mayor rapidez y de forma aislada.

MSL admite pruebas de integración del código de IU (como JavaScript, HTML y CSS) mediante la implementación local en un servidor Node.js y la configuración de respuestas HTTP ficticias a partir de código de prueba mediante uno de nuestros clientes (Java, JavaScript o Node.js). En esta charla, presentaremos las funciones clave de MSL con algunos ejemplos.

Vínculos: Video, Presentaciones

La experiencia del usuario de pruebas

Alex Eagle (Google)

Los productos de Google se lanzan con frecuencia, lo que requiere pruebas automatizadas importantes y la “creación de un proceso de creación”. Ahora estamos trabajando para ofrecer nuestra infraestructura de pruebas como parte de Google Cloud Platform. En esta charla, se analizarán algunas de las metodologías que usamos para mantener nuestras compilaciones en verde y nuestros productos sin defectos, y ofreceremos una vista previa de cómo lo exponemos al mundo.

Vínculos: Video, Presentaciones

Charla 1 sobre la mesa redonda: Pruebas multiplataforma para dispositivos móviles

Vínculos: Video, Presentaciones

Charla 2 sobre la mesa redonda: Cobertura de la automatización de los documentos

Vínculos: Video, Presentaciones

Impacto de la estructura de la comunidad en el rendimiento de la resolución de SAT

Zack Newsham (Universidad de Waterloo)

Los agentes de resolución del SAT de la CDCL modernos suelen solucionar instancias de SAT demasiado grandes en la industria en períodos relativamente cortos. Está claro que estos solucionadores explotan de alguna manera la estructura de instancias del mundo real. Sin embargo, hasta la fecha, hubo pocos resultados que caracterizan precisamente esta estructura. En este artículo, proporcionamos pruebas de que la estructura comunitaria de instancias de SAT en el mundo real está correlacionada con el tiempo de ejecución de los agentes de resolución del SAT de la CDCL. Se sabe por un tiempo que las instancias reales del SAT, consideradas como gráficos, tienen comunidades naturales. Una comunidad es un subgrafo del grafo de una instancia de SAT, de modo que este subgrafo tiene más aristas internas que las salientes al resto del gráfico. La estructura de la comunidad de un gráfico a menudo se caracteriza por una métrica de calidad llamada Q. De manera intuitiva, un gráfico con estructuras de alta calidad para la comunidad (alta Q) puede separarse fácilmente en las comunidades más pequeñas, mientras que el gráfico con una Q baja no lo es. Proporcionamos tres resultados basados en datos empíricos que muestran que la estructura de la comunidad de las instancias industriales del mundo real es un predictor más claro del tiempo de ejecución de los agentes de resolución del CDCL que otros factores de uso común, como las variables y las cláusulas. En primer lugar, mostramos que hay una fuerte correlación entre el valor Q y la métrica de distancia de bloqueo literal en las cláusulas de calidad de las cláusulas de conflicto usadas en las políticas de resolución de glucosa. En segundo lugar, mediante el análisis de regresión, mostramos que la cantidad de comunidades y el valor Q del gráfico de instancias de SAT del mundo real predice mejor el tiempo de ejecución de los agentes de resolución del CDCL que las métricas tradicionales, como el número de variables o cláusulas. Por último, mostramos que las instancias de SAT generadas de forma aleatoria con un valor de 0.05 ≤ Q ≤ 0.13 son mucho más difíciles de resolver para los solucionadores de CDCL.

Vínculos: Video, Presentaciones

Más allá de la cobertura: ¿Qué esconde el grupo de los grupos de prueba?

Patrick Lam (Universidad de Waterloo)

Todos queremos paquetes de prueba “mejores”. Pero ¿qué hace que un conjunto de pruebas sea bueno? Sin duda, los paquetes de pruebas deben intentar proporcionar una buena cobertura, al menos en el nivel de cobertura del estado. Para ser útiles, los conjuntos de pruebas deben ejecutarse lo suficientemente rápido como para proporcionar comentarios oportunos.

En esta charla, se investigarán otras dimensiones sobre las que se evaluarán los conjuntos de pruebas. En la charla, se afirma que los mejores paquetes de pruebas son más fáciles de mantener, más utilizables (por ejemplo, porque se ejecutan más rápido o usan menos recursos) y tienen menos fallas injustificadas. En esta charla, voy a presentar y sintetizar acerca de 10 paquetes de pruebas de código abierto (de 8,000 a 246,000 líneas de código) y evaluar su rendimiento.

Vínculos: Video, Presentaciones

Cuida el medioambiente: limpieza del entorno tóxico para dispositivos móviles

Thomas Knych (Google), Stefan Ramsauer (Google), Valera Zakharov (Google) y Vishal Sethia (Google)

Presentaremos herramientas y técnicas para crear entornos de prueba rápidos, estables y herméticos a fin de ejecutar pruebas de Android en modos de desarrollo interactivo y de integración continua. Esto se basa en la charla de nivel superior que presentamos en el último GTAC.

Vínculos: Video, Presentaciones