3 Capítulo 1 - Fundamentos
15 Tópicos9 Testes
100%

FL-6.1.1 (K2) Classificar as ferramentas de teste de acordo com a sua finalidade e as atividades de teste que elas suportam

Lição Progress

FL-6.1.1 (K2) Classificar as ferramentas de teste de acordo com a sua finalidade e as atividades de teste que elas suportam


Não há uma ferramenta mágica que faça toda a automação do teste para você!

O que é um conjunto de ferramentas para atender os diversos aspectos dos testes.
As quais trazem diversos benefícios para automação dos testes.
O sucesso com o uso das ferramentas não é garantido, ainda que a ferramenta correta seja adquirida.
Existem riscos no uso das ferramentas de automação!

FERRAMENTAS PARA GERENCIAMENTO DO TESTE

Gerenciamento de Testes

 
São ferramentas que atuam como apoio às principais atividades de testes, como por exemplo:
 

  • Gerenciamento e controle sobre a documentação do teste;
  • Gestão de casos de testes;
  • Gestão dos resultados dos testes.

 
Esse tipo de ferramenta é útil durante todo o ciclo de vida do software, e por isso poderia ser uma das primeiras ferramentas utilizadas em um projeto.
Fornecem interfaces para outras ferramentas, como: Execução de testes, rastreamento de defeitos, rastreamento de objetos de testes às especificações de requisitos.
 

Principais Características

Ferramentas para Gerenciamento de Requisitos

 
Embora não sejam ferramentas propriamente de testes, são de grande ajuda para a derivação dos testes a partir dos requisitos. Para isso as ferramentas de requisitos podem fazer interface com as ferramentas de gerenciamento de testes.
Isso garante conexão direta e completa entre requisitos, casos de testes e resultados dos testes. Garante também validação de rastreabilidade de cada requisito.
 

Ferramentas para Gerenciamento de Incidentes

 
São conhecidas como ferramentas de gestão de defeitos, gestão de bugs ou rastreamento de defeitos. O melhor nome é gerenciamento de incidente, pois nem tudo o que é gerido se trata de defeitos ou bugs.
São utilizadas para a  documentação, administração, priorização, alocação e análise estatística de relatórios de incidentes. Em ferramentas avançadas pode-se parametrizar os modelos de status dos incidentes.
Um workflow desde a detecção do bug, correção do bug e testes de regressão, pode ser definido, e cada membro da equipe é guiado por esse workflow de acordo com o seu papel na equipe.
 

Ferramentas para Gerenciamento de Configuração

 
Apesar de não serem ferramentas de testes propriamente ditas, realizam um papel importante para o controle de versões dos ativos do software sob teste e também dos ativos de testes.
Permite fazer rastreabilidade entre os ativos de testes e os builds do software. Facilita a geração de diferentes ambientes de testes a partir do baseline sob controle de versão.
 

Ferramentas para Testes Estáticos

 

  • Suporte ao Processo de Revisão;
  • Análise Estática;
  • Modelagem.

Ferramentas para Suporte ao Processo de Revisão

  • Ajudam a planejar, executar e avaliar revisões;
  • Armazenam informações sobre reuniões de revisões, participantes, problemas e suas resoluções;
  • Checklists podem ser incluídos e mantidos on-line;
  • Os dados coletados de diversas revisões podem ser comparados, visando melhorias no processo de desenvolvimento.

Ferramentas Análise Estática

  • Prove uma avaliação da qualidade do código sem a sua execução;
  • Deve ser aplicada nas fases iniciais do desenvolvimento;
  • Coleta informações sobre complexidade do código, áreas de maior risco de defeitos, anomalias em fluxo de dados e controle, código fora do padrão, divisão por zero, ciclos infinitos, etc.
  • São ferramentas configuráveis que permitem escolher o nível de profundidade da análise. A configuração pode ser feita de acordo com cada projeto.

Ferramentas de Modelagem

  • O código não é o único documento que pode ser analisado automaticamente;
  • Especificações podem também ser analisadas se elas foram escrita em notação ou modelo formal;
  • A ferramenta lê a estrutura do modelo e verifica diferentes características estáticas;
  • Utilizadas principalmente pelos desenvolvedores.

FERRAMENTAS PARA MODELAGEM DE TESTES

 
São ferramentas que apresentam as seguintes características:

→  Geração de valores de entrada para testes a partir de: Requisitos, modelos, código, interface gráfica, condições de testes.

Pode gerar também os resultados esperados, se um oráculo estiver disponível para a ferramenta.
 

FERRAMENTAS PARA PREPARAÇÃO DE DADOS PARA TESTES

  • Criação de dados para testes pode ser um esforço significativo, especialmente se uma extensa quantidade de dados é necessária;
  • São ferramentas utilizadas pelos desenvolvedores, e também durante os teste de sistema ou de aceitação;
  • Permitem selecionar dados a partir de um banco de dados existente, gerado, manipulado ou editado para uso nos testes;
  • As ferramentas mais sofisticadas manipulam uma série de arquivos e formatos de banco de dados.

FERRAMENTAS PARA PREPARAÇÃO DE DADOS PARA TESTES

Principais Características

FERRAMENTAS PARA EXECUÇÃO E REGISTRO

  • Execução de testes;
  • Ambiente preparado e testes de unidade;
  • Comparadores de testes;
  • Segurança;
  • Medição de cobertura.

 
Ao pensar em uma “ferramenta de teste”, normalmente é uma ferramenta de execução de teste que vem à mente. Geralmente as ferramentas desse tipo oferecem uma maneira de gravar testes manuais, portanto, elas também são conhecidas como ferramentas de captura / reprodução.
Utilizam uma linguagem de script, o que traz o poder da programação para automação dos testes. O primeiro uso desse tipo de ferramenta geralmente é no modelo captura e reprodução. Esse modelo não é adequado a um grande número de testes:

  • Há uma dependência muito grande das telas.
  • A entrada de dados fica fixa no script e pode causar problemas durante a execução.

Principais Características

FERRAMENTAS PARA AMBIENTE PREPARADO E TESTES DE UNIDADE

 
São dois tipos de ferramentas de apoio necessário por desenvolvedores durante os testes unitários.
O ambiente preparado fornece stubs e drivers, que são pequenos programas que interagem com o software em teste.
Há um grande número de ferramentas de ‘ xUnit ‘ para diferentes linguagens de programação, por exemplo, JUnit para Java, para NUnit .Net, etc.
Existem ferramentas comerciais e também de código aberto.
Framework de teste de unidade são muito semelhantes às ferramentas de execução de teste com capacidade de armazenar os casos de teste e verificar se os testes passaram ou não.
A principal diferença é que não existe a possibilidade de captura / reprodução pois são utilizadas para o  teste de integração, em vez de para o sistema ou o teste de aceitação.
 

Principais Características

FERRAMENTAS COMPARADORES DE TESTES

Há duas maneiras para comparar os resultados reais de um teste com os resultados esperados:

 
1. Comparação dinâmica: A comparação ocorre enquanto o teste está sendo executado.

  • É útil quando no meio de um teste um resultado não condiz com o resultado esperado.
  • A ferramenta pode ser programada para tomar algumas medidas de recuperação ou ir a um conjunto diferente de testes.

2. Comparação pós – execução: A comparação é realizada após a conclusão do teste

  • É melhor para a comparação de um grande volume de dados.
  • Por exemplo comparando o conteúdo de um arquivo inteiro com o conteúdo esperado de esse arquivo.

Principais Características

 

FERRAMENTAS DE MEDIÇÃO DE COBERTURA

 

 
Identifica pela primeira vez os itens de cobertura que podem ser contados, e onde a ferramenta pode identificar quando um teste exerceu esse item cobertura.
Um conjunto de testes é executado com o código instrumentado, usando uma ferramenta de execução manual de teste.
A ferramenta de cobertura conta o número de itens que foram executados pelo conjunto de testes.

  • Relatórios são gerados com o percentual de itens de cobertura exercitados e não exercitados.
  • Testes adicionais podem ser executados para aumentar a cobertura.

Principais Características

FERRAMENTAS DE SEGURANÇA

 

 
Ferramentas de teste de segurança podem ser usadas para testar a segurança, tentando entrar em um sistema, independentemente se está ou não está protegido por uma ferramenta de segurança.
Os ataques podem se concentrar na rede, no código do aplicativo ou no banco de dados.
 

Principais Características

FERRAMENTAS PARA PERFORMANCE E MONITORAÇÃO

Análise Dinâmica

Monitoração

 
As ferramentas de medição de desempenho e análise dinâmica são essenciais para dar suporte às atividades de desempenho e de teste de carga, pois essas atividades não podem ser feitas manualmente com eficiência. Exemplos dessas ferramentas incluem:

  • Ferramentas de teste de desempenho;
  • Ferramentas de monitoramento;
  • Ferramentas de análise dinâmica [D].

FERRAMENTAS PARA ANÁLISE DINÂMICA

 

 
Geralmente são utilizadas para detectar vazamentos de memória; identificação de erros de ponteiro aritméticos, como ponteiros nulos; identificar dependências de tempo. São usadas por desenvolvedores em testes de componentes e de integração de componentes. Para sites, a análise dinâmica é utilizada para verificar se cada link está vinculado a alguma coisa.

  • A ferramenta não sabe se você ligou à página correta.
  • Mas ao menos pode encontrar links quebrados , o que pode ser útil.

 
Ferramentas de  teste de performance, carga e stress estão preocupadas com os testes ao nível do sistema.

  • Verificam se o sistema suportará ou não um alto volume de utilização.

 
Em testes de performance a finalidade é medir características, tais como o tempo de resposta , taxa de transferência ou o tempo médio entre falhas (para testes de confiabilidade).
 
O teste de carga verifica que o sistema pode lidar com o seu número esperado de transações.

  • O teste de volume verifica que o sistema pode lidar com uma grande quantidade de dados; Por exemplo, muitos campos em um registro, muitos registros em um arquivo.

Um teste de ‘stress’ é aquele que vai além da utilização esperada do sistema, com relação a carga ou volume.
 
Para avaliar a performance, a ferramenta precisa gerar algum tipo de atividade sobre o sistema.

  • A mesma operação pode ser repetida muitas vezes.
  • Utilizar perfis diferentes de usuários e diferentes tipos de atividade, tempos de espera, e outros parâmetros.

Replicar os ambientes de usuário final é fundamental para resultados realistas.
Analisar a saída de uma ferramenta de teste de performance nem sempre é simples e que exige tempo e experiência.
Se a performance não é a esperada, então uma análise precisa ser realizada para ver onde está o problema e saber o que pode ser feito para melhorá-la.
 

Principais Características

FERRAMENTAS DE MONITORAÇÃO

 
São usadas ​​para se saber continuamente sobre o estado do sistema em uso, a fim de se ter o mais cedo possível conhecimento de problemas, visando melhorar o serviço.
 
Existem ferramentas de monitoramento para:

  • Servidores;
  • Redes;
  • Bancos de dados;
  • Segurança;
  • Performance;
  • Website;
  • Utilização da Internet;
  • Aplicativos.

Principais Características

FERRAMENTAS PARA ÁREAS DE APLICAÇÕES ESPECÍFICAS

 
Até agora descrevemos as ferramentas de acordo com sua classificação funcional. Há também outras especializações de ferramentas dentro dessas classificações, como por exemplo existem ferramentas para:
 

  • Teste de performance de sistemas Web;
  • Teste de performance para sistemas back-office;
  • Análise estática para plataformas de desenvolvimento e linguagens de programação específica;
  • Análise dinâmica que se concentram em questões de segurança;
  • Análise dinâmica de sistemas embarcados.

USO DE OUTRAS FERRAMENTAS

 
As ferramentas descritas até aqui não são as únicas ferramentas que um testador pode precisar.
Um processador de texto ou uma planilha não são considerados  como ferramentas de teste, mas são muitas vezes utilizados para armazenar projetos de teste, scripts de teste ou dados de teste.
Testadores também pode usar SQL para criar e consultar bancos de dados que contêm dados de teste.
Ferramentas utilizadas por desenvolvedores quando fazem debugging, para ajudar a localizar defeitos, também são ferramentas de testes.
É uma boa ideia  olhar para qualquer tipo de ferramenta disponível que possam ser usadas para ajudar a apoiar qualquer uma das atividades de teste.
Por exemplo, os testadores podem usar Scripts Perl para ajudar a comparar os resultados dos testes.