Основы тестирования: QA, QC, Verification и Validation
Ключевые термины
- QA (Quality Assurance): Обеспечение качества, включает процессы, направленные на предотвращение дефектов на всех этапах разработки продукта.
- QC (Quality Control): Контроль качества, включает процессы проверки и тестирования для выявления дефектов в готовом продукте.
- Testing: Процесс выполнения программы с целью выявления ошибок и подтверждения соответствия требованиям.
- Verification: Проверка того, что продукт разрабатывается правильно, в соответствии с техническими спецификациями.
- Validation: Проверка того, что конечный продукт удовлетворяет потребности пользователя и соответствует его ожиданиям.
Основные цели тестирования
-
Поиск дефектов:
- Выявление и фиксация ошибок, которые могут нарушить функциональность системы.
-
Обеспечение качества:
- Подтверждение, что продукт соответствует требованиям и работает как ожидается.
Виды тестирования
По уровням:
-
Модульное (Unit Testing):
- Тестирование отдельных модулей или компонентов системы.
- Примеры:
- Проверка работы функции, которая считает сумму двух чисел.
- Тестирование отдельного API-метода на корректность ответа.
-
Интеграционное (Integration Testing):
- Проверка взаимодействия между компонентами системы.
- Примеры:
- Тестирование связи между базой данных и сервером.
- Проверка взаимодействия клиентского приложения с серверным API.
-
Системное (System Testing):
- Полное тестирование всей системы на соответствие требованиям.
- Примеры:
- Проверка онлайн-магазина от выбора товара до оплаты.
- Тестирование приложения для бронирования отелей.
-
Приёмочное (Acceptance Testing):
- Проверка готовности системы к использованию конечными пользователями.
- Примеры:
- Финальное тестирование перед релизом нового модуля.
- Демонстрация системы заказчику для утверждения.
По функционалу:
-
Функциональное тестирование:
- Проверка соответствия системы функциональным требованиям.
- Примеры:
- Проверка формы регистрации на корректность ввода данных.
- Тестирование работы кнопки “Добавить в корзину”.
-
Нефункциональное тестирование:
- Проверка характеристик, не связанных с функциональностью (например, производительность).
- Примеры:
- Измерение времени загрузки веб-страницы при большом количестве пользователей.
- Тестирование приложения на потребление оперативной памяти.
Глоссарий терминов
- Дефект: Несоответствие между ожидаемым и реальным поведением системы.
- Тест-кейс: Набор шагов и условий для проверки определённой функциональности.
- Релиз: Финальная версия продукта, доступная для пользователей.
- Баг: Ошибка или дефект в программе, вызывающий её некорректное поведение.
- Логирование: Запись информации о выполнении программы для анализа и отладки.
Примеры из реальной жизни
Модульное тестирование:
- Проверка работы калькулятора на правильное сложение и умножение чисел.
- Тестирование отдельного метода обработки данных в приложении.
Интеграционное тестирование:
- Проверка работы умного дома: взаимодействие датчика движения и включения света.
- Тестирование связи между платежным шлюзом и онлайн-магазином.
Системное тестирование:
- Полный сценарий заказа пиццы через приложение.
- Проверка системы управления билетами на мероприятия.
Приёмочное тестирование:
- Тестирование новой версии CRM-системы перед внедрением.
- Проверка работы терминалов самообслуживания перед установкой в магазинах.