GTAC 2014: apresentações

Todas as gravações de vídeo e slides do GTAC 2014 estão disponíveis publicamente. Assista a eles na playlist do YouTube da GTAC 2014 ou confira as palestras abaixo:

Comentários iniciais

Sonal Shah (Google)

Palestra de abertura - Aja rápido e não quebre

Ankit Mehta (Google)

Links: Vídeo, Apresentações

Automação para uma Web melhor

James Graham (Mozilla)

A Web é a plataforma de aplicativos mais conhecida do mundo. No entanto, a interoperabilidade de navegadores é uma causa muito comum de decepção e frustração entre os desenvolvedores da Web. Para tentar melhorar essa situação, o W3C facilita o esforço da comunidade para produzir um conjunto de testes atualizado para todos os navegadores da Web, os testes de plataforma da Web. Nesta palestra, James apresentará os testes de plataforma da Web e descreverá as ferramentas que criamos para impulsionar a automação dos testes em diversos navegadores para computadores e dispositivos móveis executando o Firefox OS. Ele mostrará como este software foi projetado para enfrentar os desafios de executar um conjunto de testes de origem externa atualizado com frequência em centenas de confirmações por dia no sistema de integração contínua do Mozilla.

Links: Vídeo, Apresentações

Definir o Chrome como o melhor navegador para dispositivos móveis

Karin Lundberg (Google)

Um dos motivos para o sucesso do Chrome foram os princípios básicos de velocidade, estabilidade, simplicidade e segurança (os quatro princípios). Quando lançamos o Chrome para Android e iOS, não apenas aplicamos os quatro s ao próprio navegador, mas também à maneira como fazemos testes automatizados e o tipo de testes que realizamos:

  • A velocidade serve para testes de desempenho e rápidos.
  • A estabilidade serve para testes de estabilidade e testes estáveis.
  • Simplicidade é para testar se o Chrome tem uma experiência de usuário simples e para simplificar a adição e execução de testes.
  • A segurança serve para testes de segurança.

Links: Vídeo, Apresentações

Uma linguagem de automação de testes para modelos comportamentais

Nan Li (soluções da Medidata)

Os testadores com base em um modelo criam testes abstratos em termos de modelos, como caminhos em gráficos. Em seguida, os testes abstratos precisam ser convertidos em testes concretos, definidos em termos de implementação. A transformação de testes abstratos em testes concretos precisa ser automatizada. As técnicas de teste baseadas em modelos para modelos comportamentais usam muitos diagramas adicionais, como diagramas de classes e diagramas de caso de uso, para transformação e geração de testes. Eles são muito complicados de usar na prática porque os testadores precisam tornar todos os diagramas relacionados consistentes o tempo todo, mesmo quando os requisitos são alterados com frequência.

Esta palestra apresenta uma linguagem de automação de teste para permitir que testadores gerem testes usando apenas um modelo comportamental, como um diagrama de máquina de estado. Três problemas serão abordados: (1) criar mapeamentos de modelos para código de teste executável e gerar valores de teste, (2) transformar gráficos e usar critérios de cobertura para gerar caminhos de teste e (3) resolver restrições e gerar testes concretos.

Links: Vídeo, Apresentações

Cobertura de teste no Google

Andrei Chirila (Google)

Você já se perguntou como são os testes no Google? Quais ferramentas usamos para nos ajudar e como medimos e agimos na cobertura de testes? Vamos descrever rapidamente o processo de desenvolvimento no Google e, depois, nos concentrar no uso da medição da cobertura do código e em como utilizamos a cobertura do código para melhorar a qualidade do código e a produtividade da engenharia. No final, apresentaremos a enorme quantidade de dados de cobertura, com mais de 100.000 confirmações, que coletamos e chegamos a algumas conclusões mais amplamente aplicáveis.

Links: Vídeo, Apresentações

CATJS: aplicativos que se testam

Ran Snir (HP) e Lior Reuven (HP)

Nos últimos anos, vimos muitas anomalias que mudaram a forma como pensamos no mundo da computação. Há impressoras 3D que imprimem impressoras 3D, robôs que pensam sozinhos e, por fim, temos a catjs.

O catjs é um framework de código aberto que permite que apps da Web para dispositivos móveis façam testes por conta própria. Anotações simples no código HTML5 serão convertidas em scripts de testes incorporados no ciclo de vida do aplicativo. Esses testes da Web para dispositivos móveis podem ser executados em qualquer dispositivo, sistema operacional e navegador. A catjs é uma maneira rápida e fácil de cuidar do fluxo de testes do seu app.

Links: Vídeo, Apresentações

Integração contínua escalonável: usando código aberto

Vishal Arora (Dropbox)

Muitas ferramentas de código aberto estão disponíveis para integração contínua (CI). Apenas alguns funcionam bem em larga escala. E quase nenhum é criado para escalonar em um ambiente distribuído. Descubra os desafios da implementação de CI em escala e uma maneira de reunir partes do código aberto para criar rapidamente seu próprio sistema de CI distribuído e escalonável.

Links: Vídeo, Apresentações

Não faço testes com frequência ... Mas quando faço isso, eu testo na produção

Gareth Bowles (Netflix)

A cada dia, a Netflix tem mais clientes consumindo mais conteúdo em um número cada vez maior de dispositivos de cliente. Também estamos constantemente inovando para melhorar a experiência dos clientes. Testar em um ambiente que muda rapidamente é um grande desafio. Concluímos que executar testes no ambiente de produção geralmente é a maneira mais eficiente de validar essas mudanças. Esta palestra abordará três métodos de teste que usamos na produção: a simulação de todos os tipos de interrupções com o Exército Simian, a busca de regressões usando canários e a medição da eficácia do teste com análise de cobertura de código da produção.

Links: Vídeo, Apresentações

A importância dos testes automatizados em dispositivos móveis reais e virtuais

Jay Srinivasan (Google) e Manish Lachwani (Google)

Em comparação com o mundo da Web, os testes para dispositivos móveis são uma área minada. De diferentes dispositivos, sistemas operacionais, redes e locais, há um número infinito de variáveis que os desenvolvedores precisam considerar. Nesta sessão educativa, discutiremos alguns dos desafios específicos da otimização do desempenho e da qualidade de apps para dispositivos móveis e estratégias para lidar com eles, incluindo a necessidade de automação, dispositivos reais e condições reais do usuário.

Links: Vídeo, Apresentações

Testes sem custo financeiro são melhores que bananas sem custo financeiro: uso de mineração de dados e aprendizado de máquina para automatizar o monitoramento da produção em tempo real

Celal Ziftci (Google)

Há um interesse crescente em usar técnicas de mineração de dados e machine learning na análise, manutenção e teste de sistemas de software. Nesta palestra, Celal discutirá como usamos essas técnicas para minerar automaticamente as invariantes do sistema, usá-las no monitoramento de nossos sistemas em tempo real e alertar os engenheiros sobre quaisquer problemas de produção em potencial em minutos.

A conversa consiste em duas ferramentas que usamos internamente e como as combinamos para oferecer monitoramento de produção em tempo real aos engenheiros, quase sem custo financeiro:

  1. Uma ferramenta que mina as invariantes do sistema.
  2. Uma ferramenta que monitora sistemas de produção e usa a primeira ferramenta para gerar automaticamente parte da lógica usada para identificar possíveis problemas em tempo real.

Links: Vídeo, Apresentações

Automação de teste em um conversor infravermelho

Olivier Etienne (laranja)

Esta palestra explicará o que é um contexto de aplicativo para TV e o tipo de problemas que podemos encontrar ao tentar automatizar tudo. Olivier vai passar por falhas anteriores, a abordagem delas e quais foram os principais pontos para criar uma ferramenta de teste automática. Se houver tempo, ele vai se aprofundar nos detalhes da implementação.

Venha ouvir como alguns soldados e algumas linhas de código abriram o rico mundo de testes da Web para um conversor.

Links: Vídeo, Apresentações

O desafio de comparar de perto os provedores de nuvem e o que estamos fazendo

Anthony Voellm (Google)

Nesta palestra, vamos abordar o histórico de comparação do mainframe para a nuvem. A meta é estabelecer uma base sobre como as comparações começaram e como elas chegaram a esse ponto. As ideias serão apresentadas para o futuro do comparativo de mercado do Cloud e como podemos fazer isso na prática.

Links: Vídeo, Apresentações

Nunca enviar uma pessoa para fazer o trabalho de uma máquina: como o Facebook usa bots para gerenciar testes

Roy Williams (Facebook)

O Facebook não tem uma organização de testes, e os desenvolvedores são proprietários de tudo, desde escrever o código até testá-lo e transformá-lo em produção. Isso não significa que não testamos. Criamos essa escala automatizando o ciclo de vida dos testes para manter o sinal alto e o ruído baixo. Os novos testes são considerados não confiáveis, e a inconsistência é removida rapidamente. Vamos falar sobre o que funcionou e o que não funcionou nos testes.

Links: Vídeo, Apresentações

Espresso, Spoon, Wiremock e ( ou como aprendi a parar de me preocupar e amar os testes do Android)

Michael Bailey (American Express)

Aprenda a criar e executar testes de IU automatizados e rápidos com confiabilidade. As ferramentas incluem Espresso, Spoon, Wiremock e Jenkins. É necessário ter conhecimento básico de desenvolvimento em Android e Java.

Links: Vídeo, Apresentações

Análises do Google BigQuery

Brian Vance (Google)

O BigQuery é o serviço interativo de Big Data do Google Cloud. Os usuários podem analisar terabytes de dados em questão de segundos usando consultas semelhantes a SQL. Ele é baseado no Dremel, que os testadores do Google usam internamente há anos. Vamos analisar alguns exemplos e mostrar como você pode começar a usar o BigQuery.

Links: Vídeo, Apresentações

Selendroid: selenium para Android

Dominik Dary (Adobe)

O Selendroid é um framework de automação de teste de código aberto que direciona a interface do usuário de apps nativos e híbridos do Android e da Web para dispositivos móveis. Os testes são criados usando a API do cliente Selenium 2. Para fazer testes, não é necessário modificar o app em teste para automatizá-lo.

Esta apresentação demonstra ao público como é fácil fazer a automação de teste para dispositivos móveis. Ele mostra como o Selendroid pode ser usado para testar apps Android nativos e híbridos e como a grade do Selenium pode ser usada para testes paralelos em vários dispositivos. Também serão abordados temas mais avançados, como estender o próprio Selendroid durante a execução e realizar testes multiplataforma.

Links: Vídeo, Apresentações

Higiene em um hipermídia

Amit Easow (Comcast)

À medida que a Comcast evoluiu de uma empresa de TV a cabo a líder de mídia e tecnologia, as equipes de engenharia também ficaram mais inteligentes. Quando Amit entrou para a Comcast Interactive Media (CIM) em 2006, a empresa era uma loja de testes manuais. Depois de lançar o primeiro site em 2007, ele começou a criar protótipos para uma infraestrutura automatizada de testes de IU. Ele conheceu o Selenium no GTAC 2008 e depois voltou à Comcast para criar uma infraestrutura de testes automatizados com o Selenium Grid, Hudson e Subversion. Hoje, ele trabalha em testes de API com implantações na produção todos os dias da semana. Isso é possível com o Python, Git, Gerrit e Anthill.

Links: Vídeo, Apresentações

Dispare de forma mais rápida e mais rápida com o MSL.

Bryan Robbins (FINRA) e Daniel Koo (FINRA)

Oferecer software mais rapidamente sem comprometer a qualidade não é uma tarefa trivial. Todos queremos acelerar o desenvolvimento com testes rápidos e a execução mais rápida, com o mínimo de manutenção necessária. Na FINRA, desenvolvemos a MSL, conhecida como "Missile", para equipes ágeis usando arquiteturas em camadas, como MVC, para testar o código da IU de forma mais rápida e isolada.

O MSL é compatível com testes de integração de código da IU (como JavaScript, HTML, CSS) pela implantação local em um servidor Node.js e na configuração de respostas HTTP simuladas do código de teste usando um de nossos clientes (Java, JavaScript ou Node.js). Esta palestra vai apresentar os principais recursos da MSL com alguns exemplos.

Links: Vídeo, Apresentações

Como testar a experiência do usuário

Alex Eagle (Google)

Os produtos do Google são lançados com frequência, e isso requer testes automatizados significativos e criação de modelos. Agora estamos trabalhando para oferecer nossa infraestrutura de testes como parte do Google Cloud Platform. Esta palestra discutirá algumas das metodologias que usamos para manter nossos builds ecológicos e os produtos sem defeitos, além de fornecer uma prévia de como estamos expondo isso ao mundo.

Links: Vídeo, Apresentações

Palestra 1 da mesa redonda: teste multiplataforma para dispositivos móveis

Links: Vídeo, Apresentações

Segunda reunião 2: cobertura de automação de documentos

Links: Vídeo, Apresentações

Impacto da estrutura da comunidade na performance de soluções do SAT

Zack Newsham (Universidade de Waterloo)

Os resolvedores SCL SAT modernos resolvem rotineiramente instâncias muito grandes de SAT industriais em períodos relativamente curtos. Fica claro que esses solucionadores exploram a estrutura de instâncias do mundo real de alguma forma. Até o momento, poucos resultados caracterizam essa estrutura. Neste documento, apresentamos evidências de que a estrutura da comunidade de instâncias reais de SAT está correlacionada ao tempo de execução dos solucionadores de SAT do CDCL. Já se sabe há algum tempo que as instâncias reais do SAT, identificadas como gráficos, têm comunidades naturais. Uma comunidade é um subgráfico do gráfico de uma instância do SAT, de modo que esse subgráfico tem mais arestas internas do que se envia para o restante do gráfico. A estrutura da comunidade de um grafo é geralmente caracterizada por uma métrica de qualidade chamada Q. Intuitivamente, um gráfico com estrutura de comunidade de alta qualidade (Q alto) pode ser facilmente separado em comunidades menores, enquanto que aquele com baixo Q não é. Oferecemos três resultados com base em dados empíricos que mostram que a estrutura da comunidade de instâncias industriais reais é um preditor geral do tempo de execução dos solucionadores de problemas de segurança de dados (CDCL, na sigla em inglês) em comparação com outros fatores geralmente considerados, como variáveis e cláusulas. Primeiro, mostramos que há uma forte correlação entre o valor Q e a métrica de distância do bloco literal de cláusulas de qualidade de conflito usadas em políticas de exclusão de cláusulas em solucionadores semelhantes a glicose. Em segundo lugar, ao usar a análise de regressão, mostramos que o número de comunidades e o valor Q do gráfico de instâncias reais de SAT são mais preditivos do que o tempo de execução dos solucionadores de problemas de segurança de dados (CDCL, na sigla em inglês) do que as métricas tradicionais, como número de variáveis ou cláusulas. Por fim, mostramos que as instâncias de SAT geradas aleatoriamente com 0,05 ≤ Q ≤ 0,13 são muito mais difíceis de resolver para os solucionadores de CDCL do que outras.

Links: Vídeo, Apresentações

Além da cobertura: quais recursos são usados nas suítes de teste?

Patrick Lam (Universidade de Waterloo)

Todos queremos pacotes de teste "melhores". Mas o que caracteriza um bom pacote de testes? Certamente, os pacotes de teste precisam ter uma boa cobertura pelo menos no nível de cobertura da declaração. Para serem úteis, os conjuntos de testes precisam ser executados com rapidez suficiente para fornecer feedback oportuno.

Esta palestra vai investigar uma série de outras dimensões para avaliar conjuntos de testes. A palestra afirma que melhores pacotes de teste são mais fáceis de manter, mais utilizáveis (por exemplo, porque são executados com mais rapidez ou usam menos recursos) e têm menos falhas injustificadas. Nesta palestra, apresentarei e sintetizaremos fatos sobre 10 pacotes de testes de código aberto (de 8.000 para 246.000 linhas de código) e avaliarei o desempenho deles.

Links: Vídeo, Apresentações

Sustentabilidade: limpeza do ambiente tóxico para dispositivos móveis

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

Vamos apresentar ferramentas e técnicas para criar ambientes de teste herméticos rápidos e estáveis para executar testes do Android nos modos de desenvolvimento interativo e integração contínua. Isso se baseia na palestra de nível superior que apresentamos no último GTAC.

Links: Vídeo, Apresentações