Понятие «тестирование на основе моделей» стало в последнее время довольно популярным термином, тем более что часто под ним понимается целый набор технологий генерирования тестовых скриптов, на самом деле различных между собой, а именно:
В первом случае моделирование сфокусировано на генерации входных тестовых данных, и модель представляет собой информацию об их совокупности. Существенным в составлении модели здесь является выбор таких комбинаций входных параметров, которые позволяют получить наиболее полное тестовое покрытие, для чего используются специальные методы.
Все любят тесты. Пользователь с большей вероятностью пройдёт тест, чем перейдёт по обычному баннеру. создать квиз тестирование без программистов и дизайнеров. Простой и гибкий редактор, быстрое размещение, настройка CTA и встроенная статистика.
Во втором случае, моделирование использует модели, описывающие ожидаемое окружение тестируемой системы, часто статистические модели (частота тех или иных операций, распределение значений входных данных, и т. д.). В этом случае не можем точно предсказать выходной отклик тестируемой системы, можем только сказать есть или вообще ответ от системы или его нет;
В третьем случае моделирование означает генерирование тестовых последовательностей и предсказание результатов, ожидаемых на выходе от тестируемой системы. Это более сложная задача, чем перечисленные выше, так как генератор должен знать достаточно об ожидаемом поведении системы, иными словами, о взаимосвязи входных и выходных параметров, то есть, и сама модель должна описывать поведение системы. Однако преимуществом этого подхода как раз является то, что только этот подход из всех четырех решает все проблемы тестирования – от генерации набора входных данных до создания выполняемых тестовых последовательностей, включающих проверку успешности прохождении теста;
Значение тестирования на основе моделей в рамках четвертого подхода значительно отличается от первых трех, здесь понимается, что даем абстрактное описание тестовых последовательностей, своего рода шаблонов, в виде вызовов процедур верхнего уровня или описания на UML языке и фокусируемся на преобразовании этих абстрактных описаний в низкоуровневые вызовы тестовых последовательностей. Моделью, в этом случае, является информация о структуре тестируемой системы и API этой системы, дающее представление о способах трансформации высокоуровневых шаблонов в низкоуровневые вызовы;
В этом случае под термином «тестирование на основе моделей» понимаем третий случай – генерация выполняемых тестовых последовательностей (включая предсказательную информацию о результатах выполнения) на основе модели поведения системы. Этот процесс включает в себя как генерацию входных данных и последовательности тестовых вызовов, так и генерацию предсказаний о том, какова должна быть реакция системы для проверки условий об успешном/неуспешном прохождении теста.
Таким образом, можем сказать, что реализуем автоматизацию разработки и генерации тестов «черного ящика». В отличие от традиционных способов тестирования «черных ящиков», когда основная работа по отражению спецификаций в тестовые последовательности выполняется вручную, создаем модель поведения тестируемой системы, которая содержит в себе эти спецификации. Затем инструменты автоматизации производят автоматическую генерацию выполняемых тестовых последовательностей на основе этой модели.