Download - Introdução a testes de software
![Page 1: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/1.jpg)
Introdução aos testes de software
Prof. Leonardo Soares
![Page 2: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/2.jpg)
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.
Sobre a disciplina
![Page 3: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/3.jpg)
Avaliações Primeira (07/04)
Exercícios passados em sala de aula; Avaliação escrita;
Segunda (16/06) Avaliação escrita;
Sobre a disciplina
![Page 4: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/4.jpg)
Por que testamos?
![Page 5: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/5.jpg)
Por que testamos?
![Page 6: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/6.jpg)
Por que testamos?
![Page 7: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/7.jpg)
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.
Softwares podem matar!
![Page 8: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/8.jpg)
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.
Softwares causam prejuízos!
![Page 9: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/9.jpg)
Bancos perderem milhões Telefones pararem de funcionar Aviões terem suas rotas desviadas Sistemas clínicos causarem problemas a
pacientes
O Que pode acontecer quando a gente não testa nosso software?
![Page 10: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/10.jpg)
Importância em garantir a qualidade
![Page 11: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/11.jpg)
Importância em garantir a qualidade
![Page 12: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/12.jpg)
O Que achamos disto?
![Page 13: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/13.jpg)
Importância do teste de software para os negócios
![Page 14: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/14.jpg)
Estabelecemos um contrato com nosso cliente
![Page 15: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/15.jpg)
Falhas geram frustração
![Page 16: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/16.jpg)
Sempre o cliente encontrará o erro
![Page 17: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/17.jpg)
O Que pode acontecer para a empresa que desenvolve o software?
![Page 18: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/18.jpg)
O Que pode acontecer para a empresa?
![Page 19: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/19.jpg)
Vamos parar de gambiarra!
![Page 20: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/20.jpg)
Como vocês testam seu software?
![Page 21: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/21.jpg)
“Teste de software é o processo de executar o programa com a intenção de encontrar bugs”Glendford Myers, 1979
Teste de software
![Page 22: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/22.jpg)
Curiosidade
![Page 23: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/23.jpg)
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;
Quais problemas podem ocorrer nestes softwares?
![Page 24: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/24.jpg)
Testes ajudam a encontrar erros, mas não corrigí-los.
Cabe aos desenvolvedores fazerem a correção
O Que teste de software não é?!
![Page 25: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/25.jpg)
Dificuldades na criação de softwares
![Page 26: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/26.jpg)
Softwares são complexos
![Page 27: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/27.jpg)
Satisfazer o cliente é difícil…
![Page 28: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/28.jpg)
Levam vários meses/anos para serem desenvolvidos
![Page 29: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/29.jpg)
Várias pessoas trabalhando no mesmo produto
![Page 30: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/30.jpg)
A comunicação é um problema…
![Page 31: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/31.jpg)
Software muda
![Page 32: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/32.jpg)
Prazos e recursos são limitados
![Page 33: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/33.jpg)
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!
Como minimizar os problemas
![Page 34: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/34.jpg)
Conformidade com requisitos funcionais e não funcionais, padrões de desenvolvimento documentados e características implícitas esperadas de todo software profissionalmente desenvolvido
Qualidade na computação
![Page 35: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/35.jpg)
Como garantimos a qualidade de nosso software?
![Page 36: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/36.jpg)
Criando uma documentação consistente
![Page 37: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/37.jpg)
Validação e verificação
![Page 38: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/38.jpg)
Adotar padrões de projeto
![Page 39: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/39.jpg)
Admitir que há erros e tentar encontrá-los
![Page 40: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/40.jpg)
Inspecionar nosso código Avaliar se o software atende aos requisitos
do usuário Pedir para o cliente verificar
Como encontrar erros no software
![Page 41: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/41.jpg)
Qualidade e teste de software
Descobrir falhas
Corrigir falhas
Validar requisit
os
Qualidade
![Page 42: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/42.jpg)
Defeito Erro Falha
Alguns termos importantes
![Page 43: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/43.jpg)
• 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
VV&T
![Page 44: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/44.jpg)
Como correm os defeitos no processo de software
![Page 45: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/45.jpg)
Falha humana
![Page 46: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/46.jpg)
Problema de comunicação
![Page 47: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/47.jpg)
• 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 Comércio dos EUA, publicada em 2002, falhas de software são tão comuns e tão danosas que se estima que causem um prejuízo anual de mais de 60 bilhões de dólares para a economia americana. [1], [2]
Por que estudamos teste?
![Page 48: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/48.jpg)
Por que estudamos testes?
![Page 49: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/49.jpg)
• 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
O Que percebemos?
![Page 50: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/50.jpg)
• 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
Quando utilizar testes?
![Page 51: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/51.jpg)
• 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
O Que é teste de software?
![Page 52: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/52.jpg)
• 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
O Que são testes de software?
![Page 53: Introdução a testes de software](https://reader035.vdocuments.site/reader035/viewer/2022070318/55799bd5d8b42ae72b8b531d/html5/thumbnails/53.jpg)
• Falta de conhecimento• Prazo• Situação
Quando testes não são adequados?