PenseNisso / PenseNissoApp

Repositório destinado ao projeto PenseNissoApp, desenvolvido para a disciplina MC426, 2S2023
MIT License
0 stars 0 forks source link

Implementação de testes funcionais #86

Closed HaylaPBV closed 9 months ago

HaylaPBV commented 9 months ago

Unidade 1: Login (Senha)

A senha do usuário apresenta uma série de regras de validação. Para essa unidade, podemos aplicar a divisão em classes de equivalência e a análise de valor limite.

Condição de Entrada Válida Inválida
Ter entre 8 e 50 caracteres 8 <= t <= 50 t < 8 ou t > 50
Conter letras maiúsculas Sim Não
Conter letras minúsculas Sim Não
Conter números Sim Não
Conter um caractere especial dentre '/"/!/@/#/$/%/&/*/-/_/=/+/;/:/? Sim Não

No caso do comprimento da senha, podemos aplicar a análise de valor limite. Assim, é possível testar o comprimento nos limites do intervalo válido (7, 8, 50 e 51 caracteres).

Unidade 2: Formulário de Denúncia (Data)

Para a unidade de denúncia, percebe-se que é possível aplicar uma análise de valor limite para sua data, definindo o caso mínimo como o timestamp inicial e a data máxima como sendo o dia atual do envio da denúncia.

Condição de Entrada Válida Inválida
Data entre timestamp inicial e dia atual 1970-01-01 <= t <= now() t < 1970-01-01 ou t > now()

Unidade 3: Resultado da Busca

Para a unidade de busca por empresas, podemos utilizar um grafo de causa-efeito com base no termo de busca utilizado pelo usuário. Se a query com o termo exato digitado pelo usuário tiver sucesso, a empresa retornada é um resultado válido. Caso a query com valor exato não retorne nenhuma empresa, é utilizado o Trigram (com score de 2) para determinar se uma empresa será um resultado válido ou não. O grafo pode ser visto abaixo:

Grafo de causa-efeito

Para o Trigram, podemos também utilizar análise do valor limite para verificar se o score está correto.

Note que, no pull request associado a essa unidade, apenas um caso de teste pré-existente foi alterado. Isso se dá porque, ao longo do desenvolvimento do projeto, os testes foram criados conforme as features eram implementadas. Desse modo, grande parte do grafo de causa-efeito já estava implementada nas classes TrigramTestCase e SearchTestCase e foi necessário apenas alterar um teste para implementar o valor limite.

Lozavival commented 9 months ago

Prints mostrando o resultado dos teste:

Unidade Report

Unidade Search

Unidade Validator