Основанные на модели стратегии тестирования - PullRequest
12 голосов
/ 25 августа 2008

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

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

Ответы [ 4 ]

14 голосов
/ 03 июня 2009

[Есть несколько очерков, которые стоит прочитать по этому вопросу. Переполнение стека не позволит мне публиковать более одного сообщения, поэтому я собрал их в блоге, ссылка на который есть в конце этого ответа.]

Во-первых, краткое примечание по срокам. Я склонен использовать определение «Тестирование» Джеймса Баха как «Опросить продукт, чтобы оценить его». Все тесты основаны на / 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/

1 голос
/ 30 марта 2010

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

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

1 голос
/ 25 августа 2008

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

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

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

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

0 голосов
/ 01 сентября 2009

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

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

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

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

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

...