Junior
Hogyan teszteljük helyesen az e-mail cím beviteli mezőt?
sobes.tech MI
Válasz az MI-től
Az email mező tesztelése magában foglalja a funkcionalitás, validáció, használhatóság és biztonság ellenőrzését.
Funkcionális tesztelés:
- Érvényes címek megadása:
test@example.comfirstname.lastname@example.comemail@subdomain.example.comfirstname+lastname@example.comemail@example.co.ukemail@example.museumemail@example.nameemail@example.демо(az IDN támogatásához)
- Érvénytelen címek megadása:
@hiánya:testexample.com- Több
@:test@@example.com - Hibás domain formátum:
test@example - Felhasználónév hiánya:
@example.com - Különleges karakterek a felhasználónévben:
te!st@example.com,te#st@example.com - Különleges karakterek a domainben:
test@exa!mple.com - Hosszú cím (limitek ellenőrzése):
a_very_long_email_address_that_exceeds_typical_limits@example.com - Szóközöket tartalmazó cím:
test @example.com - Hibás szintaxisú címek:
test@.com,test.@example.com - IP-cím a domain helyett (ha nem támogatott):
test@[192.168.1.1] - Cirill betűk (ha nem támogatott IDN):
тест@пример.рф
- Üres mező: űrlap küldése üres mezővel.
Validáció:
- A megadott adatok szintaxisának ellenőrzése (reguláris kifejezések).
- Hibajelzések megjelenítése a felhasználónak érvénytelen adatok megadása esetén.
- A hibajelzések pontosságának és érthetőségének ellenőrzése.
- Ellenőrizze, hogy a form nem küldhető el validációs hibák esetén.
Használhatóság & UI/UX:
- A fókusz a mezőn az oldal betöltésekor (ha releváns).
- Példát mutató placeholder szöveg (
például, user@example.com). - Böngésző automatikus kitöltés támogatása.
- Címke (
<label>) megléte a mezőhöz. - A felhasználó nem írhat be nem megengedett karaktereket (ha ilyen front-end logika van).
- Ha van bemeneti maszk, ellenőrizze annak működését.
Biztonság:
- XSS sebezhetőség ellenőrzése: szkriptek, HTML tagek (
<script>alert('XSS')</script>) bevitele a mezőbe. - Injektálás (SQL/NoSQL) ellenőrzése: speciális karakterek bevitele, amelyek befolyásolhatják az adatbázis lekérdezéseket (
' OR '1'='1). - Kérelmek korlátozása (ha az űrlap emailt küld vagy erőforrás-igényes műveleteket végez): próbálkozások számának korlátozása IP vagy felhasználó szerint.
Automatizálás:
- Egységtesztek írása az email validációs funkciókhoz.
- Integrációs tesztek írása a mező működésének ellenőrzésére a formában.
- E2E tesztek írása a teljes űrlap használati forgatókönyvének ellenőrzésére.
Példa kód egységteszthez:
// Feltételezzük, hogy van egy validateEmail függvény
function validateEmail(email) {
const re = /\S+@\S+\.\S+/; // Egyszerű reguláris kifejezés példa
return re.test(email);
}
// Egységtesztek Jest használatával
describe('validateEmail', () => {
test('helyes email esetén igazat adjon vissza', () => {
expect(validateEmail('test@example.com')).toBe(true);
expect(validateEmail('firstname.lastname@example.com')).toBe(true);
});
test('helytelen email esetén hamisat adjon vissza', () => {
expect(validateEmail('testexample.com')).toBe(false);
expect(validateEmail('test@example')).toBe(false);
expect(validateEmail('@example.com')).toBe(false);
});
test('üres string esetén hamisat adjon vissza', () => {
expect(validateEmail('')).toBe(false);
});
});
E2E teszt példa Cypress használatával:
// cypress/integration/email_field.spec.js
describe('Email Input Field', () => {
it('helyesen validál és hibát jelenít meg érvénytelen bemenet esetén', () => {
cy.visit('/your-form-page'); // Az oldal URL-je
cy.get('#email-input').type('invalid-email'); // Érvénytelen email bevitele
cy.get('button[type="submit"]').click(); // Küldés gomb megnyomása
cy.get('.error-message').should('be.visible').and('contain', 'Hibás email formátum'); // Hibajelzés ellenőrzése
});
it('engedélyezi a form küldését érvényes email esetén', () => {
cy.visit('/your-form-page');
cy.get('#email-input').type('valid@example.com');
cy.get('button[type="submit"]').click();
// További ellenőrzések: pl. átirányítás, sikerüzenet
cy.url().should('include', '/siker'); // URL ellenőrzése
});
});
Tesztesetek táblázat:
| ID | Felhasználói művelet | Várt eredmény |
|---|---|---|
| TC_01 | test@example.com megadása |
A mező érvényesnek számít. A formátum szerint küldhető a form. |
| TC_02 | invalid-email megadása |
A mező érvénytelennek számít. Hibaüzenet jelenik meg. |
| TC_03 | Üres mezővel próbálja küldeni a formot | A mező érvénytelen (ha kötelező). Hibaüzenet jelenik meg. |
| TC_04 | test@example.co.uk megadása |
A mező érvényesnek számít. |
| TC_05 | <script>alert('XSS')</script> megadása |
A szkript nem hajtódik végre. A mezőnek szanitizáltnak vagy validáltnak kell lennie. |
Ezen kívül figyelembe kell venni a projekt specifikus követelményeit (pl. támogatott domainek, érzékenység a kis- és nagybetűkre), különböző eszközökön és böngészőkben végzett tesztelést.