Junior
Como testar o campo de entrada de email?
sobes.tech IA
Resposta da IA
A verificação do campo de entrada de email inclui as seguintes verificações:
- Validação do formato:
- Formatos corretos (nome@dominio.zona, nome.sobrenome@subdominio.dominio.zona, etc.).
- Formatos incorretos (sem @, sem domínio, com múltiplos @, com caracteres proibidos, com espaços).
- Caracteres especiais na parte local e no domínio.
- Nomes de domínio de diferentes comprimentos.
- Endereço IP como domínio (
utilizador@[192.168.1.1]).
- Comprimento do campo:
- Comprimento mínimo permitido.
- Comprimento máximo permitido.
- Ultrapassar o comprimento máximo.
- Obrigatoriedade do campo:
- Enviar formulário com o campo vazio.
- Sensibilidade a maiúsculas e minúsculas:
- O campo é sensível a maiúsculas (normalmente não para a parte do domínio)?
- Testes entre navegadores e plataformas:
- Visualização e comportamento corretos em diferentes navegadores e dispositivos.
- Testes de segurança:
- Ataques XSS (injeção de scripts).
- Injeções SQL (se o campo interagir diretamente com uma base de dados).
- Desempenho:
- Tempo de resposta ao inserir endereços longos ou complexos (se houver validação "em tempo real").
Exemplos de casos de teste:
| ID | Descrição do caso de teste | Dados de entrada | Resultado esperado | Resultado real | Estado |
|---|---|---|---|---|---|
| TC-001 | Formato de email correto | test@example.com |
O sistema aceita o email, sem mensagem de erro. | ||
| TC-002 | Formato incorreto (sem @) | testexample.com |
O sistema exibe uma mensagem de erro de formato. | ||
| TC-003 | Formato incorreto (vários @) | test@example@com |
O sistema exibe uma mensagem de erro de formato. | ||
| TC-004 | Campo vazio (obrigatório) | (vazio) | O sistema exibe uma mensagem de que o campo é obrigatório. | ||
| TC-005 | Email longo | a*250 + @example.com |
O sistema processa corretamente um email de comprimento permitido. |
Exemplo de teste automatizado (Python com Selenium):
# test_email_field.py
from selenium import webdriver
from selenium.webdriver.common.by import By
def test_valid_email_input():
driver = webdriver.Chrome() # ou outro driver
driver.get("http://sua-url-da-aplicacao.com") # substitua pela URL da aplicação
email_field = driver.find_element(By.ID, "email") # substitua pelo localizador do campo
email_field.send_keys("test@example.com")
# Verificação de ausência de mensagem de erro
error_message = driver.find_elements(By.ID, "email-error") # substitua pelo localizador da mensagem
assert len(error_message) == 0, "Mensagem de erro apareceu para email correto"
driver.quit()
def test_invalid_email_input():
driver = webdriver.Chrome()
driver.get("http://sua-url-da-aplicacao.com")
email_field = driver.find_element(By.ID, "email")
email_field.send_keys("email-invalido")
# Verificação de exibição da mensagem de erro
error_message = driver.find_element(By.ID, "email-error") # substitua pelo localizador da mensagem
assert error_message.is_displayed(), "Mensagem de erro não apareceu para email incorreto"
driver.quit()