O documento apresenta uma introdução sobre testes de software, discutindo por que são importantes para garantir a qualidade do software e evitar falhas. Testes ajudam a encontrar erros antes que o software seja lançado, poupando custos com correções e problemas para os usuários. No entanto, testes não encontram todos os erros e cabe aos desenvolvedores corrigi-los.
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.
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. 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. 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
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. O Que teste de software não é?!
Testes ajudam a encontrar erros, mas não corrigí-los.
Cabe aos desenvolvedores fazerem a correção
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. 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
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
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]
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. 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. 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. 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. Quando testes não são adequados?
• Falta de conhecimento
• Prazo
• Situação
Notas del editor
Softwaresestãopresentesnosmaisdiversosobjetos de nossavida, incluindoaquelesondeumafalhaseriainaceitávelporhaver a possibilidade de causar a morte de pessoas.
Em outros casos, apesar de nãocausar a mortediretamentehá o risco do software causarprejuízosfinanceiroscasoapresentefalhas.
A necessidadeemtestarobjetosnãoéexclusividade da área de testes de software,pelocontrário, estápresenteemquasetodas as áreascomo forma de garantirqueprodutossãoconfiáveis e paraencontrarosseuslimites.
Apesar da aparência, temosquegarantirconsistência e qualidadeemnossosprodutos…. De nada adianta um bolo bonito seeleestiver com um saborazedo.
Quando a genteexperimentopercebequenão era aquiloqueesperávamos
Testamosnosso software paraverificar se eleestáconformecombinado (cumprir o acordo comnossocliente)Verificamosse asfuncionalidadesestãoimplementadascorretamenteou se o sistema se comporta de forma correta
Testamosnosso software paraverificar se eleestáconformecombinado (cumprir o acordo comnossocliente)Verificamosse asfuncionalidadesestãoimplementadascorretamenteou se o sistema se comporta de forma correta
Testamosnosso software paraverificar se eleestáconformecombinado (cumprir o acordo comnossocliente)Verificamosse asfuncionalidadesestãoimplementadascorretamenteou se o sistema se comporta de forma correta
Apesar de todosos testes possíveisnuncaeliminamostodososerros de nosso software, e emgeral o clienteéquemencontraráestesproblemas… manteruma boa relação com elenestesmomentoséalgobastantedifícil
RetrabalhoComprometer a imagem da empresaDesmotivar a equipe
RetrabalhoComprometer a imagem da empresaDesmotivar a equipe
Grace Hopper encontrouinsetosquecausavamo maufuncionamento de equipamentoselétricos. Estes insetosque do inglêsvem da palavra bug équedanificavam o equipamento, a palavraatualmente serve comoreferênciaparaproblemasemnosso software
Semáforos: demorardemaisemuma das lâmapdas, abrirtodosaomesmo tempo, fechartodosaomesmo tempo
Software éincertoClienteéimpaciente e nãosabe o quequerVáriaspessoastrabalhandoSeráquefizemos da forma correta?
Software éincertoClienteéimpaciente e nãosabe o quequerVáriaspessoastrabalhandoSeráquefizemos da forma correta?
Software éincertoClienteéimpaciente e nãosabeexatamene o quequer, tãopouco se expressarparapedirVáriaspessoastrabalhandoSeráquefizemos da forma correta?
Software éincertoClienteéimpaciente e nãosabe o quequerVáriaspessoastrabalhandoSeráquefizemos da forma correta?
Software éincertoClienteéimpaciente e nãosabe o quequerVáriaspessoastrabalhandoSeráquefizemos da forma correta?
Documentarnosso softwareValidarnosso softwareUsarpadrões de codificaçãoEncontrarerrosemnosso software
Documentarnosso softwareValidarnosso softwareUsarpadrões de codificaçãoEncontrarerrosemnosso software
Documentarnosso softwareValidarnosso softwareUsarpadrões de codificaçãoEncontrarerrosemnosso software
Documentarnosso softwareValidarnosso softwareUsarpadrões de codificaçãoEncontrarerrosemnosso software
Documentarnosso softwareValidarnosso softwareUsarpadrões de codificaçãoEncontrarerrosemnosso software
Seráquenossascondicionais e loops estãocorretos?Seráque as funcionalidadesatendemaosrequisitos do nossocliente?Seráquenãoquebramosnossocódigo?
Defeito faz parte do produto, é algo que esta implementada no código de maneira errada.Erro pode ser um resultado de um defeito ou uma falha, como um retorno esperado, que por causa de uma falha teve um valor diferente do que esperado.Esta mais ligada ao hardware, como uma rede inacessível, queda de energia. Uma falha pode ocorrer por causa de um erro, por exemplo, houve um retorno de um valor não esperado
FalhahumanaProblemas de comunicação e transformação da informaçãoNuncairemosencontrartodas as falhas, mas nossoclienteirá
FalhahumanaProblemas de comunicação e transformação da informaçãoNuncairemosencontrartodas as falhas, mas nossoclienteirá
FalhahumanaProblemas de comunicação e transformação da informaçãoNuncairemosencontrartodas as falhas, mas nossoclienteirá