GTAC 2014: présentations

Tous les enregistrements vidéo et les diapositives de la conférence GTAC 2014 sont accessibles au public. Vous pouvez les regarder dans la playlist YouTube GTAC 2014 ou dans les conférences ci-dessous :

Discours d'ouverture

Sonal Shah (Google)

Discours d'ouverture : avancer vite et ne pas rien briser

Ankit Mehta (Google)

Liens : Vidéo, Slides

L'automatisation pour un Web meilleur

James Graham (Mozilla)

Le Web est la plate-forme d'applications la plus populaire au monde, mais une mauvaise interopérabilité avec les navigateurs est une cause trop fréquente de déception et de frustration chez les développeurs Web. Pour essayer d'améliorer cette situation, le W3C a aidé la communauté à produire une suite de tests multi-navigateurs et mise à jour en continu pour le Web ouvert. Au cours de cette conférence, James va nous présenter les tests de la plate-forme Web et décrire les outils que nous avons créés pour piloter l'automatisation des tests sur une variété de navigateurs pour ordinateur et sur les appareils mobiles exécutant Firefox OS. Il va vous montrer comment ce logiciel a été conçu pour relever les défis liés à l'exécution d'une suite de tests en externe, fréquemment mise à jour sur des centaines de commits par jour dans le système d'intégration continue de Mozilla.

Liens : Vidéo, Slides

Faites de Chrome le meilleur navigateur mobile

Karin Lundberg (Google)

L'une des raisons de la réussite de Chrome est l'un des principes fondamentaux de la vitesse, de la stabilité, de la simplicité et de la sécurité (les quatre S). Lorsque nous avons lancé Chrome pour Android et iOS, nous avons appliqué les quatre S au navigateur, mais aussi à la manière dont nous effectuons les tests automatisés et le type de tests que nous effectuons:

  • La vitesse est conçue pour effectuer des tests de performances et des tests rapides.
  • La stabilité est destinée aux tests de stabilité et aux tests stables.
  • La simplicité permet de tester que Chrome offre une expérience utilisateur simple, et de faciliter l'ajout et l'exécution de tests.
  • La sécurité est réservée aux tests de sécurité.

Liens : Vidéo, Slides

Test de langage d'automatisation pour les modèles de comportement

Nan Li (solutions Medidata)

Les testeurs basés sur des modèles conçoivent des tests abstraits en termes de modèles, comme les chemins dans les graphiques. Les tests abstraits doivent ensuite être convertis en tests concrets, définis en termes d'implémentation. La transformation des tests abstraits en tests concrets doit être automatisée. Les techniques de test existantes basées sur des modèles pour les modèles comportementaux utilisent de nombreux diagrammes supplémentaires, comme des schémas de classe et de cas d'utilisation, pour la transformation et la génération de tests. Ils sont très compliqués à utiliser en pratique, car les testeurs doivent systématiquement harmoniser tous les diagrammes associés, même lorsque les exigences changent fréquemment.

Cette présentation présente un langage d'automatisation des tests permettant aux testeurs de générer des tests à l'aide d'un seul modèle de comportement, comme un diagramme de la machine d'état. Trois problèmes seront résolus: (1) créer des mappages entre les modèles et le code de test exécutable, et générer des valeurs de test, (2) transformer des graphiques et utiliser des critères de couverture pour générer des chemins de test, et (3) résoudre des contraintes et générer des tests concrets.

Liens : Vidéo, Slides

Couverture des tests chez Google

Andrei Chirila (Google)

Vous êtes-vous déjà demandé à quoi ressemble les tests chez Google ? Quels sont les outils que nous utilisons pour nous aider, et comment mesurer et traiter la couverture de test ? Nous décrirons brièvement le processus de développement chez Google, puis nous nous concentrerons sur l'utilisation de la mesure de la couverture de code et sur la manière dont nous l'exploitons pour améliorer la qualité du code et la productivité des ingénieurs. Pour finir, nous présenterons la grande quantité de données de couverture, couvrant plus de 100 000 commits que nous avons collectés et des conclusions plus largement applicables.

Liens : Vidéo, Slides

CATJS: des applications qui se testent

Ran Snir (HP) et Lior Reuven (HP)

Ces dernières années, nous avons constaté de nombreuses anomalies qui ont changé notre manière de penser le monde de l'informatique. Il existe des imprimantes 3D qui impriment des imprimantes 3D, des robots qui pensent par eux-mêmes, puis nous avons du code catjs.

Catjs est un framework Open Source qui permet aux applications Web mobile de se tester. Les annotations simples de votre code HTML5 seront traduites en scripts de test intégrés dans le cycle de vie de l'application. Ces tests Web mobile peuvent être exécutés sur n'importe quel appareil, système d'exploitation et navigateur. Catjs est un moyen simple et rapide de gérer le flux de test de votre application.

Liens : Vidéo, Slides

Intégration continue évolutive avec l'Open Source

Vishal Arora (Dropbox)

De nombreux outils Open Source sont disponibles pour l'intégration continue (CI). Quelques-uns fonctionnent bien à grande échelle. Et presque aucun n'est conçu pour évoluer dans un environnement distribué. Découvrez les défis liés à l'implémentation de l'intégration continue à grande échelle et une manière d'utiliser des composants Open Source pour créer rapidement votre propre système CI évolutif et distribué.

Liens : Vidéo, Slides

Je ne teste pas souvent ... Mais quand je le fais, je teste en production

Gareth Bowles (Netflix)

Chaque jour, Netflix compte plus de clients qui consultent davantage de contenus sur un nombre croissant d'appareils clients. Nous innovons également en permanence pour améliorer l'expérience de nos clients. Dans un environnement qui évolue aussi rapidement, les tests représentent un défi considérable. Nous en avons conclu que l'exécution de tests dans notre environnement de production était souvent le moyen le plus efficace de valider ces modifications. Nous allons aborder trois méthodes de test que nous utilisons en production: la simulation de toutes sortes d'indisponibilités sur l'armée de Simian, la recherche de régressions à l'aide de versions Canary et la mesure de l'efficacité des tests avec l'analyse de la couverture du code en production.

Liens : Vidéo, Slides

Importance des tests automatisés sur les appareils mobiles réels et virtuels

Jay Srinivasan (Google) et Manish Lachwani (Google)

Par rapport au monde Web, les tests mobiles sont un domaine qui vous appartient. En fonction des appareils, des systèmes d'exploitation, des réseaux et des emplacements, les développeurs semblent avoir un nombre illimité de variables à prendre en compte. Au cours de cette session de formation, nous aborderons certains des défis uniques liés à l'optimisation des performances et de la qualité des applications mobiles, ainsi que les stratégies permettant de les surmonter, y compris le besoin d'automatisation, de véritables appareils et des conditions réelles d'utilisation.

Liens : Vidéo, Slides

Les tests sans frais sont plus efficaces que les bananes sans frais: utiliser l'exploration de données et le machine learning pour automatiser la surveillance de la production en temps réel

Çal Ziftci (Google)

Il existe de plus en plus d'intérêt pour l'exploitation des techniques d'exploration de données et de machine learning dans l'analyse, la maintenance et les tests des systèmes logiciels. Lors de cette conférence, Ill vous expliquera comment nous utilisons ces techniques pour explorer automatiquement les invariants de système et les surveiller en temps réel afin d'alerter les ingénieurs en cas de problèmes de production potentiels.

Nous parlerons de deux outils que nous utilisons en interne et de la manière dont nous les associons pour offrir aux ingénieurs un contrôle en temps réel de la production presque sans frais:

  1. Un outil qui permet d'exploiter les invariants du système
  2. Un outil qui surveille les systèmes de production et utilise le premier outil pour générer automatiquement une partie de la logique qu'il utilise pour identifier les problèmes potentiels en temps réel.

Liens : Vidéo, Slides

Tester l'automatisation sur un boîtier décodeur infrarouge

Olivier Etienne (orange)

Cette vidéo explique le contexte d'une application TV et le type de problèmes que nous pouvons rencontrer lorsque nous essayons d'automatiser les choses. Il a étudié les échecs précédents, son approche et les principaux points essentiels pour créer un outil de test automatique. Si le temps le permet, il approfondira les détails de l'implémentation.

Découvrez comment quelques soudeurs et quelques lignes de code ont ouvert le monde des tests Web.

Liens : Vidéo, Slides

Le défi de comparer équitablement les fournisseurs de services cloud et nos efforts

Anthony Volelm (Google)

Cette conférence porte sur l'histoire de l'analyse comparative entre le mainframe et le cloud. L'objectif est de poser des bases pour savoir où les benchmarks ont commencé et comment ils sont arrivés là où ils se trouvent. Nous partagerons des idées pour l'avenir de l'analyse comparative du cloud et expliquerons comment le mettre en pratique.

Liens : Vidéo, Slides

N'envoyez jamais un humain à personne: comment Facebook utilise des bots pour gérer les tests

Roy Williams (Facebook)

Facebook n'a pas d'organisation test, les développeurs sont propriétaires de tout, de l'écriture de leur code au test en passant par la mise en production. Cela ne veut pas dire que nous ne effectuons pas de tests. Pour ce faire, nous avons automatisé le cycle de vie des tests afin de maintenir un signal élevé et faible. Les nouveaux tests sont considérés comme non fiables et irréguliers sont rapidement éliminés de l'arborescence. Nous verrons ce qui a fonctionné et ce qui ne fonctionne pas pour instaurer un climat de confiance dans les tests.

Liens : Vidéo, Slides

Espresso, Spoon, Wiremock, Oh my! ( ou comment j'ai appris à ne plus m'inquiéter et à aimer les tests Android )

Michael Bailey (American Express)

Découvrez comment créer et exécuter des tests d'interface utilisateur Android automatisés rapides et fiables. Parmi les outils disponibles, citons Espresso, Spoon, Wiremock et Jenkins. Vous devez posséder des connaissances de base en développement Android et Java.

Liens : Vidéo, Slides

Google BigQuery Analytics

Brian Vance (Google)

BigQuery est le service interactif de big data de Google Cloud. Les utilisateurs peuvent analyser des téraoctets de données en quelques secondes à l'aide de requêtes de type SQL. Il repose sur Dremel, que les testeurs Google utilisent en interne depuis des années. Nous allons examiner quelques exemples pour vous aider à faire vos premiers pas avec BigQuery.

Liens : Vidéo, Slides

Selendroid – Selenium pour Android

Dominik Dary (Adobe)

Selendroid est un framework d'automatisation des tests Open Source qui s'appuie sur l'interface utilisateur des applications natives et hybrides Android, ainsi que sur le Web mobile. Les tests sont écrits à l'aide de l'API cliente Selenium 2. Pour automatiser les tests, aucune modification de l'application n'est requise.

Cette présentation montre aux participants à quel point il est facile d'automatiser les tests sur mobile. Il explique comment utiliser Selendroid pour tester des applications Android natives et hybrides, et comment utiliser la grille Selenium pour effectuer des tests en parallèle sur plusieurs appareils. Il aborde également des sujets tels que l'extension de Selendroid lui-même au moment de l'exécution et les tests multiplates-formes.

Liens : Vidéo, Slides

Maintenir un esprit sain dans le monde des hypermédias

Amit Easow (Comcast)

Alors que Comcast est devenu un fabricant de câbles et un leader des médias et de la technologie, les équipes d'ingénieurs se sont également améliorées. Lorsque Amit a rejoint Comcast Interactive Media (CIM) en 2006, il s'agissait d'un atelier de test manuel. Après l'expédition de son premier site Web en 2007, il a commencé à créer des prototypes pour une infrastructure automatisée de test d'interface utilisateur. Il a découvert le Selenium lors du GTAC 2008, puis est retourné chez Comcast pour créer une infrastructure de test automatisée avec Selenium Grid, Hudson et Subversion. Aujourd'hui, il travaille sur les tests d'API et les déploiements en production tous les jours de la semaine. Tout cela est possible avec Python, Git, Gerrit et Anthill.

Liens : Vidéo, Slides

Plus vite et plus vite avec MSL !

Bryan Robbins (FINRA) et Daniel Koo (FINRA)

Fournir des logiciels plus rapidement sans compromettre la qualité n'est pas une tâche facile. Nous souhaitons tous évoluer rapidement en développant des tests à l'avance et en les exécutant plus rapidement, avec une empreinte de maintenance minimale. Chez FINRA, nous avons développé MSL (prononcé "Missile") pour permettre aux équipes Agile d'utiliser plus rapidement et plus rapidement des architectures multicouches comme MVC.

MSL permet de tester l'intégration du code de l'interface utilisateur (JavaScript, HTML, CSS, par exemple) en le déployant localement sur un serveur Node.js et en configurant des réponses HTTP fictives à partir de l'un de nos clients (Java, JavaScript ou Node.js). Cette présentation présente les principales fonctionnalités de MSL à l'aide de quelques exemples.

Liens : Vidéo, Slides

Test de l'expérience utilisateur

Alex Eagle (Google)

Les produits Google sortent fréquemment, ce qui nécessite des tests automatisés poussés et un processus de compilation. Nous mettons tout en œuvre pour proposer notre infrastructure de test dans Google Cloud Platform. Cette discussion évoquera certaines des méthodologies que nous utilisons pour protéger nos bâtiments et nos produits, tout en donnant un aperçu de notre façon de les proposer au monde entier.

Liens : Vidéo, Slides

Table ronde 1 : Tests multiplates-formes mobiles

Liens : Vidéo, Slides

Table ronde 2 : Couverture des documents automatisés

Liens : Vidéo, Slides

Impact de la structure de la communauté sur les performances du solutionneur SAT

Zack Newsham (université de Waterloo)

Les solutionneurs SAT CDCL modernes résolvent régulièrement les très grandes instances SAT industrielles en très peu de temps. Il est évident que ces outils exploitent la structure des instances réelles. À ce jour, peu de résultats caractérisent cette structure avec précision. Ce document fournit la preuve que la structure communautaire des instances SAT réelles est liée au temps d'exécution des solutionneurs SAT CDCL. Il est connu depuis un certain temps que les instances SAT réelles, représentées par des graphiques, comprennent des communautés naturelles. Une communauté est un sous-graphique du graphique d'une instance SAT. Ainsi, ce sous-graphique comporte plus d'arêtes internes que d'éléments sortants vers le reste du graphique. La structure de la communauté d'un graphique se caractérise souvent par une métrique de qualité appelée Q. Intuitivement, un graphique présentant une structure de haute qualité (Q élevé) peut facilement être divisé en communautés plus petites, contrairement à celui qui a un Q faible. Nous fournissons trois résultats basés sur des données empiriques qui montrent que la structure communautaire des instances industrielles réelles est un meilleur indicateur de la durée d'exécution des solutionneurs CDCL que les autres facteurs couramment pris en compte tels que les variables et les clauses. Tout d'abord, nous constatons une forte corrélation entre la valeur Q et la métrique de distance de bloc littérale de la qualité des clauses de conflit utilisées dans les règles de suppression de clauses dans les solutionneurs semblables à ceux du glucose. Ensuite, l'analyse de la régression montre que le nombre de communautés et la valeur Q du graphique des instances SAT réelles sont plus prédictifs du temps d'exécution des solutionneurs CDCL que les métriques traditionnelles telles que le nombre de variables ou de clauses. Enfin, nous constatons que les instances SAT générées de manière aléatoire avec un taux de 0,05 ≤ Q ≤ 0,13 sont considérablement plus difficiles à résoudre pour les solutionneurs CDCL.

Liens : Vidéo, Slides

Au-delà de la couverture: quels sont les inconvénients des suites de test ?

Patrick Lam (université de Waterloo)

Nous souhaitons tous des "meilleures" suites de test. Mais qu'est-ce qu'une bonne suite de tests ? Les suites de tests doivent certainement viser une bonne couverture, au moins au niveau de la couverture des déclarations. Pour être utiles, les suites de tests doivent s'exécuter suffisamment rapidement pour fournir des retours en temps voulu.

Lors de cette conférence, nous examinerons d'autres dimensions sur lesquelles évaluer des suites de tests. L'argumentaire affirme que de meilleures suites de tests sont plus faciles à gérer et à utiliser (par exemple, parce qu'elles s'exécutent plus rapidement ou utilisent moins de ressources) et présentent moins d'échecs injustifiés. Au cours de cette présentation, je présenterai et synthétiserai des informations sur 10 suites de test Open Source (de 8 000 à 246 000 lignes de code) et évaluerai leurs performances.

Liens : Vidéo, Slides

Environnement: nettoyer l'environnement mobile toxique

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

Nous vous présenterons des outils et des techniques permettant de créer des environnements de test rapides, stables et hermétiques pour exécuter des tests Android en mode développement interactif et en intégration continue. Cette présentation s'appuie sur la présentation générale présentée lors de la dernière GTAC.

Liens : Vidéo, Slides