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()