← Назад к вопросам

Какие знаешь методы в тестировании?

1.3 Junior🔥 221 комментариев
#Теория тестирования#Техники тест-дизайна

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Методы тестирования в QA

Методы тестирования — это систематические подходы и техники, используемые для проверки функциональности, производительности, безопасности и других аспектов программного обеспечения. За 10+ лет опыта я применял различные методы в зависимости от целей и контекста проекта.

По типу выполнения:

1. Ручное (Manual) тестирование

  • QA вручную выполняет тест-кейсы
  • Требует высокой внимательности и опыта
  • Хорошо для exploratory testing
  • Идеально для UI/UX тестирования
  • Время выполнения: долго, но гибко
  • Когда использовать: новые фичи, сложные сценарии, юзабилити

2. Автоматизированное (Automated) тестирование

  • Скрипты автоматически выполняют тесты
  • Инструменты: Selenium, Cypress, Playwright, pytest
  • Быстро, повторяемо, экономно на дальную перспективу
  • Требует инвестиций в разработку тестов
  • Идеально для регрессионного тестирования
  • Когда использовать: стабильные функции, CI/CD pipeline

По охвату функциональности:

3. Smoke тестирование

  • Быстрая проверка основных функций после деплоя
  • Проверяет: может ли приложение вообще запуститься?
  • Время: 10-30 минут
  • Примеры: логин, главная страница, основные кнопки
  • Когда: сразу после релиза на staging

4. Functional (функциональное) тестирование

  • Проверка соответствия requirements
  • Тестирование всех фич подробно
  • Пример: тестируем логин с валидным и невалидным паролем
  • Самое распространённое в QA

5. Regression (регрессионное) тестирование

  • Проверка, что старые функции не сломались после новых изменений
  • Запуск полного или частичного набора тестов
  • Автоматизированное: очень эффективно
  • Критично перед production release

6. Sanity тестирование

  • Быстрая проверка логики кода после изменений
  • Более узкое, чем smoke
  • Проверяет: работает ли эта конкретная функция?
  • Когда: bug fix verification

По типу данных и сценариев:

7. Positive (позитивное) тестирование

  • Проверка с корректными данными
  • Ожидаемый результат: успех
  • Пример: логин с правильным email и паролем

8. Negative (негативное) тестирование

  • Проверка с некорректными данными
  • Ожидаемый результат: контролируемая ошибка
  • Пример: логин с пустым паролем → ошибка 400
  • Очень важно для безопасности

9. Boundary (граничное) тестирование

  • Проверка значений на границах диапазонов
  • Пример: возраст от 0 до 150. Проверяем 0, 1, 149, 150, -1, 151
  • Часто здесь скрыты баги

10. Load тестирование (нагрузочное)

  • Проверка производительности под нагрузкой
  • Инструменты: Apache JMeter, LoadRunner, K6
  • Вопросы: сколько одновременных пользователей может выдержать система?
  • Когда: перед большим релизом, после масштабирования

11. Stress тестирование (тестирование на напряжение)

  • Проверка поведения системы при экстремальной нагрузке
  • Превышение нормальной нагрузки в несколько раз
  • Вопрос: как система восстанавливается после перегрузки?

12. Performance тестирование (производительность)

  • Измерение времени отклика, throughput, использования памяти
  • Инструменты: browser DevTools, lighthouse, profilers
  • Примеры: страница загружается < 3 сек, API отвечает < 200 мс

По знанию внутреннего кода:

13. Black-box тестирование

  • QA не знает внутреннего кода и архитектуры
  • Тестируем только входы и выходы
  • Реалистично (как пользователь)
  • Большинство manual и UI tests — это black-box

14. White-box тестирование

  • QA знает внутреннюю архитектуру и исходный код
  • Тестируем условия, циклы, обработку ошибок
  • Обычно для разработчиков (unit tests)
  • API тестирование требует некоторого белого ящика

15. Gray-box тестирование

  • Гибрид: частичное знание внутреннего кода
  • Проверяем через API и UI, знаю БД структуру
  • Практическое совмещение обоих подходов

Специальные методы:

16. Exploratory тестирование

  • Свободное исследование приложения без подробных тест-кейсов
  • Основано на опыте и интуиции тестировщика
  • Отлично для поиска неожиданных багов
  • Документируем по ходу
  • Когда: новое приложение, нет точных requirements

17. Compatibility тестирование

  • Проверка на разных браузерах и ОС
  • Пример: работает ли на Chrome, Firefox, Safari, Edge?
  • На Windows, macOS, Linux?
  • На мобилах: iOS и Android?

18. Security тестирование

  • Проверка на уязвимости
  • SQL Injection, XSS, CSRF, password brute force
  • Инструменты: OWASP ZAP, Burp Suite
  • Когда: финальная стадия перед production

19. Usability тестирование

  • Проверка удобства использования для пользователя
  • Может ли новый пользователь разобраться?
  • Интуитивный ли интерфейс?
  • Часто привлекаем реальных пользователей

20. API тестирование

  • Проверка REST/GraphQL endpoints
  • Валидация: статус коды, response structure, данные
  • Инструменты: Postman, REST Assured, pytest + requests
  • Проверяем валидацию, аутентификацию, rate limiting

21. Database тестирование

  • Проверка целостности данных
  • Корректность запросов
  • Проверка constraints, triggers, stored procedures
  • Когда: критичные операции с БД

22. End-to-End (E2E) тестирование

  • Проверка полного пути пользователя через приложение
  • От входа до выхода
  • Пример: регистрация → заполнение профиля → оплата → подтверждение
  • Инструменты: Cypress, Playwright, Selenium

В зависимости от цикла разработки:

23. UAT (User Acceptance Testing)

  • Тестирование пользователями перед production
  • Проверка соответствия бизнес-требованиям
  • В реальных данных и сценариях

24. Alpha и Beta тестирование

  • Alpha: внутреннее тестирование разработчиками и QA
  • Beta: внешнее тестирование небольшой группой пользователей

Выбор методов зависит от:

  • Размера и сложности приложения
  • Бюджета и времени
  • Критичности функций
  • Количества пользователей
  • Типа приложения (web, mobile, desktop)
  • Требований к качеству

Профессиональный QA использует комбинацию методов, балансируя между thorough testing и разумными сроками.