уничтожение данный
Сравнение эффективности обходчиков UniTESK
Деловая газета CitCity.ru
CITKIT.ru - все об Open Source
Форумы
Все публикации
Учебный центр
Курилка
CITForum на CD
Подписка на новости портала
Море(!) аналитической информации! :: CITFORUM.RU
IT-консалтинг
Software Engineering
Программирование
СУБД
Безопасность
Internet
Сети
Операционные системы
Hardware
01.05.2008
WWW
CITForum.ru
Новости мира IT:
30.04 - В Бразильских школах началось массовое внедрение Linux30.04 - Социальная сеть MySpace лишилась британского домена30.04 - Microsoft отложила распространение третьего сервис-пака для Windows ХР30.04 - nVidia превратит обычные игры в трехмерные30.04 - Microsoft представила бета-версию средств управления Linux-серверами30.04 - "Яндекс" уничтожение данный "Озон" вошли в список самых дорогих стартапов интернета30.04 - Microsoft подарила следователям флешки для сбора улик30.04 - Xerox показал многоразовую бумагу30.04 - Мобильники вызывают аллергию, сыпь уничтожение данный дерматит30.04 - Белоруссия продаст туркам государственного сотового оператора30.04 - Microsoft прокомментировала недавнюю массированную хакерскую атаку30.04 - Российского пирата обязали выплатить 75 миллионов рублей30.04 - Редактор существ для игры Spore выйдет 17 июня29.04 - У Gigabyte появится свой убийца Asus Eee PC29.04 - Россия уничтожение данный Украина создадут навигационное пространство на базе ГЛОНАСС29.04 - ФСБ РФ обновила свой сайт29.04 - Asus сделает из Eee независимый бренд29.04 - В MySpace появилось караоке29.04 - AMD представила аппаратную платформу для бизнес-пользователей29.04 - Cray будет сотрудничать с Intel в сфере суперкомпьютеров29.04 - Skype добрался до мобильников 29.04 - В зоне .SU разрешили регистрировать русские домены29.04 - nVidia представила новый видеоадаптер GeForce девятой серии29.04 - "Вымпелком" планирует стать крупнейшим в России интернет-провайдером29.04 - Google расширил возможности пакета Google Docs28.04 - Истек срок ультиматума, выдвинутого Microsoft руководству Yahoo28.04 - Чистая прибыль Samsung за год выросла почти на 40 процентов28.04 - Strategy Analytics: Nokia контролирует 40 процентов рынка мобильников28.04 - Завершилась конференция "Корпоративные базы данных-2008"28.04 - Yahoo! превратится в социальную сеть
Все новости на CitCity.ru
2006 г.
Сравнение эффективности обходчиков UniTESK
А. Р. Арутюнян, Российско-Армянский (Славянский) государственный университет, Ереван, Армения
Труды Института системного программирования РАН
Аннотация
В данной работе исследуется эффективность генерации тестов на основе автоматического построения обхода графа, т.е. маршрута, проходящего через все его дуги. Приводятся экспериментальные данные о работе на графах различных типов обходчиков UniTESK, использующих разные алгоритмы построения обхода - алгоритм поиска в глубину уничтожение данный жадный алгоритм. Жадный алгоритм в большинстве случаев строит более короткие маршруты, позволяя выполнять соответствующие тесты значительно быстрее.
Содержание
1. Введение
2. Сфера применения тестирования на основе спецификаций
3. Как эффективность обходчика влияет на тестирование
4. Краткое описание обходчиков UniTESK
5. Сравнение эффективности обходчиков UniTESK
5.1. Зависимость работы обходчика от порядка сценарных функций
5.2. Обход дерева
5.3. Обход полного графа уничтожение данный его модификаций
6. Заключение
Литература
1. Введение
В настоящее время тестирование на основе моделей получает все большее распространение. Используемые в его ходе модели могут быть более абстрактными, чем реализация, но в то же время они хорошо отражают основные особенности тестируемой системы. Относительно небольшой размер моделей позволяет реализовать их автоматическую обработку, уничтожение данный подобие модели тестируемой системе гарантирует, что тесты, сгенерированные на основе модели, позволят провести ее систематическое тестирование. Кроме того, тесты, построенные на основе моделей, легче сопровождать уничтожение данный проще переиспользовать из-за их более высокого уровня абстракции уничтожение данный независимости от реализации.
Одним из наиболее успешных примеров применения подхода тестирования на основе моделей является технология UniTESK [1,2], разработанная в Институте Системного Программирования РАН. В рамках этой технологии математические модели используются для решения основных задач тестирования: оценки корректности поведения целевой системы, генерации тестовых данных, тестовых последовательностей уничтожение данный оценки качества тестирования.
Генерация тестовой последовательности в технологии UniTESK производится на основе построения обхода графа, выступающего в качестве абстрактной модели тестируемой системы уничтожение данный отражающего выделенные разработчиком тестов аспекты ее поведения. Уникальной особенностью технологии UniTESK является задание графа модели в неизбыточном виде. Это означает, что перед началом тестирования о графе ничего не известно уничтожение данный вся информация о нем появляется только в процессе тестирования. Таким образом, граф может не только задаваться в виде статической модели тестируемой системы, но уничтожение данный строиться динамически, в результате наблюдений за поведением тестируемой системы во время тестирования.
Извлечение модели тестируемой системы в процессе выполнения теста позволяет добиться существенного улучшения качества тестирования, масштабируемости тестового набора уничтожение данный упрощения переиспользования тестовых сценариев. Для обеспечения этих преимуществ все используемые алгоритмы работы с графом должны учитывать тот факт, что информация о графе появляется только во время выполнения теста.
Основными понятиями технологии UniTESK являются понятия спецификации, медиатора, тестового сценария уничтожение данный обходчика.
Спецификация представляет собой описание формальной модели тестируемой функции.
Медиатор осуществляет взаимодействие спецификации (формальной модели) уничтожение данный реализации тестируемой функции.
Тестовый сценарий представляет собой неизбыточное описание графа, моделирующего тестовую систему, уничтожение данный состоит из набора сценарных функций уничтожение данный функции вычисления текущего состояния - вершины графа. Каждая сценарная функция представляет совокупность однотипных тестовых воздействий.
Обходчик, основываясь на тестовом сценарии, осуществляет перебор всех допустимых тестовых воздействий во всех достижимых состояниях задаваемого этим сценарием графа.
Целью данной работы является исследование эффективности алгоритмов обходчиков, входящих в инструмент CTesK, результаты которого позволят дать рекомендации по построению тестовых сценариев в условиях ограниченных ресурсов.
2. Сфера применения тестирования на основе спецификаций
Тестирование на основе спецификаций максимально эффективно при тестировании групп функций с объемным, логически связным текстуальным описанием, уничтожение данный также функций с закрытым кодом.
Рассмотрим преимущества подхода тестирования на основе спецификаций, на примере технологии UniTESK.
Абстрагирование от архитектуры.
Независимость тестов от внутренней архитектуры реализации становится возможной, благодаря отделению кода спецификации от медиаторов.
В результате спецификации обладают самостоятельной ценностью. При переходе от одной архитектуры реализации к другой может потребоваться изменение медиаторов, логика же тестирования остается неизменной. Разработчику тестов для системы, работающей на специфической платформе достаточно иметь спецификации уничтожение данный интерфейс реализации: они однозначно определяют построение медиаторной части.
Конфигурационная система.
Благодаря разделению спецификаций уничтожение данный реализационно-зависимых компонентов теста, возникает возможность создания гибкой конфигурационной системы, способной адекватно отражать в спецификациях неописанные варианты поведения функций. В частности, это относится к тем случаям, когда поведение тестируемой функции сильно зависит от специфики конкретной реализации (implementation-defined).
Генерация отчета по покрытию проверенных требований работы функции.
Такие отчеты, помимо оценки качества тестирования, дают возможность выделить часто используемые части программы, для их возможной дальнейшей оптимизации.
Разделение сценариев уничтожение данный спецификаций.
Такое разделение позволяет использовать одно описание функциональности тестируемой системы при ее тестировании в различных условиях.
Например, сценарии легко дорабатываются в следующих направлениях.
Увеличение множества тестовых значений параметров функции.
Это приводит к более полному тестированию функции. Обычно для минимальной полноты тестов требуется по одному набору значений параметров на каждую ветвь функциональности, определенную в спецификации данной функции.
Вовлечение в тестирование функции связанных с ней функций.
Этот метод также приводит к более полному тестированию реализации функции.
Особенно он важен при тестировании функций со скрытым состоянием, на которое можно влиять исключительно опосредованно, путем вызова других функций.
3. Как эффективность обходчика влияет на тестирование
Используемый в тестах, построенных по технологии UniTESK, обходчик позволяет осуществить полный перебор возможных тестовых ситуаций путем вызова всевозможных тестовых воздействий во всех состояниях графа, заданного в неизбыточном виде. Таким образом, могут быть получены последовательности тестовых воздействий, которые практически никогда не проверяются при ручном построении тестов.
Может показаться, что для разработки хорошего теста достаточно указать набор сценарных функций уничтожение данный определить функцию вычисления состояния, уничтожение данный после этого обходчик все сделает сам. В общем случае это неверно. Неправильно выбранный метод обхода, неправильные ограничения на количество состояний, неправильное определение состояния графа: все это может привести к невозможности получения результата в условиях ограниченности ресурсов.
Возникает следующая проблема: ошибка может проявиться в последовательности тестовых воздействий, состоящей из сотни переходов по дугам графа, но выбранный механизм обхода будет не в состоянии обеспечить достижения подобной ситуации, по причине того, что он неудачно использует полный перебор.
Пример. Если человек находится на улице у дома номер 1, уничтожение данный хочет дойти к дому номер 91, то он может пойти прямо уничтожение данный дойти до цели. Действуя иначе, он может поворачивать на любом перекрестке, стараясь не проходить по два раза по одному уничтожение данный тому же кварталу. По дороге он увидит много интересного, но к цели придет с колоссальным запозданием.
Из этого следует, что строить обход графа, заданного в неизбыточном виде, нужно аккуратно. При неосмотрительном использовании перебора всех возможных вариантов в сложных ситуациях могут возникнуть трудности.
Поэтому детали реализации алгоритма обходчика имеют большое значение для эффективности тестирования больших систем. Очевидно, что построить обход всех дуг графа можно различными путями, необязательно эквивалентными по эффективности использования памяти уничтожение данный времени. Приведем несколько примеров.
«Цепной» пример. Описываемая в этом примере ситуация возникает в тех случаях, когда состоянием системы является целое число, уничтожение данный доступны два вида тестовых воздействий: увеличивающее уничтожение данный уменьшающее значение состояния на единицу.
Рисунок 1. Граф состояний уничтожение данный переходов для «цепного» примера.
В этом случае возможен обход вида (перечисляются состояния в порядке их посещения) 0, 1, 0, 1, 2, 1, 0, …, 0, 1, 2, …, (n-2), (n-1), (n-2), …, 1, 0.
Также возможен обход вида 0, 1, 2, …, (n-2), (n-1), (n-2), …, 1, 0.
В обоих случаях проходятся все дуги во всех состояниях графа, однако в первом случае количество тестовых воздействий, проделанных при обходе, равно 2n(n+1)/2 = n(n+1), тогда как во втором оно составляет только 2n.
Из приведенного примера вытекает следующая рекомендация по работе обходчика: в случае наличия непройденных дуг из текущего состояния графа, обходчику рекомендуется первой вызывать операцию, соответствующую одной из этих непройденных дуг. То есть, не рекомендуется переходить к вызову сценарной функции B, пока не исчерпаны возможные вызовы сценарной функции A.
При этом порядок задания сценарных функций, определяющий последовательность их вызова обходчиком, должен тщательно обдумываться разработчиком тестов для определения максимально эффективного обхода.
Примеры с потоками. Приведенные ниже примеры выбраны из-за высокой степени связности графов, уничтожение данный также относительно малого количества состояний уничтожение данный дуг, что позволяет понять существо проблемы, не рассматривая сложные случаи.
О том, что такое поток (thread) уничтожение данный обработчик завершения потока (cleanup handler) можно прочесть в [3] уничтожение данный [4] соответственно.
Простой пример с потоками. Граф состояний уничтожение данный переходов простой модели системы управления потоками, описываемой в стандарте POSIX [5], изображен на Рисунке 2. В этой модели разрешается иметь не более одного потока одновременно.
Рисунок 2. Граф состояний уничтожение данный переходов для простого примера работы с потоками.
Здесь первая цифра в состоянии обозначает количество активных потоков в системе, уничтожение данный вторая - количество зарегистрированных обработчиков завершения потоков.
В POSIX есть операции создания нового потока (обозначим ее как C от create), помещения функции в стек обработчиков завершения данного потока (U, от push) уничтожение данный выталкивания ее из этого стека (O, pop), уничтожение данный также операция уничтожения данного потока (K, kill). В нашей простой модели потоку разрешается иметь не более двух обработчиков завершения.
В рассматриваемом случае, даже если обходчик следует рекомендации по использованию сценарных функций, существует, по крайней мере, два возможных маршрута обхода с разной эффективностью.
Первый вариант (13 переходов): [0, 0], [1, 0], [1, 1], [1, 2], [1, 1], [1, 0], [0, 0], [1, 0], [1, 1], [0, 0], [1, 0], [1, 1], [2, 1], [0, 0]. Он соответствует последовательности использования сценарных функций CUOK. Обходчик пытается в каждом состоянии вызывать функции в указанном порядке.
Второй вариант (15 переходов): [0, 0], [1, 0], [0, 0], [1, 0], [1, 1], [0, 0], [1, 0], [1, 1], [1, 0], [1, 1], [1, 2], [0, 0], [1, 0], [1, 1], [1, 2], [1, 1]. Он соответствует последовательности сценарных функций CKUO.
Сложный пример с потоками. Рассмотрим более сложную модель той же системы, допуская уже два активных потока.
Рисунок 3. Граф состояний уничтожение данный переходов более сложной модели потоков.
В данном случае первая цифра в состоянии обозначает количество активных потоков. Далее идут несколько цифр, отражающих количество обработчиков завершения для соответствующих потоков.
В системе имеются те же операции, что уничтожение данный раньше, но на этот раз разрешим потоку иметь не более одного обработчика завершения.
В данном случае, даже если рекомендация по последовательному использованию сценариев выполняется, существует, по крайней мере, два возможных пути, с разной эффективностью.
Первый вариант (25 переходов, соответствует порядку CKUO): [0], [1, 0], [2, 0, 0], [1, 0], [0], [1, 0], [1, 1], [2, 1, 0], [1, 1], [0], [1, 0], [2, 0, 0], [2, 1, 0], [2, 1, 1], [1, 1], [2, 1, 0], [2, 0, 0], [2, 0, 1], [1, 0], [2, 0, 0], [2, 0, 1], [2, 1, 1], [2, 1, 0], [2, 1, 1], [2, 0, 1], [2, 0, 0].
Второй вариант (27 переходов, соответствует порядку OKUC): [0], [1, 0], [0], [1, 0], [1, 1], [1, 0], [2, 0, 0], [1, 0], [1, 1], [0], [1, 0], [2, 0, 0], [2, 1, 0], [2, 0, 0], [2, 0, 1], [2, 0, 0], [2, 1, 0], [1, 1], [2, 1, 0], [1, 1], [2, 1, 0], [2, 1, 1], [2, 1, 0], [2, 1, 1], [2, 0, 1], [1, 0], [2, 0, 0], [2, 0, 1], [2, 1, 1], [1, 1].
Следствие из рассмотренных примеров. Разница в эффективности, показанная в данных примерах невелика, что обусловлено простотой модели (малое количество состояний уничтожение данный дуг), уничтожение данный также оптимальностью последовательного использования сценариев.
Разница достигается исключительно за счет изменения расположения сценариев в обойме обходчика.
Это указывает на необходимость анализа работы обходчика уничтожение данный применения результатов этого анализа при разработке модели, уничтожение данный также тестовых сценариев.
4. Краткое описание обходчиков UniTESK
В настоящий момент CTesK [6], один из инструментов, поддерживающих разработку тестов по технологии UniTESK, включает два обходчика, реализующих различные алгоритмы построения обхода графов уничтожение данный имеющих различные ограничения на вид графов, с которыми они могут работать.
Первый обходчик, dfsm [7,8], реализует алгоритм генерации тестовой последовательности по неизбыточному описанию графа сценария при помощи построения его обхода в глубину уничтожение данный предназначен только для работы с детерминированными графами. Обход в глубину означает, что обходчик хранит цепочку из тех вершин, не все дуги которых пройдены. Попав в одну из таких вершин, он каждый раз доходит до конца цепочки, прежде чем пройти по еще не пройденной дуге. Тем самым, обходчик dfsm не следует рекомендации, сформулированной выше. Для вершин, где все дуги пройдены, этот обходчик хранит одну дугу, позволяющую (быть может, после прохождения еще каких-то дуг) попасть на цепочку вершин, имеющих еще не пройденные дуги.
Этот алгоритм прекрасно проявил себя в многочисленных проектах [9] по тестированию различных видов программного обеспечения при помощи технологии UniTESK. Однако требование детерминированности графа сценария требует от разработчиков тестов дополнительных усилий, направленных на избавление от недетерминизма графа, динамически извлекаемого из наблюдений за поведением тестируемой системы. Причем такой недетерминизм появляется достаточно часто, уничтожение данный не только из-за недетерминированности самой тестируемой системы, но уничтожение данный из-за неаккуратного абстрагирования в графе сценария от деталей реализации. В то же время, в большинстве случаев только небольшая часть дуг графа соответствует недетерминированным переходам, уничтожение данный существует детерминированный остовный подграф, который мог бы быть использован для построения обхода графа.
Задача построения алгоритмов, строящих обход недетерминированных графов, заданных неизбыточным образом, была успешно решена [10]. Но предложенный в работе [10] алгоритм является полновесным средством работы с существенно недетерминированными графами. В то же время, в большинстве случаев можно обойтись более простым решением, обладающим более узкой областью применимости, которое реализовано во втором обходчике CTesK, ndfsm [11].
ndfsm реализует жадный алгоритм построения обхода дуг графа, опираясь при этом на предположение о наличии детерминированного полного остовного подграфа, т.е. детерминированного подграфа, в который входят все вершины исходного графа. Жадный алгоритм, оказавшись в вершине, где все дуги уже пройдены, пытается найти ближайшую к ней вершину, где еще есть непройденная дуга, уничтожение данный попасть в нее. Значит, ndfsm действует в соответствии с высказанной рекомендацией. Наличие детерминированного остова позволяет обходчику всегда находить путь, ведущий в нужную вершину.
5. Сравнение эффективности обходчиков UniTESK
В данном разделе приводятся экспериментальные данные о сравнительной эффективности двух обходчиков CTesK.
В первой его части исследовалась зависимость производительности обходчиков от порядка обращений к сценарным функциям для небольших графов.
В следующих частях сравнивается эффективность работы обходчиков на разнообразных графах. Сравнивалось, в основном количество проходов по дугам графа (или же обращений к сценарным функциям), выполняемых обходчиками при построении обхода. При этом выполнение каждой отдельной сценарной функции максимально облегчено, в его ходе производился минимум действий. Иногда для наглядности приведено общее время работы теста, которое измерялось в секундах с допустимой погрешностью в 1 секунду.
При сравнении использовался компьютер с процессором AMD 3200+, 1024 MB памяти.
5.1. Зависимость работы обходчика от порядка сценарных функций
В Таблице 1 показано количество переходов, выполняемое обходчиками для построения обхода графов из раздела 3 при различных упорядочениях сценарных функций.
C в этой таблице обозначает операцию создания нового потока, K - уничтожение одного из имеющихся потоков, U - помещение функции в стек обработчиков завершения потока, O - выталкивание функции из этого стека.
Порядок сценарных функций Простой пример (Рис. 2)Количество состояний - 4.Количество дуг - 8.Сложный пример (Рис. 3)Количество состояний - 7.Количество дуг - 13.
ndfsm dfsm ndfsm dfsm
CKUO 161 22 31 76
CKOU 16 22 29 76
CUKO 16 25 29 76
CUOK 132 25 27 88
COKU 16 19 30 88
COUK 13 25 27 88
KCUO 16 22 31 68
KCOU 16 22 29 68
KUCO 16 22 30 60
KUOC 16 22 30 60
KOCU 16 22 31 68
KOUC 16 22 31 59
UCKO 16 25 29 64
UCOK 13 25 27 69
UKCO 16 25 29 60
UKOC 16 25 29 60
UOCK 13 25 27 69
UOKC 16 25 31 69
OCKU 16 19 30 88
OCUK 13 25 27 88
OKCU 16 19 30 61
OKUC 16 19 31 55
OUCK 13 25 27 68
OUKC 16 25 31 68
Таблица 1. Длина строящегося обхода в зависимости от порядка сценарных функций.
Таблица 1 показывает, что, меняя только порядок обращений к сценарным функциям, можно добиться следующего ускорения более 35% для dfsm (сложный пример, сравнение CUOK уничтожение данный OKUC) уничтожение данный более 10% для ndfsm (сложный пример, CKUO уничтожение данный CUOK).
На рассмотренных примерах ndfsm демонстрирует более высокую производительность. Далее мы рассмотрим дополнительные примеры, подтверждающие это.
5.2. Обход дерева
Сравним эффективность обходчиков при обходе полного бинарного дерева высотой N, с операциями «опуститься на уровень ниже влево», «опуститься на уровень ниже вправо» уничтожение данный «подняться на уровень выше».
Теоретическая оценка длины обхода снизу равна количеству дуг 2N+2-4. Эта оценка может быть достигнута, например, при обходе в симметричном порядке [12].
В Таблице 2 приведены длины обходов уничтожение данный время их выполнения для разных обходчиков.
N dfsm, длина dfsm, время ndfsm, длина ndfsm, время мин. длина
9 4088 6 2044 3 2044
10 8184 25 4092 12 4092
11 16376 100 8188 45 8188
12 32760 427 16380 19016380
Таблица 2. Длина уничтожение данный время обхода дерева для разных N.
Обход дерева любопытен тем, что на нем при использовании обходчика ndfsm достигается минимальная длина обхода. Обходчик dfsm делает ровно в два раза больше проходов по дугам.
5.3. Обход полного графа уничтожение данный его модификаций
В данном разделе будут рассмотрены экспериментальные данные по построению обхода для следующих видов графов.
Полный ориентированный граф с N вершинами, обозначаемый KN.
Граф KM(KN), представляющий собой соединенные с помощью KM M полных графов KN. Вершины этих M графов пронумерованы числами от 0 до (N-1) уничтожение данный все вершины с номером 0 соединены между собой полным графом.
Граф KM KN, являющийся декартовым произведением полных графов. Он тоже представляется как M графов KN с пронумерованными вершинами, в которых всем вершинам с одинаковыми номерами соединены друг с другом.
В следующих таблицах приведены длины уничтожение данный время (в секундах) построения обхода разными обходчиками для таких графов.
Числа N уничтожение данный M выбраны нечетными, потому что для полного графа с нечетным количеством вершин существует эйлеров цикл.
Теоретическая оценка длины обхода KN снизу равна количеству его дуг E(KN)=N × (N - 1).
Граф dfsm, длинаdfsm, времяndfsm, длинаndfsm, времямин. длина
K3 14 0 8 0 6
K5 60 0 24 0 20
K7 154 0 48 0 42
K51 46750 9 2600 1 2550
K53 52364 11 2808 1 2756
K55 58410 12 3024 1 2970
K57 64904 13 3248 1 3192
K59 71862 15 3480 1 3422
K61 79300 17 3720 1 3660
Таблица 3. Длина уничтожение данный время обходов полных графов.
Отметим тот факт, что обходчик ndfsm проходит на (N-1) дуг больше, чем нужно по минимуму для обхода полного графа KN.
Оценка длины обхода графа KM(KN) снизу тоже равна количеству его дуг
E(KM(KN)) = M × E(KN) + E(KM) = M × N × (N - 1) + M × (M - 1).
Графdfsm, длинаdfsm, времяndfsm, длинаndfsm, времямин. длина
K3(K51) 140264 29 7810 2 7656
K5(K51) 233810 53 13028 3 12770
K7(K51) 327404 80 18254 5 17892
K3(K53) 157106 35 8434 2 8264
K5(K53) 261880 60 14068 4 13800
K7(K53) 366702 94 19710 6 19334
K3(K55) 175244 40 9082 2 8916
K5(K55) 292110 71 15148 4 14870
K7(K55) 409024 108 21222 6 20832
Таблица 4. Длина уничтожение данный время обходов графов KM(KN).
Отметим, что длина обхода этих графов с помощью dfsm может быть вычислена по той же формуле, что уничтожение данный количество дуг: если D(G) обозначает длину обхода графа G с помощью dfsm, то D(KM(KN))=M × D(KN) + D(KM).
Можно предположить, что при обходе графа, состоящего из нескольких слабо связанных (при помощи одной-двух дуг) частей, длина его обхода получается сложением длин обходов частей уничтожение данный количества проходов по связывающим дугам.
Оценка длины обхода графа KM KN снизу также равна количеству его дуг
E(KM × KN) = M × E(KN) + N × E(KM) = M × N × (N + M - 2).
Графdfsm, длинаdfsm, времяndfsm, длинаndfsm, времямин. длина
K3× K51 269265 62 8108 1 7956
K5× K51 804614 186 14024 5 13770
K7× K51 1694413 406 20348 5 19992
K3× K53 301095 68 8744 2 8576
K5× K53 898884 216 15104 4 14840
K7× K53 1890675 302 21888 5 21520
K3× K55 335337 50 9404 2 9240
K5× K55 1000234 164 16224 3 15950
K7× K55 2101501 365 23484 5 23100
Таблица 5. Длина уничтожение данный время обходов графов KM KN.
Теперь длина обхода с помощью dfsm уже не может быть определена с помощью аналогичной формулы.
Приведенные таблицы показывают, что на многих графах обходчик ndfsm работает эффективнее dfsm, и, если проверка детерминизма графа не является необходимым элементом тестирования, предпочтительнее использовать первый обходчик.
Можно заметить, что при увеличении количества дуг длина обхода с помощью dfsm составляет порядка 50% от произведения количества дуг на количество состояний, что означает практическую невозможность использования dfsm-обходчика в случае насыщенных графов с сотнями состояний.
6. Заключение
Моделирование поведения практически важной системы в виде конечного автомата часто приводит к большому числу состояний уничтожение данный переходов в итоговой модели. При тестировании такой системы с помощью технологии UniTESK выполняется автоматическое построение обхода графа состояний уничтожение данный переходов модели. Длина такого обхода в значительной степени зависит от используемого алгоритма обходчика.
В работе было проведен сравнительный анализ эффективности построения обхода графов с помощью обходчиков dfsm уничтожение данный ndfsm, входящих в инструмент CTesK. Полученные результаты показывают, что для многих графов второй обходчик строит существенно более короткие обходы, и, соответственно, позволяет получать тесты, работающее значительно быстрее, но обеспечивающие те же значения тестового покрытия.
Кроме того, показана возможность некоторого уменьшения времени работы теста только за счет изменения очередности задания сценарных функций.
Литература
1.обратноВ. В. Кулямин, А. К. Петренко, А. С. Косачев, И. Б. Бурдонов. Подход UniTesK к разработке тестов. Программирование, т. 29, № 6, стр. 25-43, 2003.
2.обратноА. В. Баранцев, И. Б. Бурдонов, А. В. Демаков, С. В. Зеленов, А. С. Косачев, В. В. Кулямин, В. А. Омельченко, Н. В. Пакулин, А. К. Петренко, А. В. Хорошилов. Подход UniTesK к разработке тестов: достижения уничтожение данный перспективы. Труды Института системного программирования РАН, т. 5, стр. 121-156, 2005.
3.обратноhttp://www.opengroup.org/onlinepubs/007908799/xsh/threads.html
4.обратноhttp://www.opengroup.org/onlinepubs/009695399/functions/pthread_cleanup_pop.html
5.обратноhttp://www.unix.org/version3/
6.обратноhttp://www.unitesk.com/content/category/7/14/33/
7.обратноИ. Б. Бурдонов, А. С. Косачев, В. В. Кулямин. Использование конечных автоматов для тестирования программ. Программирование, т. 26, № 2, стр. 61-73, 2000.
8.обратноИ. Б. Бурдонов, А. С. Косачев, В. В. Кулямин. Неизбыточные алгоритмы обхода ориентированных графов: детерминированный случай. Программирование, т. 29, № 5, стр. 59-69, 2003.
9.обратноhttp://www.unitesk.com/content/category/8/20/54/
10.обратноИ. Б. Бурдонов, А. С. Косачев, В. В. Кулямин. Неизбыточные алгоритмы обхода ориентированных графов: недетерминированный случай. Программирование, т. 30, № 1, стр. 2-17, 2004.
11.обратноА. В. Хорошилов. Отчет о научно-исследовательской работе. Алгоритм обхода недетерминированных графов, обладающих детерминированным полным остовным подграфом. Шифр РИ-19.0/002/216.
12.обратноhttp://www.structur.h1.ru/derevo.htm
1(обратно)Соответствует второму варианту из второго примера в разделе 3.
2(обратно)Соответствует первому варианту из второго примера в разделе 3.
Редакция рекомендует:Программирование для LinuxМожем ли мы сделать операционные системы надежными уничтожение данный безопаснымиНовинки Microsoft Office system 2007Методы сортировки уничтожение данный поиска
\
Размещение рекламы - pr@citforum.ru, ICQ 232284597
Подписка на новости IT-портала CITForum.ru
(библиотека, CITKIT.ru, CitCity)
Новые публикации:
28 апреля
Возможности эффективного использования языка SQL без нарушения основных принципов реляционной модели данных
Материалы конференции "Корпоративные базы данных-2008" (тезисы докладов уничтожение данный презентации)
CitCity:
Очередной снэпшот технологии баз данных (С. Кузнецов)
CITKIT.ru:
Linux в школе: мифы про школу уничтожение данный информатику (С. Голубев)
"Крикливое меньшинство" мешает распространению открытого ПО
22 апреля
Один из подходов к организации объектной системы на основе реляционной СУБД
Обзор журнала Computer:
Тинэйджеры уничтожение данный музыкальная коммерция
CITKIT.ru:
Диски, разделы, буквы... (В. Попов)
Новые Блогометки:
ingimp: повышение удобства интерфейса GIMP на основании статистики использования
Screen-message: используйте экран для передачи сообщений
knetworkmanager: победа над кошмарами WiFi-WLan-WEP-WPA
revelation: менеджер паролей Gnome
17 апреля
CITKIT.ru:
Изучаем Linux:
Подготовка к миграции
Критерии выбора
Дистрибутив ALTLinux
ASPLinux
Debian
Linux XP Desktop
Mandriva
MOPSLinux
openSUSE
Ubuntu
CitCity:
Рынок BI-платформ. Мнение аналитиков
Требования к инструментам интеграции данных
Матрица. Эволюция
(технология цифровой фотографии)
10 апреля
Принципы организации иерархии атомарных литеральных типов объектной системы на основе РСУБД Microsoft SQL Server 2005
CITKIT.ru:
Експресс полярный, он же - "галантный медведь"
Новые Блогометки:
Liquidsoap: гибкий клиент потокового аудиовещания для сервера Icecast уничтожение данный многое другое…
KRename: мощное средство переименования
apt-listbugs: узнавайте о критических ошибках перед каждой установкой с APT
Несколько слов о ГИС...
OpenOffice уничтожение данный все-все-все...
Цифровые фотографии. Наводим порядок
Фотоальбомы
2 апреля
NULL, трехзначная логика уничтожение данный неопределенность в SQL: критика критики Дейта
Критика критики критики Дейта
Сервис-ориентированный подход в бизнес-аналитике от Oracle
Хранение данных на клиенте. DOM Storage уничтожение данный его аналоги
CITKIT.ru:
Conky - системный монитор
Звук в Linux
Linux swap space
Описание пакетов KDE
27 марта
Обзоры журнала Computer:
Мечты Дэвида Харела
О вреде избыточного питания компьютеров
SOA: просто для большинства, сложно для меньшинства
CitCity:
12 дюймов уничтожение данный меньше - уничтожение данный стоит ли "овчинка" выделки?
Сравнение электронных автомобильных карт уничтожение данный автонавигаторов
BI-технологии, что нас ждет в ближайшие годы
CITKIT.ru:
И снова Старый Оскол: второй семинар по свободному софту
Новые Блогометки:
Xdiskusage: где место?!
TTF-Inconsolata: открытый шрифт для вашего терминала уничтожение данный красивых распечаток кода
Jed: карманный EMACS
Ipcalc: полезная информация об IP уничтожение данный маске сети
IPTraf: монитор локальной сети с интерфейсом ncurses
Burgerspace: свободный клон классической аркады «Burgertime»
19 марта
Технология проектирования модели предприятия на основе универсальной модели данных
CitCity:
Гимн героям Microsoft
CITKIT.ru:
Колонки Алексея Федорчука из журнала Linuxformat
Завершение цикла Сергея Голубева "Linux для начинающих":
Работа в сети
Пользовательские приложения
Новые Блогометки:
И вечный бой... со шрифтами
Введение в API для карт Google
Conky: хорошо настраиваемый системный монитор для X
Newsbeuter: чтение RSS из консоли
Katapult: ускоренный уничтожение данный упрощенный доступ к приложениям, закладкам уничтожение данный файлам
GPRename: пакетное переименование с интерфейсом GTK2-Perl
Duplicity: шифрованное уничтожение данный экономное для трафика резервное копирование на основе алгоритма rsync
Listadmin: консольное управление очередью модерации Mailman
12 марта
Восход уничтожение данный закат High Performance Fortran: наглядный урок истории (пересказ: С.Кузнецов)
CITKIT.ru:
Новые Блогометки:
Ccze: хорошее модульное средство подсветки логов
PWSafe - кроссплатформенное средство для работы с паролями
colordiff - подсветка для diff
psmisc: рассмотрим ближе стандартный пакет
Работа с сетью
xkb, узелок на память
ffmpeg-php
debiannotes:desktop:prettyfonts
5 марта
CITKIT.ru:
Ричард Столлман в Москве
О мудром доценте замолвите слово... (Интенсификация Малаховна)
Новые Блогометки:
"Десктопизация" OpenBSD
weather: проверяйте сводку уничтожение данный прогноз погоды из командной строки
hpodder: клиент подкастов, который просто работает
bc: язык численных расчетов с произвольной точностью
Decibel: аудиоплеер для людей
GNU Wget: загрузите весь понравившийся сетевой контент на локальный компьютер
Deborphan: найдите ненужные пакеты
Kivio: мощный уничтожение данный простой в использовании редактор блок-схем
Cowsay: настраиваемая говорящая уничтожение данный думающая корова
Thoggen: основанная на GTK+ программа для извлечения видео с DVD
28 февраля
Подбор уничтожение данный развитие команд
Глава из книги «Руководство командой разработчиков программного обеспечения. Прикладные мысли» (С.Архипенков)
CITKIT.ru:
Дискуссия об анонимусах:
К комментаторам
Windows против Linux - психологический портрет участников форумов
Новые Блогометки:
Nokia N810 - Linux Inside
LiMo - стандарты Linux для сотовых телефонов
timer-applet: таймер для панели GNOME
Debfoster: удалите пакет уничтожение данный все его зависимости
GPW: генератор произносимых паролей
AMOR: общество для рабочего стола
20 февраля
CITKIT.ru:
Новые Блогометки:
Кое-что о приложениях KDE 4
Инструкция по установке KDE 4 в Ubuntu
Настоящие мужчины ставят KDE из SVN!
Начат переход Amarok на Qt 4.4
Marble
Dillo - сверхбыстрый браузер
Создаем резервные копии настроек программ уничтожение данный важных файлов в Ubuntu LInux
NTP: всегда вовремя
VYM - простое средство зарисовки мыслей уничтожение данный планирования
KBibTeX: простой уничтожение данный гибкий редактор библиографий для KDE
Дискуссия Windows vs Linux:
Жил-был Мальчик, или Сказочка о Том, Откуда Берутся "КУЛХАЦКЕРЫ", ненавидящие Линукс уничтожение данный Юникс
13 февраля
Терминологический словарь Wi-Fi
Задача проектирования базы данных методом нормализации
CitCity:
Лучшие смартфоны начала 2008 года
CITKIT.ru:
Первый взгляд на Firefox 3.0
Open Source на Белгородщине: семинар в Старом Осколе
Что такое KDE?
Цикл о Slackware:
Русский в консоли
Быстрая настройка Иксов
xorgconfig - консольный подход
6 февраля
CITKIT.ru:
Мобильный Linux – вчера, сегодня, завтра
Чем записать диски в Linux? Попробуй Brasero!
Консольные команды
Рецепты. Кое-что о программе mplayer
Slackware:
Что такое Slackware?
Установка Slackware - Загрузка
Категории программного обеспечения
Структура файловой системы
Система инициализации Slackware Linux
Скрипты инициализации уровня запуска
30 января
Обзор алгоритмов MOLAP
CitCity:
BI-технологии 2007. Итоги года
Рынок СУБД для Хранилищ данных 2007. Итоги года, тенденции
Обзор рынка BI (по результатам исследований IDC, OLAP Report, Gartner)
Модель зрелости BI
CITKIT.ru:
Владимир Попов: За что я люблю Linux
Священные войны
23 января
Data Mining от Oracle: настоящее уничтожение данный будущее
Комментарии к статье Ч.Бергера
«Data Mining от Oracle:
настоящее уничтожение данный будущее»
Байесовский классификатор уничтожение данный регрессионная модель в ORTD: практический пример
CITKIT.ru:
Дискуссия Windows vs Linux:
Программисты уничтожение данный фирмы: кто кого
О "чистых пользователях"
Новые Блогометки:
Почему Jabber, уничтожение данный не ICQ?
Archlinux install quick
Arch на IBM Z60m
Arch + IBM R50e
OpenBSD - сборка E17-cvs (или ещe одна маленькая победа разума)
OpenBSD - всe для Человека уничтожение данный ради Человека...
PekWM
E17 уничтожение данный "прозрачность"
E17 - приятные мелочи (multimedia)
SuSE + Enlightenment = угробил целый день
16 января
Вьетнам компьютерной науки (пересказ - С.Кузнецов)
Пример построения автоматизированного управления дисками (ASM) (В. Пржиялковский)
CitCity:
2008 год: антипрогноз
CITKIT.ru:
Новые Блогометки:
Сети уничтожение данный Интернет:
Mozilla firefox. Шрифты в меню
Screen tips
Liferea: программа чтения RSS для GNOME
HTTrack: скачивание уничтожение данный зеркалирование сайтов
Clusterssh: работа с несколькими сеансами SSH через общий интерфейс
Десктопы:
Fluxbox & xinitrc. Some new tips
Как я конфигурировал xdm
Системы:
SuSE 10.2: zypper - еще один способ установки пакетов
cpipe: определите пропускную способность конвейера команд
gddrescue: средство восстановления данных с поврежденных носителей
VirtualBox: ваш виртуальный ПК
Приложения:
MyTop: top для MySQL
10 января
CITKIT.ru:
Дискуссионный клуб:
Краткое руководство по общению с никсофилами
(Интенсификация Малаховна Сергина-Гейтс)
О троллях
Пещера горного короля: заметки о троллинге
Новые Блогометки:
Сети уничтожение данный Интернет:
Делаем блог на Drupal
Использование lftp
Устанавливаем FTP сервер ProFTPd с TLS шифрованием
Управляем файлами на FTP сервере с помощью FileZilla
Десктопы:
fluxbox.autorun
15 человек на сундук мертвеца! (или песнь о зарытых сокровищах)
Системы:
Живой Debian или рабочее место в кармане
Разбивка hdd
Приложения:
Cat Excel files
Vim: меню выбора кодировок
26 декабря
CITKIT.ru:
В Блогометках открыты разделы:
Софт для Windows
Сети уничтожение данный Интернет
dwm. От статики к динамике
Установил Solaris
Новая Дискуссия:
Нужен ли русский Linux?
19 декабря
SQL Anywhere: встраиваемая СУБД
CITKIT.ru:
В разделе Блогометки появились рубрики:
Десктопы
Приложения
Системы
Подробно о разделе: Блоги уничтожение данный блогометки: открываем сезон промывки
13 декабря
CitCity:
Microsoft уничтожение данный Барселона: сюрреализм?
CITKIT.ru:
Открыт новый раздел Блогометки
ZFS в подробностях. 1. Былое уничтожение данный ныне
5 декабря
Архитектура предприятия: основные определения
Архитектуры для государственных ведомств. Примеры
Обзор журнала Computer:
Высокопроизводительные встроенные системы
CITKIT.ru:
Продолжение цикла Linux для начинающих:
Пользовательские интерфейсы
Файлы
Системы настройки
Все публикации >>>
На правах рекламы:
Эффективные модели данных ключ к успеху в бизнесе
Все публикации >>>
IT-консалтинг
Software Engineering
Программирование
СУБД
Безопасность
Internet
Сети
Операционные системы
Hardware
Информация для рекламодателей
PR-акции, размещение рекламы - pr@citforum.ru, тел. +7 495 4119920, ICQ 232284597
Пресс-релизы - pr@citcity.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2007 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме уничтожение данный какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...
разделы
толщиномер
очки ночной видение
брэнд
флюоресцентный краска
пвс
шапка доставка
man гильза
стелаж пищеблок
средство самооборона
sharp ar-5415
промывка инжектор
покраска аэротенк
метрореклама нижнийновгород
тонирование стеклопакетов
автоматический резка
центр консультирование
трехмерный презентация
подгонный компенсатор danfoss
бюро переводчик
химчистка доставка
организовать рассылка
обед
светоотражающий краска
фирменный цвет
купить нипель
цвет dufour
любимый цвет
холодильник либхер
доломит
плазменный панель настенный
георешетка
инвертор
магнитный доска
фарфор
узи сделать
красный объявление
выборочный уф-лак
southpark
клеить 88 люкс
фирменный цвет
банковский ячейка
электроинструмент metabo
промывка инжектор
купить fifa 2006
домашний очаг здоровье
луковичный цвет
лак orly
аденома предстательный железа
лекарство рак
стелажи
кс-4361а
холодильник уценка
заказ обед
экг сервис
кайт серфинг
эфирный антенна funke
индивидуальный банковский ячейка
цвет гармония
медикаметозное безоперационное прерывание беременность
персонализация карта
папиллома
мусорный пакет
купить раструб
решетка дренажный
эдас-934 аденома предст.ж-зы
циклон батарейный
жила кострома
кострома риелтор
метробонд
золотник 264-27-00
срезанный цвет
корпоративный хранилище данный спирли
кайт пилотажный
циклон цол
спецобувь
ивановец
масло облепих.концентрат
доставка напиток
мрт коленный сустав
доломит
фактурный краска
купить стиральный
маска косметический
два цвет
программа шифрование
басейны intex
снос любой конструкция
северский доломит
gislaved отзыв
шампанский заказ
решетка оцинкованный
озеленение
ваза 2112
продажа кофе
qtek
тонирование окон
задний зеркало
гайковерт
оформление свадеб
штанга насосный
спецобувь
купить элеваторный узел
мигрень
braas
купить конвертер
измеритель петля фаза нуль
фирменный флаг
1с бюджетирование
лак краска
миканитовые втулка
машина r-600
ичп пбоюл
зиплок
кулер 754
автоинформатор
внешний антенна
лидо пекарня
помидор купля
втулка переходный
рассылка
курьерский почта
ротационный rvg
изготовление пленка
100 девчонка одна лифт
три цвета: синий
билет задорнов
дезинфекция белье
облицовка панель
международный конкурс дебютант
этнический психология
красный объявление
gislaved отзыв
зиплок
видеосъемка торжество
геомаш-центр
газонокосилка elmos
узи
sikkens краска
фасадный покрытие
восстановление файл
эдас-134 аденома предст.ж-зы
фейрверк вечеринка
вилатерм
купить nokia 8910
тонировка
близорукость
8800 white gold
охота зверь
стенд
монетница
уцененный холодильник
mobil cut
электротельфер
mobil pegasus
адресный база данный
медикаментозный прерывание беременность
холодильный централь
цвет город
вал редуктор поворот
карбид кальций
мультиметры цифровой
этнический психология
ваза 2115
георешетка
теплолюкс
купить fifa 2006
мэш
схема зал вахтангова
карбид кальций
скс
заказать микроавтобус
кухонный техник
помидор купля
квантовый медицина
сушильный машина frigidaire
озонатор воздуха
билет балет
вымпел заказ
агат кристи билет
omega
уничтожение данный