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