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
Q

O que são classes de equivalência e como se definem consoante a entrada?

A

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
Q

Como se definem os valores fronteira?

A

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
Q

Como se constroem testes de caixa preta e quais são os dois tipos destas construções

A

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
Q

Como se procedem os testes baseados em modelos?

A
  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
Q

Testes de aplicações web: Quais são os objetivos dos testes de conteúdos?

A

Encontrar erros: ortográficos, semânticos e na estrutura do conteúdo que é apresentado

30
Q

Testes de aplicações web: Quais são os métodos dos testes de conteúdos?

A
  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
Q

Testes de aplicações web: Quais os 4 passos para gerar objetos de conteúdos dinâmicos?

A
  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
Q

Testes de aplicações web: Quais são as 4 dificuldades em testar conteúdos dinâmicos?

A
  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
Q

5 pontos relevantes para testes da interface com o utilizador

A

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
Q

Quais são os dois tipos de testes de interface com utilizadores e com que recursos se executam?

A

Testes de usabilidade: com utilizadores ou peritos

Testes de compatibilidade consideram diferentes: computadores e ecrãs // SO’s e browsers // velocidades de rede

35
Q

Qual o objetivo dos testes de navegação?

A

Garantir o funcionamento dos mecanismos de navegação da aplicação -> Links

36
Q

Os testes de configuração podem ser feitos em duas perspectivas, quais são?

A

Servidor e cliente

37
Q

O que fazem os testes de componentes?

A

Testam as “funções” da aplicação, normalmente em resposta a um formulário

38
Q

Os testes de configuração do lado do servidor verificam…

A

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
Q

Os testes de configuração do lado do cliente verificam…

A

Compatibilidade com diferentes hardware, SO’s, browsers, plugins
Diferenças de conectividade
Ferramentas automáticas permitem testar em diferentes browsers

40
Q

Quais são os três domínios que os testes de segurança devem considerar?

A

Cliente
Servidor
Comunicação cliente-servidor

41
Q

Quais são os dois tipos de testes de desempenho?

A

Testes de carga e de stress

42
Q

Qual o objetivo dos testes de carga?

A

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
Q

Qual o objetivo dos testes de stress?

A

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
Q

Quais são as possíveis causas de problemas de desempenho?

A

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
Q

Quais são os desafios à deteção de erros?

A

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