[Есть несколько очерков, которые стоит прочитать по этому вопросу. Переполнение стека не позволит мне публиковать более одного сообщения, поэтому я собрал их в блоге, ссылка на который есть в конце этого ответа.]
Во-первых, краткое примечание по срокам. Я склонен использовать определение «Тестирование» Джеймса Баха как «Опросить продукт, чтобы оценить его». Все тесты основаны на / mental / моделях тестируемого приложения. Термин «тестирование на основе моделей» обычно используется для описания программирования модели, которую можно исследовать с помощью автоматизации. Например, можно указать ряд состояний, в которых может находиться приложение, различные пути между этими состояниями и определенные утверждения о том, что должно происходить при переходе между этими состояниями. Затем можно заставить сценарии выполнять полуслучайные перестановки переходов внутри модели состояния, регистрируя потенциально интересные результаты.
Здесь есть реальные затраты: создание полезной модели, создание алгоритмов для ее изучения, ведение журналирования систем, позволяющих отсеивать интересные сбои и т. Д. Независимо от того, разумны ли эти затраты, имеет много общего с на какие вопросы вы хотите ответить? В общем, начните с «Что я хочу знать? И как мне лучше узнать об этом? », А не искать применение интересной технике.
Все это говорит о том, что некоторые отличные тестеры прошли большой путь от автоматических тестов на основе моделей. Иногда у нас возникают важные вопросы о тестируемом приложении, которые лучше всего исследуются с помощью автоматических полуграндомизированных тестов большого объема. Гарри Робинсон (один из ведущих теоретиков и сторонников тестирования на основе моделей) описывает один очень яркий пример, когда он обнаружил много интересных ошибок в направлениях движения Google, используя тест на основе моделей (написанный с помощью библиотеки Watir в ruby). 1
Робинсон успешно использовал MBT в таких компаниях, как Bell Labs, Microsoft и Google, и опубликовал несколько полезных статей. [2]
Бен Симо (еще один великий мыслитель и писатель по тестированию) также написал несколько полезных статей о тестировании на основе моделей. [3]
Наконец, несколько предостережений: чтобы правильно использовать стратегию, нужно изучить как ее сильные, так и слабые стороны. В связи с этим Джеймс Бах отлично рассказал о границах и проблемах тестирования на основе моделей. Этот пост в блоге содержит ссылки Баха на его часовую беседу (и соответствующие слайды). [4]
Я закончу заметкой о том, что Борис Бейзер называет парадоксом пестицидов: «Каждый метод, который вы используете для предотвращения или обнаружения ошибок, оставляет след от более тонких ошибок, против которых эти методы неэффективны». Тесты с использованием сценариев (выполняемые ли компьютер или человек) особенно уязвимы для парадокса пестицидов, стремящихся находить все меньше и меньше полезной информации каждый раз, когда выполняется один и тот же сценарий. Люди иногда обращаются к тестированию на основе моделей, думая, что это решает проблему пестицидов. В некоторых контекстах тестирование на основе моделей вполне может обнаружить гораздо больший набор ошибок, чем данный набор тестов на основе сценариев ... но следует помнить, что он все еще принципиально ограничен парадоксом пестицидов. Вспоминая свои ограничения - и начиная с вопросов, которые MBT хорошо решает - он может стать очень мощной стратегией тестирования.
Ссылки на все упомянутые выше эссе можно найти здесь: http://testingjeff.wordpress.com/2009/06/03/question-about-model-based-testing/