Automação de Testes: Ferramentas e Aplicação com Integração Contínua

Slides:



Advertisements
Apresentações semelhantes
Agilidade em um Contexto Hostil
Advertisements

Gosta de gráficos e estatísticas? Webalizer é perfeito para você!
Boas Práticas Adotadas em um Projeto de Design de Testes – Um relato de experiência
Débora da Silva Orientadora: Maria Inés Castiñeira
Tópicos Motivação para teste Por que algumas empresas não testam
Desenvolvimento ágil: eXtreme Programming vs SCRUM Tiago Rodrigues de Mello CCO-230 – ENGENHARIA DE SOFTWARE / 2010.
SELENIUM.
Professor Ismael H F Santos –
Como utilizar esta ferramenta para apresentações profissionais.
Ci&T SPIN – Campinas Equipe de testes em projetos com CI e TDD.
Emitindo seu Certificado Digital
Selenium CONFIGURAÇÃO DE TESTE.
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
Gestão de Defeitos Vanilson Burégio.
Controle de Versão SVN e Tortoise SVN
Guia para configuração e envio da Nfe por
Passo a passo PASSO A PASSO
Instalação e Configuração
Servidor HTTP (Apache)
Processos & Sistemas de Sinistros Novo Orçamento Web
Introdução aos conceitos de Teste de Software
My Drivers Bruna Helena Silva, n°05 Gabrielle Prado, n°15 Legacy.
Introdução a Computação Trabalho Final PUC Minas – São gabriel
Selenium Componentes: Fábio Gomes Claver Pari Eni Conde
Concurrent Versions System Leandro Augusto de Oliveira
Treinamento do Microsoft® Access® 2010
Na barra de mensagens, clique em Habilitar Edição,
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
IT-Academy. Faculdade de Computação e Informática – MS IT Academy Certificações Microsoft –Microsoft Certified Professional : MCP –Microsoft Certified.
ACCESS 2007 EDIMILSON JÚNIOR.
My drivers.
Instalação  A tela abaixo é a primeira a aparecer durante a instalação do Caché 5. O diretório selecionado será usado para salvar alguns arquivos usados.
Otimizando sua TI, maximizando seus negócios
MVP Virtual Conference 2013
Gerência de Configuração - GC
Engenharia de Software
Referência rápida para © 2013 Microsoft Corporation. Todos os direitos reservados. Tela inicial do Lync A tela inicial do Lync tem blocos no hub à esquerda.
ADVOCA Solução Jurídica
Guia para configuração e envio da Nfe por
Luiz Antonio Torres, Maio/2014
Etapas do Projeto DC.IC.15 Data Revisão: 07/04/2017 Início Fim
Na barra de mensagens, clique em Habilitar Edição,
Paulo Oliveira – phslfo Victor Acioli - vaca 11/05/2010.
Gestão Completa da Cadeia de Suprimentos
Introdução a Teste de Software
Curso: Análise e Desenvolvimento de Sistemas Disciplina: Introdução à Informática Assunto: Wordpress Professor: André Moraes Aluno: Bruna Lais Zuge Pelotas,
Automação de Testes de Software
Conceitos Básicos Introdução.
Concurrent Versions System (CVS) Alexandre Monteiro.
Redes Configurações e teste.
Automação de Testes: Ferramentas e Aplicação com Integração Contínua, Tipos e Exemplos Rogério dos Reis Brito
Controle de Versão com SubVersion
CVS – Gerenciamento de Versões
Universidade Federal de Pernambuco Integração Contínua Rafael Vanderlei de Souza 13/10/2008 Programa de Mestrado em Ciência da Computação.
Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais
Ferramentas e Tecnologias para o Trabalho Distribuído e Colaborativo
Informática Básica Jackson Eduardo da Silva Fórmulas É comum ouvirmos falar nas fórmulas do Excel. São ferramentas poderosas que podem ser usadas para.
Microsoft SQL Server Instruções para instalação/ recuperação de bancos de dados no SQL Server.
Utilizando subversion como controle de versão
Universidade Federal de Pernambuco Ambiente para Integração Contínua Rafael Vanderlei de Souza 06/12/2008 Programa de Mestrado em Ciência.
Programação para Web I AULA 2 BANCO DE DADOS.
Help de Funções do sistema Este HELP ajudará na instalação e configuração do Roteador SISMOURA.
Duvidas Frequentes 09/01/2009. Atualizando o SISMOURA.
GUTS-RS TESTES EM PROJETO DE IMPLANTAÇÃO ERP.
Web Application Rafael Muniz e Marcus Vinícius Plugins MAVEN 04/04/2009 Revisão 12/04/2009.
Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia em Redes de Computadores Projeto Integrador I Seminário Final Ferramenta Nessus e.
Subversion- Treinamento Básico Controle de versões de Arquivos na Acropolis Atualizado em
Questionário (Básico) Autor: Skyup Informática. Atividade - Questionário O módulo permite criar uma série de questões, que deverão ser respondida pelos.
Testes de Unidade. 2 Pauta Testes de Unidade; Testes de Unidade; Desenvolvimento orientado a testes; Desenvolvimento orientado a testes; Testes unitários.
UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO CURSO DE CIÊNCIA DA COMPUTAÇÃO Instalação e análise de gráficos da ferramenta NTop Redes de Computadores.
Transcrição da apresentação:

Automação de Testes: Ferramentas e Aplicação com Integração Contínua Agile Brazil 2010 – 22 a 25 de Junho Automação de Testes: Ferramentas e Aplicação com Integração Contínua Gabriela de Oliveira Patuci gpatuci@ciandt.com 1

Agenda Introdução Por que automatizar? Quando a automação começa a valer a pena Tipos de Teste Ferramentas : Selenium Ferramentas: Outras opções no mercado Por que usar a Integração Contínua neste caso?

Agenda CI: Conceito Ferramentas : Hudson, Cruise Control Hudson: Como configurar um projeto? Dia a dia com CI Hudson exibindo resultados de testes Conclusão Dúvidas

Introdução “A clever person solves a problem. A wise person avoids it.” Albert Einstein -- “Bugs will appear in one part of a working program immediately after an 'unrelated' part of the program is modified.” Murphy “Nothing is foolproof. Fools are just too darn clever.” anonymous

Por que automatizar? Porque existe muito a ser testado; Porque nem todo tipo de teste tem que ser manual; Porque se testarmos algo mais simples automaticamente, temos tempo para testes mais complexos (maior cobertura);

Por que automatizar? Porque temos que executar testes de regressão; Porque testes de fumaça devem ser executados antes da bateria de testes funcionais. Porque precisamos executar testes de estresse.

Quando a automação começa valer a pena... SIM Requisito alterado com menor frequência (layout) Projetos com mais de 5 sprints (desenvolvimento incremental) NÃO Requisito alterado a todo momento (regravação) Projetos de menos de 3-5 sprints (pouco reteste)

Tipos de Teste Fumaça Integração Consiste em fazer um teste superficial que indica a viabilidade de rodar os demais testes. Unitário Foco em testar caminhos específicos do produto (caixa branca). Integração Foco em combinar as partes do produto e testar as partes em conjunto.

Tipos de Teste Sistema Visa garantir que o software funciona corretamente com os demais elementos do sistema. Regressão Visa evitar que defeitos já corrigidos retornem ao produto. Aceitação Foco em apresentar o produto ao cliente para que o produto seja homologado.

Ferramentas: Selenium Fumaça, Regressão, Estresse... Selenium – tipo “gravação e reprodução” Selenium IDE Plugin para o Firefox , que ajuda a gravar, ver e editar as ações de teste. Selenium RC Sistema cliente/servidor que permite que você controle o browser local ou remotamente. É com ele que são executados os testes. Selenium GRID Ferramenta para executar o Selenium RC em vários servidores ao mesmo tempo. Gerando assim produtividade e diversidade.

Ferramentas: Selenium

Ferramentas: Outras Nome Site Tecnologia Finalidade Watir http://watir.com/ web Automação de testes para páginas Web via programação (Ruby) Marathon http://www.marathontesting.com/ Java Testes de regressão Selenium http://seleniumhq.org/ Testes Funcionais e regressão JMeter http://jakarta.apache.org/ Testes de desempenho Tabela disponível em: http://www.opensourcetesting.org/

Por que usar CI nestes casos? Execução dos primeiros testes da bateria : Smoke (validação da bateria para início dos testes funcionais) Execução de todos os testes automatizados Possibilidade de receber resultados por e-mail Possibilidade de build noturna Métricas de Código: gerar relatórios de métricas de qualidade Geração automática de documentação

CI : Conceito Se uma nova funcionalidade é adicionada a um sistema que já funcionava bem (e já estava testado), sempre existe a possibilidade desta afetar as outras. Uma boa maneira de assegurar que tanto esta funcionalidade, como todo o resto do sistema esteja funcionando de forma harmoniosa, é que as equipes utilizem uma prática cada vez mais comum no mercado de TI: a integração contínua. Ela consiste em pares integrando seus códigos com o restante do sistema diversas vezes ao dia.

CI : Conceito Sempre que um dos pares integra seu código, a ferramenta de integração contínua executa todos os testes automatizados programados para aquela build e assim, assegura que a integração ocorreu como programado e satisfatoriamente. Toda nova integração pode gerar erros no código/sistema. Exatamente por isso, as equipes utilizam esta prática de testes para localizar eventuais bugs, para que a correção seja o mais precoce possível.

CI : Ferramentas de Apoio Servidores de buid automatizadas mais utilizados no mercado: Hudson e Cruise Control. Hudson (principais características): Facilidade de instalação. Possibilidade de distribuir as builds para múltiplas máquinas. Publicação de resultados, de testes e acompanhamento do log. Notificação por email.

Hudson : Configuração Painel Principal

Informações do Projeto Hudson: Configuração Informações do Projeto

Hudson : Configuração Configuração do Projeto

Hudson: Configuração Configuração do Projeto

Hudson: Configuração Configuração do Projeto

Hudson: Histórico Revisões e Mudanças

CI: Passo a passo Passos que podem ser executados no dia a dia de um projeto com CI Sempre tenha certeza que o projeto está sendo compilado corretamente e que todos os testes (automatizados) estão sendo executados; Converse com o time para saber quando é sua vez de integrar o código; Sempre mantenha um backup na sua máquina (de um dos dois); Faça o update do projeto; Faça novamente a verificação do software e dos testes; Faça o commit do projeto; Apague o diretório do projeto da máquina de integração e faça o checkout; Faça a última verificação do software e dos testes;

Passo 1 Sempre tenha certeza que o projeto está sendo compilado corretamente e que todos os testes (automatizados) estão sendo executados; Por que? A idéia é que o repositório esteja sempre consistente e o mais atualizado o possível. Quando? A todo momento, quando alguém faz checkout, o código deve ser executado em perfeito estado. Como? Sempre que alguém integrar seu código a build, deve se assegurar de rodar todos os testes e saber que tudo correu bem.

Passo 2 Converse com o time para saber quando é sua vez de integrar o código; Por que? Imagine se todos pudessem fazer commit a todo tempo? Quando? Sempre e a todo o momento... a ordem é: antes de fazer o commit, verificar! Como? Que tal um sinalizador? Nós temos a “arara amarela”.

Passo 3 Sempre mantenha um backup na sua máquina (de um dos dois); Por que? Sempre existem riscos. Um usuário pode tentar rodar a build e ela apresentar problemas (nem sempre a solução será rápida) Quando? Sempre e a todo código novo. Nunca se sabe quando você vai precisar. Como? Simplesmente mantendo o backup.

Passo 4 Faça o update do projeto; Por que? Para podermos integrar as alterações feitas pelos pares na máquina que executa as integrações. Quando? Toda vez que estiver prestes de fazer um commit de suas alterações. Como? Através de comandos CVS que selecionam apenas o que foi alterado desde o último checkout.

Passo 5 Faça novamente a verificação do software e dos testes; Por que? Porque neste momento você já poderá perceber que o código novo “quebrou” (ou não) aquilo que o time já tinha compilado. Quando? Toda vez que estiver prestes de fazer um commit de suas alterações. Como? Executando a build novamente, seguida dos testes.

Passo 6 Faça o commit. Por que? Porque é assim que você une efetivamente suas alteracões ao pacote. Quando? Toda vez que estiver prestes a fazer um commit de suas alterações. Como? Normalmente, clicando com o botão direito sobre os arquivos e depois na opção “Commit”.

Passo 7 Apague o diretório do projeto que está na máquina de integração e faça o checkout. Por que? Porque essa é a única maneira de se assegurar que os próximos possam fazer todo o processo de maneira segura. Quando? Depois que o processo de integração terminar. Como? Normalmente, clicando no botão direito e na opção “Delete”

Passo 8 Faça a última verificação do software e dos testes; Sua integração finalmente terminou! Parabéns!

Resultados de Testes (Hudson) Script (feito dentro do código que gera a build) - Depois da execução dos unitários, envia resultados - Se um dos testes unitários falha, envia um e-mail avisando - Crie um alias para receber estes alerts e insira o código junto com o da build

Conclusão E então, o que mudou? - Diminuição dos casos de builds não testáveis. - Aumento da cobertura de testes. - Aumento da qualidade (medido pelos bugs em produção). - Agilidade na integração de códigos

Referências Murta, L.G.P. (2009). Verificação, Validação e Testes. Acessado em 12 de junho de 2010, no website do IC (Instituto de Computação da Unicamp). Disponível em: http://www.ic.uff.br/~leomurta/courses/2009.2/es2/aula5.pdf Godoy, G.L. (2009). Integração Contínua com Hudson. Acessado em 09 de junho de 2010, no website do evento SPIN Campinas. Disponível em: http://www.cpqd.com.br/spin-cps/images/Apresentacoes/reuni%E3o39_apst-hst-001-090001-eventospin.pdf Leão. D.S. (2008). Práticas de Integração. Acessado em 30 de maio de 2010, no website ImproveIT. Disponível em: http://improveit.com.br/xp/praticas/integracao Tabela de ferramentas de automação. Acessado em 12 de abril de 2010, no website da Open Source Testing. Disponível em: http://opensourcetesting.org

Obrigada! Dúvidas?

Ci&T Software S.A. – Todos os direitos reservados. www.cit.com.br Copyright (C) 1995-2009 Ci&T Software S.A. – Todos os direitos reservados. Todos os nomes e produtos são usados apenas com o propósito de identificação e são marcas registradas de seus respectivos proprietários. 37