Introdução a testes de software

626 visualizações

Publicada em

Aula de introdução a disciplina de testes de software ministrada no IFPE - Campus Garanhuns. Professor Leonardo Soares

Publicada em: Educação, Tecnologia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Introdução a testes de software

  1. 1. Introdução aos testes de software Prof. Leonardo Soares
  2. 2. Sobre a disciplina Compentências: Entender conceitos sobre a área; Compreender por que através de testes garatimos a qualidade de nosso software; Identificar a necessidade no uso de testes e como utilizálo; Conhecer as ferramentas necessárias à aplicação de testes.
  3. 3. Sobre a disciplina Avaliações Primeira (07/04) Exercícios passados em sala de aula; Avaliação escrita; Segunda (16/06) Avaliação escrita;
  4. 4. Por que testamos?
  5. 5. Por que testamos?
  6. 6. Por que testamos?
  7. 7. Softwares podem matar! Em 1983 uma terceira guerra mundial quase foi deflagrada por uma falha no software de alerta de radares soviéticos. A falha fez com que o software mostrasse que os E.U.A. tinham lançado cinco mísseis. A guerra não aconteceu, pois o Tenente Coronel Stanislav Petrov considerou que a informação estava errada e não ordenou o contra-ataque, evitando assim o início da III guerra mundial.
  8. 8. Softwares causam prejuízos! Por uma falha em um sistema de software para controle de ações em uma bolsa de valor, a empresa americana Knight sofreu perdas de $ 460 milhões de doláres em apenas 45 minutos.
  9. 9. O Que pode acontecer quando a gente não testa nosso software? Bancos perderem milhões Telefones pararem de funcionar Aviões terem suas rotas desviadas Sistemas clínicos causarem problemas a pacientes
  10. 10. Importância em garantir a qualidade
  11. 11. Importância em garantir a qualidade
  12. 12. O Que achamos disto?
  13. 13. Importância do teste de software para os negócios
  14. 14. Estabelecemos um contrato com nosso cliente
  15. 15. Falhas geram frustração
  16. 16. Sempre o cliente encontrará o erro
  17. 17. O Que pode acontecer para a empresa que desenvolve o software?
  18. 18. O Que pode acontecer para a empresa?
  19. 19. Vamos parar de gambiarra!
  20. 20. Como vocês testam seu software?
  21. 21. Teste de software “Teste de software é o processo de executar o programa com a intenção de encontrar bugs” Glendford Myers, 1979
  22. 22. Curiosidade
  23. 23. Quais problemas podem ocorrer nestes softwares? Formem grupos e encontrem os problemas: Em um software para controle da energia; Em um software para controle de semáforos; Em um software de registro acadêmico;
  24. 24. O Que teste de software não é?! Testes ajudam a encontrar erros, mas não corrigí-los. Cabe aos desenvolvedores fazerem a correção
  25. 25. Dificuldades na criação de softwares
  26. 26. Softwares são complexos
  27. 27. Satisfazer o cliente é difícil…
  28. 28. Levam vários meses/anos para serem desenvolvidos
  29. 29. Várias pessoas trabalhando no mesmo produto
  30. 30. A comunicação é um problema…
  31. 31. Software muda
  32. 32. Prazos e recursos são limitados
  33. 33. Como minimizar os problemas Atender as necessidades do cliente Testes contínuos no software Documentação do sistema Adoção de boas práticas de desenvolvimento Construir software com qualidade!
  34. 34. Qualidade na computação Conformidade com requisitos funcionais e não funcionais, padrões de desenvolvimento documentados e características implícitas esperadas de todo software profissionalmente desenvolvido
  35. 35. Como garantimos a qualidade de nosso software?
  36. 36. Criando uma documentação consistente
  37. 37. Validação e verificação
  38. 38. Adotar padrões de projeto
  39. 39. Admitir que há erros e tentar encontrá-los
  40. 40. Como encontrar erros no software Inspecionar nosso código Avaliar se o software atende aos requisitos do usuário Pedir para o cliente verificar
  41. 41. Qualidade e teste de software Descobrir falhas Corrigir falhas Qualidade Validar requisitos
  42. 42. Alguns termos importantes Defeito Erro Falha
  43. 43. VV&T • Validação: assegurar que o produto final corresponda aos requisitos do usuário • Estamos construindo o produto certo? • Verificação: Assegurar consistência, completitude e corretitude do produto em cada fase e entre fases consecutivas do ciclo de vida do software • Estamos construindo corretamente o produto? • Teste: Examina o comportamento do produto por meio de sua execução
  44. 44. Como correm os defeitos no processo de software
  45. 45. Falha humana
  46. 46. Problema de comunicação
  47. 47. Por que estudamos teste? • Mais de 1/3 das falhas poderiam ser evitadas com testes [1] • Cerca de 50% das falhas só são descobertas em produção [1] • Segundo uma pesquisa do Departamento de rcio dos EUA, publicada em 2002, falhas de software o o comuns e o danosas que se estima que causem um zo anual de mais de 60 es de lares para a economia americana. [1], [2]
  48. 48. Por que estudamos testes?
  49. 49. O Que percebemos? • Falhas de software causam grandes prejuízos • A prática de testes ainda é pouco utilizada • Quanto antes a presença do defeito for revelada, menor o custo da correção e maior a probabilidade de corrigí-lo • Testes não encontram todas as falhas, mas ajudam a minimizar os erros
  50. 50. Quando utilizar testes? • Desejamos oferecer uma melhor qualidade ao código • Garantir que os requisitos estão implementados e estão corretos • Fornecem segurança para realizar alterações no código
  51. 51. O Que é teste de software? • Analisar documentos e verificar se foi produzido corretamente • Testar funções e verificar se as entradas produzidas resultam nas saídas esperadas • Fazer uso do software desenvolvido e verificar se está conforme os requisitos
  52. 52. O Que são testes de software? • • • • São previsíveis São finitos São (ou deveriam ser) simples Não são perfeitos, mas uma das melhores alternativas para validação
  53. 53. Quando testes não são adequados? • Falta de conhecimento • Prazo • Situação

×