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

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

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