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

Post on 22-Apr-2015

110 views 0 download

Transcript of 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 GarciaLUIS@GARCIA.PRO.BRLUIS@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.