Ответ
Команда контроля качества (QA) обычно занимается широким спектром тестирования, который можно разделить на несколько ключевых видов.
Классификация по объекту тестирования:
-
Функциональное тестирование:
- Модульное (Unit): Проверка отдельных функций/методов (часто выполняется разработчиками).
- Интеграционное: Проверка взаимодействия между модулями, системами или сервисами (например, с БД, API).
- Системное (End-to-End / E2E): Проверка работы всего приложения как целого по пользовательским сценариям.
- Приемочное (UAT): Финальная проверка заказчиком/стейкхолдерами на соответствие бизнес-требованиям.
-
Нефункциональное тестирование:
- Нагрузочное (Performance/Load): Проверка поведения системы под высокой нагрузкой.
- Тестирование удобства использования (Usability): Оценка интерфейса с точки зрения пользователя.
- Тестирование безопасности (Security): Поиск уязвимостей.
- Тестирование совместимости (Compatibility): Работа в разных браузерах, ОС, устройствах.
Классификация по степени автоматизации:
- Ручное тестирование: Выполнение тест-кейсов вручную. Критично для исследования (exploratory testing) и проверки UX.
- Автоматизированное тестирование: Написание скриптов (например, на Selenium, Cypress, JUnit) для регрессионного и повторяющегося тестирования.
Почему важна комбинация видов:
- Раннее обнаружение дефектов: Unit- и интеграционные тесты находят проблемы на этапе разработки.
- Снижение рисков: Нагрузочное и security-тестирование выявляют критические проблемы перед релизом.
- Обеспечение качества пользовательского опыта: Usability и E2E тесты гарантируют, что система решает реальные задачи пользователя.
Современный тренд: Сдвиг левера (Shift-left) — вовлечение QA на ранних этапах (анализ требований, дизайн) и автоматизация регрессионных проверок для непрерывной интеграции (CI/CD).
Ответ 18+ 🔞
А, ну это ж классика, блядь! Подходишь к этим теоретикам, спрашиваешь: «Ну и чем вы там, ребята, занимаетесь?». А они тебе такие, с умным видом: «Широким спектром, сука, тестирования». И глаза стекленеют, ёпта.
Ну ладно, разберём этот ваш «спектр», чтоб он у меня в голове не как радуга после трёх стаканов — красиво, но бесполезно.
Первая дичь — на что именно тыкаем:
-
Функциональное — «А оно вообще работает?».
- Модульное (Unit): Это когда разработчик, такой вот хитрожопый, проверит свою одну функцию, которая складывает два плюс два, и радостно орёт: «Всё работает!». А потом выясняется, что эта функция в реальности вызывается, когда пользователь пытается оплатить дом, а не яблоки. Но формально-то тест пройден, блядь!
- Интеграционное: А вот тут начинается веселье. Твоя функция «2+2» пытается поговорить с базой данных, а та ей в ответ: «Пошёл на хуй, у меня креденшилы другие». Или один сервис шлёт другому не «привет», а «пшёл вон». Вот это и ловим. Сплошное общение дебилов, ебать.
- Системное (End-to-End): Это уже наш, царский, подход. Берёшь реального пользователя (ну или себя изображаешь, если пользователей ещё нет), и пытаешься, блядь, КУПИТЬ ЭТОТ ХУЕВЫЙ ТОВАР. Нажимаешь на кнопку, которая должна вести к оплате, а тебя выкидывает в раздел «О компании». Вот это и есть E2E — прошёл весь путь от входа до, theoretically, получения товара, а по факту — до звонка в саппорт с криком «Да что ж это за пиздец!».
- Приемочное (UAT): Это святое, блядь. Это когда ты, весь такой измученный, подводишь заказчика: «Вот, босс, всё готово, шедевр». А он тыкает пальцем в экран и говорит: «А я хотел, чтоб кнопка была не синяя, а перламутрово-малиновая, и чтоб при наведении играл гимн нашей компании. Где гимн?». И всё, пизда, два месяца работы коту под хвост.
-
Нефункциональное — «А КАК оно работает?».
- Нагрузочное: А давайте запустим на наш сайт-визитку не одного пользователя, а всех его родственников сразу, тысяч пять! И посмотрим, не развалится ли он, бедный, в труху, как мои нервы в конце квартала. Обычно разваливается, сука.
- Тестирование удобства (Usability): Подсаживаешь бабушку (или менеджера, что почти одно и то же) и смотришь, сможет ли она найти, где тут «отправить». Если через пять минут она начинает плакать или бить мышкой об стол — плохой знак, блядь.
- Тестирование безопасности: Пытаешься вести себя как самый отъявленный пидорас и сломать всё, что можно. Ввести в поле «имя» SQL-инъекцию, чтоб база данных тебе все пароли выплюнула. Весело, но если найдёшь уязвимость — герой, а если нет, а потом её найдёт какой-нибудь школьник — героем будешь уже в другом, более грустном смысле.
- Тестирование совместимости: Открываешь свой сайт в десяти разных браузерах. В девяти он выглядит нормально, а в десятом, каком-нибудь древнем, весь интерфейс едет, как мудак по гололёду. И надо решать — говорить пользователю «Обнови браузер, лузер» или городить костыли.
Вторая дичь — кто тыкает: человек или скрипт?
- Ручное: Это когда ты сам, своей рукой, в сотый раз вводишь логин и пароль, проверяя, не сломалось ли что после вчерашнего обновления. Работа для дзена, блядь, или для полного отчаяния. Но для исследования, когда просто ходишь и тыкаешь во всё подряд, как ребёнок в розетку, — незаменимо.
- Автоматизированное: Это когда ты неделю пишешь скрипт, который будет это делать за тебя. Скрипт падает на первом же шаге, ты две ночи его чинишь, и вот он, наконец, стабильно проходит. Красота! Теперь он может проверять эту хуйню каждую ночь, а ты спать. Пока, конечно, не поменяют селектор на кнопке.
А зачем этот цирк, спросишь?
Да затем, чувак, чтоб не было мучительно больно в день релиза! Чтобы не вышло, как в той истории: «Модульные тесты прошли, а система в целом — пизда». Ранние проверки — это как поймать мудака на этапе, когда он только задумал какую-то херню, а не когда он уже всё разъебал.
Современная фишка — это «сдвиг влево» (Shift-left). Раньше тестировщику приносили готовый продукт и говорили: «На, проверь». А теперь мы лезем к ним на этапе обсуждения требований, такие все важные, и говорим: «Слушай, а давай тут не триста полей в одну форму, а то пользователь обосрётся, пока заполнять будет, ядрёна вошь!». И автоматизируем всё, что шевелится, чтобы при каждом чихе разработчика не начинать проверку всей вселенной заново.
Короче, работа — та ещё, но без неё вообще пипец.