Você está na página 1de 19

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
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.
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.
Técnicas de Teste de Software
• Teste de Caixa Branca
• 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.


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.
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.
Consulta...
• http://www.devmedia.com.br/artigo-engenharia-de-software-introducao-
a-teste-de-software/8035