O documento discute a importância de testes automatizados para sustentar Continuous Delivery e DevOps. Ele explica os benefícios de testes automatizados, como feedback rápido e menos erros, e discute vários tipos de testes como testes unitários, de serviço, funcionais e de desempenho. Também fornece exemplos de ferramentas para cada tipo de teste.
Importância de Testes Automatizados para Continuous Delivery & DevOpsSamanta Cicilia
O mercado tem exigido cada vez mais rapidez nas entregas dos times de desenvolvimento, para atender as demandas de negócio e manter a competitividade. Para garantir que essas entregas aconteçam no tempo esperado e com qualidade, é muito importante investir em todos os níveis de teste automatizados. Vamos ver quais são esses níveis de teste e alguns exemplos práticos usando Python de testes unitários, integração, funcionais, performance e mutação.
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.
O documento discute Continuous Delivery, apresentando conceitos como controle de versão, integração contínua, testes automatizados e pipeline de implantação. Ele descreve o caso da Infoglobo, que implementou pipelines de implantação usando Jenkins e GoCD para entregar software de forma contínua, resultando em mais de 120 pipelines em um ano e deploys a qualquer hora.
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...Samanta Cicilia
O mercado tem exigido cada vez mais rapidez nas entregas dos times de desenvolvimento, para atender as demandas de negócio e manter a competitividade. Para garantir que essas entregas aconteçam no tempo esperado e com qualidade, é muito importante investir em todos os níveis de teste automatizados. Vamos ver quais são esses níveis de teste e alguns exemplos práticos usando Python de testes unitários, integração, funcionais, performance e mutação.
- Antipadrões de Entrega de Software;
- Princípios de Continuous Delivery
- Gerência de Configuração
- Integração Contínua
- Estratégias de Teste
- Pipeline de Implantação
- Case da Infoglobo
- Gerência de Dados
- Estratégias de Implantação
DevOps Summit Brasil - O que não te contaram sobre Agile TestingSamanta Cicilia
O documento discute os papéis e responsabilidades de um testador ágil, enfatizando a importância da comunicação, adaptação às mudanças e promoção de feedback. Ele também apresenta técnicas como testes de unidade, testes de componentes e testes exploratórios.
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesSamanta Cicilia
O documento discute os princípios e práticas do Agile Testing, enfatizando a importância da colaboração entre times de desenvolvimento e teste para entregar software de qualidade de forma contínua. Aborda tópicos como testes durante o desenvolvimento, responsabilidade compartilhada pela qualidade e adaptação aos requisitos em mudança.
O documento discute a importância de testes automatizados para sustentar Continuous Delivery e DevOps. Ele explica os benefícios de testes automatizados, como feedback rápido e menos erros, e discute vários tipos de testes como testes unitários, de serviço, funcionais e de desempenho. Também fornece exemplos de ferramentas para cada tipo de teste.
Importância de Testes Automatizados para Continuous Delivery & DevOpsSamanta Cicilia
O mercado tem exigido cada vez mais rapidez nas entregas dos times de desenvolvimento, para atender as demandas de negócio e manter a competitividade. Para garantir que essas entregas aconteçam no tempo esperado e com qualidade, é muito importante investir em todos os níveis de teste automatizados. Vamos ver quais são esses níveis de teste e alguns exemplos práticos usando Python de testes unitários, integração, funcionais, performance e mutação.
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.
O documento discute Continuous Delivery, apresentando conceitos como controle de versão, integração contínua, testes automatizados e pipeline de implantação. Ele descreve o caso da Infoglobo, que implementou pipelines de implantação usando Jenkins e GoCD para entregar software de forma contínua, resultando em mais de 120 pipelines em um ano e deploys a qualquer hora.
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...Samanta Cicilia
O mercado tem exigido cada vez mais rapidez nas entregas dos times de desenvolvimento, para atender as demandas de negócio e manter a competitividade. Para garantir que essas entregas aconteçam no tempo esperado e com qualidade, é muito importante investir em todos os níveis de teste automatizados. Vamos ver quais são esses níveis de teste e alguns exemplos práticos usando Python de testes unitários, integração, funcionais, performance e mutação.
- Antipadrões de Entrega de Software;
- Princípios de Continuous Delivery
- Gerência de Configuração
- Integração Contínua
- Estratégias de Teste
- Pipeline de Implantação
- Case da Infoglobo
- Gerência de Dados
- Estratégias de Implantação
DevOps Summit Brasil - O que não te contaram sobre Agile TestingSamanta Cicilia
O documento discute os papéis e responsabilidades de um testador ágil, enfatizando a importância da comunicação, adaptação às mudanças e promoção de feedback. Ele também apresenta técnicas como testes de unidade, testes de componentes e testes exploratórios.
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesSamanta Cicilia
O documento discute os princípios e práticas do Agile Testing, enfatizando a importância da colaboração entre times de desenvolvimento e teste para entregar software de qualidade de forma contínua. Aborda tópicos como testes durante o desenvolvimento, responsabilidade compartilhada pela qualidade e adaptação aos requisitos em mudança.
[Uff] Continuous Delivery: Entrega Contínua de Software de ValorSamanta Cicilia
O documento discute a entrega contínua de software, incluindo:
1) A importância de automatizar o processo de desenvolvimento, teste e implantação;
2) Exemplos de empresas que fazem implantações várias vezes por dia;
3) Os princípios e práticas de entrega contínua, como automação, controle de versão e melhoria contínua.
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a ServiçosSamanta Cicilia
O documento apresenta a estratégia de evolução da arquitetura de TI da Infoglobo para uma arquitetura orientada a serviços e microserviços utilizando práticas de Continuous Delivery. Detalha o pipeline de implantação contínua implementado para agilizar o processo de deploy e entrega de novos recursos, integrando automação de testes, deploy em diferentes ambientes e feedback contínuo.
1 2 3 - Testando - Automatizando os testes de softwareHeider Lopes
O documento discute testes de software e desenvolvimento orientado a testes (TDD). Ele apresenta os principais tópicos: 1) razões para testar software e automatizar testes; 2) tipos de testes como unitários e de integração; 3) os princípios e benefícios do TDD; 4) um exemplo prático de implementação de testes unitários usando TDD.
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva minastestingconference
Este documento apresenta três passos para a automação efetiva de testes: 1) Definir o valor do negócio através de exemplos em linguagem natural e feedback do cliente; 2) Automatizar os testes usando Selenium WebDriver e padrões como Page Object; 3) Refatorar os testes para evitar duplicação de esforços e manter baixo custo de manutenção.
Visual Regression Testing: mais um tipo de teste pra sua pipelineSamanta Cicilia
O documento discute testes de regressão visual para validar interfaces gráficas, comparando ferramentas pagas e gratuitas que fornecem dashboards para aprovação de imagens capturadas. As ferramentas Percy, Applitools e Visual Review oferecem integração com plataformas de desenvolvimento, enquanto LineUp e Magneton são opções de código aberto para Ruby.
Alcançando qualidade de software através de entrega contínuaSamanta Cicilia
Entregar software que atenda as objetivos do negócio, em pouco tempo e com um alto padrão de qualidade ainda é um desafio para muitas empresas. Processos de desenvolvimento são muitas vezes burocráticos. O desenvolvimento ágil veio para nos mostrar que a forma que pensávamos em software podia ser melhorada. A Entrega Contínua veio para potencializar a entrega desde a primeira linha de código até produção. Nessa palestra vamos mostrar como estamos implementando Entrega Contínua na Infoglobo. Serão abordados os seguintes temas: Introdução à Entrega Contínua de software - Pipeline de Entrega - Estágio de Commit - Deploys nos ambientes de teste - Smoke Tests -Testes de Performance Automatizados - Análise de Log - Promoção dos pacotes para cada ambiente - Testes Regressivos (Automatizados/Manuais) - Deploy em Produção - Desafios Culturais -Próximos Passos
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...minastestingconference
O documento discute a importância dos testes automatizados para entrega contínua e DevOps. Ele explica diferentes tipos de testes como testes unitários, de serviço e de interface do usuário e ferramentas para cada um. Também aborda tópicos como pirâmide de testes, antipadrões, cobertura de código e testes de mutação.
[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.
Agile Testing é um mindset que tem sido discutido e aplicado em times que utilizam desenvolvimento ágil já faz algum tempo. Nessa palestra vamos entender esse mindset, como muda a disciplina de teste do ambiente tradicional de desenvolvimento para o ágil, por que é importante investir em testes automatizados e como disseminar a cultura de Qualidade dentro do seu time.
No meu último projeto me deparei com o desafio de automatizar testes para gráficos onde as cores, formatos e detalhes eram muito importantes para a funcionalidade. A solução foi aplicar Visual Regression Testing e garantir que esses aspectos visuais estavam de acordo com o esperado. Nessa palestra vamos ver o que é Visual Regression Testing e exemplos de como automatizar usando algumas ferramentas de mercado (Percy, Lineup, Visual Review, AppliTools, GalenFramework) e também que é possível implementar a sua própria.
O documento discute o conceito de Continuous Delivery, que é um processo de entrega de software onde as mudanças são integradas, testadas e disponibilizadas de forma contínua e automatizada. Ele descreve os estágios de um pipeline de implantação contínua, incluindo commit, deploy em integração e staging, análise de logs, testes de performance e deploy em produção. O objetivo é permitir que as equipes entreguem software com mais frequência e confiabilidade.
Facilitando o desenvolvimento orientado a testes em aplicações PHPPedro Chaves
Palestra sobre Desenvolvimento Orientado a Testes (TDD) em PHP utilizando o framework de testes Codeception. Apresentada no iMasters Developer Week de Belo Horizonte, ocorrido entre 26 e 28 de maio de 2015
Medindo a performance de aplicações web com JMeterJúlio de Lima
Palestra ministrada por mim na XI EngTec no UniSalesiano Araçatuba (São Paulo) no dia 08 de outubro de 2014 via Qualister.
A intenção foi apresentar aos alunos conceitos em testes de performance e um hands-on apresentando a ferramenta JMeter.
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaGabriela Patuci
O documento discute a automação de testes de software e a integração contínua. Ele apresenta diferentes tipos de testes que podem ser automatizados, como fumaça, unitário e de regressão. Ferramentas como Selenium e Hudson são descritas para auxiliar na automação e integração contínua. A integração contínua é definida como a prática de integrar frequentemente códigos desenvolvidos e executar testes automatizados para garantir a qualidade do software.
[7Masters Aug, 2018] Escolhas durante automação de testes de APIJúlio de Lima
O documento discute as escolhas durante a automação de testes de API, incluindo se testar cenários ou endpoints, usar testes funcionais ou baseados em contratos, usar mocks ou integrações, testes de regressão ou smoke, e testes de desempenho ou carga.
Palestra apresentada no GDG São Luís Conf em 2016 na Instituição Devry. Além do conteúdo teórico, foi demonstrado de forma prática como utilizar o jenkins para automatização do processo de desenvolvimento de software.
O documento apresenta os conceitos e práticas do DevOps, descrevendo: (1) O que é DevOps, como uma filosofia que promove a integração entre equipes de desenvolvimento e operações; (2) A história do DevOps e sua evolução ao longo dos anos; (3) Ferramentas comumente usadas no DevOps.
O documento descreve o framework Spring, incluindo sua integração com Java EE e outros frameworks. Apresenta a suíte de produtos Spring, como Spring Security e Spring Web Services. Também discute a plataforma SpringSource Application Platform em desenvolvimento.
Ruby é uma linguagem de programação dinâmica e interpretada criada em 1993 por Yukihiro Matsumoto, com grande ênfase na produtividade do programador. Possui tipagem dinâmica forte e tudo é tratado como objeto, incluindo números e strings. Classes podem herdar atributos de outras classes e métodos podem ser definidos para objetos, classes e módulos. O documento apresenta diversos recursos da linguagem como arrays, hashes, expressões condicionais e laços de repetição.
[Uff] Continuous Delivery: Entrega Contínua de Software de ValorSamanta Cicilia
O documento discute a entrega contínua de software, incluindo:
1) A importância de automatizar o processo de desenvolvimento, teste e implantação;
2) Exemplos de empresas que fazem implantações várias vezes por dia;
3) Os princípios e práticas de entrega contínua, como automação, controle de versão e melhoria contínua.
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a ServiçosSamanta Cicilia
O documento apresenta a estratégia de evolução da arquitetura de TI da Infoglobo para uma arquitetura orientada a serviços e microserviços utilizando práticas de Continuous Delivery. Detalha o pipeline de implantação contínua implementado para agilizar o processo de deploy e entrega de novos recursos, integrando automação de testes, deploy em diferentes ambientes e feedback contínuo.
1 2 3 - Testando - Automatizando os testes de softwareHeider Lopes
O documento discute testes de software e desenvolvimento orientado a testes (TDD). Ele apresenta os principais tópicos: 1) razões para testar software e automatizar testes; 2) tipos de testes como unitários e de integração; 3) os princípios e benefícios do TDD; 4) um exemplo prático de implementação de testes unitários usando TDD.
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva minastestingconference
Este documento apresenta três passos para a automação efetiva de testes: 1) Definir o valor do negócio através de exemplos em linguagem natural e feedback do cliente; 2) Automatizar os testes usando Selenium WebDriver e padrões como Page Object; 3) Refatorar os testes para evitar duplicação de esforços e manter baixo custo de manutenção.
Visual Regression Testing: mais um tipo de teste pra sua pipelineSamanta Cicilia
O documento discute testes de regressão visual para validar interfaces gráficas, comparando ferramentas pagas e gratuitas que fornecem dashboards para aprovação de imagens capturadas. As ferramentas Percy, Applitools e Visual Review oferecem integração com plataformas de desenvolvimento, enquanto LineUp e Magneton são opções de código aberto para Ruby.
Alcançando qualidade de software através de entrega contínuaSamanta Cicilia
Entregar software que atenda as objetivos do negócio, em pouco tempo e com um alto padrão de qualidade ainda é um desafio para muitas empresas. Processos de desenvolvimento são muitas vezes burocráticos. O desenvolvimento ágil veio para nos mostrar que a forma que pensávamos em software podia ser melhorada. A Entrega Contínua veio para potencializar a entrega desde a primeira linha de código até produção. Nessa palestra vamos mostrar como estamos implementando Entrega Contínua na Infoglobo. Serão abordados os seguintes temas: Introdução à Entrega Contínua de software - Pipeline de Entrega - Estágio de Commit - Deploys nos ambientes de teste - Smoke Tests -Testes de Performance Automatizados - Análise de Log - Promoção dos pacotes para cada ambiente - Testes Regressivos (Automatizados/Manuais) - Deploy em Produção - Desafios Culturais -Próximos Passos
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...minastestingconference
O documento discute a importância dos testes automatizados para entrega contínua e DevOps. Ele explica diferentes tipos de testes como testes unitários, de serviço e de interface do usuário e ferramentas para cada um. Também aborda tópicos como pirâmide de testes, antipadrões, cobertura de código e testes de mutação.
[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.
Agile Testing é um mindset que tem sido discutido e aplicado em times que utilizam desenvolvimento ágil já faz algum tempo. Nessa palestra vamos entender esse mindset, como muda a disciplina de teste do ambiente tradicional de desenvolvimento para o ágil, por que é importante investir em testes automatizados e como disseminar a cultura de Qualidade dentro do seu time.
No meu último projeto me deparei com o desafio de automatizar testes para gráficos onde as cores, formatos e detalhes eram muito importantes para a funcionalidade. A solução foi aplicar Visual Regression Testing e garantir que esses aspectos visuais estavam de acordo com o esperado. Nessa palestra vamos ver o que é Visual Regression Testing e exemplos de como automatizar usando algumas ferramentas de mercado (Percy, Lineup, Visual Review, AppliTools, GalenFramework) e também que é possível implementar a sua própria.
O documento discute o conceito de Continuous Delivery, que é um processo de entrega de software onde as mudanças são integradas, testadas e disponibilizadas de forma contínua e automatizada. Ele descreve os estágios de um pipeline de implantação contínua, incluindo commit, deploy em integração e staging, análise de logs, testes de performance e deploy em produção. O objetivo é permitir que as equipes entreguem software com mais frequência e confiabilidade.
Facilitando o desenvolvimento orientado a testes em aplicações PHPPedro Chaves
Palestra sobre Desenvolvimento Orientado a Testes (TDD) em PHP utilizando o framework de testes Codeception. Apresentada no iMasters Developer Week de Belo Horizonte, ocorrido entre 26 e 28 de maio de 2015
Medindo a performance de aplicações web com JMeterJúlio de Lima
Palestra ministrada por mim na XI EngTec no UniSalesiano Araçatuba (São Paulo) no dia 08 de outubro de 2014 via Qualister.
A intenção foi apresentar aos alunos conceitos em testes de performance e um hands-on apresentando a ferramenta JMeter.
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaGabriela Patuci
O documento discute a automação de testes de software e a integração contínua. Ele apresenta diferentes tipos de testes que podem ser automatizados, como fumaça, unitário e de regressão. Ferramentas como Selenium e Hudson são descritas para auxiliar na automação e integração contínua. A integração contínua é definida como a prática de integrar frequentemente códigos desenvolvidos e executar testes automatizados para garantir a qualidade do software.
[7Masters Aug, 2018] Escolhas durante automação de testes de APIJúlio de Lima
O documento discute as escolhas durante a automação de testes de API, incluindo se testar cenários ou endpoints, usar testes funcionais ou baseados em contratos, usar mocks ou integrações, testes de regressão ou smoke, e testes de desempenho ou carga.
Palestra apresentada no GDG São Luís Conf em 2016 na Instituição Devry. Além do conteúdo teórico, foi demonstrado de forma prática como utilizar o jenkins para automatização do processo de desenvolvimento de software.
O documento apresenta os conceitos e práticas do DevOps, descrevendo: (1) O que é DevOps, como uma filosofia que promove a integração entre equipes de desenvolvimento e operações; (2) A história do DevOps e sua evolução ao longo dos anos; (3) Ferramentas comumente usadas no DevOps.
O documento descreve o framework Spring, incluindo sua integração com Java EE e outros frameworks. Apresenta a suíte de produtos Spring, como Spring Security e Spring Web Services. Também discute a plataforma SpringSource Application Platform em desenvolvimento.
Ruby é uma linguagem de programação dinâmica e interpretada criada em 1993 por Yukihiro Matsumoto, com grande ênfase na produtividade do programador. Possui tipagem dinâmica forte e tudo é tratado como objeto, incluindo números e strings. Classes podem herdar atributos de outras classes e métodos podem ser definidos para objetos, classes e módulos. O documento apresenta diversos recursos da linguagem como arrays, hashes, expressões condicionais e laços de repetição.
The document discusses the Spring Framework, including an overview of its features and capabilities. It covers dependency injection and inversion of control (IoC), loose coupling through interfaces, integration with Struts 2 and JPA/Hibernate 3, aspect-oriented programming (AOP) using proxies and AspectJ, and Spring annotations. The Spring Framework is described as an IoC container and framework for Java EE that supports integration with other frameworks and AOP.
O documento discute a integração contínua como uma prática de desenvolvimento de software em que membros de uma equipe integram seu trabalho frequentemente, normalmente diariamente, conduzindo múltiplas integrações por dia. Isso permite detectar erros mais rápido, garantindo a qualidade e consistência do código de forma automática.
Apresentação sobre as normas da ABNT específicamente sobre sumário, referências bibliográficas, inserção de figuras, quadros e tabelas, além do uso de apêndice e anexos
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes AutomatizadosStefan Teixeira
O documento discute estratégias para melhorar testes automatizados, incluindo focar nos testes de serviço para testar regras de negócio abaixo da interface do usuário, usar navegadores headless para rodar testes da interface do usuário de forma mais rápida, e tratar o código de teste da mesma forma que o código de produção para melhor legibilidade.
Rodrigo Branas tem experiência em desenvolvimento Java, certificações em programação e gerenciamento de projetos. Ele ministra treinamentos em diversas tecnologias e métodos ágeis como Extreme Programming.
O documento discute integração contínua, incluindo seus conceitos, benefícios e pré-requisitos. A integração contínua envolve construir e testar automaticamente o software sempre que novas mudanças são implementadas para garantir que o software esteja sempre em um estado funcional. Isso ajuda a detectar bugs cedo e manter o software de alta qualidade. Pré-requisitos incluem controle de versão, builds automatizados e testes automatizados.
O documento discute a integração contínua em PHP usando Jenkins. Ele descreve como ferramentas como PHPUnit, PHP CodeSniffer e phpcpd podem ser usadas com Jenkins para automatizar testes, análise de código e geração de relatórios.
Porque você precisa de uma estratégia de QA e precisa disso AGORA!Daniel Carvalhinho
O documento discute a importância de se ter uma estratégia de teste de qualidade (QA) para projetos de desenvolvimento de software. Ele explica que a falta de planejamento e execução adequados de testes pode levar a atrasos, custos extras e problemas para o cliente. Além disso, apresenta diversas ferramentas e técnicas para se realizar testes funcionais, de regressão, de fumaça, análise estática de código, testes em navegadores, de layout, de velocidade e sob carga, entre outros.
O documento apresenta uma palestra sobre Desenvolvimento Dirigido por Testes (TDD). A palestra discute o que é TDD, como funciona, frameworks de teste de unidade, mitos sobre TDD e exemplos práticos em .NET e Java. O palestrante tem mais de cinco anos de experiência em engenharia de software e é instrutor de teste de software.
“Integração Contínua é uma pratica de desenvolvimento de software onde os membros de um time integram seu trabalho frequentemente, geralmente cada pessoa integra pelo menos diariamente – podendo haver multiplas integrações por dia. Cada integração é verificada por um build automatizado (incluindo testes) para detectar erros de integração o mais rápido possível. Muitos times acham que essa abordagem leva a uma significante redução nos problemas de integração e permite que um time desenvolva software coeso mais rapidamente.” Martin Fowler
Integração contínua - Prática de desenvolvimentoMario Mendonça
Integração Contínua é uma pratica de desenvolvimento de software onde os membros de um time integram seu trabalho frequentemente, geralmente cada pessoa integra pelo menos diariamente – podendo haver múltiplas integrações por dia. Cada integração é verificada por um build automatizado (incluindo testes) para detectar erros de integração o mais rápido possível. Muitos times acham que essa abordagem leva a uma significante redução nos problemas de integração e permite que um time desenvolva software coeso mais rapidamente.
O documento discute integração contínua, incluindo o que é, por que usar, ferramentas, testes, build, servidor de integração contínua e deploy. A integração contínua envolve integrar e testar código frequentemente para encontrar e corrigir bugs rapidamente e entregar atualizações de software de forma rápida e frequente. Ferramentas como Jenkins automatizam o processo de integração contínua.
O Visual Studio Summit 2016 é o maior evento sobre Visual Studio realizado no Brasil que está chegando a 5ª edição voltado para desenvolvedores de software que tem o objetivo de promover networking, apresentar tendências e principais estratégias atuais ligadas ao desenvolvimento de software na plataforma Microsoft usando Visual Studio, Azure e mobilidade. Durante o Keynote Ramon Durães abordou o tema transformação digital e DevOps.
O documento apresenta os conceitos de Integração Contínua e como o CruiseControl.NET pode ser usado para implementá-la em projetos .NET. A Integração Contínua automatiza a compilação do código, execução de testes e geração de artefatos sempre que há novas alterações no código-fonte, melhorando a qualidade e produtividade. O CruiseControl.NET verifica periodicamente um repositório de código-fonte por novas alterações e dispara builds, armazenando logs e resultados para que os desenvolvedores possam cor
O documento discute os conceitos de CI/CD, como automação contínua do ciclo de vida de aplicações, incluindo testes, entrega e implantação. Também aborda como implementar CI/CD na prática com ferramentas como Jenkins, Docker Swarm e Github, destacando que requer processo de desenvolvimento eficiente, equipe madura e infraestrutura de monitoramento.
O documento descreve o desenvolvimento guiado por testes (Test-Driven Development - TDD), incluindo suas regras fundamentais, etapas, tipos de testes, demonstração de um exemplo e conclusões sobre os benefícios do TDD.
O documento discute a importância da qualidade de software e como alcançá-la. Apresenta os desafios comuns entre testadores e desenvolvedores e como a automação de testes com ferramentas como o Visual Studio podem ajudar a superá-los, melhorando a comunicação, reprodutibilidade de defeitos e agilidade.
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsJosé Alexandre Macedo
Apresentado para o Pop-ES e NPD da Ufes. Conheça o significado de DevOps e como ele pode apoiar entregas mais rápidas de software por meio da mudança de cultura, automatização entre outras...
Brateste 2013: Testes Agile em Processos Agileananegrello
O documento discute os desafios de realizar testes em processos ágeis e como a virtualização de serviços pode ajudar a superar esses desafios. Ele explica que configurar ambientes de teste manualmente consome muito tempo e atrasa o desenvolvimento. A virtualização permite automatizar a configuração do ambiente de teste e integrar os testes de forma contínua, melhorando a colaboração entre times e permitindo que defeitos sejam encontrados e corrigidos mais rápido.
Este documento fornece uma introdução aos testes automatizados, abordando conceitos como: objetivos da automação de testes, tipos de testes, ferramentas como Selenium e Cucumber, e técnicas como TDD. O documento também discute como identificar elementos na página e interagir com eles durante a automação.
O documento discute as práticas e benefícios da integração contínua (CI) para aplicativos Android, incluindo a importância de testes automatizados, builds curtas e rápidas, e ferramentas como Git Flow, Crashlytics Beta e Bitrise.io. O autor também fornece dicas sobre ambientes, APIs, dependências, Lint e testes para projetos Android.
Menos teste e mais qualidade - como equilibrar essa equação?Igor Abade
O documento discute a importância dos testes de software para garantir a qualidade e evitar bugs caros. Ele explica que testes devem ser realizados em três momentos: antes do desenvolvimento, durante o desenvolvimento e depois que o software é implantado. O documento também fornece exemplos de como práticas ágeis e testes automatizados podem melhorar a qualidade e reduzir custos.
6. Escreva testes muito rápidos: não devem demorar mais do que alguns segundos para serem executados TDD Regras fundamentais do TDD Igo Coelho www.igocoelho.com.br
33. Software se adapta com mais facilidade a mudanças TDD Conclusões: No início, trabalhar com TDD pode parecer um pouco doloroso, pois temos que fazer o inverso do que estamos acostumados. Mas, como em todo aprendizado, a dificuldade vem apenas no começo e nos tornamos melhores à medida que praticamos. Pelos problemas que foram descritos no início e o impacto negativo que eles trazem para nós, para nossa indústria e nossos clientes, o esforço certamente é válido! Igo Coelho www.igocoelho.com.br
34. Assegure que seja possível executar o build e todos os testes automatizados do projeto em até dez minutos. Builds automatizados são importantes porque fazem a equipe ganhar tempo e garantem que os passos sejam consistentemente seguidos sempre que são executados. Build de 10 minutos Igo Coelho www.igocoelho.com.br
42. Para algumas equipes o build de dez minutos pode parecer algo distante da realidade. Nesses casos, dez minutos devem ser vistos como um ideal. Quando a equipe possui uma boa base de testes automatizados , um dos maiores desafios é assegurar que eles executem de forma suficientemente rápida para que o ideal de um build de dez minutos seja alcançado. Build de 10 minutos Igo Coelho www.igocoelho.com.br
43. É o processo de alteração de um sistema de software de modo que o comportamento observável do código não mude, mas que sua estrutura interna seja melhorada. É uma maneira disciplinada de aperfeiçoar o código que minimiza a chance de introdução de falhas. Em essência, refatorar é melhorar o projeto do código após este ter sido escrito. [Fowler, Refatoracão] Refatoração Igo Coelho www.igocoelho.com.br
45. Refatoração /** Salva o produto no banco de dados. */ public void save() { // Verifica propriedades if (this.getName() == null) { throw new Exception("Falta nome"); } else if (this.getDescription() == null) { throw new Exception("Falta a descrição"); } this.getDatabase().save(this); } /** Salva o produto no banco de dados. */ public void save() { this.checkProperties(); this.getDatabase().save(this); } /** Verifica as propriedades do produto. */ public void checkProperties() { if (this.getName() == null) { throw new Exception("Falta nome do produto."); } else if (this.getDescription() == null) { throw new Exception("Falta a descrição do produto."); } } Igo Coelho www.igocoelho.com.br
46. Refatoração Kent Beck , um dos criadores da Programação Extrema , afirma que refatoração deve ser utilizada quando o "código cheirar mal" (do inglês bad smells in code ). Este conselho bem humorado indica uma confiança na experiência de programadores e também ressalta o valor estético do código, que deve valorizar a clareza e comunicação. Igo Coelho www.igocoelho.com.br
52. Design Incremental O objetivo é criar a solução mais simples possível que seja suficiente para implementar as funcionalidades de cada iteração . Qualquer característica que possa ser implementada para dar apoio a funcionalidades futuras, só são codificadas de fato se e quando tais funcionalidades forem priorizadas para uma iteração futura. Igo Coelho www.igocoelho.com.br
53. Design Incremental Devemos buscar concentrar os esforços da equipe naquilo que se tem certeza absoluta de que será necessário hoje, por já ter sido priorizado pelo cliente para a iteração corrente. Aquilo que poderia ser útil no futuro, deixamos para resolver no futuro, quando houver certeza da necessidade. Igo Coelho www.igocoelho.com.br
54. Integração Contínua Definição de requisitos Análise / Design Codificação Testes Integração Tempo Entrega Igo Coelho www.igocoelho.com.br
72. Informações para tomada de decisões Desafios para competir no mercado: Igo Coelho www.igocoelho.com.br
73. Integração Contínua Definição de requisitos Análise / Design Codificação / Teste Integração Ciclos de desenvolvimento Entrega Igo Coelho www.igocoelho.com.br
74. Integração Contínua “ Integração Contínua é uma prática de desenvolvimento de software em que membros de um time integram seu trabalho frequentemente, normalmente cada membro faz integrações diariamente, conduzindo a multiplas integrações diárias. Cada integração é verificada por um build automático (incluindo testes) para detectar erros o mais rápido possível.” Martin Fowler Igo Coelho www.igocoelho.com.br