Você está na página 1de 24

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
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_cos
ts_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/conten
t/1/casoICancerPanama.pdf
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
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;
Definições
• 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 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.
Definições de Termos
Testes revelam falhas !
Entradas que causam
comportamentos anômalos
Entrada de dados Ie
de teste

Sistema

Saídas que revelam falhas


Saída de resultado
de teste Oe

Figura adaptada de Sommerville, Ian - 2011


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.
Níveis de teste de Software
• O planejamento dos teste deve ocorrer em
diferentes níveis e em paralelo ao desenvolvimento.
Níveis de teste de Software
• 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 (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
• 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
• 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.
Técnicas de Teste de Software
• Técnica Estrutural – Teste de Caixa Branca
• Técnica Funcional – Teste de Caixa Preta
Técnicas de Teste de Software
• 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,
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.
Conclusões
• 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.
Referências
• http://www.devmedia.com.br/artigo-
engenharia-de-software-introducao-a-teste-
de-software/8035

Você também pode gostar