Какой у вас опыт тестирования Frontend?

Ответ

Опыт охватывает ручное и автоматизированное тестирование клиентской части веб-приложений.

Основные направления:

  • Функциональность UI: формы, навигация, валидация, обработка ошибок.
  • Совместимость: кросс-браузерное (Chrome, Firefox, Safari) и кросс-платформенное тестирование.
  • Верстка и адаптивность: соответствие макетам, корректное отображение на разных разрешениях.
  • Производительность: анализ с помощью Lighthouse, DevTools Performance.
  • Доступность (a11y): проверка семантики, навигации с клавиатуры, скринридеров.

Пример E2E-теста на Cypress:

describe('Product Cart', () => {
  it('should add item to cart and update counter', () => {
    cy.visit('/products');
    cy.get('[data-testid="product-1"]').find('button').click();
    cy.get('[data-testid="cart-counter"]').should('contain', '1');
    cy.get('[data-testid="cart-page"]').click();
    cy.contains('Product 1').should('be.visible');
  });
});

Инструменты: Cypress, Playwright, Jest + React Testing Library, DevTools, Axe для accessibility. Интеграция тестов в CI/CD (GitHub Actions).

Ответ 18+ 🔞

Да ты посмотри, какой у меня опыт, блядь! Я этим фронтендом, как собака сука, обдолбался. Всю эту хуйню руками щупал и машинами гонял.

Чем конкретно мозги выносил:

  • Вся эта интерфейсная муть: кнопки, поля, чтобы всё тыкалось, отправлялось и не падало в пизду с ошибками. Особенно когда юзер — тот ещё распиздяй, начинает хуйню вводить.
  • Совместимость, ёпта: чтобы в Хроме работало, в Фаерфоксе не разъебывалось, а на яблочном Сафари вообще не превращалось в кашу. И на телефоне, и на компе.
  • Вёрстка, блядь: сверял с макетом до пикселя, а потом бегал, как угорелый, меняя размер окна — смотрю, не поехало ли ничего. Адаптивность, сука, это отдельный вид ебалы.
  • Скорость: чтоб не тормозило, как говно в проруби. Запускал Lighthouse, смотрел в Performance — искал, где эта мартышлюшка время жрёт.
  • Доступность (a11y): чтоб не только я, здоровый лоб, мог пользоваться, но и люди со скринридерами. Проверял, можно ли по Tab'у похавать и семантика на месте.

Вот, например, как я на Cypress'е автоматизирую проверку корзины, чтоб её:

describe('Product Cart', () => {
  it('should add item to cart and update counter', () => {
    cy.visit('/products');
    cy.get('[data-testid="product-1"]').find('button').click();
    cy.get('[data-testid="cart-counter"]').should('contain', '1');
    cy.get('[data-testid="cart-page"]').click();
    cy.contains('Product 1').should('be.visible');
  });
});

Чем воевал: Cypress, Playwright, Jest с React Testing Library, браузерные DevTools (моя вторая консоль, блядь), Axe для проверки доступности. И всё это добро в CI/CD (типа GitHub Actions) засунул, чтобы при каждом пуше тесты сами бегали и орали, если что-то сломалось.