O documento discute estratégias para executar testes automatizados de forma paralela em web e mobile. Ele apresenta como usar grids com Selenium e Appium para distribuir testes em vários nós, reduzindo o tempo de execução. A solução proposta utiliza containers Docker para criar grids dinâmicas que escalam automaticamente com base na demanda de testes.
Como criar e executar testes paralelos web usando Selenium e containersElias Nogueira
O documento discute como executar testes de web paralelamente usando Selenium e containers. Ele apresenta problemas com execução sequencial de testes e propõe usar Grid do Selenium com containers Docker para executar testes em paralelo de forma escalável. O documento fornece exemplos de como configurar testes no TestNG para execução paralela e como usar Zalenium para auto-escalar containers durante a execução dos testes.
Palestra ministrada na Trilha DevTest do The Developers Conference 2019 em Florianópolis sobre automação de testes de API com RestAssured e virtualização de serviços com Wiremock
Criando uma grid para execução de testes paralelo com AppiumElias Nogueira
Este documento descreve como criar uma "grid" para execução paralela de testes automatizados usando o Appium. A grid conecta vários dispositivos móveis a um único controlador para permitir que testes sejam executados simultaneamente em diferentes dispositivos, melhorando a cobertura e reduzindo o tempo de execução. O documento discute os desafios da fragmentação de plataformas, como configurar o Selenium Grid e nós, e como escrever testes para aproveitar a execução paralela.
De a máxima cobertura nos seus testes de APIElias Nogueira
Palestra ministrada no Reginonal Scrum Gathering Rio 2019 no dia 27/06/2019 sobre como dar uma cobertura de testes para uma API além do teste unitário e de integração, com um foco totalmente prático e com execução em pipeline.
Usando containers com auto-escala de testesElias Nogueira
Palestra ministrada na Trilha Containers do The Developers Conference 2018 Porto Alegre sobre como utilizar containers para auto-escala de browsers na automação web
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...Elias Nogueira
Mova-se rapidamente e reduza os riscos ao mesmo tempo em que oferece seu melhor aplicativo. Quando você confia no seu pipeline, você pode aumentar sua velocidade de desenvolvimento, porque você sabe que vai pegar bugs antes que eles atinjam a produção. Fazer testes de unidade é o primeiro passo, mas nas arquiteturas distribuídas baseadas em nuvem de hoje, você precisa aplicar outras estratégias de teste também. Esta apresentação interativa mostra como você pode usar ferramentas de teste de código aberto de última geração para criar um pipeline de testes rápido e confiável. A partir de um aplicativo Java EE distribuído de ponta a ponta baseado em REST e microsserviço.
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...Renato Groff
Este documento discute como usar Docker e Docker Compose para criar ambientes de teste simplificados. Ele explica como criar containers para bancos de dados, APIs e serviços usando Docker e como Docker Compose pode facilitar o deployment de aplicações com múltiplas dependências. Ele fornece exemplos práticos de como criar containers para SQL Server, MongoDB, Redis e uma API RESTful usando Docker e Docker Compose.
Como criar e executar testes paralelos web usando Selenium e containersElias Nogueira
O documento discute como executar testes de web paralelamente usando Selenium e containers. Ele apresenta problemas com execução sequencial de testes e propõe usar Grid do Selenium com containers Docker para executar testes em paralelo de forma escalável. O documento fornece exemplos de como configurar testes no TestNG para execução paralela e como usar Zalenium para auto-escalar containers durante a execução dos testes.
Palestra ministrada na Trilha DevTest do The Developers Conference 2019 em Florianópolis sobre automação de testes de API com RestAssured e virtualização de serviços com Wiremock
Criando uma grid para execução de testes paralelo com AppiumElias Nogueira
Este documento descreve como criar uma "grid" para execução paralela de testes automatizados usando o Appium. A grid conecta vários dispositivos móveis a um único controlador para permitir que testes sejam executados simultaneamente em diferentes dispositivos, melhorando a cobertura e reduzindo o tempo de execução. O documento discute os desafios da fragmentação de plataformas, como configurar o Selenium Grid e nós, e como escrever testes para aproveitar a execução paralela.
De a máxima cobertura nos seus testes de APIElias Nogueira
Palestra ministrada no Reginonal Scrum Gathering Rio 2019 no dia 27/06/2019 sobre como dar uma cobertura de testes para uma API além do teste unitário e de integração, com um foco totalmente prático e com execução em pipeline.
Usando containers com auto-escala de testesElias Nogueira
Palestra ministrada na Trilha Containers do The Developers Conference 2018 Porto Alegre sobre como utilizar containers para auto-escala de browsers na automação web
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...Elias Nogueira
Mova-se rapidamente e reduza os riscos ao mesmo tempo em que oferece seu melhor aplicativo. Quando você confia no seu pipeline, você pode aumentar sua velocidade de desenvolvimento, porque você sabe que vai pegar bugs antes que eles atinjam a produção. Fazer testes de unidade é o primeiro passo, mas nas arquiteturas distribuídas baseadas em nuvem de hoje, você precisa aplicar outras estratégias de teste também. Esta apresentação interativa mostra como você pode usar ferramentas de teste de código aberto de última geração para criar um pipeline de testes rápido e confiável. A partir de um aplicativo Java EE distribuído de ponta a ponta baseado em REST e microsserviço.
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...Renato Groff
Este documento discute como usar Docker e Docker Compose para criar ambientes de teste simplificados. Ele explica como criar containers para bancos de dados, APIs e serviços usando Docker e como Docker Compose pode facilitar o deployment de aplicações com múltiplas dependências. Ele fornece exemplos práticos de como criar containers para SQL Server, MongoDB, Redis e uma API RESTful usando Docker e Docker Compose.
O documento discute o papel do QA na transformação ágil, identificando anti-patters como realizar testes em fases separadas e focar em testes manuais. Propõe que QA trabalhe em conjunto com outros papéis desde o início, com teste automático, feedback rápido e treinamento para apoiar a transformação.
Automação de testes de API utilizando PostmanLucas Amaral
O documento apresenta conceitos iniciais sobre testes de API e automação de testes com Postman. Ele discute APIs, REST, requests e respostas HTTP, e como criar e rodar testes no Postman usando asserções e bibliotecas como Chai. O documento também fornece links para recursos adicionais sobre o tópico.
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.iotdc-globalcode
A apresentação discute testes de carga, performance e stress usando a ferramenta Gatling.io. Apresenta como a ferramenta pode ser usada para simular cargas em sistemas, analisar métricas de desempenho e escrever testes de forma expressiva em Scala. Demonstra alguns recursos como injeção de comportamentos de usuários e asserções globais.
Arquitetura básica de testes para seu projeto JavaElias Nogueira
Palestra ministrada no The Developers Conference São Paulo 2017 dia 21/07 na Trilha Arquitetura Java.
Nesta apresentação falo da importância de planejar testes em diversos níveis dentro de um processo de desenvolvimento, bem como uma build pipeline ideal pensando em testes e dicas do que devemos ter na nossa arquitetura de teste para uma aplicação em Java.
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOpstdc-globalcode
Este guia discute como a abordagem DevOps afeta o trabalho de QA e como os testes podem ser automatizados para permitir a entrega contínua de software. A automação de testes unitários, funcionais e de integração é essencial para entregas mais rápidas e confiáveis na abordagem DevOps. A mentalidade de colaboração entre equipes de desenvolvimento e operações é fundamental para o sucesso do QA nesse modelo.
Criando uma grid para execução de teste automatizado funcional e e2eElias Nogueira
Este documento discute a criação de uma grid para execução de teste automatizado funcional e e2e de forma paralela em múltiplos dispositivos. Ele explica como configurar uma grid com um hub central e vários nós para distribuir testes em paralelo, permitindo validações em diferentes fabricantes, versões de plataforma e resoluções de tela.
QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)Mayara Fernandes
O documento descreve como um time de desenvolvimento e teste pode melhorar seus processos adotando práticas DevOps, como integração contínua, entrega contínua e deploy automático. Ele exemplifica as etapas para automatizar o build, adicionar testes unitários e de API/integração, implantar em um ambiente de staging e automatizar testes de aceitação, reduzindo o tempo de feedback de dias para minutos.
Suporte a Open Source no Oracle WebLogic 12c - Integração com Maven & HudsonRicardo Ferreira
O documento descreve como o Oracle WebLogic 12c oferece suporte integrado ao Maven e Hudson CI para automatizar o ciclo de desenvolvimento de aplicativos, incluindo compilação, teste, implantação e integração contínua.
O documento descreve estratégias de testes contínuos no desenvolvimento de software, incluindo a automatização de testes em diferentes níveis para fornecer feedback antecipado e reduzir custos. Ele explica os estágios do processo de integração contínua, como testes unitários, de aceitação, de serviço e ambientes de teste.
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)Júlio de Lima
Este documento apresenta como preparar o ambiente e escrever scripts de teste automatizados de unidade, API e GUI (Web) usando frameworks open-source em Ruby. O documento explica como instalar as ferramentas necessárias, como RSpec, Rest-Client e WebDriver, e fornece exemplos passo a passo de como automatizar testes de unidade, API e interface gráfica.
O documento descreve a jornada de uma equipe de QA e desenvolvimento para adotar práticas DevOps. Inicialmente, havia pouca automação e integração entre os times. Atualmente, implementaram pipelines de entrega contínua com construção, testes e implantação automatizados, reduzindo tempo de teste regressivo de 2 dias para 7 minutos. A QA ganhou tempo para novas funcionalidades e melhorias contínuas.
k6: Performance Engineering, Monitoramento e Teste de um HPA no KubernetesKelvin Silva
O documento discute performance engineering e testes de carga usando a ferramenta k6. Ele introduz k6 e mostra como desenvolver testes de performance, construir uma solução escalável no Kubernetes usando k6 para validar a solução, e conclui com as vantagens de usar k6 e estratégias de performance engineering.
O documento descreve como testar uma API REST chamada Mollom API utilizando Maven e Cucumber. Ele explica como encapsular as chamadas para a API usando um conceito similar ao Page Object e como implementar os testes em Cucumber com exemplos de cenários e passos.
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horasSamanta Cicilia
O documento descreve o processo de entrega contínua da Infoglobo, com três frases:
1) A Infoglobo implementou um pipeline de implantação automatizado para compilar, implantar, testar e implantar software de forma contínua;
2) O pipeline inclui testes automatizados, análise de logs e deploy em diferentes ambientes como integração, staging e produção;
3) O processo reduziu o tempo de entrega de software de 15 dias para 2 horas.
Entrega contínua com arquitetura distribuidaLeonardo Kobus
Conteúdo apresentado em um TechTalk Interno na hbsis mostrando como é feito o deploy de um projeto escrito em .NET utilizando WebService Rest feito em Nancy e Serviços do window, para uma solução de Vendas onde possui 8 máquinas em uma infraestrutura e 6 em uma infraestrutura diferente, ambas infra com deploy automatizado da solução inteira.
1) O documento discute estratégias para migrar um grande sistema monolítico legado para micro serviços em Delphi de forma gradual e evolutiva.
2) É apresentada uma estratégia de extrair funcionalidades do monolito e transformá-las em serviços independentes de forma incremental, começando pelas dependências comuns.
3) O documento também discute a importância de automação de testes, principalmente testes funcionais entre serviços (End2End), no contexto da migração e adoção de micro serviços.
Nesta palestra vamos abordar formas de criar um ambiente de desenvolvimento de software mais ágil por meio da utilização e integração das ferramentas Maven 3, Sonar e Hudson. Com isso é possível estímular a eliminação de atividades repetitivas dentro do processo de desenvolvimento além de auxiliar na redução de defeitos e aumentar a qualidade do código produzido. A palestra é montada em ferramentas feitas para a plataforma Java.
[DevelopersBR-2018] Testes de performance usando a nuvemJúlio de Lima
Júlio de Lima apresenta sobre testes de performance usando a nuvem. Ele discute duas estratégias: 1) usar instâncias escravas do Apache JMeter para execução distribuída dos testes localmente e 2) usar ferramentas de teste de performance na nuvem como o BlazeMeter para execução de testes de larga escala.
O documento discute as extensões de componentes JSF como RichFaces, ICEfaces e PrimeFaces. Ele fornece uma visão geral de cada framework, demonstra alguns de seus componentes em uma aplicação de exemplo e fornece links relevantes.
O documento apresenta uma introdução rápida sobre o Apache Maven, incluindo sua história, propósito, instalação, configuração, criação de um projeto Java simples utilizando Maven e execução de testes no projeto gerado.
O documento discute os conceitos e práticas de Continuous Delivery, incluindo testes automatizados, integração contínua e entrega contínua. Ele explica como esses processos podem melhorar a qualidade do software e reduzir o tempo de entrega através do uso de ferramentas de teste e implantação.
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Daniel Makiyama
Interface de Usuário também é coisa de Programador, o objetivo deste treinamento é vivenciar um ambiente de desenvolvimento empregando estas tecnologias, abordando conceitos de testes unitários, integrados, padrões e boas práticas de desenvolvimento
O documento discute o papel do QA na transformação ágil, identificando anti-patters como realizar testes em fases separadas e focar em testes manuais. Propõe que QA trabalhe em conjunto com outros papéis desde o início, com teste automático, feedback rápido e treinamento para apoiar a transformação.
Automação de testes de API utilizando PostmanLucas Amaral
O documento apresenta conceitos iniciais sobre testes de API e automação de testes com Postman. Ele discute APIs, REST, requests e respostas HTTP, e como criar e rodar testes no Postman usando asserções e bibliotecas como Chai. O documento também fornece links para recursos adicionais sobre o tópico.
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.iotdc-globalcode
A apresentação discute testes de carga, performance e stress usando a ferramenta Gatling.io. Apresenta como a ferramenta pode ser usada para simular cargas em sistemas, analisar métricas de desempenho e escrever testes de forma expressiva em Scala. Demonstra alguns recursos como injeção de comportamentos de usuários e asserções globais.
Arquitetura básica de testes para seu projeto JavaElias Nogueira
Palestra ministrada no The Developers Conference São Paulo 2017 dia 21/07 na Trilha Arquitetura Java.
Nesta apresentação falo da importância de planejar testes em diversos níveis dentro de um processo de desenvolvimento, bem como uma build pipeline ideal pensando em testes e dicas do que devemos ter na nossa arquitetura de teste para uma aplicação em Java.
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOpstdc-globalcode
Este guia discute como a abordagem DevOps afeta o trabalho de QA e como os testes podem ser automatizados para permitir a entrega contínua de software. A automação de testes unitários, funcionais e de integração é essencial para entregas mais rápidas e confiáveis na abordagem DevOps. A mentalidade de colaboração entre equipes de desenvolvimento e operações é fundamental para o sucesso do QA nesse modelo.
Criando uma grid para execução de teste automatizado funcional e e2eElias Nogueira
Este documento discute a criação de uma grid para execução de teste automatizado funcional e e2e de forma paralela em múltiplos dispositivos. Ele explica como configurar uma grid com um hub central e vários nós para distribuir testes em paralelo, permitindo validações em diferentes fabricantes, versões de plataforma e resoluções de tela.
QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)Mayara Fernandes
O documento descreve como um time de desenvolvimento e teste pode melhorar seus processos adotando práticas DevOps, como integração contínua, entrega contínua e deploy automático. Ele exemplifica as etapas para automatizar o build, adicionar testes unitários e de API/integração, implantar em um ambiente de staging e automatizar testes de aceitação, reduzindo o tempo de feedback de dias para minutos.
Suporte a Open Source no Oracle WebLogic 12c - Integração com Maven & HudsonRicardo Ferreira
O documento descreve como o Oracle WebLogic 12c oferece suporte integrado ao Maven e Hudson CI para automatizar o ciclo de desenvolvimento de aplicativos, incluindo compilação, teste, implantação e integração contínua.
O documento descreve estratégias de testes contínuos no desenvolvimento de software, incluindo a automatização de testes em diferentes níveis para fornecer feedback antecipado e reduzir custos. Ele explica os estágios do processo de integração contínua, como testes unitários, de aceitação, de serviço e ambientes de teste.
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)Júlio de Lima
Este documento apresenta como preparar o ambiente e escrever scripts de teste automatizados de unidade, API e GUI (Web) usando frameworks open-source em Ruby. O documento explica como instalar as ferramentas necessárias, como RSpec, Rest-Client e WebDriver, e fornece exemplos passo a passo de como automatizar testes de unidade, API e interface gráfica.
O documento descreve a jornada de uma equipe de QA e desenvolvimento para adotar práticas DevOps. Inicialmente, havia pouca automação e integração entre os times. Atualmente, implementaram pipelines de entrega contínua com construção, testes e implantação automatizados, reduzindo tempo de teste regressivo de 2 dias para 7 minutos. A QA ganhou tempo para novas funcionalidades e melhorias contínuas.
k6: Performance Engineering, Monitoramento e Teste de um HPA no KubernetesKelvin Silva
O documento discute performance engineering e testes de carga usando a ferramenta k6. Ele introduz k6 e mostra como desenvolver testes de performance, construir uma solução escalável no Kubernetes usando k6 para validar a solução, e conclui com as vantagens de usar k6 e estratégias de performance engineering.
O documento descreve como testar uma API REST chamada Mollom API utilizando Maven e Cucumber. Ele explica como encapsular as chamadas para a API usando um conceito similar ao Page Object e como implementar os testes em Cucumber com exemplos de cenários e passos.
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horasSamanta Cicilia
O documento descreve o processo de entrega contínua da Infoglobo, com três frases:
1) A Infoglobo implementou um pipeline de implantação automatizado para compilar, implantar, testar e implantar software de forma contínua;
2) O pipeline inclui testes automatizados, análise de logs e deploy em diferentes ambientes como integração, staging e produção;
3) O processo reduziu o tempo de entrega de software de 15 dias para 2 horas.
Entrega contínua com arquitetura distribuidaLeonardo Kobus
Conteúdo apresentado em um TechTalk Interno na hbsis mostrando como é feito o deploy de um projeto escrito em .NET utilizando WebService Rest feito em Nancy e Serviços do window, para uma solução de Vendas onde possui 8 máquinas em uma infraestrutura e 6 em uma infraestrutura diferente, ambas infra com deploy automatizado da solução inteira.
1) O documento discute estratégias para migrar um grande sistema monolítico legado para micro serviços em Delphi de forma gradual e evolutiva.
2) É apresentada uma estratégia de extrair funcionalidades do monolito e transformá-las em serviços independentes de forma incremental, começando pelas dependências comuns.
3) O documento também discute a importância de automação de testes, principalmente testes funcionais entre serviços (End2End), no contexto da migração e adoção de micro serviços.
Nesta palestra vamos abordar formas de criar um ambiente de desenvolvimento de software mais ágil por meio da utilização e integração das ferramentas Maven 3, Sonar e Hudson. Com isso é possível estímular a eliminação de atividades repetitivas dentro do processo de desenvolvimento além de auxiliar na redução de defeitos e aumentar a qualidade do código produzido. A palestra é montada em ferramentas feitas para a plataforma Java.
[DevelopersBR-2018] Testes de performance usando a nuvemJúlio de Lima
Júlio de Lima apresenta sobre testes de performance usando a nuvem. Ele discute duas estratégias: 1) usar instâncias escravas do Apache JMeter para execução distribuída dos testes localmente e 2) usar ferramentas de teste de performance na nuvem como o BlazeMeter para execução de testes de larga escala.
O documento discute as extensões de componentes JSF como RichFaces, ICEfaces e PrimeFaces. Ele fornece uma visão geral de cada framework, demonstra alguns de seus componentes em uma aplicação de exemplo e fornece links relevantes.
O documento apresenta uma introdução rápida sobre o Apache Maven, incluindo sua história, propósito, instalação, configuração, criação de um projeto Java simples utilizando Maven e execução de testes no projeto gerado.
O documento discute os conceitos e práticas de Continuous Delivery, incluindo testes automatizados, integração contínua e entrega contínua. Ele explica como esses processos podem melhorar a qualidade do software e reduzir o tempo de entrega através do uso de ferramentas de teste e implantação.
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Daniel Makiyama
Interface de Usuário também é coisa de Programador, o objetivo deste treinamento é vivenciar um ambiente de desenvolvimento empregando estas tecnologias, abordando conceitos de testes unitários, integrados, padrões e boas práticas de desenvolvimento
A nova arquitetura do DataSnap permite disponibilizar regras de negócios através de Server Methods, esta arquitetura facilita a integração com frameworks de testes, com isso podemos automatizar os testes a cada nova versão dos servidores DataSnap, durante esta apresentação vamos aprender como implementar testes em projetos DataSnap.
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontatdc-globalcode
Nessa palestra mostrarei como criar uma estrutura de testes automatizados para a sua aplicação ASP.NET MVC cobrindo os principais aspectos do seu sistema.
Automação de Teste para REST, Web e MobileElias Nogueira
O documento apresenta uma introdução à automação de testes para APIs REST, interfaces web e aplicativos móveis, discutindo ferramentas como REST Assured, Selenium WebDriver e Appium.
Play Framework - Desenvolvendo Aplicações Web com Java sem DorAllyson Barros
O documento apresenta o framework Play! para desenvolvimento de aplicações web com Java. Apresenta uma introdução ao framework, instruções de instalação e configuração, criação de modelos, controllers e views, utilização de módulos e deploy da aplicação.
Curso completo com 50% de desconto: https://bit.ly/2EDTlbH
Slide utilizado na ministração do curso Automatizando Testes de Software Com Selenium - Básico
Android DevConference - Automatizando testes sem sofrimentoiMasters
O documento discute testes automatizados de software, apresentando:
1) A importância da automação de testes para garantir qualidade e evolução rápida de produtos;
2) O histórico de implementação de testes no PagSeguro utilizando ferramentas como Calabash, Robotium e Espresso;
3) Técnicas como mocks, injeção de dependências e testes end-to-end para simular diversos cenários de teste.
Caipira agil automacao front end seleniumQualister
O documento fornece informações sobre automação de testes front-end com métodos ágeis. Apresenta conceitos como front-end, back-end, teste ágil, estratégias de teste, ferramentas como Selenium e CasperJS e técnicas como page objects, smoke tests e testes de regressão visual.
Ideais Cowabunga - Headless Testing com GhostDriverStefan Teixeira
O documento apresenta o GhostDriver, uma implementação do WebDriver Wire Protocol para o PhantomJS que permite executar testes headless. O autor discute os benefícios de usar headless browsers como feedback mais rápido, para smoke tests e integração contínua. Problemas conhecidos como tratamento de alerts em frames aninhados também são abordados.
[TDC2015] De unitário a aceitação: Automação de testes com CodeceptionQualister
O documento descreve uma palestra sobre automação de testes com o framework Codeception. A palestra aborda conceitos de testes de unidade, integração e aceitação e como automatizá-los com Codeception, PHPUnit, Guzzle e outros frameworks. Também apresenta exemplos práticos de como escrever testes de unidade, integração e aceitação com Codeception.
O documento discute diversos tópicos sobre Python, incluindo: 1) Integração do Django com Adobe Flex para desenvolvimento de aplicações web; 2) Uso do PyGame para desenvolvimento de jogos; 3) Integração do Django com o PagSeguro para pagamentos online.
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAmazon Web Services LATAM
A era dos ciclos anuais e semestrais de entrega de software está ficando para trás. Empresas líderes em seu segmento de mercado entregam software de alta qualidade em ciclos de poucos dias, em alguns casos, de poucas horas. Nesta sessão, iremos apresentar como você pode iniciar sua jornada para DevOps compartilhando boas práticas e ferramentas utilizadas pelos times de ‘duas pizzas’ da Amazon. Vamos mostrar como você pode acelerar sua produtividade implementando fluxos de integração e entrega contínua. E iremos introduzir os serviços que a AWS desenvolveu inspirados nas ferramentas e práticas internas da Amazon: AWS CodeCommit, AWS CodeBuild, AWS CodePipeline e AWS CodeDeploy.
https://aws.amazon.com/pt/products/developer-tools/
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...GUTS-RS
Os aplicativos móveis tem nos acompanhado em todos os momentos. Cada vez mais diferentes empresas lançam aplicativos para manter o usuário conectado com seu produto ou marca. Logo é necessário, como testadores, não somente saber como testar manualmente estas aplicações, mas também como automatizá-las.
Neste workshop veremos a vantagem de utilizar a ferramenta de automação para dispositivos móveis Appium, com foco em Android. O Appium é baseado na API do Selenium WebDriver, onde colocaremos todo nosso conhecimento desta ferramenta para o desenvolvimento de scripts automatizados para aplicativos móveis.
O documento discute a ferramenta Cypress.io para automatizar testes de ponta a ponta. Cypress.io é uma ferramenta moderna, simples e eficaz para desenvolver testes E2E que simulam o ambiente real de aplicações. A ferramenta permite escrever testes rapidamente em JavaScript e oferece recursos como execução de testes no mesmo ciclo da aplicação.
O documento discute integração contínua, testes e ferramentas. Ele explica o que é integração contínua e como ela funciona na prática, incluindo versionamento, compilação, testes e deploy. Também fornece dicas sobre como executar testes de forma paralela para reduzir o tempo do build, além de estratégias para reduzir custos com infraestrutura para testes.
O documento discute técnicas de Continuous Integration, Continuous Deployment e DevOps utilizando serviços da AWS. Ele explica como a infraestrutura pode ser tratada como código e automatizada usando ferramentas como CloudFormation, Elastic Beanstalk e OpsWorks para criar ambientes de desenvolvimento, teste e produção semelhantes. Também recomenda utilizar modelos de custo como On Demand, Reserved Instances e Spot Instances da AWS para economizar nos custos com a infraestrutura.
Este documento apresenta uma oficina sobre desenvolvimento de aplicações web com Python e Google App Engine. Ele discute as vantagens e desvantagens de aplicações web, introduz o conceito de Platform as a Service (PaaS), e fornece uma visão geral das características e funcionalidades do Google App Engine, incluindo sandbox, armazenamento de dados, autenticação, serviços, e suporte a linguagem Python.
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...Bruno Tanoue
Este documento discute testes e ambientes de integração contínua para desenvolvimento ágil em PHP. Ele apresenta a pirâmide de testes, explica testes de unidade isolados versus colaborativos, e discute otimizações para execução de testes e configuração de ambientes de integração contínua usando ferramentas como Jenkins.
Semelhante a Paralelize seus testes web e mobile para ter feedbacks mais rápidos (20)
Thi presentation was given at Selenium Camp on 21/02/2020 and show how we can divide better our API tests following the Test Pyramid concept and break it down on the service layer, using a pipeline to clarify and execute the tests in the order of importance.
Coach por Imersão - Buscando a excelência técnica com o timeElias Nogueira
O documento discute a implementação de uma frente de engenharia de software através da utilização de "Coaches por Imersão" para melhorar as práticas de desenvolvimento de software nos times através da educação, mentoria e apoio. Os coaches mapeiam as práticas dos times e identificam áreas para melhoria, como a aplicação de treinamentos e checklists de práticas de engenharia de software.
Como 4 Agile Coaches trabalham em uma Transformação Ágil Elias Nogueira
Apresentação ministrada em 03/10/2018 no Agile Brazil 2018 mostrando a experiência de como 4 Agile Coaches se organizam e trabalham em uma transformação ágil.
BDD não é automação de teste - Scrum GatheringElias Nogueira
Palestra ministrada no Scrum Gathering Rio no dia 27/07/2018 falando como as pessoas ou times entendem, de maneira errada, o que é BDD. Depois é apresentado a maneira correta de utilizar BDD em conjunto com a técnica de Example Mapping e exemplos de uso.
Improve Yourself -- Learn the Skills, Join the Community - TestsElias Nogueira
O documento discute técnicas e práticas para testes de software, enfatizando a importância de testar cedo e continuamente durante todo o ciclo de desenvolvimento através de testes unitários, de integração, de serviço e de aceitação.
Este documento discute como o Behavior Driven Development (BDD) é frequentemente mal entendido e aplicado de forma incorreta, focando-se apenas na automação de testes. O autor explica que o BDD na verdade é um processo colaborativo que envolve vários membros da equipe trabalhando juntos para descobrir e refinar requisitos através de conversas estruturadas sobre exemplos de uso do sistema. Instalar apenas ferramentas como o Cucumber sem entender realmente o que é BDD pode comprometer sua adoção.
Como ter sucesso ministrando uma palestra técnicaElias Nogueira
Palestra ministrada em 19/04/2018 na Trilha Carreiras Intel no The Developers Conference Florianópolis que mostra diversas dicas do que não fazer e o que fazer durante uma apresentação técnica.
Quais são os steps de que deve conter na sua pipeline?Elias Nogueira
Lightning talk sobre build pipeline contendo itens de teste que podem servir para dar um rápido feedback.
Esta palestra foi ministrada na XPConfBR em Porto Alegre dia 14/04/2018
Muito se fala planejamento do que é realmente necessário para o usuário e maximizar o máximo de trabalho possível para minimizar o Lead Time. Mas você já pensou que levar em consideração como os testes serão planejados desde o início da release até a entrega, e que eles podem ser uma arma na identificação de dependências entre times e diminuição de incidentes?
Palestra ministrada no The Developers Conference Porto Alegre 2017 em 10/11/2017 na Trilha Agile Coaching.
Mostra a aplicação do framework Coaching de Agile Coach
Java Test Automation for REST, Web and MobileElias Nogueira
Presentation about how to use REST, Web and Mobile open source tools to increase your test codebase.
This presentation was made by me and Edson Yanaga for JavaOne 2017 San Francisco on 04/09/2017
Trust Your Pipeline - Automatically Testing and End-to-End Java ApplicationElias Nogueira
This is a presentation for you that need to learn about testing in other levels than the unit and integration testing and the importance of a testing pipeline in your project.
Bruno Souza and I presented this on JavaOne Conference 2017 in San Francisco on 02/09/2017
O documento discute o papel de um Agile Coach. Um Agile Coach guia indivíduos, times e organizações na jornada para a agilidade, observando o processo como um todo e apontando oportunidades de melhoria. Um Agile Coach atua nos três universos de indivíduo, time e organização, desenvolvendo líderes e catalisando mudanças culturais.
A importancia de testes em todos os aspectosElias Nogueira
Keynote ministrado no Google Developer Group Campinas no evento Quality Fest em 16/09/2017 falando sobre a importância de foco, níveis e aspectos que muitos desenvolvedores esquecem no momento de aplicar testes em mobile
O documento apresenta os principais tipos de testes de software, com foco em testes de ponta a ponta para aplicativos Android. Descreve testes unitários, de integração e de interface do usuário, além de padrões como page objects e instrumentation testing robots para organizar testes. Também discute testes de serviços e fluxos de teste ideal para diferentes níveis.
Palestra que mostra a visão de que os testadores, hoje, são ou irão se tornar técnicos e também um conjunto de dicas de como se tornar um testador técnico.
Palestra ministrada na Trilha de Testes do The Developers Conference 2017 Florianópolis em 05/05/2017
Apenas um script de teste para iOS e AndroidElias Nogueira
Palestra que apresenta como criar apenas um script de automação de teste para iOS e Android, usando Java como linguagem e Appium como ferramenta.
Esta palestra foi ministrada na Trilha Mobile do The Developers Conference Florianópolis e 2017 em 06/05/2017 e no The Developers Conference São Paulo 2017 em 20/07/2017.
Este certificado confirma que Gabriel de Mattos Faustino concluiu com sucesso um curso de 42 horas de Gestão Estratégica de TI - ITIL na Escola Virtual entre 19 de fevereiro de 2014 a 20 de fevereiro de 2014.
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
8. Local
Utiliza máquinas dentro da
nossa infraestrutura, podendo
ser uma máquina real ou
virtual.
Nuvem
Utiliza serviços na nuvem para
criar e conectar máquinas.
Containers
Utilizar containers e o suporte
a orquestração para a criação
de grid sob demanda.
Formas de criar uma grid web
10. • Depende de infraestrutura física
• Dificuldade de escalar
• Requer manutenção (atualizações)
Problema com o grid web local
11. Solução proposta
Com o TestNG conseguimos inserir
parâmetros da suíte de teste em xml para
os scripts de teste, removendo
dependência direta de browsers no script.
Com Docker podemos utilizar containers
como hub e como nós, e utilizar quantos
containers forem necessários para as
execuções de teste.
TestNG
12. SCONTAINERS
SELENIUM
• Containers separados para hub e nós
• selenium-hub
• selenium-node-chrome
• selenium-node-firefox
• Necessidade de criar containers
adicionais para melhora do paralelismo
• Containers através da imagem elgalu/selenium
• Auto-escala de containers baseado na
quantidade de testes que será recebido
• Live Preview com VNC
• Gravação de Vídeos
• Dashboard
20. Exemplo do paralelismo - código
@BeforeMethod
@Parameters("browser")
public void preCondicao(@Optional("chrome") String browser) {
driver = getDriver(browser);
}
<suite name="Build Dev" parallel="tests" thread-count="99">
<test name="Execução Chrome">
<parameter name="browser" value="chrome"/>
<classes>
<class name="test.ReservarQuartoTest" />
</classes>
</test>
</suite>
Indicando que o paralelismo é
por testes na classe de teste
21. Exemplo do paralelismo - código
@BeforeMethod
@Parameters("browser")
public void preCondicao(@Optional("chrome") String browser) {
driver = getDriver(browser);
}
<suite name="Build Dev" parallel="tests" thread-count="99">
<test name="Execução Chrome">
<parameter name="browser" value="chrome"/>
<classes>
<class name="test.ReservarQuartoTest" />
</classes>
</test>
</suite>
Verifica associação
do parâmetro
Insere o valor do
parâmetro no
teste
22. Exemplo do paralelismo - código
@BeforeMethod
@Parameters("browser")
public void preCondicao(@Optional("chrome") String browser) {
driver = getDriver(browser);
}
<suite name="Build Dev" parallel="methods" thread-count="99">
<test name="Execução Chrome">
<parameter name="browser" value="chrome"/>
<classes>
<class name="test.ReservarQuartoTest" />
</classes>
</test>
</suite>
Se a execução não for via suíte,
executa no Google Chrome
26. Ganhos reais
min
Tempo atual para executar uma
suíte com 61 testes em uma grid
de 20 nós.
min
Tempo com abordagem de
execução local (sequencial)
de uma suíte com 61 testes.
Tempo de execução para 15 suítes
com 394 testes em grid
min
27. ProTip: Criar uma estratégia de
execução de testes em grid
• Dividir a execução em diversas suítes de teste
• Criar suítes de smoke e execute-as primeiro
• Entender a carga de execução (números de testes) e
defina a sua infraestrutura (nós)
28. Suíte de Testes
90 testes
90 testes
30 min
90 testes
30 min
90 testes
30 min
Tempo total: 30 min
29. Suíte de Testes
30 testes
30 testes
10 min
30 testes
10 min
30 testes
10 min
Tempo total: 10 min
Suíte de Testes
30 testes
Suíte de Testes
30 testes
37. Desafios: Muitas frentes para testar
https://www.ministryoftesting.com/2012/06/getting-started-with-mobile-testing-a-mindmap/
38. Problema
Execução automatizada de teste é feita ”um a um”
Não há uma rápida resposta à cobertura de restrições
Fabricante
Tamanho de tela
Versão de plataforma
40. O que eu preciso
• Selenium Server [1]
• Instalação do Appium via npm [2]
• Dispositivos emulados ou reais
• Script de Teste com:
• Suporte a execução paralela (TestNG)
• Arquitetura de teste que suporte a execução paralela
• Criação do driver (execução no dispositivo sob demanda)
[1] http://www.seleniumhq.org/download/#mainContent
[2] https://www.npmjs.com/package/appium
41. Passos para iniciar a grid
• Iniciar Selenium Grid como role hub
• Iniciar os nós (dispositivos)
• Apontando para a URL e porta da GRID
• Com portas do Appium (-p) e Bootstrap (-bp) diferentes dos demais
• Informando o udid do dispositivo
42. Script de Teste
TestNG
Selenium GRID
http://192.168.1.31:4444
Nó 01
http://192.168.1.34:4723
Nó 02
http://192.168.1.35:4724
registra na grid ->
<- executa teste
arquivo .json arquivo .json
registra na grid ->
<- executa teste
Informar alvos (nomes dispositivos)
para execução