O que há é 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!
São ferramentas que atuam como apoio às principais atividades de testes, como por exemplo:
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.
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.
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.
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.
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.
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:
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.
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.
2. Comparação pós – execução: A comparação é realizada após a conclusão do teste
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.
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.
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:
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.
Ferramentas de teste de performance, carga e stress estão preocupadas com os testes ao nível do sistema.
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.
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.
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.
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:
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:
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.