Что такое тестирование на основе модели?

Тестирование на основе моделей (MBT – Model Based Testing) – это метод тестирования программного обеспечения, при котором поведение тестируемой программы во время выполнения проверяется на соответствие прогнозам, сделанными моделью.

Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.

Содержание

Что собой представляют модели?

Модель – это описание поведения системы. Поведение может быть описано в терминах входных последовательностей, действий, условий, выхода и потока данных от входа к выходу. Модель должна быть практически понятной и переиспользуемой. Модель, пригодная для совместного использования, должна иметь точное описание тестируемой системы.

Существует множество моделей, которые описывают различные аспекты поведения системы. Примерами модели являются:

  • поток данных
  • поток управления
  • графы зависимостей
  • таблицы решений
  • машины перехода состояний

Тестирование на основе модели описывает, как система ведет себя в ответ на действие, определенное моделью. Предложите действие и посмотрите, реагирует ли система в соответствии с ожиданиями.

Это легкий формальный метод для проверки системы. Такое тестирование может применяться и для проверки “железа”, и для проверки программного обеспечения.

Пример тестирования на основе модели

Пример модели

Приведенная выше модель объясняет упрощенный подход к написанию стихов в блокноте и возможные действия, связанные с каждым шагом. Для каждого действия (например, начала работы, ввода стихотворения, сохранения) может быть сгенерирован тестовый пример и проверен результат.

Типы MBT

Существует два вида тестирования на основе моделей:

  1. Офлайн: генерация тестовых наборов до их выполнения. Набор тестов – это не что иное, как коллекция тестовых случаев.
  2. Онлайн: генерация тестовых наборов во время выполнения теста.

Различные модели в тестировании

Для того чтобы понять 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?».

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *