Классификация тестирования Flashcards
Классификация по уровням
Компонентное/Модульное/unit-тестирование - Тестируются отдельные модули продукта.
Интеграционное - Проверка взаимодействия модулей. Как они взаимодействуют между собой
Системное - Проверка всего приложения. Взаимодействие нескольких или всех компенентов друг с другом. Или тестирование интерфейсов, с помощью, которых взаимодействует система.
Отличие функционального от нефункционального тестирования
Функциональное тестирование - проверяют то, какие функции реализованы и как, насколько верно.
Проверяется корректно ли работает приложение. Проверка функций и характеристик ПО.
Тестирование проводится в двух аспектах: требования и бизнес-процессы
Когда речь идёт о требованиях, то за основу берется спецификация функциональных требования. Делается список того, что надо тестировать, а что нет, раставляются приоритеты. Чтобы понять, какой функционал более важен, какой менее
Что касается бизнес-процессов, то используется знание бизнесс-процессов, которые описывают сценарии ежедневного использования системы. Сценарии основываются на случаях использования сисетмы
Примеры функцииональных тестов:
Переход по разделам форума
Поиск по сайту
Подписка на рассылку
Нефункциональное тестирование - оценивается как программный продукт работает:
То есть тестирование производительности, UI, UX, совместимости, надежности и тд
Примеры нефункционального тестирования. Хотя бы 7
Тестирование производительности - работа ПО под определенной нагрузкой
Тестирование пользовательского интерфейса - удобство UI для пользователя
Тестирование UX - правильность логики использования продукта
Инсталяционное тестирование - оценка вероятности возникновения проблем при установке, удалении или обновлении
Тестирование совместимости - тестирование ПО в определенном окружении
Тестирование интернационализации - тестирование на готовность продукта работать с разными языками и с учётом разных культурных особенностей. При этом сюда не включена проверка качества перевода, а именно возможность такой адаптации. Например как будет отображаться файл с иероглифами, может ли приложение искать файлы на определенном языке
Тестирование локализации - проверка корректности и качества адаптации
Тестирование удобства пользования (usability testing) - тестирование направленное на исследование того, как пользователю понятно, как работать с продуктом
Тестирование доступности (accessibility testing) - тестирование возможности работы с приложением людьми с ограниченными возможностями (в том числе в условиях когда например у человека занята одна рука)
Тестирование безопасности - тестирование приложения на способность противостоять злонамеренным попыткам получить доступ к функциям и данным, права на доступ к которым обычно у злоумышленника нет.
Тестирование интернационализации и локализации
Тестирование интернационализации - тестирование на готовность продукта работать с разными языками и с учётом разных культурных особенностей. При этом сюда не включена проверка качества перевода, а именно возможность такой адаптации. Например как будет отображаться файл с иероглифами, может ли приложение искать файлы на определенном языке. Для примера также будет изменения валюты в зависимости от региона, метрическая система
Тестирование локализации - проверка корректности и качества адаптации
Виды тестирования производительности
Нагрузочное тестирование - исследование способности приложение сохранять заданные показатели качества при нагрузке в допустимых пределах и некотором повышении этих пределов
Объёмное тестирование - исследование производительности при обработке различных объёмов данных (больших)
Стрессовое тестирование - Исследование производительности при нагрузках значительно превышающих рассчетный уровень, или в ситуации недоступности значительной части ресурсов.
Конкурентное тестирование - исследование приложения, когда ему приходится обрабатывать много запросов, что приводит к конкуренции за ресурсы
Тестирование восстанавливаемости - тестирование способности приложения восстанавливать свои функции и заданный уровень производительности, а также восстанавливать данные после возникновения критической ситуации или временной утраты работоспособности приложения
Тестирование использования ресурсов - совокупность видов тестирования, проверяющие эффективность использования приложением доступных ресурсов и зависимость результата работы от количества доступных ресурсов.
Тестирование отказоустойчивости - тестирование, при котором создаются или эмулируются ситуации, в которых приложение задействует механизмы предотвращения остановки работоспособности, потери данных и тд
Тестирование надежности - работа ПО при длительной ожидаемой нагрузке
Инсталяционное тестирование
Тестирование на выявление дефектов, влияющих на протекание стадии инсталяции. Проверяются множество сценариев в таких ситуациях как: новая среда исполнения, обновление существующей версии, изменение текущей версии на старую, повторная установка с целью устранения возникших проблем, повторный запуск установки после возникноваения ошибки приведшей к невозможности продолжения установки, удаление приложения, автоматическая инсталяция без участия пользователя.
Тестирование данных и баз данных
два близких по смыслу тестирования, направленных на тестирование таких характеристик данных как полнота, непротиворечивость, целостность, структурированность. В контексте тестирования баз данных проверяется адекватность модели предметной области, способность модели обеспечивать целостность и консистентность данных, корректность работы
Тестирование по доступу к коду
Тестирование чёрного ящика - без доступа к коду
+не нужно знать программирование
+приложение тестируется в контексте реальных пользовательских сценариев
+процесс создания тест кейсов позволяет выявить недочёты в требованиях
+можно создавать тест кейсы, которые потом можно будет адаптировать под другие проекты
-есть вероятность того, что что-то будет непротестировано
-нужна качественная документация
-диагностика дефектов более сложна
Тестирование белого ящика - с доступом к коду
показывает скрытые проблемы и упрощает их диагностику
стимулирует разработчиков к написанию качественного кода
нужно знать программирование
тестирование сфокусировано на реализованной функциональности, что в итоге может привести к тому, что нереализованнные требование могут быть пропущены
Тестирование серого ящика - тестировщик имеет доступ к коду, но для выполнения тестов он не требуется
Классификация тестирования по времени проведения тестирования
Альфа тестирование - внутреннее тестирование (имитация реальной работы с ПО штатными разработчиками)
Бета тестирование - Внешнее пробное тестирование с вовлечение отобранных пользователей
Дымовое тестирование - Минимальный набор тестов, проверяющих, выполняет ли ПО хотя бы свои основные функции.
Тестирование новой функциональности - тестируются новые функции
Регрессионное тестирование - Проверка для подтверждения того факта, что существующая раннее функциональность работает как и прежде. Проводится в каждом билде, проверяет исправленные баги, проверяются связанные функциональности. Часто автоматизируют
Приёмочное тестирование - Оценка готовности системы для релиза. Сдаётся разработчиком заказчику
Классификация тестирования по позитивности сценариев
Позитивное тестирование - процесс проверки на корректное поведение. Используются сценарии, которые иммитируют правильное поведение пользователя
Негативное - процесс проверки на некорректное поведение. Сценарии, которые содержат ошибки в использовании системы. То чего нет в спеках
Классификация тестирования по степени подготовленности к тестированию
Тестирование по документации - проводится по заранее готовым данным (тест кейсы, чек-листы, спецификация и тд)
ad-hoc тестирование - тестирование при полном отсутствие документации, плана и цели
Исследовательское тестирование - предполагается наличие минимальной документации. Тест кейсы писать не нужно, но каждый следующий тест выбирается на основе предыдущих. Тестировщик выполняет работу по выбранному сценарию, который потом дорабатывается с целью более полного исследования приложения.
Классификация тестирования по глубине тестирования / по степени важности
Дымовое тестирование (Smoke test) - Минимальный набор тестов, проверяющих, выполняет ли ПО хотя бы свои основные функции.
Помимо smoke test есть еще термин sanity test, многие их объединяют, но разница есть
Пороговое значение метрики обычно близко к 100% или просто 100%
Тестирование критического пути - направлено на тестирование функциональности, используемой типичными пользователями в типичной повседневной деятельности. Те функции, которые в первую очередь будут использоваться, чаще всего.
Пороговое значение метрики обычно 70-90%
Расширенное тестирование - тестирование всей заявленной в требованиях функциональности. Но здесь всё равно учитывается, какие функции более важные, какие менее. Также в рамках данного тестирования, исследуются маловероятные, экзотические случаи. Пороговое значение метрики около 30-50%
Классификация тестирования по фокусировке на уровне архитектуры приложения
Тестирование уровня представления - сконцентрировано на той части приложения, которая отвечает за взаимодействие с внешним миром (пользователями и другими приложениями). Исследуются вопросы удобства использования, скорости отклика интерфейса, совместимости с браузерами, корректности работы интерфейсов
Тестирование уровня бизнес-логики - проверка основного набора функций и строится на базе ключевых требований к приложению, бизнес-правил и общей проверки функциональности
Тестирование уровня данных - та часть приложения, которая отвечает за хранение и обработку данных. Здесь в первую очередь интересует тестирование данных, соблюдение бизнес-правил, тестирование производительности.