Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Teste de Sistema
Verificação e Validação de Software, UASC/UFCG, 
Profa Patrícia D. L. Machado / Prof. Everton L. G. Alves
Introdução
• Teste de Sistema:
▫ Procura detectar bugs por meio da utilização do sistema, 
como se fosse um usuário final
▫ Verifica se o produto satisfaz seus requisitos
• Pressuposto:
▫ Testes de unidade e de integração 
já foram realizados
Objetivos
Aceitação
Instalação
Teste Alpha e Beta
Confiabilidade
Regressão
Performance
Segurança (safety)
Proteção (security)
Stress
Back-to-Back
Recuperação
Interface
Conformidade 
Usabilidade
Smoke Testing
Quantidade mínima de testes que podem ser executados para garantir que o SUT 
está pronto para testes mais elaborados.
Pode ser executado por um testador experiente que “brinca” com o software para 
observar se funcionalidades básicas estão sendo atendidas.
Teste de Aceitação
Qualquer tipo de teste que garanta que o SUT atende a seus requisitos de forma 
aceitável o processo de desenvolvimento possa avançar para outras fases, tais 
como, testes, entrega, preparação para entrega, etc.
Alguns tipos:
● Operational/field testing
● User acceptance testing
● Alpha/Beta testing
Teste Exploratório
Teste sem um plano específico que envolve aprendizado, design de casos de 
teste e execução de forma simultânea.
Busca descobrir como o software realmente funciona e fazer perguntas sobre 
como ele lidará com casos difíceis e fáceis.
O testador aprende sobre o SUT e juntamente com a experiência e a criatividade, 
gera novos testes para serem executados.
Abordagem pode ser aplicada a qualquer técnica de teste,
 em qualquer estágio do processo de desenvolvimento. 
O ponto chave é o engajamento do testador.
Exploratório versus “Baseado em Script”
No teste baseado em script, os casos 
de teste são planejados com 
antecedência. Isso inclui as etapas 
individuais e os resultados 
esperados. 
Casos de teste são executados 
posteriormente por um testador que 
compara o resultado real com o 
esperado. 
No exploratório, as expectativas 
estão abertas. Alguns resultados 
podem ser previstos e esperados; 
outros não podem. 
O testador configura, opera, observa 
e avalia o produto e seu 
comportamento, investigando 
criticamente o resultado e relatando 
informações que parecem ser um 
bug ou um problema.
https://en.wikipedia.org/wiki/Exploratory_testing
Teste Exploratório: Vantagens e Desvantagens
Flexibilidade para conduzir os testes 
e explorar o SUT
Descobrir defeitos não previstos
"Programs that pass certain tests 
tend to continue to pass the same 
tests and are more likely to fail other 
tests or scenarios that are yet to be 
explored."
Casos de teste não podem ser 
revisados
Não é possível demonstrar que 
testes foram executados
Difíceis de reproduzir
Teste de Sistema e Requisitos
• Testes de sistemas são usualmente realizados tomando como 
base uma especificação de requisitos
• Dada sua familiaridade intuitiva, na prática testes de sistema 
tendem a ser uma atividade mais informal do que deveria
▫ Intervalos de teste reduzidos
▫ Testes próximos ao deadline de entrega!
Threads de Comportamento
• Casos de teste são usualmente definidos como threads de 
comportamento:
▫ Um cenário de uso
▫ Uma sequência de pares estímulo-resposta
▫ Um comportamento resultado de uma sequência de entradas ao sistema
▫ Uma sequência de mensagens e 
execuções de métodos
▫ ...
Requisitos
A escrita de requisitos é desafiante, em particular por ser 
usualmente feita em linguagem natural, podendo levar a 
diferentes interpretações:
“O sistema de alarme principal deve soar se detectar a 
presença de um intruso com uma câmera digital”.
Requisitos
Requisitos devem descrever o comportamento esperado do sistema e não como 
este comportamento é produzido
BOM: “Quando o usuário clica no botão “velocidade”, a velocidade atual deve ser exibida na tela principal”.
RUIM: “Quando o usuário clica no botão “velocidade”, o sistema deve acessar a localização de memória 
0x481034810 e exibir seu conteúdo na tela.”
BOM: “O sistema deve poder operar com uma velocidade de 0.8c por no mínimo 300 dias sem necessitar 
de manutenção”.
RUIM: “O sistema deve usar uma reação anti-matéria a fim de atingir a velocidade 0.8c.”
Requisitos e Testabilidade
“O sistema deve incrementar o 
contador de ingresso sempre que um 
sensor de presença for ativado sem 
erro.”
“O sistema deve realizar tarefas com 
o contador de ingresso sempre que 
alguém entrar na sala.”
Requisitos devem ser:
Completos
Consistentes
Não-ambíguos
Quantificáveis
Viáveis para teste
Testes como Requisitos
Comumente aplicado na comunidade ágil
Objetivos podem ser conflitantes, visto que casos de teste 
devem descrever usos específicos do sistema.
Teste Manual
Teste Automático
Teste Manual: Vantagens
Simplicidade
Baixo Custo
Não demanda codificação adicional de software
Flexibilidade
Maior possibilidade de testar preocupações do usuário
Captura de defeitos não observáveis de forma automática
Teste Manual: Desvantagens
Chato/Tedioso
Pode ser não repetível / reproduzível
Algumas tarefas são difíceis ou impossíveis de serem testadas de forma manual
Possibilidade de erro humano
Execução de alto custo
Limita a black-box e grey-box
Teste Automático: Vantagens
Elimina erro humano na execução
Execução rápida e feito o setup, fácil de executar
Repetível
Processo simples de analisar
Menor custo de execução
Ideal para testar partes do sistema onde teste manual não pode ser aplicado
Lida bem com alta escala
Teste Automático: Desvantagens
Tempo extra de setup
Pode não capturar certos defeitos
Requer treinamento na escrita de casos de teste e ferramentas de suporte
Requer maior conhecimento tecnológico
Não consegue generalizar ou explorar outros objetivos durante a execução
Suites podem conter testes inúteis ou inválidos.
Manual versus Automático
Práticas complementares
Em situações onde ambos podem ser aplicados, é importante considerar:
● O quão crítico é o software?
● Com que frequência testes serão executados?
● Qual a experiência da equipe?
● Qual o orçamento para teste?
● Qual a dificuldade para automatizar testes? 
● O quão estável são os requisitos do software?
Teste Baseado em Modelos (MBT)
Abordagem de teste que faz uso de modelos, geralmente denominados como 
modelos de teste, para representar o comportamento que queremos testar.
A partir do modelo de teste, os casos de teste são gerados de acordo com um 
determinado critério de teste.
Quando modelos formais são considerados para gerar casos de teste e abstrair 
detalhes do SUT, essa abordagem é comumente conhecida como teste de 
conformidade.
Teste Baseado em Modelos (MBT)
Teste Baseado em Modelos (MBT): Benefícios
● Maior eficácia nos testes, levando a um foco e cobertura justa / sistemática 
do que precisa ser testado;
● Redução de custos de testes, pela possível reutilização de artefatos de 
desenvolvimento e automação de geração de artefatos de testes;
● Maior confiabilidade nos testes devido ao fato de que a maioria dos artefatos 
de teste é gerada automaticamente em contraste com a codificação manual 
deles.
Teste Baseado em Modelos (MBT): Desafios
● Modelar pode ser muito difícil
● Modelos explodem (quando a ferramenta em uso não é dimensionada para 
modelos complexos)
● Testes gerados podem não detectar todos os defeitos se modelos não 
estiverem alinhados/atualizados com o código.
CLARET
• CentraL Artifact for RE and mbT notation
• Processo e ferramenta para especificação de requisitos 
e geração automática de suites de teste de sistema
▫ Trabalho de mestrado de Dalton Jorge
• Objetivo: 
▫ Agilizar a especificação de requisitos no contexto ágil
▫ Aplicação de Model-based Testing no contexto ágil
CLARET
• DSL para especificação de requisitos via casos de uso
▫ Simples
▫ Linguagem próxima ao desenvolvedor
▫ Baseada nos pares estímulo/resposta
▫ Permite a modelagem de comportamentos alternativos e de exceção
▫ Pensadapara auxiliar a geração de testes
CLARET - Processo
CLARET
• DSL para especificação de requisitos via casos de uso
Sistema: Receita Federal
Funcionalidade: Incluir novo CPF
O usuário seleciona a opção para incluir CPF no menu principal. O 
sistema deve validar o CPF e, sendo válido, incluí-lo e apresentar 
mensagem indicando que foi aceito. Durante a inserção do CPF o 
usuário poderá cancelar a operação
TGF Gerado
XML com a Suite Gerada
CLARET na Prática
• Aplicado projetos reais
• Antes:
▫ Não existia especificação dos requisitos organizada
▫ Somente testes exploratórios eram realizados
▫ Cliente reportava as falhas
CLARET na Prática
Sistema # de Use Cases # de Casos de Teste
A 17 56
B 19 63
C 12 32
• Resultados de execução: