Sobes.tech
Junior

Ako otestovať pole pre zadanie e-mailu?

sobes.tech AI

Odpoveď od AI

Testovanie poľa pre zadanie e-mailovej adresy zahŕňa kontroly na úrovni frontendu aj backendu, ako aj testovanie používateľského rozhrania.

Kontroly (Client-Side):

  • Validácia formátu:
    • Správne adresy (napr. test@example.com, test.name@sub.example.co.uk).
    • Nesprávne adresy (chýbajúce @, doména, nesprávne špeciálne znaky, medzery).
  • Hranice vstupu:
    • Minimálna a maximálna dĺžka.
    • Prázdne pole.
  • Typ údajov: Uistite sa, že pole akceptuje iba povolené znaky v emaili.
  • Chybové hlásenia: Správnosť a informatívnosť správ pri nesprávnom vstupe.
  • Interakcia:
    • Zameranie na pole.
    • Stav písania.
    • Stav chyby.

Backend (Server-Side) kontroly:

  • Validácia formátu: Opätovná kontrola formátu emailu na zabránenie obchádzania validácie na frontende.
  • Unikátnosť: Ak má byť email jedinečný (napr. pri registrácii), kontrola duplicit v databáze.
  • Obchodná logika: Kontrola súladu s obchodnými pravidlami.
  • Spracovanie špeciálnych znakov: Správne spracovanie znakov, ktoré môžu spôsobovať problémy (napr. SQL injection).
  • Kontrola existencie domény: Voliteľná kontrola existencie domény v časti emailu.

Príklady testov:

  • Pozitívne:
    • Zadanie platnej emailovej adresy.
    • Zadanie emailu s dlhým doménou/domenovou zónou.
    • Zadanie emailu s poddoménami.
  • Negatívne:
    • Prázdne pole.
    • Zadanie textu bez symbolu @.
    • Zadanie textu bez časti domény za @.
    • Zadanie textu s medzerami.
    • Zadanie textu s nedovolenými znakmi.
    • Zadanie emailu, ktorý presahuje maximálnu dĺžku.
    • Zadanie už registrovaného emailu.
    • Zadanie emailu s nesprávnym formátom špeciálnych znakov.

Automatizácia:

Na automatizáciu týchto testov je možné použiť rôzne rámce a nástroje:

  • UI automatizácia: Selenium, Cypress, Playwright na testovanie frontendu a interakcie s poľom.
# Príklad pseudokódu pre Selenium v Pythone
from selenium import webdriver

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

email_field = driver.find_element_by_id("emailInput") # Nájdeme pole podľa ID
email_field.send_keys("invalid-email") # Zadáme nesprávny email

error_message = driver.find_element_by_id("errorMessage") # Nájdeme prvok s hlásením o chybe
assert "Invalid email format" in error_message.text # Skontrolujeme text

driver.quit()
  • API automatizácia: RestAssured, Postman, Requests (Python) na testovanie backend validácie odoslaním požiadaviek s rôznymi dátami.
// Príklad pseudokódu pre Postman
{
  "email": "invalid-email"
}
// Príklad testu v Postman Tests
pm.test("Status code is 400", function () {
    pm.response.to.have.status(400); // Kontrola, že server vrátil chybu 400
});

pm.test("Error message is correct", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.message).to.eql("Invalid email format"); // Kontrola textu správy o chybe
});

Ďalšie aspekty:

  • Testovanie s použitím reálnych dát (ak je dostupná testovacia databáza).
  • Testovanie na rôznych zariadeniach a prehliadačoch.
  • Testovanie výkonu poľa pri zadávaní veľkého objemu dát.