TESTES DE SOFTWARE Flashcards
Testar é…
o processo de exercitar um programa para encontrar erros
Planeamento do projeto deve incluir tarefas para:
Desenhar casos de teste
Executar testes
Analisar resultados dos testes
Indique três estratégias de testes
Realizar revisões formais antes, de forma a eliminar erros
Testes começam pelos componentes e sobem até ao nível da integração de sistemas
Especificar os requisitos de uma forma quantificável
Descrever os objetivos dos testes explicitamente
Desenvolver perfis para cada categoria de utilizadores
Planear ciclos rápidos de testes
Construir software defensivo para facilitar testes
Realizar revisões técnicas da estratégia e dos casos de teste
Implementar a melhoria continua do processo de testes
O que é a verificação e a validação?
Verificação - Tarefas que garantem que o software implementa corretamente uma função especifica (product right)
Validação - Tarefas que garantem que o software está de acordo com os requisitos do cliente (right product)
Indique os 4 tipos de teste
Unitários
Integração
Validação (conforme os requisitos)
Sistema
Indique dois problemas do tratamento de exceções que devem ser testados
Descrição do erro não é compreensível
Erro assinalado não corresponde ao erro encontrado
Condição de erro causa intervenção do sistema antes do tratamento da exceção
Processamento da exceção é incorreto
Descrição de erro não é suficiente para ajudar a encontrar a localização da causa do erro
O que é um driver?
Main program
Aceita casos de teste, passa-os às componentes a testar e guarda os resultados
O que é um stub?
Substituem sub-componentes ainda não desenvolvidos
Duas estratégias dos testes de integração e em que consistem
Big Bang - Tudo de uma vez, caos
Integração incremental - Testado em pequenos incrementos, mais fácil de isolar e corrigir erros
Indique os 5 passos da estratégia Top-Down
- Componente principal é usado como driver e vários stubs substituem os subordinados do componente principal
- Dependendo da aproximação selecionada (profundidade ou largura), os stubs subordinados são substituídos um de cada vez por componentes reais
- Testes são realizados à medida que cada componente é integrado
- Depois de completar um conjunto de testes, substituir outro Stub por um componente real
- Testes de regressão podem ser realizados para garantir que não surgiram novos erros
A implementação Top-down permite também…
Verificar os pontos de controlo/decisão principais mais cedo no processo de teste
Se a aproximação for em profundidade, demonstrar funcionalidades completas
Indique os 4 passos da estratégia Bottom-up
- Dispensa stubs mas precisa de múltiplos drivers
- Componentes de baixo-nível são combinados em clusters que realizam uma função especifica de software
- Um driver é escrito para coordenar os casos de teste ao cluster de componentes
- O cluster de componentes é testado e o driver é substituido por um componente real, que é adicionado ao cluster, subindo assim o teste na estrutura do programa
O que são testes de regressão?
Voltar a executar um subconjunto de testes para garantir que mudanças ou novas integrações não causaram erros
Podem ser automáticos
O que são testes de fumo e quais os seus 3 passos?
Testes diários para avaliar o progresso dos testes de integração e da execução do próprio projeto
- Integrar diariamente os componentes num build
- Executar uma série de testes para revelar erros graves que podem atrasar o projeto
- A build é integrada com outros builds e os testes de fumo são realizados ao produto todo
O que são testes de validação e qual os dois tipos destes?
São testes de aceitação que verificam o cumprimento dos requisitos do cliente
Testes alfa - ambiente controlado com amostra representativa dos clientes
Testes beta - realizados exclusivamente por clientes nos seus ambientes de trabalho
Quais são os 5 tipos de testes de sistema e qual a função de cada um?
Testes de recuperação - forçar o sistema a falhar e verificar a capacidade de voltar a estar operacional
Testes de segurança - verificar que os mecanismos de segurança protegem o sistema
Testes de stress - Executar o sistema de uma forma a que exija mais recursos que o normal
Testes de desempenho - Verificar o desempenho do sistema integrado com outros sistemas
Testes de implementação - Executar o sistema em todas as plataformas em que for disponibilizado
Quais são as 7 características de software testável?
Operabilidade - Quanto melhor funcionar, mais eficientemente pode ser testado
Transparência - Facilidade de interpretar os resultados e aceder aos estados de variáveis internas
Controlabilidade - Capacidade de automatizar e otimizar os testes
Modularidade - Componentes independentes podem ser testados independentemente
Simplicidade - Funcional, estrutural e de código
Estabilidade - Alterações ao software não invalidam testes existentes
Compreensibilidade - documentação técnica acessível e completa
Quais são as duas aproximações para testes?
Caixa branca e caixa preta
Testes de caixa branca devem… (4)
Exercitar todos os caminhos independentes
Executar todas as decisões lógicas para ambos os resultados (V/F)
Executar todos os ciclos dentro dos seus limites e nas condições fronteira
Exercitar todas as estruturas de dados internas para assegurar a sua viabilidade
O que é o conjunto de base?
Grupo de caminhos independentes
A complexidade ciclomática pode ser calculada de 3 maneiras, quais são?
V = nº de regiões V = nº de arcos - nº de nós + 2 V = nº de nós predicado + 1
Indique os 4 passos para a construção de testes de caixa branca
- a partir do código construir o grafo de fluxo
- calcular a complexidade ciclomática
- determinar o conjunto de caminhos independentes
- preparar casos de teste que exercitem cada caminho independente
Que testes tendem a ser realizados mais tarde: caixa preta ou caixa branca?
Caixa preta
No que se focam os testes de caixa preta?
Entradas e saídas