Upload
internet
View
108
Download
3
Embed Size (px)
Citation preview
Introdução a Teste de SoftwareProf. Wolley W. Silva
Prof. Hederson V. Ramos
Agenda
• Definições de Teste de software• Conceitos básicos associados a Teste de
Software• Níveis de teste de Software
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
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;
– Verificar através de uma execução controlada se o seu comportamento corre de acordo com o especificado;
• 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.
– Revelar o número máximo de falhas dispondo do mínimo de esforço.
Definições
Conceitos básicos associados a Teste de Software
• A atividade de teste é composta por alguns elementos essenciais que auxiliam na formalização desta atividade:– Caso de Teste: descreve uma condição particular a
ser testada e é composta por valores de entrada, restrições para sua execução e um resultado ou comportamento esperado.
– Procedimentos de Teste: é uma descrição dos passos necessários para executar um caso (ou um grupo de casos) de teste;
– Critérios de Teste: serve para selecionar e avaliar casos de teste de formar a aumentar as possibilidades de provocar falhar:• Critérios de Cobertura dos Teste.
Conceitos básicos associados a Teste de Software
Níveis de teste de Software
• O planejamento dos teste deve ocorrer em diferentes níveis e em paralelo ao desenvolvimento.
• 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
• 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
• 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
• Teste de Sistema:– 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
• Teste de Aceitação:– 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
• 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
Níveis de teste de Software• O planejamento e projeto dos testes devem ocorrer de
cima para baixo, porem a execução no sentido inverso
Técnicas de Teste de Software
• Técnica Estrutural – Teste de Caixa Branca• Técnica Funcional – Teste de Caixa Preta
• 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
• 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
• 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
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.
• 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