Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia [email protected].

27
Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia Prof. Luís Fernando Garcia [email protected] [email protected]

Transcript of Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia [email protected].

Page 1: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

Engenharia de Software

Teste de SoftwareParte 1

Prof. Luís Fernando GarciaProf. Luís Fernando [email protected]@GARCIA.PRO.BR

Page 2: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

Enfoque da Enfoque da nossanossa abordagem ... abordagem ...

Enfoque Enfoque GERENCIALGERENCIAL ... ... Não (apenas) técnico ...Não (apenas) técnico ...

Page 3: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

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 ...

Page 4: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

ImportânciaImportância

Page 5: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

““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

Page 6: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

Relação Teste x QualidadeRelação Teste x Qualidade

Page 7: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

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

Page 8: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

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

Page 9: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

Expectativa !!!Expectativa !!!

5 – 7 – 10 erros a 5 – 7 – 10 erros a cada KLOC !!!!cada KLOC !!!!

Page 10: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

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 ...

Page 11: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

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.”

Page 12: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

Definição 3Definição 3

Page 13: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

TerminologiaTerminologia

Page 14: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

TerminologiaTerminologia

Page 15: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

TerminologiaTerminologia

VerificaçãoVerificação

ValidaçãoValidação

E E

TesteTeste

Page 16: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

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

Page 17: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

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

Page 18: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

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

Page 19: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

Estratégia de TestesEstratégia de Testes

Page 20: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

Níveis de TesteNíveis de Teste

Page 21: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

Tipos de TesteTipos de Teste

Page 22: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

Tipos de Teste – Modelo em “V”Tipos de Teste – Modelo em “V”

Page 23: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

Técnicas de TesteTécnicas de Teste

Estrutural ou “Caixa Branca”Estrutural ou “Caixa Branca”

Page 24: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

Técnicas de TesteTécnicas de Teste

Funcional ou “Caixa Preta”Funcional ou “Caixa Preta”

Page 25: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

Planejamento/DocumentaçãoPlanejamento/Documentação

Page 26: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

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

Page 27: Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR.

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.