Sobes.tech
Junior

Hoe voer je een test uit voor het invoerveld voor e-mail?

sobes.tech AI

Antwoord van AI

Het testen van het e-mail invoerveld omvat controles op frontend- en backend-niveau, evenals tests van de gebruikersinterface.

Frontend (Client-Side) controles:

  • Validatie van het formaat:
    • Correcte adressen (bijv., test@example.com, test.name@sub.example.co.uk).
    • Onjuiste adressen (ontbrekende @, domein, ongeldige speciale tekens, spaties).
  • Invoerlijnen:
    • Minimale en maximale lengte.
    • Leeg veld.
  • Gegevenstype: Zorgen dat het veld alleen toegestane tekens voor e-mail accepteert.
  • Foutmeldingen: Juistheid en informatiefheid van de berichten bij onjuiste invoer.
  • Interactie:
    • Focus op het veld (focus status).
    • Typestatus.
    • Foutstatus.

Backend (Server-Side) controles:

  • Validatie van het formaat: Extra controle van het e-mailformaat om het omzeilen van frontend-validatie te voorkomen.
  • Uniciteit: Als de e-mail uniek moet zijn (bijvoorbeeld bij registratie), controle op duplicaten in de database.
  • Businesslogica: Controle op naleving van bedrijfsregels (bijvoorbeeld, verbod op bepaalde domeinen).
  • Behandeling van speciale tekens: Correcte verwerking van tekens die problemen kunnen veroorzaken (bijvoorbeeld SQL-injectie).
  • Controle op het bestaan van het domein: Optionele controle of het domein van de e-mail bestaat.

Voorbeeldtests:

  • Positief:
    • Invoer van een geldige e-mail.
    • Invoer van een e-mail met een lang domein/extensie.
    • Invoer van een e-mail met subdomeinen.
  • Negatief:
    • Leeg veld.
    • Tekst invoeren zonder @-teken.
    • Tekst invoeren zonder domeindelen na @.
    • Tekst invoeren met spaties.
    • Tekst invoeren met ongeldige tekens.
    • E-mail invoeren die de maximale lengte overschrijdt.
    • Al geregistreerde e-mail invoeren (bij registratie).
    • E-mail invoeren met onjuist formaat van speciale tekens.

Automatisering:

Voor het automatiseren van deze tests kunnen verschillende frameworks en tools worden gebruikt:

  • UI-automatisering: Selenium, Cypress, Playwright voor het testen van frontend-validatie en interactie met het veld.
# Voorbeeld van pseudocode voor Selenium in Python
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("jouw_app_url")

email_veld = driver.find_element_by_id("emailInput") # Vind het veld op ID
email_veld.send_keys("ongeldig-email") # Voer ongeldige email in

fout_bericht = driver.find_element_by_id("errorMessage") # Vind element met foutmelding
assert "Ongeldig e-mailformaat" in fout_bericht.text # Controleer de tekst van de foutmelding

driver.quit()
  • API-automatisering: RestAssured, Postman, Requests (Python) voor het testen van backend-validatie door verzoeken te sturen met verschillende gegevens.
// Voorbeeld van pseudocode voor Postman
{
  "email": "ongeldig-email"
}
// Voorbeeld van tests in Postman
pm.test("Statuscode is 400", function () {
    pm.response.to.have.status(400); // Controleer of de server fout 400 heeft geretourneerd
});

pm.test("Foutmelding is correct", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.message).to.eql("Ongeldig e-mailformaat"); // Controleer de tekst van de foutmelding
});

Aanvullende aspecten:

  • Testen met echte gegevens (indien een testdatabase beschikbaar is).
  • Testen op verschillende apparaten en browsers.
  • Prestatie testen van het veld bij invoer van grote hoeveelheden gegevens.