Buscar

Fases e Tipos de Teste de Software

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

20/01/2013 
1 
1 
Fases, Processo e Tipos de 
Teste 
Carlos Pietrobon 
 
2 
Fases de Teste 
 A atividade de teste é dividida em 
fases com objetivos distintos. De uma 
forma geral, pode-se estabelecer 
como fases (Delamaro et al., 2007): 
 Teste de Unidade 
 Teste de Integração 
 Teste de Sistema 
 Teste de Aceitação 
3 
Fases de Teste 
4 
Teste de Unidade 
 Tem como foco as menores unidades de um 
programa. 
 Uma unidade é um componente de software que 
não pode ser subdividido. 
 Nesta fase esperam-se encontrar defeitos 
relacionados a algoritmos incorretos ou mal 
implementados, estruturas de dados incorretas ou 
simples erros de programação. 
 Pode ser aplicado à medida que ocorre a 
implementação das unidades e pode ser realizado 
pelo próprio desenvolvedor (Delamaro et al., 2007). 
5 
Teste de Unidade 
 Durante os testes de unidade, é necessária a 
implementação de drivers e stubs. 
 Um driver é um programa que coordena o teste de 
uma unidade U, sendo responsável por ler os dados 
fornecidos pelo testador, repassar esses dados na 
forma de parâmetros para U, coletar os resultados 
produzidos por U e apresentá-los para o testador. 
 Um stub é um programa que substitui, na hora do 
teste, uma unidade chamada por U, simulando o 
comportamento dessa unidade com o mínimo de 
computação ou manipulação de dados (Delamaro et 
al., 2007). 
6 
Teste de Unidade 
 Todas as técnicas de teste se aplicam 
ao teste de unidade. 
 
20/01/2013 
2 
Teste unitário 
public class VetorOrdenadoDriver{ 
 public static void testa(){ 
 int erro = 0; 
 VetorOrdenado aux=new VetorOrdenado(3); 
 if (aux.getTMax() != 3) erro = 1; 
 if (aux.ins(2) != true) erro = 2; 
 if (aux.ins(3) != true) erro = 3; 
 if (aux.ins(1) != true) erro = 4; 
 if (aux.getNroElem() != 3) erro = 5; 
 if (aux.getMin() != 1) erro = 6; 
 if (aux.getMax() != 3) erro = 7; 
 if (erro == 0){ 
 System.out.println("Vetor s/erros!"); 
 }else System.out.println( 
 "Vetor c/erro nro: "+erro); 
 } 
} 
 
 
VetorOrdenado 
public VetorOrdenado(int tam) 
public boolean ins(int v) 
public int getMax() 
public int getMin() 
public int getNroElem() 
public int getTMax() 
public int get(int i) 
public void ordena() 
 
8 
Teste de Integração 
 Deve ser realizado após serem testadas as 
unidades individualmente. 
 A ênfase é colocada na construção da estrutura do 
sistema. 
 Deve-se verificar se as partes, quando colocadas 
para trabalhar juntas, não conduzem a erros. 
 Requer grande conhecimento das estruturas 
internas do sistema e, por isso, geralmente é 
executado pela própria equipe de desenvolvimento 
(Delamaro et al., 2007). 
 Todas as técnicas de teste se aplicam, com 
destaque para o teste funcional. 
9 
Teste de Sistema 
 Uma vez integradas todas as partes, inicia-se o 
teste de sistema. 
 Quando realizado por uma equipe de teste, o 
objetivo é verificar se as funcionalidades 
especificadas na especificação de requisitos foram 
corretamente implementadas. 
 Quando realizado por usuários, o objetivo é validar 
o sistema (Teste de Aceitação). 
 É uma boa prática que essa fase seja realizada por 
testadores independentes. 
 Tipicamente, aplica-se teste funcional. 
10 
Teste de Regressão 
 A cada novo módulo adicionado ou alteração, o 
software se modifica. Essas modificações podem 
introduzir novos defeitos, inclusive em funções que 
previamente funcionavam corretamente. 
 Assim, é necessário verificar se as alterações 
efetuadas estão corretas e, portanto, deve-se 
reexecutar algum subconjunto de testes que já foi 
conduzido para garantir que as modificações não 
estão propagando efeitos colaterais indesejados 
(Pressman, 2006). 
11 
Teste de Aceitação 
 O objetivo é verificar se o software desenvolvido 
atende as necessidades do cliente 
 Testes de aceitação são “caixa preta” e são 
realizados pelo usuário 
 Finalidade é demonstrar a conformidade com os 
requisitos do software 
 Envolve treinamento, documentação e 
empacotamento 
 
12 
Teste de Aceitação 
 Podem ser de duas categorias: 
 Testes alfa 
 Feitos pelo usuário, geralmente nas 
instalações do desenvolvedor, que observa e 
registra erros e/ou problemas 
 Testes beta 
 Feitos pelo usuário, geralmente em suas 
próprias instalações, sem a supervisão do 
desenvolvedor. Os problemas detectados são 
então relatados para o desenvolvedor 
 
 
20/01/2013 
3 
13 
Processo de Teste 
 O processo de teste pode ser definido como um 
processo separado, mas intimamente ligado, ao 
processo de desenvolvimento. Isso porque eles têm 
metas e medidas de sucesso diferentes. 
 Por exemplo, quanto menor a taxa de defeitos 
(razão entre o no de casos de teste que falham 
pelo total de casos de teste), mais bem sucedido é 
considerado o processo de desenvolvimento. Por 
outro lado, quanto maior a taxa de defeitos, 
considera-se mais bem sucedido o processo de 
teste (McGregor e Sykes, 2001). 
 
14 
Processo de Teste 
 Independentemente da fase de teste, 
o processo de teste inclui as 
seguintes atividades: 
 Planejamento 
 Análise de Requisitos de Teste 
 Projeto de Casos de Teste 
 Implementação de Casos de Teste 
 Execução 
 Análise 
15 
Slide: 15 
 Testability Maturity Model (TMM) 
 Test Organization Maturity (TOM) 
 Testing Assessment Program (TAP) 
 Evaluation&Test SW-CMM Key Process Area (CMM-I 
KPA) 
 Metrics-based Testing Maturity Model (MB-TMM) 
– Em desenvolvimento 
 Padrões de Qualidade para testes 
16 
Tipos de Teste 
 São definidos em relação aos diversos tipos 
de requisitos descritos no documento de 
requisitos 
 Alguns exemplos são: 
 Teste funcional 
 Teste de recuperação de falhas 
 Teste de segurança 
 Teste de performance 
 Teste de carga, 
 etc 
 
17 
Tipos de teste 
 Teste funcional (regras de negócio) 
 A funcionalidade geral do sistema em 
termos de regras de negócio (fluxo de 
trabalho) é testada 
 Condições válidas e inválidas 
18 
Tipos de teste 
 Teste de recuperação de falhas 
 O software é forçado a falhar de 
diversas maneiras para que seja 
verificado o seu comportamento 
 Bem como a adequação dos 
procedimentos de recuperação 
 A recuperação pode ser automática ou exigir 
intervenção humana 
20/01/2013 
4 
19 
Tipos de teste 
 Teste de segurança e controle de 
acesso 
 Verifica se todos os mecanismos de 
proteção de acesso estão funcionando 
satisfatoriamente 
 Teste de integridade de dados 
 Verifica a corretude dos métodos de 
acesso à base de dados e a garantia das 
informações armazenadas 
 
20 
Tipos de teste 
 Teste de performance 
 Verifica tempo de resposta e processamento 
(para diferentes configurações, número de 
usuários, tamanho do BD, etc.) 
 Exemplo 
 Recuperar conta de usuário em x segundos 
 São necessários definir 
 Servidores e clientes, sistemas operacionais e 
protocolos utilizados 
21 
Tipos de teste 
 Teste de volume (carga) 
 Foca em transações do BD 
 Verifica se o sistema suporta altos 
volumes de dados em uma única 
transação 
 Verifica o número de terminais, modems 
e bytes de memória que é possível 
gerenciar 
22 
Tipos de teste 
 Teste de estresse 
 Verifica a funcionalidade do sistema em 
situações limite 
 Pouca memória ou área em disco, alta competição por 
recursos compartilhados (ex: vários 
acessos/transações no BD ou rede) 
 Exemplo: pode-se desejar saber se um sistema de 
transações bancárias suporta uma carga de mais de 
100 transações por segundo ou se um sistema 
operacional pode manipular mais de 200 terminais 
remotos 
 
23 
Tipos de teste 
 Teste de configuração ou portabilidade 
 Verifica o funcionamento adequado do sistema 
em diferentes configurações de 
hardware/software 
 O que testar 
 Compatibilidade do software/hardware 
 Configuração do servidor 
 Tipos de conexões com a Internet 
Compatibilidade com o browser 
24 
Tipos de teste 
 Teste de instalação e desinstalação 
 Verifica a correta instalação e desinstalação do 
sistema para diferentes plataformas de 
hardware/software e opções de instalação 
 O que testar 
 Compatibilidade do hardware e software 
 Funcionalidade do instalador/desinstalador sob 
múltiplas opções/condições de instalação 
 GUI do programa instalador/desinstalador 
20/01/2013 
5 
25 
Tipos de teste 
 Teste da GUI (usuário) 
 Aparência e comportamento da GUI 
 Navegação 
 Consistência 
 Aderência a padrões 
 Tempo de aprendizagem 
 Funcionalidade 
26 
Tipos de teste 
 Teste de documentação 
 Verifica se a documentação corresponde à 
informação correta e apropriada: 
 online 
 escrita 
 help sensível ao contexto 
 Teste de ciclo de negócios 
 Garante que o sistema funciona adequadamente 
durante um ciclo de atividades relativas ao 
negócio 
 
27 
Automatização do Processo 
de Teste 
 É um ponto importante para o sucesso no teste de 
um software. 
 O processo de teste tende a ser extremamente 
dispendioso e é muito importante utilizar 
ferramentas de apoio ao teste para buscar 
aumentar a produtividade. 
 Há diversos tipos de ferramentas de teste. Ainda 
assim, muito trabalho humano é necessário para 
criar os casos de teste adequados ao critério 
utilizado (Delamaro et al., 2007). 
28 
Referências 
 Delamaro, M.E., Maldonado, J.C., Jino, M., 
Introdução ao Teste de Software, Série Campus – 
SBC, Editora Campus, 2007. 
 Koscianski, A., Soares, M.S., Qualidade de 
Software, Editora Novatec, 2006. 
 Myers, G.J., The Art of Software Testing, 2nd 
edition, John Wiley & Sons, 2004. 
 McGregor, J.D., Sykes, D.A., A Practical Guide to 
Testing Object-Oriented Software, Addison-
Wesley, 2001. 
 Pressman, R.S., Engenharia de Software. 6a edição, 
McGrawHill, 2006.

Outros materiais