Sobes.tech
Junior

Hoe test je het invoerveld voor e-mailadressen?

sobes.tech AI

Antwoord van AI

De validatie van het invoerveld voor e-mailadressen omvat de volgende controles:

  • Formatvalidatie:
    • Correcte formaten (naam@domein.zone, naam.achternaam@subdomein.domein.zone, enz.).
    • Onjuiste formaten (zonder @, zonder domein, met meerdere @, met verboden tekens, met spaties).
    • Speciale tekens in het lokale deel en in het domein.
    • Domeinnamen van verschillende lengtes.
    • IP-adres als domein (gebruiker@[192.168.1.1]).
  • Lengte van het veld:
    • Minimale toegestane lengte.
    • Maximale toegestane lengte.
    • Overschrijding van de maximale lengte.
  • Verplichting van het veld:
    • Indienen van formulier met een leeg veld.
  • Hoogte- en kleursensitiviteit:
    • Is het veld case-sensitive (meestal niet voor het domeingedeelte)?
  • Cross-browser en cross-platform testen:
    • Correcte weergave en gedrag op verschillende browsers en apparaten.
  • Beveiligingstests:
    • XSS-aanvallen (scriptinvoer).
    • SQL-injecties (als het veld direct met een database interageert).
  • Prestaties:
    • Reactietijd bij het invoeren van lange/complexe adressen (als "in real-time" validatie aanwezig is).

Voorbeelden van testgevallen:

ID Beschrijving van het testgeval Invoergegevens Verwacht resultaat Werkelijk resultaat Status
TC-001 Correct e-mailformaat test@example.com Het systeem accepteert de e-mail, geen foutmelding.
TC-002 Onjuist formaat (zonder @) testexample.com Het systeem toont een foutmelding over het formaat.
TC-003 Onjuist formaat (meerdere @) test@example@com Het systeem toont een foutmelding over het formaat.
TC-004 Leeg veld (verplicht) (leeg) Het systeem toont een bericht dat het veld verplicht is.
TC-005 Lange e-mail a*250 + @example.com Het systeem verwerkt correct een e-mail van toegestane lengte.

Voorbeeld van geautomatiseerde test (Python met Selenium):

# test_email_field.py
from selenium import webdriver
from selenium.webdriver.common.by import By

def test_valid_email_input():
    driver = webdriver.Chrome() # of andere driver
    driver.get("http://jouw-app-url.com") # vervang door de URL van de app

    email_field = driver.find_element(By.ID, "email") # vervang door de locator van het veld
    email_field.send_keys("test@example.com")

    # Controle op afwezigheid van foutmelding
    error_message = driver.find_elements(By.ID, "email-error") # vervang door de locator van het bericht
    assert len(error_message) == 0, "Foutmelding verscheen voor correcte email"

    driver.quit()

def test_invalid_email_input():
    driver = webdriver.Chrome()
    driver.get("http://jouw-app-url.com")

    email_field = driver.find_element(By.ID, "email")
    email_field.send_keys("ongeldig-email")

    # Controle of de foutmelding wordt weergegeven
    error_message = driver.find_element(By.ID, "email-error") # vervang door de locator van het bericht
    assert error_message.is_displayed(), "Foutmelding werd niet weergegeven voor onjuiste email"

    driver.quit()