Sobes.tech
Junior

Kako izvršiti testiranje polja za unos e-pošte?

sobes.tech АИ

Одговор од АИ

Testiranje polja za unos e-mail adrese uključuje provere na nivou frontenda i backenda, kao i testiranje korisničkog interfejsa.

Provere (Client-Side):

  • Validacija formata:
    • Ispravne adrese (npr. test@example.com, test.name@sub.example.co.uk).
    • Neispravne adrese (nedostatak @, domena, neispravni specijalni karakteri, razmaci).
  • Granice unosa:
    • Minimalna i maksimalna dužina.
    • Prazno polje.
  • Tip podataka: Uverite se da polje prihvata samo dozvoljene karaktere u emailu.
  • Poruke o grešci: Tačnost i informativnost poruka pri neispravnom unosu.
  • Interakcija:
    • Fokus na polje.
    • Stanje kucanja.
    • Stanje greške.

Back-end (Server-Side) provere:

  • Validacija formata: Ponovna provera formata emaila radi sprečavanja zaobilaženja validacije na frontendu.
  • Jedinstvenost: Ako email mora biti jedinstven (npr. pri registraciji), provera duplikata u bazi podataka.
  • Poslovna logika: Provera usklađenosti sa poslovnim pravilima.
  • Obrada specijalnih karaktera: Ispravna obrada karaktera koji mogu izazvati probleme (npr. SQL injection).
  • Provera postojanja domena: Opcionalna provera postojanja domena u email adresi.

Primeri testova:

  • Pozitivni:
    • Unos validne email adrese.
    • Unos emaila sa dugim domenom/domenom zonom.
    • Unos emaila sa poddomenima.
  • Negativni:
    • Prazno polje.
    • Unos teksta bez simbola @.
    • Unos teksta bez dela domena posle @.
    • Unos teksta sa razmacima.
    • Unos teksta sa nedozvoljenim simbolima.
    • Unos emaila koji prelazi maksimalnu dužinu.
    • Unos već registrovanog emaila.
    • Unos emaila sa neispravnim formatom specijalnih karaktera.

Automatizacija:

Za automatizaciju ovih testova mogu se koristiti različiti okviri i alati:

  • UI automatizacija: Selenium, Cypress, Playwright za testiranje frontenda i interakcije sa poljem.
# Primer pseudokoda za Selenium u Pythonu
from selenium import webdriver

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

email_field = driver.find_element_by_id("emailInput") # Pronađi polje po ID-u
email_field.send_keys("invalid-email") # Unesi neispravan email

error_message = driver.find_element_by_id("errorMessage") # Pronađi element sa porukom o grešci
assert "Invalid email format" in error_message.text # Proveri tekst

driver.quit()
  • API automatizacija: RestAssured, Postman, Requests (Python) za testiranje backenda slanjem zahteva sa različitim podacima.
// Primer pseudokoda za Postman
{
  "email": "invalid-email"
}
// Primer testa u Postman Tests
pm.test("Status code is 400", function () {
    pm.response.to.have.status(400); // Proverava da li je server vratio grešku 400
});

pm.test("Error message is correct", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.message).to.eql("Invalid email format"); // Proverava tekst poruke o grešci
});

Dodatni aspekti:

  • Testiranje sa pravim podacima (ako postoji test baza podataka).
  • Testiranje na različitim uređajima i pretraživačima.
  • Testiranje performansi polja pri unosu velike količine podataka.