Introdução a testes automatizados
Upcoming SlideShare
Loading in...5
×
 

Introdução a testes automatizados

on

  • 8,190 views

 

Statistics

Views

Total Views
8,190
Views on SlideShare
4,868
Embed Views
3,322

Actions

Likes
4
Downloads
39
Comments
0

8 Embeds 3,322

http://thiagoghisi.com 2933
http://forkintuba.wordpress.com 352
http://coderwall.com 15
http://abtasty.com 13
http://www.linkedin.com 5
http://thiagoghisi.wordpress.com 2
http://a0.twimg.com 1
https://www.linkedin.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Introdução a testes automatizados Introdução a testes automatizados Presentation Transcript

  • Thiago Ghisi (@thiagoghisi)
  •  2003 - SENAI e o Poder da Programação Pascal. 2005 - Técnico em Informática com Habilitação em Redes de Computadores 2006/1 - Ciência da Computação (Unisul) 2006/2 - Técnico de Informática (Tractebel Energia/Consult System) 2007/1 - PUIC: Testes, CMMI e Extreme Programming 2007/2 – Nexxera Techpeople 2008 - Testes Automatizados (Techpeople) 2009/1 - SCJP 6.0 2009/2 - Ágiles 2009 (1º Coding Dojo) 2010/1 - TCC: Shell para desenvolvimento de Sistemas Especialistas na Web.  0% de cobertura de Testes Automatizados == Estou até hoje para disponibilizar o fonte. 2010/2 - MPS.BR Nível F (Techpeople) 2011/1 - CMMI ML2 (Techpeople) 2011/2 - Bacharel em Ciência da Computação (Unisul) 2011/3 – DojoTuba 2011/4 - Consultor MPS.BR 2011/5 – Fork In Tuba
  • 1. Quem já ouviu falar e sabe o que são Testes Automatizados?2. Quem já usou algum tipo de Teste Automatizado em alguma aplicação que desenvolveu profissionalmente?3. Quem FREQUENTEMENTE faz Testes Automatizados?4. Quem SEMPRE faz Testes Automatizados?5. Quem faz TDD do início ao fim?
  •  Com que linguagem de programação você trabalha?
  •  Em uma palavra:  Feedback Em uma frase:  “Executar o programa com alguma(s) entrada(s) e conferir visualmente os resultados obtidos” AgilCoop/USP
  •  “É o processo de escrita de uma programa de computador para realizar o teste de software.” Wikipédia
  •  “Uso de software para a controlar a execução do teste de software, comparando RESULTADOS ESPERADOS com os RESULTADOS REAIS.” Wikipédia
  •  Projeto sem Testes Automatizados = Medo de Refatorar o Código e a Arquitetura = Código Imundo = Baixa Produtividade e Alta Taxa de retrabalho (BUGs) = Pessoas desmotivadas = Go Horse Process Projeto com Testes Automatizados = Segurança ao Refatorar o Código e a Arquitetura = Código Limpo = Alta Produtividade e Baixa Taxa de retrabalho (BUGs) = Pessoas motivadas = $$$
  •  “São os testes de unidade que mantêm seus códigos flexíveis, reutilizáveis e passíveis de manutenção.” “Sem testes, cada modificação pode gerar um bug e você ficará relutante em fazer mudanças.” “Quanto maior a cobertura dos seus testes menor o medo.” “Ter uma coleção de testes de unidade automatizados que cubram o código de produção é o segredo para manter seu projeto e arquitetura os mais limpos possíveis.” “Se não mantiver os testes limpos, irá perdê-los.”
  •  Importância dos Testes Automatizados em Linguagens Dinâmicas X Importância dos Testes Automatizados em Linguagens Compiladas?
  •  O teste é modelado conhecendo-se a estrutura interna do sistema Aplicável somente quando se conhece o algoritmo O calculo da Cobertura de Testes é totalmente baseada em princípios Caixa Branca Teoricamente, cada caminho possível ao longo do código deve ser testado Teste Estrutural
  •  O teste é modelado sem o conhecimento da estrutura interna do sistema Aplicável em todas as fases/tipos de Testes. Se concentram e se baseiam na entrada e saída da unidade. Teste Funcional
  •  O primeiro tipo de teste que se deve fazer Uma unidade pode ser entendida como o menor trecho de código de um sistema que pode ser testado. Normalmente um método. Focado em um trecho específico do código, desta forma os erros encontrados são facilmente localizados, diminuindo o tempo gasto com depuração. Exemplo da Engenharia aeronáutica
  •  xUnit (API) JUnit com EclEmma Mock Objects?
  •  Sucede o Teste de Unidade Módulos são combinados e testados em grupo Onde vários Mock Objects são removidos Antecede o Testes de Aceitação, ou os testes onde o sistema está completamente integrado
  •  Sistema completamente integrado “Última ação de teste antes da implantação do software. A meta do teste de aceitação é verificar se o software está pronto e pode ser usado pelos usuários finais para executar as funções e as tarefas para as quais foi criado.” RUP Testes caixa preta que são realizados através da interface de usuário, que pode ser, por exemplo, um console textual, uma interface de uma aplicação local ou uma interface Web Validação do sistema do ponto de vista do Cliente, do negócio.
  •  Selenium Server  o interpretador, é um server em java, um JARZÃO Selenium IDE (FIREFOX)  grava e exporta testes para todos os clients Selenium Client (Várias Linguagens: Java, PHP, Ruby, Python)  Não tem desculpas para não usar!
  •  Fast – Quando os testes rodam devagar, você não desejará executá-los com frequência. Idenpendent – Quando os testes dependem um dos outro, se o primeiro falhar causará um efeito dominó de falhas, dificultando o diagnóstico. Repeatable – Caso os testes não p0ssam ser repetidos em qualquer ambiente, você sempre terá uma desculpa para não manter os testes VERDES. Self-validating – Asserts TRUE ou FALSE, sempre! Evita comparações manuais. Timely – Escrever os testes na hora certa, que é em 99% das vezes antes. Se criá-los depois, o teste de código de produção poderá fica mais difícil.
  •  Atuar como especificação das funcionalidades Atuar como repelente de bugs Ajudar a achar defeitos no sistema em teste Atuar como documentação executável Atuar como rede de segurança para mudanças Não fazer mal ao sistema em teste Referência: AgilCoop/USP
  • Link Vídeo: http://www.youtube.com/watch?v=9XwiUKXZm-o
  •  Reconhecimento que Desenvolvimento de software é uma tarefa complexa. A automação dos testes dá segurança à equipe para fazer alterações no código, seja por manutenção, refatoração ou até mesmo para adição de novas funcionalidades. No começo e por muito tempo vai doer fazer, vai ser difícil, é uma mudança de paradigma. Pratique! Fazer testes automatizados está relacionado com ser ou não profissional! Precisamos convencer nossos superiores que testes automatizados são importantes e que são eles que vão ganhar com isso!
  •  Livro Código Limpo: Habilidades Práticas do Agile Software –Capítulo 9: Testes de Unidade http://ccsl.ime.usp.br/agilcoop/files/AgilCoop-Verao08- Testes.pdf http://ccsl.ime.usp.br/agilcoop/files/TestesAutomatizados-1-2- Introducao-AgilCoop-Verao2010.pdf http://www.agilcoop.org.br/files/AgilCoop-Verao2010- TestesAutomatizados.pdf https://github.com/thiagoghisi/DojoTuba/tree/master/dojoCaix aEletronicoEconomico https://github.com/thiagoghisi/DojoTuba/tree/master/dojoCalc uloDeNumerosRomanos https://github.com/rodrigoy/beckanos-java http://seleniumhq.org/
  •  Contatos:  E-mail: thiago.ghisi@gmail.com  Twitter: @thiagoghisi  Blog: http://thiagoghisi.com  Linkedin: http://br.linkedin.com/in/thiagoghisi  DojoTuba/ForkInTuba: http://groups.google.com/group/dojotuba