Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia [email protected].
Transcript of Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia [email protected].
Engenharia de Software
Teste de SoftwareParte 1
Prof. Luís Fernando GarciaProf. Luís Fernando [email protected]@GARCIA.PRO.BR
Enfoque da Enfoque da nossanossa abordagem ... abordagem ...
Enfoque Enfoque GERENCIALGERENCIAL ... ... Não (apenas) técnico ...Não (apenas) técnico ...
ImportânciaImportância
DependênciaDependência do SOFTWARE do SOFTWARE
Software cada vez mais Software cada vez mais complexocomplexo Software cada vez mais Software cada vez mais disseminadodisseminado Software Software essencialessencial
Hoje ...Hoje ...
ImportânciaImportância
““Histórico”Histórico”
Anos 70-90 – pouca importânciaAnos 70-90 – pouca importância Anos 90-00 – importância crescenteAnos 90-00 – importância crescente Anos 00-10 – Auge da importânciaAnos 00-10 – Auge da importância Anos 10-15 – Complicações?Anos 10-15 – Complicações?
• Desenvolvimento de APPs Desenvolvimento de APPs • Desenvolvimento ÁgilDesenvolvimento Ágil• Crise em empresas de desenvolvimentoCrise em empresas de desenvolvimento
Relação Teste x QualidadeRelação Teste x Qualidade
Custos RelacionadosCustos Relacionados
2002 – USA – 60 bilhões de prejuízo2002 – USA – 60 bilhões de prejuízo 2002 – USA – 22 bilhões de economia 2002 – USA – 22 bilhões de economia
com um pouco mais de testes !com um pouco mais de testes !
Normal – 40% do custo do projetoNormal – 40% do custo do projeto Especiais – 5x mais que outras fasesEspeciais – 5x mais que outras fases
Erros ClássicosErros Clássicos
Estação Climática de Marte – U$165mi Estação Climática de Marte – U$165mi Airbus A320 – 290 mortesAirbus A320 – 290 mortes Máquinas de radiação/câncerMáquinas de radiação/câncer SAMU Londres 1992SAMU Londres 1992 Airbus A300 1994 – 264 mortesAirbus A300 1994 – 264 mortes Guerra das MalvinasGuerra das Malvinas Trem Trem Míssil SCUD Guerra do GolfoMíssil SCUD Guerra do Golfo
Expectativa !!!Expectativa !!!
5 – 7 – 10 erros a 5 – 7 – 10 erros a cada KLOC !!!!cada KLOC !!!!
Definição 1 Definição 1
Processo de executar um Processo de executar um programa com o objetivo de programa com o objetivo de revelar a presença de revelar a presença de erros ...erros ...
Definição 2Definição 2
““Teste consiste na verificação Teste consiste na verificação dinâmica do funcionamento de um dinâmica do funcionamento de um programa em um conjunto finito de programa em um conjunto finito de casos de teste, cuidadosamente casos de teste, cuidadosamente selecionado dentro de um domínio selecionado dentro de um domínio infinito de entradas, contra seu infinito de entradas, contra seu funcionamento esperado.”funcionamento esperado.”
Definição 3Definição 3
TerminologiaTerminologia
TerminologiaTerminologia
TerminologiaTerminologia
VerificaçãoVerificação
ValidaçãoValidação
E E
TesteTeste
QuestõesQuestões
Origem HumanaOrigem Humana Inicia nos requisitosInicia nos requisitos Gerados na comunicaçãoGerados na comunicação Partes raramente usadasPartes raramente usadas Custo crescente Custo crescente
Princípios de TestePrincípios de Teste
Não planeje o teste assumindo que o Não planeje o teste assumindo que o programa está corretoprograma está correto
Um bom caso de teste é aquele que tem alta Um bom caso de teste é aquele que tem alta probabilidade de encontrar erro ainda não probabilidade de encontrar erro ainda não descoberto/Caso de teste bem sucedido é descoberto/Caso de teste bem sucedido é aquele que detecta erro ainda não descobertoaquele que detecta erro ainda não descoberto
A probabilidade de existência de mais erros A probabilidade de existência de mais erros numa parte do programa é proporcional ao numa parte do programa é proporcional ao número de erros já descoberto na mesmanúmero de erros já descoberto na mesma
Princípios de TestePrincípios de Teste
Teste deve ser feito por outra pessoa que não Teste deve ser feito por outra pessoa que não o autor do programao autor do programa
Dados de teste devem ser definidos para Dados de teste devem ser definidos para dados inválidos e não-esperadosdados inválidos e não-esperados
Determinar SEMPRE os resultados esperadosDeterminar SEMPRE os resultados esperados Verificar cuidadosamente os resultados de Verificar cuidadosamente os resultados de
cada testecada teste Nunca jogue fora casos de teste, a não ser que Nunca jogue fora casos de teste, a não ser que
esteja jogando fora também seu programaesteja jogando fora também seu programa
Estratégia de TestesEstratégia de Testes
Níveis de TesteNíveis de Teste
Tipos de TesteTipos de Teste
Tipos de Teste – Modelo em “V”Tipos de Teste – Modelo em “V”
Técnicas de TesteTécnicas de Teste
Estrutural ou “Caixa Branca”Estrutural ou “Caixa Branca”
Técnicas de TesteTécnicas de Teste
Funcional ou “Caixa Preta”Funcional ou “Caixa Preta”
Planejamento/DocumentaçãoPlanejamento/Documentação
Próxima parte!Próxima parte!
Parte 2:Parte 2:
Automação de TestesAutomação de Testes Ferramentas de TestesFerramentas de Testes Profissionais de TestesProfissionais de Testes
ReferênciasReferências
DIAS NETO, Arilo. Introdução a Teste de Software. Revista DIAS NETO, Arilo. Introdução a Teste de Software. Revista Engenharia de Software. Devmedia. nr. 1.Engenharia de Software. Devmedia. nr. 1.
CAETANO, Cristiano. Gestão de Testes. Revista Engenharia de CAETANO, Cristiano. Gestão de Testes. Revista Engenharia de Software. Devmedia. Nr. 3.Software. Devmedia. Nr. 3.