Sobes.tech
Junior

Электрондук почта даро кирүү талаасын туура текшерүү үчүн кандай кылуу керек?

sobes.tech AI

AIден жооп

Электрондук почта өрөөнүңүздү тестирлөө функциялдуулук, валидация, колдонуучу үчүн ыңгайлуулук жана коопсуздукту текшерүүнү камтыйт:

Функционалдык тестирлөө:

  • Дурус даректерди киргизүү:
    • test@example.com
    • firstname.lastname@example.com
    • email@subdomain.example.com
    • firstname+lastname@example.com
    • email@example.co.uk
    • email@example.museum
    • email@example.name
    • email@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> киргизүү Скрипт ишке ашпашы керек. Талаа санариптелип же валидациялануусу керек.

Спецификалык талаптарды, браузерлер жана түзмөктөр боюнча тесттерди эске алуу керек.