GTAC 2016: apresentações

Comentários de abertura

Matt Lowrie (Google)

Evolução dos negócios de produtividade e engenharia

Manasi Joshi (Google)

Links: Vídeo, Apresentações

Nesta palestra, tentamos levar todos a acompanhar como a disciplina de produtividade em engenharia evoluiu no Google e como isso foi e é fundamental para o crescimento dos negócios do Google para avançar rapidamente, permanecer estável e fornecer muita confiança por meio de processos de desenvolvimento/lançamento/monitoramento. Também citamos alguns dos desafios que enfrentamos hoje e novos horizontes para o teste multiplataforma em uma experiência de produto altamente conectada/vertical pela qual o Google está passando.

Como automatizar a condução de robôs de telepresença

Tanya Jenkins (consultoria Cantilever)

Links: Vídeo, Apresentações

Testar a interface de condução de um dispositivo de telepresença é um desafio. Ele opera no mundo real, interage com pessoas e objetos, mas precisa ser testado em um ambiente controlado. Como você lida com a criação de um ambiente de condução remota realista, validando simultaneamente a localização e a posição do dispositivo quando não é possível vê-lo? Vou apresentar uma solução inovadora.

O que tem na sua Google Wallet?

Hima Mandali (capital One)

Links: Vídeo, Apresentações

A Capital One é uma das maiores empresas de cartão de crédito dos EUA, com mais de 70 milhões de contas. Na Capital One, estamos criando vários produtos interessantes que oferecem experiências digitais incríveis aos nossos clientes. Com os dispositivos móveis tornando-se o canal preferido para nossos clientes, esta palestra se concentrará em como resolvemos o problema da automação de teste para aplicativos da Web para dispositivos móveis e no que fizemos para entrar em um pipeline de entrega de software mais rápido. Também compartilharemos as ferramentas de código aberto que usamos e o painel de código aberto que criamos para resolver nossos problemas.

Como usar estatísticas de automação de execução de teste para prever quais testes serão executados

Boris Prikhodky (Unity Technologies)

Links: Vídeo, Apresentações

Os testes tornaram-se parte vital dos processos de desenvolvimento de aplicativos, mas o que fazer quando um salvador se tornar um gargalo na vida diária. Aqui, compartilhamos nossa experiência sobre o que fizemos quando tivemos 3 a 6 horas de tempo de espera para uma configuração de teste ser executada. Uma abordagem simples, mas poderosa, é apresentada nesta palestra, que economiza um tempo precioso com a execução de testes ecologicamente corretos em um farm de testes e criação. Formas possíveis de melhorar o processo também são abordadas.

Automação de testes baseada em selênio para Windows e Windows Phone

Nikolai Abalov (2 g)

Links: Vídeo, Apresentações

Há o Selenium para automação de testes de aplicativos da Web. Há o Appium para aplicativos para dispositivos móveis no iOS e Android. Mas, para o Windows Desktop e o Windows Phone/Mobile, tivemos que criar nossa própria solução baseada em Selenium. O Winium foi criado. O Winium é uma solução de código aberto para automação de testes de aplicativos do Windows Desktop e do Windows Phone/Mobile. O Winium é baseado em Selenium. Portanto, deve ser relativamente fácil começar a usá-lo para suas necessidades de automação, se você já conhece o Selenium ou Appium, ele pode ser integrado à sua infraestrutura de selênio existente. Na palestra, apresentarei projetos que compõem o Winium, além de demonstrar o Winium.Desktop e o Winium.Mobile em ação.

O lado dos testes de Quirkier

Brian Vanpee (Google)

Links: Vídeo, Apresentações

Nem todos os bugs são criados da mesma forma. Às vezes, as peculiaridades das linguagens de programação que usamos são culpadas, e encontrá-las muitas vezes deixou até os melhores programadores e testadores melhores. Junte-se a nós para dar uma olhada divertida no lado peculiar dos testes, mostrando alguns exemplos escolhidos a dedo de muitas das linguagens que usamos todos os dias. Por fim, vamos desafiar você a tentar adivinhar a peculiaridade ao apresentar vários exemplos excêntricos encontrados em linguagens como C, Java, Objective-C, PHP e o favorito de todos: JavaScript.

Algoritmo de ML para configurar o ambiente de teste para dispositivos móveis

Rajkumar Bhojan (tecnologias Wipro)

Links: Vídeo, Apresentações

Com o rápido avanço da tecnologia de computação móvel, há uma demanda significativa em testes de aplicativos para dispositivos móveis. O Gerenciamento de dispositivos móveis desempenha um papel vital no teste de apps para dispositivos móveis. Compreender os desafios do Gerenciamento de dispositivos móveis é tão importante quanto resolvê-los. Para evitar problemas específicos de dispositivo, os desenvolvedores de automação de teste precisam testar os apps em um grande número de dispositivos, o que é caro e ineficiente. Nesta palestra, mostramos como o algoritmo de machine learning pode identificar o conjunto certo de dispositivos para configurar o ambiente de teste móvel.

"Você consegue me ouvir?" - Sobrevivendo aos testes de qualidade de áudio

Alexander Brauckman e Dan Hislop (Citrix)

Links: Vídeo, Apresentações

IATF: uma nova estrutura automatizada de teste de API em vários dispositivos e plataformas

Yanbin Zhang (Intel)

Links: Vídeo, Apresentações

Para facilitar a adoção da tecnologia WebRTC e torná-la amplamente disponível para expansão ou criação de novos aplicativos, a Intel desenvolveu a solução WebRTC de ponta a ponta, Intel® Collaboration Suite for WebRTC. Atualmente, a Intel já estabeleceu um ecossistema crescente de Intel® Collaboration Suite para WebRTC em todo o mundo. A cooperação abrange várias áreas, incluindo educação, área médica, nuvem do setor, transmissão on-line de mídia social, videoconferência e wearable etc. O número rápido de plataformas compatíveis com APIs do SDK faz com que o esforço de teste de compatibilidade e compatibilidade entre plataformas aumente explosivamente. Como testar automaticamente a interoperabilidade entre esses SDKs em diferentes plataformas torna-se um grande problema. Nesta palestra, vamos apresentar nosso framework automatizado de teste de API em várias plataformas e dispositivos. Ele pode ser adotado para qualquer teste de SDK entre várias plataformas e dispositivos que precise de comunicação em diferentes plataformas.

Como usar a análise de conceitos formais em testes de software

Fedor Strok (Yandex/NRU HSE)

Links: Vídeo, Apresentações

A análise de conceitos formais oferece uma caixa de ferramentas para criar ontologia formal sobre o conjunto de objetos com descrições, expressas como um conjunto de atributos. Este ramo da teoria algébrica foi introduzido em 1984 e agora é aplicado a uma ampla variedade de tarefas de mineração de dados. Esta palestra se concentra em técnicas que podem ser especialmente valiosas para testes de software: usando ontologia formal para relatórios de teste convenientes e para derivação de caso de teste semiautomático.

Como testes instáveis na integração contínua: prática atual no Google e orientações futuras

John Micco (Google)

e

Atif Memon (Universidade de Maryland, College Park)

Links: Vídeo, Apresentações

O Google tem um corpus enorme de testes que são executados continuamente no nosso sistema de integração contínua. Analisando esses dados, descobrimos que testes inconsistentes causam muito desperdício em várias dimensões diferentes. Estamos trabalhando para melhorar nossa capacidade de entender o impacto, detectar e mitigar o nível instável que vemos no nosso sistema.

Experiência do desenvolvedor, FTW!

Tulpule de Niranjan (Google)

Links: Vídeo, Apresentações

Farm de teste geoespacial baseado no Docker: prática de infraestrutura de teste no programa Intel Android

Jerry Yu (Intel) e Guobing Chen (Intel)

Links: Vídeo, Apresentações

OpenHTF - a estrutura de teste de hardware de código aberto

Joe Ethier (Google) e John Hawley (Google)

Links: Vídeo, Apresentações

Geração de teste direcionada para detectar ineficiências de loop

Monika Dhok (Instituto Indiano de Ciências)

Links: Vídeo, Apresentações

A travessia redundante de loops foi identificada como uma fonte de bugs de desempenho em muitas bibliotecas Java. Isso resultou na criação de técnicas de análise estáticas e dinâmicas para detectar esses bugs de desempenho automaticamente. No entanto, embora a eficácia das análises dinâmicas dependa dos testes de entrada analisados, as análises estáticas são menos eficazes para validar automaticamente a presença desses problemas, validando as correções e evitando regressões em versões futuras. Propomos uma nova abordagem para gerar testes automaticamente e detectar ineficiências de loop em bibliotecas Java. Esta palestra fornece uma breve visão geral deste trabalho.

Necessidade de velocidade: acelere os testes de automação de 3 horas a 3 minutos

Emanuil Slavov (Komfo Inc)

Links: Vídeo, Apresentações

Todos os testes automatizados de alto nível estão lentos para o ambiente acelerado atual de primeira marcação. Este é o elefante na sala que todos ignoram. E por um bom motivo. Conseguir testes automatizados rápidos, confiáveis e úteis é uma tarefa difícil. No entanto, não há escolha. Com testes automatizados lentos, você envia dados aos clientes com mais rapidez. Na Komfo, tivemos testes em execução por mais de três horas todas as noites. O tempo de execução continuou crescendo sem restrições. Os testes estavam ficando instáveis e inutilizáveis como um ciclo de feedback. Em um determinado momento, os testes foram reprovados por mais de 20 dias seguidos. Bugs de regressão começaram a aparecer na produção. Decidimos parar essa loucura e, depois de um esforço significativo e dedicação, atualmente os mesmos testes são executados por menos de três minutos. Essa é a história da melhoria contínua de como conseguimos testes 60 vezes mais rápidos.

A cobertura de código é um forte preditor da eficiência do conjunto de testes no mundo real

Rahul Gopinath (Universidade do Estado de Oregon)

Links: Vídeo, Apresentações

ClusterRunner: como facilitar o teste rápido de feedback com o escalonamento horizontal

Taejun Lee (Box Inc) e Joseph Harrington (Box Inc)

Links: Vídeo, Apresentações

O Box executa cerca de 30 horas de testes de unidade e integração em cada confirmação. Carregamos em paralelo a execução em menos de 17 minutos usando nossa plataforma de distribuição de teste de código aberto, o ClusterRunner. Por que o Box tem tantos testes? Como o ClusterRunner funciona? É fácil configurar o ClusterRunner para seus próprios testes? (Spoiler: Sim) O ClusterRunner oferece feedback de teste muito rápido ao carregar os testes em paralelo em um único host e ao distribuir em vários. Desenvolvido pela equipe de engenharia de produtividade do Box, usamos internamente o ClusterRunner para executar um conjunto de mais de 30 horas lineares de testes em 17 minutos. Fazemos isso centenas de vezes por dia. O ClusterRunner não depende de uma linguagem de código aberto e, portanto, pode ser usado facilmente no seu próprio projeto. Criamos o ClusterRunner para equipes de engenharia que enfrentam atrasos no feedback de testes longos ou códigos pouco testados. Ela foi desenvolvida de baixo para cima para ser fácil de usar e se integrar ao sistema de CI existente. Ele aprende quanto tempo leva para os testes serem executados e programa as execuções futuras para enviar feedback o mais rápido possível. Os componentes se comunicam por meio de uma API REST amigável, que o torna acessível e extensível.

Teste de integração com vários dispositivos móveis e serviços

Alexander Dorokhine (Google) e Ang Li (Google)

Links: Vídeo, Apresentações

O Mobly é um framework de código aberto desenvolvido pelo Google para testar produtos que exigem interações entre vários dispositivos, como apps sociais, ou testes que exigem controle do ambiente de teste, como conexão Wi-Fi. Discutiremos as diferenças entre os testes para vários dispositivos e os problemas únicos deles, como a sincronização e o fluxo de código entre vários dispositivos e como a Mobly os resolve.

Escala versus valor: Automação de teste na BBC

Jitesh Gosai (BBC) e David Buckhurst (BBC)

Links: Vídeo, Apresentações

Criamos uma nuvem interna de dispositivos de código aberto para escalonar os testes dos nossos aplicativos para dispositivos móveis e TV. No entanto, ela rapidamente se tornou um monstro, o que nos obrigou a repensar nossa abordagem de automação e encontrar o equilíbrio correto entre escala e valor. Saiba como resolvemos os desafios dos testes no dispositivo com automação focada e propriedade compartilhada. Descubra também como criar sua própria nuvem interna de dispositivos e aproveitar nossas ferramentas de código aberto.

Como encontrar bugs em bibliotecas C++ usando o LibFuzzer

Kostya Serebryany (Google)

Links: Vídeo, Apresentações

Como aprendi a fazer um teste de falha em um servidor

Jonathan Abrahams (MongoDB)

Links: Vídeo, Apresentações

Venha aprender como testamos a robustez do servidor MongoDB para sobreviver a vários cenários de falha de sistema. Saiba como conseguimos automatizar um servidor de qualquer tipo de configuração de SO e host (físico ou virtual).