TESTES DE SOFTWARE Flashcards

1
Q

Testar é…

A

o processo de exercitar um programa para encontrar erros

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Planeamento do projeto deve incluir tarefas para:

A

Desenhar casos de teste
Executar testes
Analisar resultados dos testes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Indique três estratégias de testes

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

O que é a verificação e a validação?

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Indique os 4 tipos de teste

A

Unitários
Integração
Validação (conforme os requisitos)
Sistema

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Indique dois problemas do tratamento de exceções que devem ser testados

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

O que é um driver?

A

Main program

Aceita casos de teste, passa-os às componentes a testar e guarda os resultados

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

O que é um stub?

A

Substituem sub-componentes ainda não desenvolvidos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Duas estratégias dos testes de integração e em que consistem

A

Big Bang - Tudo de uma vez, caos

Integração incremental - Testado em pequenos incrementos, mais fácil de isolar e corrigir erros

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Indique os 5 passos da estratégia Top-Down

A
  1. Componente principal é usado como driver e vários stubs substituem os subordinados do componente principal
  2. Dependendo da aproximação selecionada (profundidade ou largura), os stubs subordinados são substituídos um de cada vez por componentes reais
  3. Testes são realizados à medida que cada componente é integrado
  4. Depois de completar um conjunto de testes, substituir outro Stub por um componente real
  5. Testes de regressão podem ser realizados para garantir que não surgiram novos erros
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

A implementação Top-down permite também…

A

Verificar os pontos de controlo/decisão principais mais cedo no processo de teste
Se a aproximação for em profundidade, demonstrar funcionalidades completas

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Indique os 4 passos da estratégia Bottom-up

A
  1. Dispensa stubs mas precisa de múltiplos drivers
  2. Componentes de baixo-nível são combinados em clusters que realizam uma função especifica de software
  3. Um driver é escrito para coordenar os casos de teste ao cluster de componentes
  4. 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

O que são testes de regressão?

A

Voltar a executar um subconjunto de testes para garantir que mudanças ou novas integrações não causaram erros
Podem ser automáticos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

O que são testes de fumo e quais os seus 3 passos?

A

Testes diários para avaliar o progresso dos testes de integração e da execução do próprio projeto

  1. Integrar diariamente os componentes num build
  2. Executar uma série de testes para revelar erros graves que podem atrasar o projeto
  3. A build é integrada com outros builds e os testes de fumo são realizados ao produto todo
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

O que são testes de validação e qual os dois tipos destes?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Quais são os 5 tipos de testes de sistema e qual a função de cada um?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Quais são as 7 características de software testável?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Quais são as duas aproximações para testes?

A

Caixa branca e caixa preta

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Testes de caixa branca devem… (4)

A

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

20
Q

O que é o conjunto de base?

A

Grupo de caminhos independentes

21
Q

A complexidade ciclomática pode ser calculada de 3 maneiras, quais são?

A
V = nº de regiões
V = nº de arcos - nº de nós + 2
V = nº de nós predicado + 1
22
Q

Indique os 4 passos para a construção de testes de caixa branca

A
  1. a partir do código construir o grafo de fluxo
  2. calcular a complexidade ciclomática
  3. determinar o conjunto de caminhos independentes
  4. preparar casos de teste que exercitem cada caminho independente
23
Q

Que testes tendem a ser realizados mais tarde: caixa preta ou caixa branca?

A

Caixa preta

24
Q

No que se focam os testes de caixa preta?

A

Entradas e saídas

25
O que são classes de equivalência e como se definem consoante a entrada?
Estados válidos ou inválidos para uma entrada. Se a entrada é um intervalo, definir uma classe de equivalência válida e duas inválidas. Se a entrada é um valor, definir uma classe de equivalência válida e duas inválidas. Se a entrada é um elemento de um conjunto, definir uma classe de equivalência válida e uma inválida. Se a entrada é um booleano, definir uma classe de equivalência válida e uma inválida.
26
Como se definem os valores fronteira?
Se a entrada é um intervalo limitado pelos valores a e b, desenhar casos de teste com os valores de a e b, e logo acima e abaixo de a e b. Se a entrada é um conjunto de valores, desenhar casos de teste com o valor mínimo e máximo, e os valores logo acima e abaixo do mínimo e máximo. Repetir os passos 1 e 2 para as saídas (que entradas seriam precisas para as saídas estarem nos valores limite) Se estruturas de dados internas têm limites, desenhar casos de teste que exercitem a estrutura de dados no seu limite.
27
Como se constroem testes de caixa preta e quais são os dois tipos destas construções
Indicar quais as classes de equivalência ou valores fronteira para cada entrada, qual o resultado esperado, e um espaço para posteriormente preencher com o resultado obtido. Testes fortes - Todas as combinações de classes e valores fronteira Testes fracos - Basta que cada classe ou valor fronteira seja testado uma vez
28
Como se procedem os testes baseados em modelos?
1. Analisar o modelo comportamental de software 2. Percorrer o modelo e identificar as entradas que fazem o software alterar o estado 3. Rever o modelo e anotar as saídas esperadas quando existe mudança de estado 4. Executar casos de teste 5. Comparar resultados obtidos com esperados
29
Testes de aplicações web: Quais são os objetivos dos testes de conteúdos?
Encontrar erros: ortográficos, semânticos e na estrutura do conteúdo que é apresentado
30
Testes de aplicações web: Quais são os métodos dos testes de conteúdos?
1. Revisões e ferramentas automáticas 2. Revisões de veracidade, concisão, referências, coerência, direitos de autor, ... 3. Validar a estrutura dos objetos de conteúdo (ex: a fotografia do produto x aparecer na descrição do y)
31
Testes de aplicações web: Quais os 4 passos para gerar objetos de conteúdos dinâmicos?
1. Pedir conteúdos à base de dados 2. Extrair informação relevante da base de dados 3. Organizar a informação como objeto de conteúdo 4. Apresentar o objeto de conteúdo ao utilizador
32
Testes de aplicações web: Quais são as 4 dificuldades em testar conteúdos dinâmicos?
1. Frequentemente a interrogação inicial não é expressa numa forma que possa ser diretamente testada num SGBD 2. O SGBD pode ser remoto, podendo existir problemas de comunicação entre SGBD e servidor web. 3. Os dados em bruto recebidos do SGBD têm de ser transformados para envio para o cliente (2 potenciais fontes de erro) 4. Os objetos de conteúdo têm de poder ser apresentados ao utilizador final (em diferentes configurações de clientes)
33
5 pontos relevantes para testes da interface com o utilizador
Testes para garantir cumprimento das regras de desenho, e que a estética e conteúdos são adequados Componentes interativos específicos são testados de forma análoga aos testes unitários (ex. testar um formulário) Testar cada componente interativo no contexto de um caso de uso Testar a interface completa no contexto dos casos de uso mais relevantes Testar a interface numa diversidade de ambientes de execução
34
Quais são os dois tipos de testes de interface com utilizadores e com que recursos se executam?
Testes de usabilidade: com utilizadores ou peritos Testes de compatibilidade consideram diferentes: computadores e ecrãs // SO's e browsers // velocidades de rede
35
Qual o objetivo dos testes de navegação?
Garantir o funcionamento dos mecanismos de navegação da aplicação -> Links
36
Os testes de configuração podem ser feitos em duas perspectivas, quais são?
Servidor e cliente
37
O que fazem os testes de componentes?
Testam as "funções" da aplicação, normalmente em resposta a um formulário
38
Os testes de configuração do lado do servidor verificam...
Ficheiros e pastas são criados corretamente no servidor pela aplicação Medidas de segurança do servidor permitem à aplicação executar os serviços sem degradação do desempenho Distribuição do servidor Integração com base de dados Scripts do lado do servidor Proxies
39
Os testes de configuração do lado do cliente verificam...
Compatibilidade com diferentes hardware, SO's, browsers, plugins Diferenças de conectividade Ferramentas automáticas permitem testar em diferentes browsers
40
Quais são os três domínios que os testes de segurança devem considerar?
Cliente Servidor Comunicação cliente-servidor
41
Quais são os dois tipos de testes de desempenho?
Testes de carga e de stress
42
Qual o objetivo dos testes de carga?
Determinar como o sistema responde a diferentes níveis de carga Executar diferentes permutações de: N - número de utilizadores concorrentes T - número de transações por unidade de tempo D - dados processados pelo servidor por transação Recolher: Tempo médio de resposta ao utilizador Tempo médio para descarregar uma unidade padrão de dados Tempo médio para processar uma transação
43
Qual o objetivo dos testes de stress?
Testes de carga em que os valores N, T e D são levados acima dos limites operacionais Perceber: Se o sistema se degrada suavemente ou desliga Se mensagens "Server not available" são geradas Se são perdidas transações Se a integridade dos dados é afetada Quanto tempo demora a recuperar de uma falha Se algumas funções da aplicação são terminadas antes de atingir o limite da carga
44
Quais são as possíveis causas de problemas de desempenho?
Falta de recursos no servidor Largura de banda insuficiente Utilização não otimizada da base de dados Falhas no sistema operativo Funcionalidades mal desenhadas na aplicação
45
Quais são os desafios à deteção de erros?
Frequentemente deteta-se o sintoma no cliente e não o erro no servidor Pode ser difícil replicar erros quando dependem da configuração do cliente Para alguns erros é difícil detetar a causa Há erros que dependem do ambiente estático e outros do ambiente dinâmico