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