Загрузка данных
Тестирование программного обеспечения (ПО) — это проверка соответствия между реальным и ожидаемым поведением программы. Существует множество видов тестирования, и их принято классифицировать по нескольким ключевым признакам.
------------------------------
1. По объекту тестирования (Что тестируем?)
Функциональное тестирование (Functional Testing): Проверка того, делает ли программа именно то, что должна (согласно требованиям).
Нефункциональное тестирование (Non-Functional Testing): Проверка характеристик системы, не связанных напрямую с конкретными действиями пользователя:
Тестирование производительности (Performance Testing): Оценка скорости и стабильности под нагрузкой.
Тестирование безопасности (Security Testing): Поиск уязвимостей и защита данных.
Тестирование удобства использования (Usability Testing): Оценка того, насколько интерфейс понятен и удобен для пользователя.
Тестирование надежности (Reliability Testing): Проверка способности системы работать без сбоев в течение заданного времени.
Тестирование связанных с изменениями (Change-related Testing):
Регрессионное тестирование (Regression Testing): Проверка того, что новые изменения не сломали уже работающий функционал.
Повторное тестирование (Smoke / Sanity / Re-testing): Проверка исправления конкретного бага или экспресс-тест базовых функций после сборки.
------------------------------
2. По знанию внутренней структуры системы (Как тестируем?)
Метод черного ящика (Black Box): Тестировщик не знает, как устроен код. Тестирование происходит исключительно через интерфейс или доступные входы/выходы.
Метод белого ящика (White Box): Тестировщик имеет полный доступ к коду и проверяет внутреннюю логику, ветвления и структуру программы.
Метод серого ящика (Grey Box): Комбинация двух подходов. Есть частичный доступ к внутренней структуре (например, к базе данных или архитектуре приложения).
------------------------------
3. По уровню тестирования (На каком этапе?)
1. Модульное / Юнит-тестирование (Unit Testing): Тестирование минимальных изолированных компонентов кода (например, отдельных функций или методов). Обычно выполняется разработчиками.
2. Интеграционное тестирование (Integration Testing): Проверка взаимодействия между несколькими модулями или системами.
3. Системное тестирование (System Testing): Тестирование всей системы целиком в окружении, приближенном к реальному.
4. Приемочное тестирование (Acceptance Testing): Финальный этап проверки (часто с участием заказчика или конечных пользователей) на соответствие бизнес-требованиям.
------------------------------
4. По степени автоматизации (Кто или что выполняет?)
Ручное тестирование (Manual Testing): Тесты выполняются человеком вручную по тест-кейсам или в свободном поиске (исследовательское тестирование).
Автоматизированное тестирование (Automation Testing): Использование специальных программ и скриптов для автоматического выполнения тестов и проверки результатов.
------------------------------
5. По признаку запуска кода
Статическое тестирование (Static Testing): Анализ кода, требований или документации без запуска самой программы (например, ревью кода).
Динамическое тестирование (Dynamic Testing): Тестирование программы непосредственно в процессе её выполнения.
Если вы хотите углубиться в тему, подскажите:
Вам интересна теория для подготовки к собеседованию или практическое применение на проекте?
Хотите узнать подробнее про какой-то конкретный вид (например, автоматизацию или нагрузочное тестирование)?
Нужны ли примеры инструментов для тестирования?