Junior
Электрондук почта даро кирүү талаасын туура текшерүү үчүн кандай кылуу керек?
sobes.tech AI
AIден жооп
Электрондук почта өрөөнүңүздү тестирлөө функциялдуулук, валидация, колдонуучу үчүн ыңгайлуулук жана коопсуздукту текшерүүнү камтыйт:
Функционалдык тестирлөө:
- Дурус даректерди киргизүү:
test@example.comfirstname.lastname@example.comemail@subdomain.example.comfirstname+lastname@example.comemail@example.co.ukemail@example.museumemail@example.nameemail@example.демо(интернационалдуу домендик аттарга колдоо - IDN)
- Дурус эмес даректерди киргизүү:
@жоктугу:testexample.com- бир нече
@:test@@example.com - туура эмес формат:
test@example - колдонуучу аты жок:
@example.com - колдонуучу атына өзгөчө белгилер:
te!st@example.com,te#st@example.com - доменде өзгөчө белгилер:
test@exa!mple.com - узун адрес (чектөөлөрдү текшерүү):
a_very_long_email_address_that_exceeds_typical_limits@example.com - боштуулары бар адрес:
test @example.com - синтаксис катасы бар адрес:
test@.com,test.@example.com - IP дареги менен адрес (эгер колдоо жок болсо):
test@[192.168.1.1] - кириллица менен адрес (эгер IDN колдоого алынбаса):
тест@пример.рф
- Талаа бош: форма толтурулбаган учурда.
Валидация:
- Эмейлдин синтаксиси туура экенин текшерүү (регулярдуу өрнөктөр аркылуу):
- Колдонуучуга каталар жөнүндө билдирүүлөрдү көрсөтүү:
- Каталардын тактыгын жана түшүнүктүүлүгүн текшерүү:
- Валидация каталары болсо, форма жиберилбеши керек:
Колдонуучу тажрыйбасы жана UI/UX:
- Баракчаны жүктөөдө талаага фокус берүү:
- Мисалдык текст (placeholder): (
мисалы, user@example.com) - Браузердин автоматтык толтуруу колдоосу:
<label>белгиси бар:- Колдонуучу кабыл алгыс белгилерди киргизе албайт:
- Эгер маска бар болсо, анын иштешин текшерүү:
Коопсуздук:
- XSS-каратачылыкка текшерүү: скрипттер, HTML теги (
<script>alert('XSS')</script>) киргизүү: - SQL/NoSQL инъекцияларга каршы: өзгөчө белгилер киргизүү:
- Жоопкерчиликти чектөө (эгер форма электрондук почта жиберсе же ресурсту көп талап кылган аракеттер жасалса): IP же колдонуучу деңгээлинде чектөөлөр:
Автоматташтыруу:
- Эмейл валидация функцияларына бирдиктүү тесттер жазуу:
- Форма контекстинде талаанын иштешин текшерүү үчүн интеграциялык тесттер:
- Форманын толук сценарийлерин текшерүү үчүн E2E тесттер:
Мисал коду — эмейл валидация үчүн бирдиктүү тесттер:
// `validateEmail` функциясы бар деп болжолдойбуз
function validateEmail(email) {
const re = /\S+@\S+\.\S+/; // Жөнөкөй регулярдуу өрнөк
return re.test(email);
}
// Jest менен бирдиктүү тесттер
describe('validateEmail', () => {
test('дурус эл.почта үчүн true кайтаруусу керек', () => {
expect(validateEmail('test@example.com')).toBe(true);
expect(validateEmail('firstname.lastname@example.com')).toBe(true);
});
test('ансыз эл.почта үчүн false кайтаруусу керек', () => {
expect(validateEmail('testexample.com')).toBe(false);
expect(validateEmail('test@example')).toBe(false);
expect(validateEmail('@example.com')).toBe(false);
});
test('бос сап үчүн false кайтаруусу керек', () => {
expect(validateEmail('')).toBe(false);
});
});
E2E тесттин мисалы — Cypress колдонуу:
// cypress/integration/email_field.spec.js
describe('Email Input Field', () => {
it('жарактуу текшерип, катаны көрсөтөт', () => {
cy.visit('/your-form-page'); // Форманын баракчасы URL
cy.get('#email-input').type('жараксыз-эл.почта'); // Дурус эмес эл.почта
cy.get('button[type="submit"]').click(); // Жөнөтүү баскычы
cy.get('.error-message').should('белгилүү').and('содержит', 'Дурус эмес формат'); // Катанын билдирүүсү
});
it('Дурус эл.почта менен форманы жиберүүгө уруксат берет', () => {
cy.visit('/your-form-page');
cy.get('#email-input').type('дурус@электрондук.почта');
cy.get('button[type="submit"]').click();
// Жөнөтүүдөн кийин ийгиликтүү текшерүүлөр
cy.url().should('камтылган', '/жыйынтык'); // URL текшерүү
});
});
Тест-кейстерлердин таблицасы:
| ID | Колдонуучу аракеттери | Күтүлгөн натыйжа |
|---|---|---|
| TC_01 | test@example.com киргизүү |
Талаа валидацияланган деп эсептелет. Форма жиберилет (бардык талаалар толтурулса). |
| TC_02 | ансыз-эл.почта киргизүү |
Талаа валидацияланбаган деп эсептелет. Каталар жөнүндө билдирүү көрсөтүлөт. |
| TC_03 | Талааны бош калтырып, форманы жиберүүгө аракет кылуу | Талаа валидацияланбаган деп эсептелет (эгер милдеттүү болсо). Каталар жөнүндө билдирүү. |
| TC_04 | test@example.co.uk киргизүү |
Талаа валидацияланган деп эсептелет. |
| TC_05 | <script>alert('XSS')</script> киргизүү |
Скрипт ишке ашпашы керек. Талаа санариптелип же валидациялануусу керек. |
Спецификалык талаптарды, браузерлер жана түзмөктөр боюнча тесттерди эске алуу керек.