Тестирование на основе моделей (MBT – Model Based Testing) – это метод тестирования программного обеспечения, при котором поведение тестируемой программы во время выполнения проверяется на соответствие прогнозам, сделанными моделью.
Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.
Содержание
- Что собой представляют модели
- Пример тестирования на основе модели
- Типы MBT
- Различные модели в тестировании
- Проблемы тестирования на основе моделей
- Преимущества тестирования на основе моделей
Что собой представляют модели?
Модель – это описание поведения системы. Поведение может быть описано в терминах входных последовательностей, действий, условий, выхода и потока данных от входа к выходу. Модель должна быть практически понятной и переиспользуемой. Модель, пригодная для совместного использования, должна иметь точное описание тестируемой системы.
Существует множество моделей, которые описывают различные аспекты поведения системы. Примерами модели являются:
- поток данных
- поток управления
- графы зависимостей
- таблицы решений
- машины перехода состояний
Тестирование на основе модели описывает, как система ведет себя в ответ на действие, определенное моделью. Предложите действие и посмотрите, реагирует ли система в соответствии с ожиданиями.
Это легкий формальный метод для проверки системы. Такое тестирование может применяться и для проверки “железа”, и для проверки программного обеспечения.
Пример тестирования на основе модели
Приведенная выше модель объясняет упрощенный подход к написанию стихов в блокноте и возможные действия, связанные с каждым шагом. Для каждого действия (например, начала работы, ввода стихотворения, сохранения) может быть сгенерирован тестовый пример и проверен результат.
Типы MBT
Существует два вида тестирования на основе моделей:
- Офлайн: генерация тестовых наборов до их выполнения. Набор тестов – это не что иное, как коллекция тестовых случаев.
- Онлайн: генерация тестовых наборов во время выполнения теста.
Различные модели в тестировании
Для того чтобы понять MBT, необходимо разобраться в нескольких моделях. Давайте рассмотрим их одну за другой:
Машины с конечным числом состояний
Эта модель помогает тестировщикам оценить результат в зависимости от выбранных входных данных. Различные комбинации инпутов могут привести к разным состояниям системы.
Система будет иметь определенное состояние и текущее состояние, которое регулируется набором входных данных, предоставленных тестировщиками.
Рассмотрим пример.
Существует система, которая позволяет сотрудникам входить в приложение. Текущее состояние сотрудника – “Out”, и оно становится “In”, когда он входит в систему. В состоянии “In” сотрудник может просматривать, распечатывать и сканировать документы в системе.
Диаграммы состояний
Это расширение машины с конечным числом состояний, которое можно использовать для сложных систем и систем, работающих в режиме реального времени. Диаграммы состояний используются для описания различных моделей поведения системы. Система имеет определенное количество состояний. Поведение системы анализируется и представляется в виде событий для каждого состояния.
Например, в инструменте управления дефектами дефекты поднимаются со статусом “Новый” (New). Как только дефект исправляется разработчиками, он должен быть переведен в статус “Исправлен” (Fixed). Если дефект не исправлен, статус меняется на “Переоткрыт” (Re-open). Диаграммы состояний должны быть разработаны таким образом, чтобы они вызывали событие для каждого состояния.
Унифицированный язык моделирования (UML)
Унифицированный язык моделирования (UML) – это стандартизированный язык моделирования общего назначения. UML включает в себя набор графических нотаций для создания визуальных моделей, которые могут описывать очень сложное поведение системы.
В UML есть следующие нотации:
- Действия (Activities)
- Акторы (Actors)
- Бизнес-процесс (Business Process)
- Компоненты (Components)
- Язык программирования (Programming language)
Проблемы тестирования на основе моделей
Развертывание MBT в каждой организации, очевидно, требует больших инвестиций и усилий. Ниже перечислены недостатки MBT в программной инженерии:
- Тестировщики должны обладать определенными навыками
- На обучение требуется больше времени
- Сложность понимания самой модели
Преимущества тестирования на основе моделей
Ниже перечислены преимущества MBT:
- Простота поддержки тест-кейсов и тестовых наборов
- Снижение стоимости
- Улучшенное покрытие тестами
- Возможность запускать различные тесты на энном количестве машин
- Раннее обнаружение дефектов
- Увеличение количества обнаруженных дефектов
- Экономия времени
- Повышение удовлетворенности работой тестировщика
Заключение
Тестировщики в любом случае строят ментальные модели во время тестирования. Эти модели могут быть перенесены на бумагу, что позволит переиспользовать их.
Тестирование на основе моделей – это новый подход к тестированию программного обеспечения. Эволюция тестирования ПО показана ниже.
Перевод статьи Thomas Hamilton «What is Model Based Testing?».