Upload
internet
View
106
Download
0
Embed Size (px)
Citation preview
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!