Aula - Teste de Software

605 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
605
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
2
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Aula - Teste de Software

  1. 1. Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação Disciplina: MATA62 – Engenharia de Software I Cliquez pour modifier le style du titre Teste de Software Mauricio C. Santos CPD-UFBASalvador, Março/2010
  2. 2. O Que Veremos? Conceitos BásicosTeste de Software Teste de Software • Teste de Unidade • Teste Funcional • Teste de Integração Estratégia de Testes em XP Test-Driven Development • TDD com Ruby Teste de Unidade com Ruby 2
  3. 3. Referências Bibliográficashttps://disciplinas.dcc.ufba.br/pub/MATB15/SemestreCorrente/Aula1.pdfhttp://disciplinas.dcc.ufba.br/MATA62/TesteDeSoftwarehttp://disciplinas.dcc.ufba.br/MATA62/TestesDeUnidadehttp://www.disciplinas.dcc.ufba.br/MATA63/DesenvolvimentoDirigidoPorTesteshttp://disciplinas.dcc.ufba.br/MATA62/TDDComRubyhttp://pt.wikipedia.org/wiki/Test_Driven_Development 3
  4. 4. Cliquez pour modifier le style du titre Conceitos Básicos
  5. 5. Defeitos e FalhasDefeito• um problema nos requisitos, no projeto, no código, na documentação ou nos casos de teste.Falha• um problema no funcionamento do sistema. Falha: conseqüência de um defeito 5
  6. 6. Defeitos e Falhas: Uma Visão Mais Completa 6
  7. 7. Principais Artefatos de Software: Uma VisãoSimplificada 7
  8. 8. Defeitos Introduzidos ao Longo do Processo de DesenvolvimentoA maior parte é de origem humana.São gerados na comunicação e na transformaçãode informações.Permanecem presentes nos diversos produtos desoftware produzidos e liberados.A maioria encontra-se em partes do produto desoftware raramente utilizadas e/ou executadas. 8
  9. 9. Alguns Tipos de Defeitos Introduzidos 9
  10. 10. Defeitos Introduzidos ao Longo do Processo de DesenvolvimentoPrincipal causa:• Tradução incorreta de informações.Quanto antes a presença do defeito for revelada,menor o custo de correção do defeito e maior aprobabilidade de corrigi-lo corretamente.Solução:• Introduzir atividades de V V & T ao longo de todo o ciclo de desenvolvimento. 10
  11. 11. Verificação e Validação V & VAs atividades de avaliação de produtos são partedo tema chamado Verificação e Validação (V&V).A definição de V&V abrange muitas das atividadesàs quais nos referimos como Garantia daQualidade de Software (SQA). 11
  12. 12. VerificaçãoRefere-se ao conjunto de atividades que garanteque o software implementa corretamente umafunção específica. “Estamos construindo certo o produto?” 12
  13. 13. ValidaçãoRefere-se ao conjunto de atividades que garanteque o software que foi construído é “rastreável” àsexigências do cliente. “Estamos construindo o produto certo?” 13
  14. 14. Garantia da Qualidade de SoftwareMétodos de Engenharia de Software: proporcionama base a partir da qual a qualidade é construída.Revisões Técnicas Formais: ajudam a garantir aqualidade do produto produzido como umaconseqüência de cada passo da engenharia desoftware.Medição: ajudam a controlar cada elemento daconfiguração de software. 14
  15. 15. Garantia da Qualidade de SoftwarePadrões e Procedimentos: ajudam a garantir auniformidade.Garantia de Qualidade de Software (SQA): põe emprática uma filosofia de qualidade total.Teste: a qualidade pode ser avaliada. 15
  16. 16. Garantia da Qualidade de Software 16
  17. 17. Cliquez pour modifier le style du titre Teste de Software
  18. 18. O Que É ?A atividade de teste é o processo de executar umprograma com a intenção de descobrir um erroUm bom caso de teste é aquele que tem umaelevada probabilidade de revelar um erro ainda nãodescobertoUm teste bem-sucedido é aquele que revela umerro ainda não descoberto. 18
  19. 19. Objetivos da Atividade de TesteObjetivo: projetar testes que descubramsistematicamente diferentes classes de erros comuma quantidade de tempo e esforço razoáveis.Se a atividade de teste for conduzida com sucesso,ela descobrirá erros no software. A atividade de teste não pode mostrar a ausência de bugs. Ela só pode mostrar se defeitos de software estão presentes. 19
  20. 20. Erros e as Atividades de TesteSe erros graves forem encontrados comregularidade, isto implica que a qualidade e aconfiabilidade de software são suspeitas.Se erros facilmente corrigíveis foremencontrados, isto implica que a qualidade e aconfiabilidade do software estão aceitáveis ou ostestes são inadequados para revelar erros gravesSe não for encontrado erro isto implica que aconfiguração de teste não foi suficientementeelaborada e erros estão escondidos no software 20
  21. 21. Processo Tradicional de Testes 21
  22. 22. Abordagens para TestesAbordagem funcional• AKA "teste caixa preta"• são testadas as funcionalidades do software, emitindo entradas pré-definidas e testando pelas saídas esperadas. 22
  23. 23. Abordagens para TestesAbordagem estrutural• AKA "teste caixa branca"• são testados aspectos de implementação das unidades de modularização (e.g. classes): algoritmos utilizados resultados esperados de métodos em função de seus parâmetros 23
  24. 24. Teste Automatizado de SoftwareProgramas que testam programas.• oráculoUso de frameworks de teste. 24
  25. 25. Etapas do Teste de SoftwareTestes de Unidade: cada módulo é testadoindividualmente garantindo que ele funcioneadequadamente.Utiliza as técnicas de teste de caixa branca. 25
  26. 26. Etapas do Teste de SoftwareTestes de Integração: os módulos são montadosou integrados para formarem um pacote desoftware.Utiliza principalmente as técnicas de teste de caixapreta. 26
  27. 27. Etapas do Teste de SoftwareTestes de Alto Nível (validação e sistema): Oscritérios de validação estabelecidos durante aanálise de requisitos são testados.Verifica também se todos os elementos combinam-se adequadamente e se a função/ desempenhoglobal do sistema é conseguida.Utiliza as técnicas de caixa preta. 27
  28. 28. Etapas do Teste de Software 28
  29. 29. Cliquez pour modifier le style du titre Estratégia de Teste em XP
  30. 30. Estratégia de Teste em XP"O que não pode ser mensurado não existe." [KentBeck]"Não confio em nada que escrevi até que eu tenhatestes para isso." [Kent Beck]"Tests are both resource and responsibility.""Work with human nature, not against it."• Testar é importante mas pensamos mais no código do que nos testes 30
  31. 31. Estratégia de Teste em XPTestes com XP são isolados e automáticos• Testes isolados: não há efeito "cascata" pois testes não interagem entre si• Testes automáticos: indicam apenas se os testes passaram ou não 31
  32. 32. Cliquez pour modifier le style du titre Test Driven Development - TDD
  33. 33. O Que É ? 33
  34. 34. Por Quê Usar ?Ênfase na interfaceExpressão dos requisitosProjeto bottom-upTodo código desenvolvido é coberto por testesDesign do programaRedução do tempo de depuraçãoCódigo modularizado, flexível e extensível 34
  35. 35. RefatoraçãoModificar o design de um código sem alterar o seucomportamentoEm TDD, isso significa alterar o código de formaque os testes continuem passando.Para saber mais: Refactoring: Improving the Designof Existing Code (The Addison-Wesley ObjectTechnology Series): Martin Fowler,Kent Beck,JohnBrant,William Opdyke,Don Roberts 35
  36. 36. BeneficiosAlguns estudos mostram impacto positivo de TDD:Redução de número de defeitos• Um estudo sobre o impacto do uso de desenvolvimento orientado por testes na melhoria da qualidade de software. Projeto de conclusão de curso de Daniela Feitosa, 2007.2.Aumento da produtividadeAumento da qualidade 36
  37. 37. LimitaçõesMudança de pensamentoSuporte gerencialDependência de testes funcionais parasucesso/falha (interfaces de usuários, interaçãocom bases de dados, sistemas que dependam deconfigurações específicas da rede) 37

×