introdução aos conceitos de teste de software prof. wolley w. silva

24
Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva

Upload: internet

Post on 18-Apr-2015

105 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva

Introdução aos conceitos de Teste de SoftwareProf. Wolley W. Silva

Page 2: Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva

Agenda

• Definições de Teste de software• Conceitos básicos associados a Teste de

Software• Níveis de teste de Software

Page 3: Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva

Por que Testar Software?

• Os Estados Unidos estimam que bugs de software lhes custam aproximadamente 60 bilhões de dólares por ano.– http://www.computerworld.com/s/article/72245/

Study_Buggy_software_costs_users_vendors_nearly_60B_annually

• O foguete Ariane 5 explodiu por um erro de software.– http://www.sbmac.org.br/bol/bol-2/artigos/ariane5.html

• Erro de software provoca a morte de 21 pacientes em tratamento de câncer.– http://disciplinas.stoa.usp.br/pluginfile.php/31796/mod_resource/

content/1/casoICancerPanama.pdf

Page 4: Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva

Nenhum software esta livre de falhas !

http://www.techtudo.com.br/noticias/noticia/2014/01/brasileiro-que-encontrou-falha-no-facebook-e-um-cacador-de-bugs.html

Page 5: Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva

Definições

• 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;

Page 6: Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva

• Objetivo de todo teste:– 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.

Definições

Page 7: Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva

Definições de Termos

• Defeito: passo, processo ou definição de dados incorreto, como por exemplo, uma instrução ou comando incorreto.

• Erro: diferença entre o valor obtido e o valor esperado, ou seja, qualquer estado intermediário incorreto ou resultado inesperado na execução do programa constitui um erro.

• Falha: produção de uma saída incorreta com relação à especificação.

Page 8: Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva

Definições de Termos

Page 9: Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva

Testes revelam falhas !

Sistema

Ie

Oe

Entrada de dados de teste

Saída de resultadode teste

Entradas que causam comportamentos anômalos

Saídas que revelam falhas

Figura adaptada de Sommerville, Ian - 2011

Page 10: Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva

Verificação e Validação (V&V)

• O Teste é parte de um amplo processo de verificação e validação (V&V).– Validação: estamos construindo o produto certo?• garante que o software atenda às expectativas do

cliente.

– Verificação: estamos construindo o produto da maneira certa?• checa se o software atende a seus requisitos funcionais

e não funcionais.

Page 11: Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva

Níveis de teste de Software

• O planejamento dos teste deve ocorrer em diferentes níveis e em paralelo ao desenvolvimento.

Page 12: Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva

• Os principais níveis de teste são:– Teste de Unidade– Teste de Integração– Teste de Sistema– Teste de Aceitação– Teste de Regressão

Níveis de teste de Software

Page 13: Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva

• Teste de Unidade ou Unitário:– Explora a menor unidade do projeto, procurando

provocar falhas ocasionadas por defeitos de lógica e de implementação em cada módulo, separadamente.• Uma ferramenta muito utilizada é o Junit.

Níveis de teste de Software

Page 14: Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva

• Teste de Integração:– Visa provocar falhas associadas às interfaces entre

os módulos quando esses são interligados para construir a estrutura do software.

Níveis de teste de Software

Page 15: Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva

• Teste de Sistema (teste alfa).:– Avalia o software em busca de falhas por meio da

utilização do mesmo, como se fosse um usuário final

– Os testes são executados nos mesmos ambientes, com as mesmas condições e com os mesmos dados de entrada que um usuário utilizaria no seu dia-a-dia de manipulação do software.

Níveis de teste de Software

Page 16: Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva

• Teste de Aceitação (teste beta):– São realizados geralmente por um restrito grupo

de usuários finais do sistema. Esses simulam operações de rotina do sistema de modo a verificar se seu comportamento está de acordo com o solicitado.

Níveis de teste de Software

Page 17: Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva

• Teste de Regressão:– É uma estratégia importante para redução de

“efeitos colaterais”. 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.

Níveis de teste de Software

Page 18: Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva

Técnicas de Teste de Software

• Técnica Estrutural – Teste de Caixa Branca• Técnica Funcional – Teste de Caixa Preta

Page 19: Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva

• Caixa Branca– 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 (PRESSMAN, 2005).

Técnicas de Teste de Software

Page 20: Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva

• Caixa Preta– Dados de entrada são fornecidos, o teste é

executado e o resultado obtido é comparado a um resultado esperado previamente conhecido.

• Ex. Testes em Interfaces Web com Selenium IDE.

Técnicas de Teste de Software

Page 21: Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva

• Outras técnicas de teste podem e devem ser utilizadas de acordo com necessidades de negócio ou restrições tecnológicas:– Teste de desempenho, – Teste de usabilidade, – Teste de carga, – Teste de stress, – Teste de confiabilidade,– Teste de recuperação,

Técnicas de Teste de Software

Page 22: Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva

Conclusões

• O teste de software é uma das atividades mais custosas do processo de desenvolvimento de software, pois pode envolver uma quantidade significativa dos recursos de um projeto.

• O rigor e o custo associado a esta atividade dependem principalmente da criticilidade da aplicação a ser desenvolvida.

Page 23: Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva

• Apoio ferramental para qualquer atividade do processo de teste é importante como mecanismo para redução de esforço associado à tarefa em questão, seja ela planejamento, projeto ou execução dos testes.

Conclusões

Page 24: Introdução aos conceitos de Teste de Software Prof. Wolley W. Silva

Referências

• http://www.devmedia.com.br/artigo-engenharia-de-software-introducao-a-teste-de-software/8035