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_sof
tware_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_resourc
e/content/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