Teste de Software Geórgenes Zapalaglio Seminário da disciplina de Confiabilidade de Sistemas...
Transcript of Teste de Software Geórgenes Zapalaglio Seminário da disciplina de Confiabilidade de Sistemas...
Teste de Software
Geórgenes Zapalaglio
Seminário da disciplina de Confiabilidade de Sistemas10/11/2008
13/4/2005 Seminário da disciplina de PPD – PPGCC - PUCRS
Motivação
Errar é inerente a natureza humana. Precaver-se contra os erros é uma atitude inteligente.
O processo de desenvolvimento de software é sujeito a defeitos. Sendo assim, a atividade de teste é fundamental para se obter produtos de software com garantia de qualidade.
13/4/2005 Seminário da disciplina de PPD – PPGCC - PUCRS
Defeitos, Erros e Falhas
Antes de iniciarmos uma discussão sobre teste de software precisamos esclarecer alguns conceitos relacionados a essa atividade. Inicialmente, precisamos conhecer a diferença entre Defeitos, Erros e Falhas.
13/4/2005 Seminário da disciplina de PPD – PPGCC - PUCRS
Introdução
Teste de software é o processo de execução de um produto para determinar se ele atingiu suas especificações e funcionou corretamente no ambiente para o qual foi projetado. O seu objetivo é revelar falhas em um produto, para que as causas dessas falhas sejam identificadas e possam ser corrigidas pela equipe de desenvolvimento antes da entrega final.
Testes devem
começar o mais cedo possível
Custo para seCorrigir um problema
$
13/4/2005 Seminário da disciplina de PPD – PPGCC - PUCRS
Objetivos
Objetivos da atividade de teste: Revelar a existência de falhas. Avaliar a qualidade do produto.
“Teste de software é a atividade de executar um programa com o objetivo de revelar a existência de falhas
e avaliar sua qualidade”
Não é possível eliminar todos os problemas de um sistema apenas com testes, mas pode-se reduzir significativamente sua ocorrência.
Um bom caso de teste é aquele que tem uma elevada probabilidade de revelar um problema.
O teste bem sucedido é o que revela a existência de uma falha ainda não descoberta.
13/4/2005 Seminário da disciplina de PPD – PPGCC - PUCRS
Desenvolvimento de Software
Modelo de desenvolvimento de
software tradicional.
13/4/2005 Seminário da disciplina de PPD – PPGCC - PUCRS
Defeitos no Desenvolvimento de Software
Os defeitos normalmente são introduzidos na transformação de informações entre as diferentes fases do ciclo de desenvolvimento de um software, por exemplo:
Essa série de transformações mostrou a necessidade de realizar testes em diferentes níveis, visando avaliar o software em diferentes perspectivas de acordo com o produto gerado em cada fase do ciclo de vida de desenvolvimento de um software.
13/4/2005 Seminário da disciplina de PPD – PPGCC - PUCRS
Níveis de Teste de Software O planejamento dos testes deve ocorrer em diferentes níveis e em paralelo ao desenvolvimento do software, os principais níveis de teste de software são: Teste de Unidade: também conhecido como Teste Unitário. o objetivo é o de encontrar falhas de funcionamento dentro de uma pequena parte do sistema funcionando
independentemente do todo. Teste de Integração: o objetivo é encontrar falhas provenientes da integração interna dos componentes de um sistema. Teste de Sistema: avalia o software em busca de falhas por meio da utilização do mesmo, como se fosse um usuário final. Teste de Aceitação: são realizados geralmente por um restrito grupo de usuários finais do sistema. Teste de Regressão: consiste em se aplicar, a cada nova versão do software ou a cada ciclo, todos os testes que já foram aplicados nas versões ou ciclos de teste anteriores do
sistema.
13/4/2005 Seminário da disciplina de PPD – PPGCC - PUCRS
Níveis de Teste de Software
13/4/2005 Seminário da disciplina de PPD – PPGCC - PUCRS
Técnicas de Teste de Software
Atualmente existem muitas maneiras de se testar um software. O objetivo principal destas técnicas continua a ser o mesmo: encontrar falhas no software. Abaixo estão descritas as três técnicas mais conhecidas.
Técnica Estrutural (Caixa-Branca) : Técnica de teste que avalia o com-portamento interno do componente de software. Essa técnica trabalha diretamente sobre o código fonte do componente de software para avaliar aspectos tais como: teste de condição, teste de fluxo de dados, teste de ciclos e teste de caminhos lógicos.
13/4/2005 Seminário da disciplina de PPD – PPGCC - PUCRS
Técnicas de Teste de Software
Técnica Funcional (Caixa-Preta) : Técnica de teste em que o componente de software a ser testado é abordado como se fosse uma caixa-preta, ou seja, não se considera o comportamento interno do mesmo. Dados de entrada são fornecidos, o teste é executado e o resultado obtido é comparado a um resultado esperado previamente conhecido. Haverá sucesso no teste se o resultado obtido for igual ao resultado esperado.
13/4/2005 Seminário da disciplina de PPD – PPGCC - PUCRS
Técnicas de Teste de Software
13/4/2005 Seminário da disciplina de PPD – PPGCC - PUCRS
Testando Software Embarcado
O que separa o software embarcado de software comum: Software embarcado deve executar de maneira confiável por
longos períodos de tempo; Software embarcado é utilizado com freqüência em aplicações
onde a vida humana está em risco; Software embarcado são muitas vezes tão sensíveis ao custo que
não há margem para ineficiências; Software embarcado deve com freqüência compensar falhas no
hardware embarcado; Eventos no mundo real são normalmente assíncronos e não
determinísticos, fazendo com que testes de simulação sejam difíceis e não confiáveis;
Sua empresa pode ser processada se o seu código falhar.
13/4/2005 Seminário da disciplina de PPD – PPGCC - PUCRS
Acidentes e Erros
Ariane 5
O Ariane 5 era um foguete espacial utilizado para levar satélites até suas órbitas, além de transportar outros tipos de cargas. Em Junho de 1996, a aeronave se auto destruiu um minuto após seu lançamento. O prejuízo foi de U$$ 7.5 bilhões de dólares.
Limitação na representação numérica (64 bits/ 16 bits)
Erro de trajetória 36,7 sapós o lançamento
13/4/2005 Seminário da disciplina de PPD – PPGCC - PUCRS
Acidentes e Erros
Intel
Em 1994, ouve um erro de vírgula flutuante no Pentium. A correção custou à empresa 475 milhões de dólares. O erro teria um custo insignificante se descoberto na fase de especificação.
13/4/2005 Seminário da disciplina de PPD – PPGCC - PUCRS
Acidentes e Erros
Míssil Patriot
O Patriot é um sistema de defesa Terra-Ar que pretende interceptar e destruir objetos voadores inimigos.
Limitação na representação numérica (24 bits)
Erro de 0,34 s no cálculo do tempo de lançamento
13/4/2005 Seminário da disciplina de PPD – PPGCC - PUCRS
Conclusão
O teste de software é uma das atividades mais custosas do processo de desenvolvimento de software. O rigor e o custo associado a esta atividade dependem principalmente da criticalidade da aplicação a ser desenvolvida. Porém, quanto mais eficazes forem os testes e o quanto antes as falhas forem descobertas, maior será a confiabilidade do sistema e menor será o seu custo.
13/4/2005 Seminário da disciplina de PPD – PPGCC - PUCRS
Referências CRAIG, R.D., JASKIEL, S. P., “Systematic Software Testing”, Artech House Publishers, Boston, 2002.
IEEE Standard 610-1990: IEEE Standard Glossary of Software Engineering Terminology, IEEE Press.
PFLEEGER, S. L., “Engenharia de Software: Teoria e Prática”, Prentice Hall- Cap. 08, 2004.
ROCHA, A. R. C., MALDONADO, J. C., WEBER, K. C. et al., “Qualidade de software – Teoria e prática”, Prentice Hall, São Paulo, 2001.
Software Bugs - http://www5.informatik.tu-muenchen.de/~huckle/ bugse.html
FIM!