Sobes.tech
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).
  • 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.