Buscar

Testes de Software

Prévia do material em texto

Testes de Software
Prof.: Ari Oliveira
Projeto de
Desenvolvimento
Software
Testes de Software
22
│ O software é testado para revelar erros cometidos 
quando projetado e construído.
│ A estratégia de teste responde:
‖ Como conduzir os testes?
‖ Devemos estabelecer um plano formal para nossos testes?
‖ Devemos testar o programa como um todo ou somente 
parte dele?
‖ Devemos refazer os testes quando acrescentamos novos 
componentes ao sistema?
‖ Quando devemos envolver o cliente?
Testes de Software
33
│ Quem realiza?
‖ Gerente de projeto, engenheiros de software e pelos especialistas em testes
│ Por que é importante?
‖ Requer mais trabalho de projeto do que qualquer outra ação da engenharia 
de software. Se for feito casualmente, perde-se tempo, fazem-se esforços 
desnecessários, e, ainda pior, erros passam sem ser detectados.
│ Etapas Envolvidas:
‖ Começa pelo pequeno e passa para o grande, ou seja, os testes iniciais 
focalizam um único componente ou um pequeno grupo de componentes 
relacionados. Depois os componentes devem ser integrados até que o sistema 
completo esteja pronto.
│ Artefato:
‖ Plano que estabelece estratégia global e um procedimento designando etapas 
específicas de teste e os tipos de testes que serão feitos.
Testes de Software
44
│ Validação: Assegurar que o produto final 
corresponda aos requisitos do usuário 
‖ Estamos construindo o produto certo?
│ Verificação: Assegurar consistência, 
completitude e corretitude do produto em 
cada fase e entre fases consecutivas do ciclo 
de vida do software 
‖ Estamos construindo corretamente o produto? 
Testes de Software
55
│ Processo de software e estratégia de teste em 
expiral:
Testes de Software
66
│ Identificar erros de lógica e de implementação em cada módulo do 
software, separadamente;
│ Pode ser conduzido em paralelo para diversos componentes;
│ Considerações:
‖ O teste de fronteira é uma das tarefas mais importantes do teste de 
unidade. Falha nas fronteiras: quando o n-ésimo elemento de um 
conjunto n-dimensional é processado, quando a i-nésima repetição de 
uma laço com i passadas é chamada, quando o valor máximo ou 
mínimo permitido é encontrado.
‖ Um bom projeto prevê condições de erro e estabelece caminhos de 
manipulação de erro para redirecionar ou encerrar ordenadamente o 
processamento quando ocorre um erro. Abordagem antidefeitos.
Testes de Software
77
│ "Se todos funcionam individualmente, porque 
você duvida que funcionem quando estiverem 
juntos?”
│ O teste de integração é uma técnica sistemática 
para construir a arquitetura de software ao 
mesmo tempo que conduz testes para descobrir 
erros associados com as interfaces.
‖ Integração Descendente – Top-Down
‖ Integração Ascendente – Bottom-up
Testes de Software
88
│ Módulos são integrados movendo-se 
descendentemente na hierarquia de controle, 
começando com o módulo de controle 
principal. 
│ Pode ser realiza de duas formas: 
‖ Por profundidade(M1,M2,M5)
‖ Por largura(M2,M3,M4) 
Testes de Software
99
Testes de Software
1010
│ Início: 
‖ Fim da fase de integração. Componentes individuais foram 
exercitados;
‖ Software completamente montado;
‖ Erros de interface descobertos e corrigidos. 
│ Validação é considerada bem-sucedida se o software 
funciona de um modo que pode ser razoavelmente 
esperado pelo cliente. 
│ Essas expectativas razoavelmente esperadas são definidas 
na Especificação de Requisitos: 
‖ Critérios de Validação 
Testes de Software
1111
│ Teste de Aceitação: software sob encomenda é construído para um 
cliente. 
│ Software desenvolvido como um produto para vários usuários: 
‖ Teste alfa: conduzidos na instalação do desenvolvedor junto com os 
usuários finais. 
‖ Teste beta: conduzido na instalação do usuário final. Desenvolvedor 
geralmente não está presente. 
│ Exemplo:
‖ Certificar que a empréstimo de um livro a um aluno não demore mais 
que três segundos para retornar uma mensagem de sucesso. 
Testes de Software
1212
│ É uma série de diferentes testes, cujo propósito primordial é pôr 
completamente à prova o sistema baseado em computador
‖ Teste de recuperação: é um teste de sistema que força o SW a falhar 
de diversas maneiras e verifica se a recuperação é adequadamente 
executada.
‖ Teste de segurança: tenta verificar se todos os mecanismos de 
proteção embutidos em um sistema o protegerão, de fato, de acessos 
indevidos.
‖ Teste de estresse: executa o sistema de uma forma que exige recursos 
em quantidade. Essencialmente o analista tenta destruir o programa.
‖ Teste de desempenho: é idealizado para testar o desempenho de 
“runtime” do SW dentro do contexto de um sistema integrado.
Testes de Software
1313
│ Exemplo:
‖ Vários estudantes (milhares) fazem consulta ao 
mesmo tempo, empréstimos são feitos (cerca de 
500 por minuto).Verifica se tempo de resposta 
está adequado e se um estudante não está
consultando um livro que acaba de ser 
emprestado e ainda não foi atualizado. 
Testes de Software
1414
│ Caixa-Preta:
‖ Teste realizados na interface do software;
‖ Examina alguns aspectos fundamentais de um sistema, com pouca 
preocupação em relação à estrutura lógica interna.
│ Caixa-Branca:
‖ Exame rigoroso do detalhe procedimental. Os caminhos lógicos e as 
colaborações entre os componentes são testados.
‖ Casos de teste que garantirão:
¦ que todos os caminhos independentes de um módulo foram exercitados, 
exercitam todas as decisões lógicas nos seus estados verdadeiro e falso, 
executam todos os ciclos em seus limites e dentro de suas fronteiras 
operacionais e exercitam estruturas de dados internas para assegurar a sua 
validade.
Testes de Software
1515
│ Permite derivar uma medida da complexidade lógica de um 
projeto procedimental e usar essa medida como guia para 
definir um conjunto base de caminho para execução.
│ No código fonte terminado, extrai-se o grafo de fluxo que 
representa a lógica do código fonte.
Testes de Software
1616
│ Focaliza os requisitos funcionais do software;
│ Visa encontrar erros nas seguintes categorias:
‖ Funções incorretas ou faltando;
‖ Erros de interface;
‖ Erros em estruturas de dados ou acesso a bases 
de dados externas, erros de comportamento ou 
de desempenho, e erros de inicialização e 
término.
Testes de Software
1717
│ O Objetivo do teste é encontrar erros e se eles 
não forem detectados, o teste não pode afirmar 
sua ausência; 
│ Testar tudo é impossível;
│ As técnicas de teste são complementares, 
devendo ser aplicadas em conjunto; 
│ Para testar com eficiência é preciso conhecer 
bem o software. 
Testes de Software
1818
│ Atividade: Identificar ferramentas utilizadas 
pelas empresas para testes
│ Ferramentas para testes das GUI’s
│ Ferramentas para testes de performance
│ Frameworks para testes de unidade
Testes de Software
1919
│ 1. Construa os seguintes algoritmos e construa o gráfico de 
fluxo para cada um deles:
‖ Um algoritmo que lê um número e imprime a lista dos seus
divisores.
‖ Um algoritmo que lê as 4 notas de um aluno e diga se ele
passou por média, está em final ou reprovou. 
Testes de Software
EXEMPLOS DE TESTES
Testes de Software
2121
│ O que é?
│ Experimentos programados com tarefas para uso por 
diferentes tipos de usuário.
│ Para que serve?
│ Para testar as funcionalidades do produto, verificando se 
ele atende aos requisitos de usabilidade e identificar 
possíveis problemas para melhoria em uma análise de 
tarefas.
│ É um teste de validação (requisitos)
Testes de Software
222222
Testes de Software
232323
Testes de Software
242424
Testes de Software252525
Testes de Software
262626
Testes de Software
2727
Número de usuários de um teste
P
ro
b
le
m
a
s
 e
n
c
o
n
tr
a
d
o
s
Testes de Software
2828
Testes de Software
2929
Testes de Software
Prof.: Ari Oliveira
Projeto de
Desenvolvimento
Software

Continue navegando