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]
    • Суроға бо кириллӣ (агар дастгирӣ нашуда бошад): тест@пример.рф
  • Майдони холӣ: фиристодани форма бо майдони холӣ.

Тасдиқ:

  • Санҷиши мувофиқати маълумот бо синтаксиси email (экспрессияҳои муқарраршуда).
  • Намоиши паёмҳои хато ба корбар дар вақти ворид кардани маълумоти нодуруст.
  • Санҷиши дақиқӣ ва фаҳмондадиҳӣ дар паёмҳои хато.
  • Санҷиш, ки форма дар ҳузури хатоҳо дар тасдиқ нарасад.

Кӯмак ва UI/UX:

  • Тамаркуз ба майдон дар вақти боркунии саҳифа (агар мувофиқ бошад).
  • Матн барои placeholder бо намунаи формат (масалан, user@example.com).
  • Дастгирии автоматии пуркунӣ аз ҷониби браузер.
  • Намоиши тамға (<label>) барои майдон.
  • Корбар наметавонад аломатҳои номувофиқ ворид кунад (агар чунин логика дар пеши назар бошад).
  • Агар маскаи воридот вуҷуд дошта бошад, кори онро санҷед.

Бехатарӣ:

  • Санҷиши осебпазирӣ ба XSS: ворид кардани скриптҳо, теги HTML (<script>alert('XSS')</script>) дар майдон.
  • Санҷиши воридоти махсус (SQL/NoSQL): ворид кардани аломатҳои махсус, ки метавонанд ба дархостҳо ба базаи додаҳо таъсир расонанд (' OR '1'='1).
  • Маҳдуд кардани шумораи кӯшишҳо (агар форма email мефиристад ё амалҳои сарборӣ мекунад): маҳдуд кардани кӯшишҳо аз як IP ё корбар.

Автоматизатсия:

  • Навиштани тестҳои ягона барои функсияҳои тасдиқи email.
  • Навиштани тестҳои интегратсионӣ барои санҷиши кори майдон дар контексти форма.
  • Навиштани тестҳои E2E барои санҷиши сценарии пурраи истифодаи форма бо майдони email.

Маслиҳат барои код барои тести ягонаи тасдиқ:

// Гумон мекунем, ки функсияи validateEmail мавҷуд аст
function validateEmail(email) {
  const re = /\S+@\S+\.\S+/; // Масалан, экспрессияи оддӣ
  return re.test(email);
}

// Тестҳои ягона бо истифода аз Jest
describe('validateEmail', () => {
  test('бароии true барои email дуруст', () => {
    expect(validateEmail('test@example.com')).toBe(true);
    expect(validateEmail('firstname.lastname@example.com')).toBe(true);
  });

  test('бароии false барои email нодуруст', () => {
    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('invalid-email'); // Ворид кардани email нодуруст
    cy.get('button[type="submit"]').click(); // Клик дар тугмаи ирсол
    cy.get('.error-message').should('be.visible').and('contain', 'Нодуруст формати email'); // Санҷиши паёми хато
  });

  it('имкон медиҳад, ки форма бо email дуруст ирсол шавад', () => {
    cy.visit('/your-form-page');
    cy.get('#email-input').type('valid@example.com');
    cy.get('button[type="submit"]').click();
    // Санҷишҳои иловагӣ: redirect, паёми муваффақият
    cy.url().should('include', '/муроҷиат'); // Санҷиши URL
  });
});

Таблицаи мисолҳои тест кейс:

ID Ҳаракати корбар Натиҷаи интизорӣ
TC_01 Ворид кардани test@example.com Майдон дуруст ҳисобида мешавад. Форма метавонад ирсол шавад.
TC_02 Ворид кардани invalid-email Майдон нодуруст ҳисобида мешавад. Паёми хато намоиш дода мешавад.
TC_03 Одат кардани майдон холӣ ва кӯшиши ирсол кардан Майдон нодуруст ҳисобида мешавад. Паёми хато намоиш дода мешавад.
TC_04 Ворид кардани test@example.co.uk Майдон дуруст ҳисобида мешавад.
TC_05 Ворид кардани <script>alert('XSS')</script> Скрипт набояд иҷро шавад. Майдон бояд сафед ва ё тасдиқшуда бошад.

Ҳамчунин бояд ба талаботи махсуси лоиҳа (масалан, дастгирии домейнови муайян, ҳассосият ба ҳарфҳои калон ва хурд) ва санҷиш дар дастгоҳҳо ва браузерҳои гуногун диққат дод.