Monkey Tests VS Gorilla Tests
Monkey Tests e Gorilla Tests são técnicas de teste de software que se diferenciam em termos de abordagem, objetivo e execução, embora pelos seus nomes se possa achar que existe alguma semelhança ou associação.
Monkey Tests
O Monkey Testing envolve a execução de testes de uma maneira completamente aleatória, sem qualquer plano pré-estabelecido ou conhecimento específico do funcionamento interno do software.
A ideia é simular o comportamento de um "macaco" operando o sistema de forma desestruturada.
Características Principais:
Aleatoriedade: as entradas e interacções são completamente aleatórias.
Automação: muitas vezes são automatizados, principalmente em aplicações móveis e web, utilizando ferramentas específicas para gerar interacções aleatórias.
Objetivo: identificar problemas, quebras de funcionamento e comportamentos anómalos, que acontecem devido a entradas inesperadas ou sequências de acções não planeadas.
Conhecimento do tester: não requer conhecimento profundo do sistema ou do domínio de aplicação.
Cobertura: visa cobrir uma ampla lista de possíveis interações e entradas aleatórias.
Exemplo
Utilizar uma ferramenta como o MonkeyRunner para simular toques aleatórios numa aplicação móvel e verificar se a aplicação falha ou apresenta comportamento anómalo.
Gorilla Tests
O Gorilla Testing é uma técnica focada e intensiva, em que uma única funcionalidade ou módulo do sistema é testado repetida e exaustivamente. O objetivo é verificar a robustez e a estabilidade da funcionalidade sob condições de uso intenso e repetitivo.
Características Principais:
Foco: foca numa funcionalidade ou módulo específico.
Repetitividade: executa repetidamente a mesma acção ou conjunto de ações.
Objetivo: garantir a robustez e a estabilidade da funcionalidade sob condições de utilização extrema.
Conhecimento do tester: requer um bom entendimento da funcionalidade específica que vai ser testada.
Cobertura: visa cobrir todos os aspectos de uma funcionalidade específica através da utilização intensiva.
Exemplo
Testar repetidamente uma funcionalidade de processamento de pagamentos de uma aplicação de e-commerce, realizando a mesma sequência de operações de pagamento de forma sequencial e exaustiva, para verificar a robustez do sistema.
Principais Diferenças
Abordagem
Monkey Tests: aleatórios e sem estrutura.
Gorilla Tests: gocados e estruturados, numa funcionalidade específica.
Objetivo
Monkey Tests: Identificar falhas e comportamentos anómalos, através de interacções aleatórias.
Gorilla Tests: Garantir a robustez e a estabilidade de uma funcionalidade específica, sob uso intensivo.
Execução
Monkey Tests: onterações aleatórias e muitas vezes automatizadas.
Gorilla Tests: interações repetitivas e intensivas numa funcionalidade específica.
Conhecimento do Sistema
Monkey Tests: não requer conhecimento do sistema.
Gorilla Tests: requer conhecimento detalhado da funcionalidade específica que está a ser testada.
Cobertura
Monkey Tests: cobre uma vasta gama de interacções e entradas aleatórias.
Gorilla Tests: cobre exaustivamente uma funcionalidade específica.
Portanto, os Monkey Tests e Gorilla Tests são técnicas complementares no teste de software. Enquanto os Monkey Tests se concentram na aleatoriedade completa para identificar falhas imprevistas em todo o sistema, os Gorilla Tests focam-se em testar repetidamente uma funcionalidade específica a fim de garantir a sua robustez e estabilidade sob condições de uso extremo.
Cada técnica tem seu propósito, aplicação e utilização, e a escolha entre elas depende dos objetivos específicos do teste e das características do sistema que vai ser testado.