Junior
Como realizar o teste do campo de entrada de email?
sobes.tech IA
Resposta da IA
Os testes do campo de entrada de email incluem verificações ao nível do frontend e do backend, bem como testes de interface de utilizador.
Verificações do frontend (lado do cliente):
- Validação do formato:
- Endereços corretos (ex.,
test@example.com,test.name@sub.example.co.uk). - Endereços incorretos (falta de
@, domínio, caracteres especiais incorretos, espaços).
- Endereços corretos (ex.,
- Limites de entrada:
- Comprimento mínimo e máximo.
- Campo vazio.
- Tipo de dados: Garantir que o campo aceita apenas caracteres permitidos em email.
- Mensagens de erro: Correção e informatividade das mensagens em caso de entrada incorreta.
- Interação:
- Foco no campo (estado de foco).
- Estado de escrita.
- Estado de erro.
Verificações do backend (lado do servidor):
- Validação do formato: Verificação adicional do formato do email para evitar contornar a validação do frontend.
- Unicidade: Se o email deve ser único (por exemplo, no registo), verificar duplicados na base de dados.
- Lógica de negócio: Verificação do cumprimento das regras de negócio (por exemplo, proibição de certos domínios).
- Tratamento de caracteres especiais: Tratamento correto de caracteres que possam causar problemas (ex., injeção SQL).
- Verificação da existência do domínio: Verificação opcional da existência do domínio do email.
Exemplos de testes:
- Positivos:
- Entrada de um email válido.
- Entrada de um email com domínio/extensão longa.
- Entrada de um email com subdomínios.
- Negativos:
- Campo vazio.
- Entrada de texto sem o carácter
@. - Entrada de texto sem a parte do domínio após
@. - Entrada de texto com espaços.
- Entrada de texto com caracteres não permitidos.
- Entrada de um email que excede o comprimento máximo.
- Entrada de um email já registado (no registo).
- Entrada de um email com formato incorreto de caracteres especiais.
Automatização:
Para automatizar esses testes, podem ser utilizados vários frameworks e ferramentas:
- Automatização de UI: Selenium, Cypress, Playwright para testes de validação frontend e interação com o campo.
# Exemplo de pseudocódigo para Selenium em Python
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("url_da_sua_app")
email_campo = driver.find_element_by_id("emailInput") # Encontrar o campo pelo ID
email_campo.send_keys("email-invalido") # Inserir email incorreto
mensagem_erro = driver.find_element_by_id("errorMessage") # Encontrar elemento com mensagem de erro
assert "Formato de email inválido" in mensagem_erro.text # Verificar texto da mensagem
driver.quit()
- Automatização de API: RestAssured, Postman, Requests (Python) para testar a validação backend enviando requisições com diferentes dados.
// Exemplo de pseudocódigo para Postman
{
"email": "email-invalido"
}
// Exemplo de teste no Postman Tests
pm.test("O código de estado é 400", function () {
pm.response.to.have.status(400); // Verifica se o servidor retornou erro 400 (Requisição malformada)
});
pm.test("A mensagem de erro está correta", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.message).to.eql("Formato de email inválido"); // Verifica o texto da mensagem de erro
});
Aspectos adicionais:
- Testes com dados reais (se houver base de dados de teste).
- Testes em diferentes dispositivos e navegadores.
- Testes de desempenho do campo ao inserir grandes volumes de dados.