Перейти к содержимому

Программирование на Python для тестировщиков
онлайн, начало 23 октября
Тестирование безопасности
онлайн, начало 28 октября
Школа для начинающих тестировщиков
онлайн, начало 22 октября
Автоматизатор мобильных приложений
онлайн, начало 28 октября
Фотография

Стохастическое тестирование


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 13

#1 jurteg

jurteg

    Новый участник

  • Members
  • Pip
  • 61 сообщений
  • ФИО:Serhii Zharskyi

Отправлено 15 июля 2010 - 10:45

Мне не приходилось использовать такой подход, но что меня заинтересовало, так это то, что Майерс находит этот метод довольно слабым и практически мало полезным и предпочёл не рассматривать его в своей книге, в то время как Канер выделил под него несколько страниц и всячески пытался уверить, что этот метод частенько помогает найти неожиданные ошибки... Как-то противоречиво получается.
Хотелось бы выслушать мнения тех, кто на практике пользовался подобным методом. Так же неплохо было бы обсудить соображения относительно этого и выслушать мысли тех, кто ещё не пользовался.
  • 0

#2 astenix

astenix

    Специалист

  • Members
  • PipPipPipPipPip
  • 891 сообщений
  • ФИО:Лёша Лупан
  • Город:Кишинев


Отправлено 15 июля 2010 - 11:14

Стохастическое тестирование основано на генерации тестовых наборов, а именно множества X, случайным образом.

Стохастическое тестирование выполнимо, если удаётся автоматически и независимым образом определить эталонное множество Y или экспертно указать распределение выходных данных.

Как правило, к стохастическому критерию прибегают в случае необходимости построения тестовых наборов большой мощности.

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

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

Канер поклонник тестирования не по скриптам, воображения и воодушевления, а Майерс - очень даже поклонник математики, четкости и определенности.
  • 0

Software Testing Glossary - простыми словами о непростых словах.


#3 jurteg

jurteg

    Новый участник

  • Members
  • Pip
  • 61 сообщений
  • ФИО:Serhii Zharskyi

Отправлено 15 июля 2010 - 11:30

Кстати сказать я тут вспомнил один случай, когда случайная генерация данных помогла мне выявить некоторые ошибки.
Это случилось, когда необходимо было провести объёмное тестирование и я написал собственный генератор псевдослучайных чисел, различных слов, текста и и-мэйлов. Так вот всей этой чепухой я забивал подопытную БД, причём случайно генерились значения для всех столбцов. После, при проверке производительности ЦМС, которая использовала данные из этой базы, я заметил, что заголовки новостей и тело самой новости в некоторых статьях имели смещения, были написаны странными шрифтами и т.д. Происходило это нечасто, примерно через 300-500 записей. Оказалось, что при определённом наборе символов в заголовке образовывались HTML тэги, которые ЦМС прекрасно обрабатывала. На основании этого удалось узнать, что сценарии JavaScript также успешно стартуют в заголовках и не только, что приводило к неработоспособности некоторых модулей и вообще можно было уронить всю систему.

Конечно же, до этого можно было додуматься и просто так, проанализировав всё тщательным образом, но так уж вышло, что обнаружилось это случайным образом, поэтому фактом применения этого метода я этот случай не считаю.

У кого-то есть есть другие примеры или совпадения?
  • 0

#4 MeSaNei

MeSaNei

    Новый участник

  • Members
  • Pip
  • 9 сообщений


Отправлено 16 июля 2010 - 06:07

.
  • 0
Shiny Disco Balls

#5 LeshaL

LeshaL

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 094 сообщений
  • ФИО:Алексей Лянгузов
  • Город:Saint-Petersburg


Отправлено 16 июля 2010 - 08:17

У кого-то есть есть другие примеры или совпадения?

Как раз вчера на нашей встрече затрагивали этот вопрос.
Компиляторы, например, так тестируют. Случайным образом (на основе синтаксиса и лексики языка программирования) генерится какой-нибудь код, который должен скомпилироваться. Очевидно, что все компилируемые варианты и сочетания в языке программирования перебрать невозможно. А такой подход даёт возможность случайно найти код, который компилятор обработать не в состоянии. Сгенерённый код, который скомпилился, можно после теста выкинуть, код который выявил ошибку - можно закинуть в дефект трэкер как есть.

Надо заметить, что такой подход должен использоваться в дополнение к другим.
  • 0
Regards,
Alexey

#6 enki86

enki86

    Постоянный участник

  • Members
  • PipPipPip
  • 231 сообщений


Отправлено 16 июля 2010 - 10:55

LeshaL, это очень примитивный способ тестирования компиляторов
нужен подход, основанный не только на синтаксисе, но и на лексике,
то есть придется использовать грамматики
А уже на основе них генерировать выражения

поэтому тут выражения не будут случайны - скорее псевдослучайны - не в тему, в общем
  • 0

#7 jurteg

jurteg

    Новый участник

  • Members
  • Pip
  • 61 сообщений
  • ФИО:Serhii Zharskyi

Отправлено 16 июля 2010 - 11:46

Я вообще хотел поговорить о целесообразности применения такого подхода, его практической пользе (если кто-то имеет опыт в этом), и, вообще, стоит ли осуществлять такое тестирование с учётом всех "за" и "против".
А о случайности или псевдослучайности говорить можно долго и взахлёб, на эту тему есть много разных обсуждений и даже научных работ. Но точно то, что средства языка программирования генерят псевдослучайные данные.
  • 0

#8 LeshaL

LeshaL

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 094 сообщений
  • ФИО:Алексей Лянгузов
  • Город:Saint-Petersburg


Отправлено 16 июля 2010 - 18:36

LeshaL, это очень примитивный способ тестирования компиляторов
нужен подход, основанный не только на синтаксисе, но и на лексике,
то есть придется использовать грамматики
А уже на основе них генерировать выражения

поэтому тут выражения не будут случайны - скорее псевдослучайны - не в тему, в общем

Я сам не тестировал компиляторы, но слушал доклад коллег, года этак 3 назад и писал по памяти. Дописал в свое сообщение "на основе синтаксиса и лексики". Могу дописать про грамматики и семантики и что там еще есть. Суть не меняется. Случайным образом генерится валидный код на языке программирования и его компилят. Если не компилится - с большой долей вероятности - баг компилятора, который не выявляет не один из видов продуманного и спланированного тестирования.
  • 0
Regards,
Alexey

#9 Natalya Rukol

Natalya Rukol

    Гуру

  • Admin
  • PipPipPipPipPipPip
  • 2 001 сообщений
  • Город:Moscow


Отправлено 16 июля 2010 - 19:55

Есть такая штука - model-based testing. Это когда Вы описываете модель работы программы, от алгоритмов до массивов данных. После этого, можно стохастически генерить параметры значений, последовательность действий и т.д. И всё это - в рамках модели.
Я использовала примитивные варианты модел-бейзд тестирования с автогенерацией значений. Прикольно, покрытие большое, но существенной пользы что-то не припомню :) И это при том, что девелопмент модели - очень трудоёмкий процесс.
  • 0

#10 dlg99

dlg99

    Специалист

  • Members
  • PipPipPipPipPip
  • 609 сообщений
  • ФИО:Andrey Yegorov
  • Город:Redmond, WA

Отправлено 16 июля 2010 - 23:58

Bj Rollison упоминал, что в Microsoft проводили исследование на эту тему лет 5 назад, несколько лет, разные группы, разные подходы.
насколько я помню, стохастические методы в какой-то момент почти достигают того же покрытия (code coverage/tets coverage/bugs found), что и другие (см ниже), но существенно позже.
как результат эти методы применяются редко, предпочтение отдается автоматизации (комбинаторными методами + модели) с регулярным code coverage analysis и code reviews + static testing tools.
Была статья на этот счет, с графиками и прочим; название не помню. Можете или спросить Bj (www.testingmentor.com) или посмотрите в книге "How we test software at Microsoft", вроде бы там это тоже встречалось.

Исключением является security testing, где часто используют fuzzing и, пожалуй, machine learning.
С первым я серьезно не сталкивался, во втором проблемой является не "создать много случайных тестов", а "выбрать случайный минимальный statistically significant набор тестов"

Модели, кстати, можно строить при помощи разных тулов, например SpecExplorer.

по личным ощущениям и отзывам тех, кто с ними плотно общался, Канер и Бах:
- ориентированы на людей с нетехническим образованием/складом ума
- работают в режиме консалтинга, пришел-ушел. поэтому агитируют за самые простые для понимания менеджментом (легче продать/демонстрировать) подходы.
Майерс - 'технарь', оттого и расхождения во мнениях.

выбирайте сами - если проект на 2 месяца, то может быть написанный за 3 дня генератор случайных тестов имеет лучшее соотношение затраты/результат. Если проект на 3 года то см выше.
  • 0
Andrey Yegorov. Изображение

#11 jurteg

jurteg

    Новый участник

  • Members
  • Pip
  • 61 сообщений
  • ФИО:Serhii Zharskyi

Отправлено 19 июля 2010 - 06:46

Спасибо за исчерпывающий ответ
  • 0

#12 Freiman

Freiman

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 567 сообщений
  • ФИО:Андрей Адеркин
  • Город:Йошкар-Ола

Отправлено 10 августа 2010 - 07:04

Есть такая штука - model-based testing. Это когда Вы описываете модель работы программы, от алгоритмов до массивов данных. После этого, можно стохастически генерить параметры значений, последовательность действий и т.д. И всё это - в рамках модели.
Я использовала примитивные варианты модел-бейзд тестирования с автогенерацией значений. Прикольно, покрытие большое, но существенной пользы что-то не припомню :) И это при том, что девелопмент модели - очень трудоёмкий процесс.

Наталья, а не могли бы вы порекомендовать какие-нибудь статьи/ресурсы по теме model-based testing?
  • 0

#13 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 847 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 10 августа 2010 - 07:33

Наталья, а не могли бы вы порекомендовать какие-нибудь статьи/ресурсы по теме model-based testing?

Давайте я отвечу, потому что у Натальи опыт применения скорее негативный (судя по комментарию выше), а у меня в практике встречались неоднократно примеры успешного применения :)
http://software-test...l-based-testing
http://software-test...l-based-testing
  • 0

Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium


#14 Куатор

Куатор

    Постоянный участник

  • Members
  • PipPipPip
  • 247 сообщений
  • ФИО:Комендантов Илья
  • Город:Украина, Одесса

Отправлено 16 августа 2010 - 14:56

У меня был интересный случай, тестировал систему генерации отчётов (3rd-party компонента, прикрученная к нашему продукту), настройки заголовков , шрифтов , цветов + сам текст отчёта. Нашёл в инете огромный пример валидного json вставил и ещё один вариант, взял source одной веб-странички - в первом варианте получил эксепшен - недопустимый параметр, нашёл, что это происходит в случае , если текст сождержит {} , попробовал вставить {MessageBox.Show("I see you! :-)")} - теперь перед генерацией отчёта выскакивал месседж бокс , а потом уже генерировался репорт :)
  • 0
Идеальный тестировщик - человек с золотыми руками, растущими из ж...


Практикум по тест-дизайну 2.0
онлайн
Школа для начинающих тестировщиков
онлайн
Школа тест-аналитика
онлайн
Техники локализации плавающих дефектов
онлайн



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале