Подтвердить что ты не робот

Стратегии тестирования на основе моделей

Какие стратегии вы использовали при тестировании на основе моделей?

  • Используете ли вы его исключительно для интеграционное тестирование или его ветвление в другие районы (проверка устройства/функциональности/системы/спецификации)?
  • Вы строите целенаправленные "запечатанные" модели или развиваете сложные модели onibus с течением времени?
  • Когда в цикле продуктов вы инвестируете в создание MBT?
  • Какие библиотеки базовых тестов вы создаете исключительно для MBT?
  • Какая разница в ваших функциональных базовых тестовых библиотеках для лучшей поддержки MBT?

4b9b3361

Ответ 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/

Ответ 2

Мы ничего не сделали, и я использую модульное тестирование почти исключительно, приправленное небольшим количеством системных тестов. Но на наш взгляд, мы уделяем особое внимание единичному тестированию. Я довольно строг в API, которые мы создаем/предоставляем, поэтому предположение состоит в том, что, если оно работает само по себе, оно будет работать совместно, и в нем еще не так много.

Наши модели ориентированы на единую цель/модуль с минимальными зависимостями.

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

Поскольку мы используем PHP, мы используем PHPUnit для модульных тестов. В общем, мы делаем CI с различными инструментами.:)

Ответ 3

Гарри Робинсон, автор книг MBT и много работал с ним, например, в Google и Microsoft, имеет этот сайт с отличной информацией и техническими документами.

http://www.geocities.com/model_based_testing/

Ответ 4

Лучший способ - попробовать самостоятельно инструмент тестирования на основе модели. Это лучший способ узнать, адаптировано ли тестирование на основе модели в вашем контексте. И какие стратегии хорошие.

Я советую вам инструмент MaTeLo для All4Tec (www.all4tec.net)

"MaTeLo - это генератор тестовых случаев для функциональных и системных тестов черного ящика. В соответствии с методом тестирования на основе модели MaTeLo использует цепочки Маркова для моделирования теста. Этот статистический аддинат позволяет систематизировать систему продуктов. путем сокращения требуемых человеческих ресурсов, увеличения повторного использования модели и повышения релевантности тестовой стратегии (из-за целевого показателя надежности). MaTeLo является независимым и удобным для пользователя, предлагает действиям валидации для перехода от тестовых сценариев к реальной инженерии тестов и сосредоточиться на реальной добавленной стоимости тестирования: планы тестирования"

Вы можете запросить оценочную лицензию и попробовать самостоятельно.

Здесь вы можете найти несколько примеров: http://www.all4tec.net/wiki/index.php?title=Tutorials