• Save
Teste de Software
Upcoming SlideShare
Loading in...5
×
 

Teste de Software

on

  • 2,170 views

Apresentação sobre alguns conceitos iniciais de teste de software. ...

Apresentação sobre alguns conceitos iniciais de teste de software.

Fala sobre tipos de teste, agile testing, papéis envolvidos, cultura de testes.

Apresentação feita em conjunto por Roberto Espinha e Anelise Bastos.

Statistics

Views

Total Views
2,170
Views on SlideShare
2,128
Embed Views
42

Actions

Likes
0
Downloads
0
Comments
0

2 Embeds 42

http://robertoespinha.posterous.com 36
http://www.slideshare.net 6

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

Teste de Software Presentation Transcript

  • 1. Teste de SoftwareAgileTesting
  • 2. Teste de Software
    "É de conhecimento geral entre os analistas de software que nunca se elimina o último bug de um programa. Os bugs são aceitos como uma triste realidade. Esperamos eliminá-los todos, um por um, mas nunca conseguiremos nos livrar deles."  DeMarco, Tom , Editora Campus, 91
    Mas geralmente temos as seguintes situações:
    “Depois eu escrevo o plano de testes...“
    "Vamos deixar os testes para a próxima fase...“
    "Na minha máquina funcionou...“
    "Temos que entregar o produto na semana que vem..."
    Então o que é teste de software ?
  • 3. O que é Teste de Software?
    Processo que procura garantir que um programa se adapte aos requisitos da especificação e funcione em todos os casos em que se espere que funcione
    Identificação de possíveis defeitos que possam vir a ocorrer após a finalização do software e posterior implantação
  • 4. Por que Testar?
    Não existe processo de desenvolvimento que garanta que um programa não tenha defeitos
    Gasto com retrabalho
    Gasto de tempo na manutenção do software
    Descontentamento do cliente
    Divulgação negativa para futuros possíveis clientes
  • 5. Por que Testar?
    Usuários: Sempre surpreendendo.
    • Tentamacessar o mesmoaplicativoemdois browsers diferentes
    • 6. Ignorammensagens de erros
    • 7. Entram com datasinválidas, executamaçõesfora de ordem
    • 8. Editam arquivos que não deveriam ser editados
    • 9. Imprimem páginas que não foram configuradas para serem impressas
    • 10. Tem idéias “incorretas” sobre o que software deveria ou não fazer.
    Usuáriosfazemtudoisso, porqueelesqueremusar o software e nãoentendê-lo.
  • 11. Em todas as fases do desenvolvimento de software
    Quantomaiscedomelhor
     
    Hoje de 40 a 70 % do tempo do desenvolvimento do software é dedicado a identificação e remoção dos erros
    Erros que não são detectados e geram falhas no campo geram sérias conseqüências financeiras/legais e na melhor das hipóteses gera um alto custo de manutenção para o sistema
    Quando Testar?
  • 12. Custo da Identificação do Erro
    Cost
    Inception Elaboration Construction Transition
  • 13. O que Testar?
    Erros se escondem não só no código, mas nos requisitos, manuais, data sheets, etc
    Não podemos testar tudo, por isso precisamos administrar o RISCO
    Devemos testar o que traz maiores conseqüências no caso de falha?
    Devemos testar o que é mais utilizado?
    Devemos testar o que já dá mais erro? Ou que foi escrito por programador júnior?
    Deve ser garantida a qualidade do processo e depois do produto -> Verificação e Validação
  • 14. O queTestar?
  • 15. Como Testar?
    Teste o código em seus limites: tente uma entrada vazia, um único item, um vetor cheio, etc.
    Teste de pré e pós condições: verifique certas propriedades antes e depois de trechos de código;
    Programe defensivamente;
    Sempre verifique se ocorreram erros ao abrir, ler, escrever e principalmente fechar arquivos;
    Sempre trate as possíveis exceções;
  • 16. Como Testar?
    Teste incrementalmente (scrum);
    Teste primeiro partes simples: tenha certeza que partes básicas funcionam antes de prosseguir;
    Conheça as saídas esperadas;
    Tester com grandes quantidades de dados;
    Teste em várias máquinas e browsers.
  • 17. Principais Tipos de Testes
    • TesteEstruturalou White box testing: testebaseado no código.
    • 18. Executa todas as decisões lógicas para valores falsos ou verdadeiros
    • 19. Executa todos os laços em suas fronteiras
    • 20. Exercita as estruturas de dados internas
    TesteFuncionalou black box testing: Simula a experiência do usuário final, semconhecimento do código.
    • Funções incorretas ou ausentes;
    • 21. Erros de interface;
    • 22. Acesso a bancos de dados externos;
    • 23. Erros de desempenho;
    • 24. Erro de inicialização e término
  • Outros Tipos de Testes
    Teste de Interface: navegação
    Teste de Performance: tempo de resposta
    Teste de carga: quantidade grande de usuários simultâneos.
    Teste de aceitação do usuário ou usabilidade
    Testes de stress: aplicação em situações inesperadas.
    Testes de Configuração: diferentes ambientes de hardware ou de software.
    Testes de Segurança: utilizar os diversos papéis, perfis, permissões, para navegar no sistema.
  • 25. Considerações sobre Testes
    Nenhuma ferramenta que tem o propósito de teste pode garantir a inexistência de defeitos
    Nenhum procedimento de teste é totalmente eficaz
    A atividade de teste não pode mostrar a ausência de “bugs”, ela só pode mostrar se defeitos de software estão presentes
  • 26. O que é AgileTesting?
    “Agile testing” é umaprática de teste de software que segue osprincípios do “agile manifesto”, enfatizando o testepelaperspectiva dos clientesqueirãoutilizar o sistema.
    Cadaintegrantedaequipeestáfocadoemliberar um produto de altaqualidade e de valor agregado. Nãosãosomente “ostestadores” quesãoresponsáveispelaqualidade, mastodo o TIME.
  • 27. AgileTesting
    Em times “Agéis”, o produto é bemconstruídodesde o início, utilizando testes parafornecer feedback sobre o desenvolvimento e se o mesmoestáatendendo as necessidades do negócio (PO)
  • 28. AgileTesting
    Teste não é uma fase, em times Agéis é um “estilo de vida”
    Testecontínuo é o únicomodo de garantir um progressocontínuo.
  • 29. AgileTesting
  • 30. AgileTesting
    Times Agéisnãoconsideram “done” e pronto para ser aceitopelo Product Owner oucliente, se não for testado.
  • 31. AgileTesting
    Foco em Testes é, antes de tudo, uma forma de Design de Software!
    Seja adaptativo! Seja flexível: construa com qualidade!
    Remova o estigma que testadores possuem em projetos: os chatos.
    Automatize processos repetitivos!!
    Testadores, designers e desenvolvedores devem eficientemente colaborar para o projeto. Torne-se comprometido!
  • 32. Referências
    CRISPIN, Lisa; GREGORY, Janet. AgileTesting – A PracticalGuide for TestersandAgileTeams. 5 ed. Boston/USA: Addison Wesley, 2009
    HENDRICKSON, Elisabeth. “AgileTesting – Nine PrinciplesandSixConcretePractices for TestingonAgileTeams”. Disponível em: http://testobsessed.com/wordpress/wp-content/uploads/2008/08/AgileTestingOverview.pdf
  • 33. OBRIGADO
    Anelise Schlickmann Motta Bastos
    anelise.bastos@euax.com.br
    Roberto Gil Espinha
    roberto.espinha@euax.com.br
    www.euax.com.br