Engenharia de Software Teste de Software Parte 1 Prof. Luís Fernando Garcia
Enfoque da nossa abordagem... n Enfoque GERENCIAL... n Não (apenas) técnico...
Importância n Dependência do SOFTWARE n Software cada vez mais complexo n Software cada vez mais disseminado n Software essencial Hoje...
Importância
“Histórico” n Anos – pouca importância n Anos – importância crescente n Anos – Auge da importância n Anos – Complicações? Desenvolvimento de APPsDesenvolvimento de APPs Desenvolvimento ÁgilDesenvolvimento Ágil Crise em empresas de desenvolvimentoCrise em empresas de desenvolvimento
Relação Teste x Qualidade
Custos Relacionados n 2002 – USA – 60 bilhões de prejuízo n 2002 – USA – 22 bilhões de economia com um pouco mais de testes ! n Normal – 40% do custo do projeto n Especiais – 5x mais que outras fases
Erros Clássicos n Estação Climática de Marte – U$165mi n Airbus A320 – 290 mortes n Máquinas de radiação/câncer n SAMU Londres 1992 n Airbus A – 264 mortes n Guerra das Malvinas n Trem n Míssil SCUD Guerra do Golfo
Expectativa !!! n 5 – 7 – 10 erros a cada KLOC !!!!
Definição 1 n Processo de executar um programa com o objetivo de revelar a presença de erros...
Definição 2 n “Teste consiste na verificação dinâmica do funcionamento de um programa em um conjunto finito de casos de teste, cuidadosamente selecionado dentro de um domínio infinito de entradas, contra seu funcionamento esperado.”
Definição 3
Terminologia
Terminologia
Terminologia VerificaçãoValidaçãoETeste
Questões n Origem Humana n Inicia nos requisitos n Gerados na comunicação n Partes raramente usadas n Custo crescente
Princípios de Teste n Não planeje o teste assumindo que o programa está correto n Um bom caso de teste é aquele que tem alta probabilidade de encontrar erro ainda não descoberto/Caso de teste bem sucedido é aquele que detecta erro ainda não descoberto n A probabilidade de existência de mais erros numa parte do programa é proporcional ao número de erros já descoberto na mesma
Princípios de Teste n Teste deve ser feito por outra pessoa que não o autor do programa n Dados de teste devem ser definidos para dados inválidos e não-esperados n Determinar SEMPRE os resultados esperados n Verificar cuidadosamente os resultados de cada teste n Nunca jogue fora casos de teste, a não ser que esteja jogando fora também seu programa
Estratégia de Testes
Níveis de Teste
Tipos de Teste
Tipos de Teste – Modelo em “V”
Técnicas de Teste n Estrutural ou “Caixa Branca”
Técnicas de Teste n Funcional ou “Caixa Preta”
Planejamento/Documentação
Próxima parte! n Parte 2: n Automação de Testes n Ferramentas de Testes n Profissionais de Testes
Referências n DIAS NETO, Arilo. Introdução a Teste de Software. Revista Engenharia de Software. Devmedia. nr. 1. n CAETANO, Cristiano. Gestão de Testes. Revista Engenharia de Software. Devmedia. Nr. 3.