Sobes.tech
Junior

Jak przetestować pole do wprowadzania adresu e-mail?

sobes.tech AI

Odpowiedź od AI

Testowanie pola wprowadzania adresu e-mail obejmuje następujące kontrole:

  • Walidacja formatu:
    • Poprawne formaty (name@domain.zone, name.surname@subdomain.domaine.zone itp.).
    • Niepoprawne formaty (bez @, bez domeny, z wieloma @, z zabronionymi znakami, z spacjami).
    • Znaki specjalne w części lokalnej i domenie.
    • Nazwy domen o różnej długości.
    • Adres IP jako domena (użytkownik@[192.168.1.1]).
  • Długość pola:
    • Minimalna dozwolona długość.
    • Maksymalna dozwolona długość.
    • Przekroczenie maksymalnej długości.
  • Obowiązkowość pola:
    • Wysyłanie formularza z pustym polem.
  • Wrażliwość na wielkość liter:
    • Czy pole jest case-sensitive (zazwyczaj nie dla części domenowej)?
  • Testy międzyprzeglądarkowe i wieloplatformowe:
    • Poprawne wyświetlanie i zachowanie na różnych przeglądarkach i urządzeniach.
  • Testy bezpieczeństwa:
    • Ataki XSS (wstrzykiwanie skryptów).
    • Iniekcje SQL (jeśli pole bezpośrednio współpracuje z bazą danych).
  • Wydajność:
    • Czas reakcji przy wprowadzaniu długich/złożonych adresów (jeśli jest walidacja "w locie").

Przykłady przypadków testowych:

ID Opis przypadku testowego Dane wejściowe Oczekiwany wynik Rzeczywisty wynik Status
TC-001 Poprawny format email test@example.com System akceptuje email, brak komunikatu o błędzie.
TC-002 Niepoprawny format (bez @) testexample.com System wyświetla komunikat o błędzie formatu.
TC-003 Niepoprawny format (wiele @) test@example@com System wyświetla komunikat o błędzie formatu.
TC-004 Puste pole (obowiązkowe) (puste) System wyświetla komunikat, że pole jest obowiązkowe.
TC-005 Długi email a*250 + @example.com System poprawnie obsługuje email o dozwolonej długości.

Przykład testu automatycznego (Python z Selenium):

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

def test_valid_email_input():
    driver = webdriver.Chrome() # lub inny sterownik
    driver.get("http://twoj-adres-url.com") # zamień na adres URL aplikacji

    email_field = driver.find_element(By.ID, "email") # zamień na lokalizator pola
    email_field.send_keys("test@example.com")

    # Sprawdzenie braku komunikatu o błędzie
    error_message = driver.find_elements(By.ID, "email-error") # zamień na lokalizator komunikatu
    assert len(error_message) == 0, "Komunikat o błędzie pojawił się dla poprawnego emaila"

    driver.quit()

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

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

    # Sprawdzenie, czy wyświetla się komunikat o błędzie
    error_message = driver.find_element(By.ID, "email-error") # zamień na lokalizator komunikatu
    assert error_message.is_displayed(), "Komunikat o błędzie nie został wyświetlony dla niepoprawnego emaila"

    driver.quit()