Teste de Software Geórgenes Zapalaglio Seminário da disciplina de Confiabilidade de Sistemas...

18
Teste de Software Geórgenes Zapalaglio Seminário da disciplina de Confiabilidade de Sistemas 10/11/2008

Transcript of Teste de Software Geórgenes Zapalaglio Seminário da disciplina de Confiabilidade de Sistemas...

Page 1: Teste de Software Geórgenes Zapalaglio Seminário da disciplina de Confiabilidade de Sistemas 10/11/2008.

Teste de Software

Geórgenes Zapalaglio

Seminário da disciplina de Confiabilidade de Sistemas10/11/2008

Page 2: Teste de Software Geórgenes Zapalaglio Seminário da disciplina de Confiabilidade de Sistemas 10/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.

Page 3: Teste de Software Geórgenes Zapalaglio Seminário da disciplina de Confiabilidade de Sistemas 10/11/2008.

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.

Page 4: Teste de Software Geórgenes Zapalaglio Seminário da disciplina de Confiabilidade de Sistemas 10/11/2008.

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

$

Page 5: Teste de Software Geórgenes Zapalaglio Seminário da disciplina de Confiabilidade de Sistemas 10/11/2008.

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.

Page 6: Teste de Software Geórgenes Zapalaglio Seminário da disciplina de Confiabilidade de Sistemas 10/11/2008.

13/4/2005 Seminário da disciplina de PPD – PPGCC - PUCRS

Desenvolvimento de Software

Modelo de desenvolvimento de

software tradicional.

Page 7: Teste de Software Geórgenes Zapalaglio Seminário da disciplina de Confiabilidade de Sistemas 10/11/2008.

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.

Page 8: Teste de Software Geórgenes Zapalaglio Seminário da disciplina de Confiabilidade de Sistemas 10/11/2008.

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.

Page 9: Teste de Software Geórgenes Zapalaglio Seminário da disciplina de Confiabilidade de Sistemas 10/11/2008.

13/4/2005 Seminário da disciplina de PPD – PPGCC - PUCRS

Níveis de Teste de Software

Page 10: Teste de Software Geórgenes Zapalaglio Seminário da disciplina de Confiabilidade de Sistemas 10/11/2008.

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.

Page 11: Teste de Software Geórgenes Zapalaglio Seminário da disciplina de Confiabilidade de Sistemas 10/11/2008.

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.

Page 12: Teste de Software Geórgenes Zapalaglio Seminário da disciplina de Confiabilidade de Sistemas 10/11/2008.

13/4/2005 Seminário da disciplina de PPD – PPGCC - PUCRS

Técnicas de Teste de Software

Page 13: Teste de Software Geórgenes Zapalaglio Seminário da disciplina de Confiabilidade de Sistemas 10/11/2008.

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.

Page 14: Teste de Software Geórgenes Zapalaglio Seminário da disciplina de Confiabilidade de Sistemas 10/11/2008.

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

Page 15: Teste de Software Geórgenes Zapalaglio Seminário da disciplina de Confiabilidade de Sistemas 10/11/2008.

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.

Page 16: Teste de Software Geórgenes Zapalaglio Seminário da disciplina de Confiabilidade de Sistemas 10/11/2008.

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

Page 17: Teste de Software Geórgenes Zapalaglio Seminário da disciplina de Confiabilidade de Sistemas 10/11/2008.

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.

Page 18: Teste de Software Geórgenes Zapalaglio Seminário da disciplina de Confiabilidade de Sistemas 10/11/2008.

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!