Метод редукции тестового набора для интеграционного тестирования тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат физико-математических наук Кичигин, Дмитрий Юрьевич

  • Кичигин, Дмитрий Юрьевич
  • кандидат физико-математических науккандидат физико-математических наук
  • 2010, Москва
  • Специальность ВАК РФ05.13.11
  • Количество страниц 148
Кичигин, Дмитрий Юрьевич. Метод редукции тестового набора для интеграционного тестирования: дис. кандидат физико-математических наук: 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей. Москва. 2010. 148 с.

Оглавление диссертации кандидат физико-математических наук Кичигин, Дмитрий Юрьевич

ВВЕДЕНИЕ.

Регрессионное интеграционное тестирование.

Актуальность.

Цель работы.

Структура и краткое содержание работы.

ГЛАВА 1. ОБЗОР СУЩЕСТВУЮЩИХ РЕШЕНИЙ.

Редукция набора тестов для регрессионного интеграционного тестирования программного обеспечения.

Регрессионное тестирование программного обеспечения.

Выборочное регрессионное тестирование.

Классификация методов выборочного регрессионного тестирования.

Выборочное регрессионное интеграционное тестирование программного обеспечения.

Обзор методов редукции набора тестов в контексте задач регрессионного интеграционного тестирования.

Метрики адекватности тестовых наборов.

Методы, использующие метрики обнаружения ошибок.

Методы, использующие структурные метрики.

Выводы.

ГЛАВА 2. ПРЕДЛАГАЕМЫЙ МЕТОД.

Класс рассматриваемых взаимодействий и интеграционные ошибки.

Обоснование и формулировка метода.

Общая характеристика метода.

Модель взаимодействия между двумя модулями на тесте.

Алгоритм редукции набора тестов.

Отношение эквивалентности между моделями взаимодействий.

Адаптируемость метода для учета параметров других типов.

Оптимизация метода.

Сбор трасс взаимодействий.

Условия применения метода.

Методика применения метода.

Область применимости метода.

Экспериментальное исследование.

Организация экспериментального исследования.

Исследование основных характеристик метода.

Исследование адаптируемости метода для учета параметров функций других типов.

Оценка влияния размера окна на работу метода и оценка затрат ресурсов при работе метода.

Выводы.

ГЛАВА 3. АПРОБАЦИЯ НА ТЕСТОВОМ НАБОРЕ LSB APPLICATION

BATTERY.

Тестовый набор LSB Application Battery.

Экспериментальное исследование метода на задаче сокращения тестового набора LSB Application Battery.

Цели исследования.

Тестируемое взаимодействие.

Условия проведение эксперимента.

Проведение эксперимента.

Результаты.

Программная реализация.

Архитектура.

Схема работы.

Адаптируемость к другим средам выполнения и для учета других типов параметров.

Выводы.

Рекомендованный список диссертаций по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Введение диссертации (часть автореферата) на тему «Метод редукции тестового набора для интеграционного тестирования»

РЕГРЕССИОННОЕ ИНТЕГРАЦИОННОЕ ТЕСТИРОВАНИЕ

Для современного программного обеспечения, характеризующегося большим объемом и функциональностью, задача обеспечения качества, в частности, корректности и надежности, становится все сложнее. Современные программные комплексы базируются на принципе модульности: создаваемое ПО разбивается на модули, разрабатываемые как силами коллектива разработчиков, так и поставляемые независимыми производителями в виде готовых бинарных программных компонент, и затем интегрируемые вместе. Модульный подход не только позволяет облегчить и оптимизировать процесс разработки ПО, но также систематизировать и повысить эффективность тестирования разрабатываемого ПО, так как тестирование можно проводить на уровне модулей, подсистем и системы в целом. При этом качество и надежность программного обеспечения в значительной степени определяются корректностью взаимодействия различных модулей программного обеспечения между собой.

Одним из основных процессов, направленным на обеспечение корректности взаимодействия модулей при создании и последующих модификациях программного обеспечения, является проведение интеграционного и, особенно, регрессионного интеграционного тестирования. Регрессионное интеграционное тестирование должно осуществляться регулярно в ответ на внесение модификаций в ПО и, в этом случае, способно надежно обеспечивать корректность интеграции модулей: Для проведения регрессионного интеграционного тестирования должны использоваться специализированные интеграционные тесты, целью которых является проверка взаимодействия интегрируемых модулей. Однако на практике создание таких тестов достаточно сложно и трудоемко, поэтому распространенным подходом является использование существующих регрессионных тестов, изначально созданных для модульного и системного тестирования. Такой подход позволяет сэкономить ресурсы на создании специализированных регрессионных интеграционных тестов, однако является неэффективным: так как используемые в этом случае регрессионные тесты изначально не создавались специально для интеграционного тестирования, на практике только часть таких запускаемых тестов тестирует взаимодействие между интегрируемыми модулями, а оставшаяся часть тестов работает «вхолостую», лишь потребляя ресурсы. Ситуация значительно усугубляется в случае регрессионного интеграционного тестирования крупных программных комплексов: как правило регрессионные тесты для такого программного обеспечения достаточно сложны и требуют больших ресурсов, что значительно увеличивает потери ресурсов на запуске тестов, не тестирующих требуемое взаимодействие между интегрируемыми модулями.

АКТУАЛЬНОСТЬ

Для решения обозначенной выше проблемы используется подход, известный как редукция набора тестов, и заключающийся в выборе из исходного набора подмножества тестов, специально фокусирующегося на тестировании межмодульных взаимодействий. Редукция набора тестов ставит своей целью отбор набора тестов меньшего размера для тестирования выбранного взаимодействия между модулями, но при этом, желательно, с такой же, как и у исходного набора тестов, способностью обнаруживать интеграционные ошибки в выбранном взаимодействии. Традиционный подход к редукции набора тестов заключается в «отсеивании» тестов из первоначального набора таким образом, чтобы сохранялся уровень его адекватности в терминах некоторого выбранного критерия адекватности. Для оценки адекватности набора тестов, большинство существующих методов используют метрики адекватности, основывающиеся на статическом анализе и/или инструментировании исходного текста ПО, что обусловливает их ограничения:

1. Непрактичность использования для программного обеспечения большого объема. Инструментирование исходного кода может быть достаточно нетрудоемким для программного обеспечения состоящего из нескольких модулей, однако инструментирование исходного кода для ПО, состоящего из нескольких тысяч модулей, гораздо более сложная и затратная процедура. Эта особенность делает редукцию набора тестов непрактичной для ПО большого объема [52].

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

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

ЦЕЛЬ РАБОТЫ

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

1. Исследовать виды взаимодействия между модулями ПО и типичные для этих видов интеграционные ошибки;

2. Разработать модель процесса взаимодействия интегрируемых модулей, адекватную задаче анализа взаимодействия модулей при запуске различных тестов;

3. Разработать метод редукции регрессионного тестового набора, основанный на сравнении моделей процесса взаимодействия, построенных на информации, полученной при прогоне тестового набора;

4. Разработать экспериментальную систему редукции набора тестов; испытать метод и оценить его эффективность на наборах тестов, использующихся для тестирования индустриального программного обеспечения.

СТРУКТУРА И КРАТКОЕ СОДЕРЖАНИЕ РАБОТЫ

Диссертационная работа состоит из 3 глав. В первой главе рассматривается понятие регрессионного тестирования, заключающегося в повторном тестировании программного обеспечения с целью убедиться, что внесенные изменения не привели к неожидаемым эффектам, и необходимость проведения регрессионного тестирования в процессе сопровождения программного обеспечения. Отмечается, что важной особенностью регрессионного тестирования является наличие существующего набора тестов. Формулируются принципы выборочного регрессионного тестирования и показывается перспективность этого подхода для повышения эффективности регрессионного тестирования, достигаемого вследствие уменьшения затрат ресурсов, требуемых для достижения целей регрессионного тестирования. Также приводится классификация методов редукции набора тестов для проведения выборочного тестирования, и рассматриваются принципы оценки таких методов. После этого подробно рассматриваются особенности выборочного тестирования при проведении регрессионного интеграционного тестирования с использованием бинарных программных компонент, в частности, делается вывод о том, что в реальных крупных системах встречается дополнительное ограничения на доступ к исходному коду таких компонент, что, в свою очередь, предъявляет дополнительные требования к методам редукции набора тестов. После этого приводится детальный обзор существующих методов редукции набора тестов для регрессионного интеграционного тестирования. Отмечается, что в литературе встречается мало методов редукции для интеграционного тестирования. Большинство методов редукции набора тестов для интеграционного тестирования является адаптацией существующих методов для модульного тестирования. Показывается, что используемые методами метрики покрытия основываются на анализе исходного кода, вследствие чего для работы методов редукции требуется наличие исходного кода тестируемого программного обеспечения. В результате показывается, что традиционные методы сокращения набора тестов оказываются неадекватны для случая интеграционного тестирования в условиях ограничений на доступ к исходному коду программного обеспечения.

Во второй главе рассматривается разработанный метод редукции набора тестов для интеграционного тестирования. В начале главы описывается класс рассматриваемых в данной . работе взаимодействий и приводится классификация интеграционных ошибок.

После этого приводится описание разработанного метода редукции. В основе предлагаемого метода редукции лежит эвристический алгоритм минимизации исходного набора тестов. Данный алгоритм базируется на предположении, что, если покрытие точек взаимодействия между интегрируемыми модулями на двух тестах одинаково, то возможности этих тестов по выявлению интеграционных ошибок между этими интегрируемыми модулями также одинаковы. В частности, если тесты вообще не задействуют точки взаимодействия между модулями, то такие тесты не представляют пользы при тестировании взаимодействия. Метод основан на этих предположениях и состоит в «отсеивании» тех тестов, которые создают эквивалентные покрытия точек взаимодействия модулей. В качестве точек взаимодействия принимаются интерфейсные функции интегрируемых модулей. Для оценки покрытия точек взаимодействия используются модели процесса взаимодействия модулей, в основе которых лежат последовательности вызовов интерфейсных функций интегрируемых модулей, произведенных во время работы программного обеспечения на наборе тестов. Описание метода состоит из трех частей: вначале описывается модель анализируемого процесса взаимодействия; затем описывается способ сравнения моделей; в завершение описывается алгоритм редукции, использующий модели взаимодействия и предложенный способ сравнения моделей для принятия решения какой тест следует «отсеять» из исходного тестового набора, а какой - нет.

Описание модели процесса взаимодействия начинается с определения основных используемых терминов: таких как понятие интерфейсной функции, трассы взаимодействия двух модулей на тестовом варианте, и последовательности интерфейсных функций длины К. Интерфейсными функциями называются функции, входящие в состав программного интерфейса модуля программного обеспечения. Трассой взаимодействия модулей А и В на тесте t называется последовательность записей, каждая из которых соответствует вызову интерфейсной функции модуля В модулем А при выполнении тестируемого программного обеспечения на тесте t. Последовательностью интерфейсных функций длины К называется любая непрерывная последовательность вызовов интерфейсных функций длины К, встречающаяся в трассе взаимодействия. После этого определяется модель процесса взаимодействия модулей на тесте t (далее по тексту модель взаимодействия) как множество всех возможных последовательностей длины К, встречающихся в трассе взаимодействия между модулями А и В на тесте t.

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

В завершение описания предложенного метода редукции приводится описание алгоритма редукции, используемого в предложенном методе, и использующего модели взаимодействия и предложенное отношение эквивалентности между моделями для принятия решения, какой тест следует «отсеять» из исходного тестового набора, а какой — нет.

После этого приводится описание проведенной оптимизации метода редукции. Описанный выше метод редукции обладает вычислительной сложностью, максимальная оценка которой составляет: 0(Т2 х N2K х К), при этом максимальный объем памяти, используемой для хранения модели в памяти компьютера, составляет: 0(Г х NK х К), где: Т - количество тестов; К -размер окна; N - количество интерфейсных функций. Для улучшения этих показателей была проведена оптимизация метода, заключающаяся в том, что табличное представление модели взаимодействия было заменено древовидным, при котором модель взаимодействия представляется в форме дерева, где каждой последовательности вызовов интерфейсных функций соответствует путь в дереве от корня до одного из листовых узлов. Такое представление позволило уменьшить сложность алгоритма до О (Г2 х NK х log(A^) х К) , а

NK+X -N максимальный объем используемой памяти до 0(Т х —~—~—).

После описания метода редукции приводятся условия применения, методика применения, и область применимости предложенного метода.

В конце главы приводится описание экспериментального исследования предложенного метода редукции. Поскольку в основе предложенного метода лежит эвристический подход, его работоспособность, область применимости, эффективность должны быть проверены на больших программных системах. В работе были исследованы основные характеристики метода, такие как коэффициент сокращения набора и коэффициент обнаружения ошибок, и проведено сравнение предлагаемого метода редукции набора тестов с методом случайной редукции и с методом редукции пустых трасс по этим характеристикам, были исследованы системы с различными типами интерфейсных функций и их параметров. Статистика, полученная на программных системах общим объемом в 5.9 миллиона строк на языке Си, показала, что метод применим для широкого класса программных систем и дает существенно более высокую эффективность по сравнению с известными методами.

В третьей главе описывается проведенная апробация метода редукции набора тестов на задаче сокращения индустриального тестового набора LSB Application Battery. В первом параграфе описывается тестовый набор LSB Application Battery и особенности проведения тестирования с его помощью. Второй параграф посвящен экспериментальному исследованию предложенного метода сокращения набора тестов на тестовом наборе LSB Application Battery. В данном исследовании в дополнение к основным характеристикам метода редукции также оценивается выигрыш в затратах ресурсов при проведении тестирования при использовании набора тестов, построенных с помощью предлагаемого метода. В третьем параграфе описывается экспериментальная программная реализация предложенного метода редукции, рассматриваются архитектура и схема работы экспериментальной системы. В заключении формулируются основные результаты.

Похожие диссертационные работы по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Заключение диссертации по теме «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», Кичигин, Дмитрий Юрьевич

Основные результаты диссертационной работы, выносящиеся на защиту, заключаются в следующем:

1. Разработана новая модель процесса взаимодействия модулей на основе метода «скользящего окна» по трассе вызовов интерфейсных функций;

2. Предложено и обосновано отношение эквивалентности между процессами взаимодействия модулей на основе предложенной модели и дано формальное доказательство его корректности;

3. Разработан новый метод редукции регрессионного тестового набора, основанный на сравнении моделей процесса взаимодействия, построенных по трассе вызовов интерфейсных функций;

4. Разработана экспериментальная система, реализующая метод редукции тестового набора.

Разработанный в работе метод редукции тестового набора значительно расширяет область применения методов редукции наборов тестов, делая их применимыми при регрессионном тестировании взаимодействий с участием готовых программных компонент, поставляемых без исходного кода. Практическая ценность предлагаемого метода доказана успешным применением метода для редукции набора тестов для регрессионного тестирования взаимодействий осуществляемых через интерфейсы функций со скалярными параметрами и указателями. Проведенный на примере вычислительной системы на базе распространенной операционной системы SUSE Linux Enterprise Desktop vl0.2 анализ структуры интерфейсов системного и прикладного программного обеспечения, показал, что доля таких интерфейсов составляет порядка 96% от общего числа программных интерфейсов, что подтверждает широкую область применения предлагаемого метода. Кроме того, проведенные исследования подтвердили, что данный метод также может быть успешно адаптирован к интерфейсам функций, содержащих не только скалярные параметры и указатели, но и любые другие параметры.

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

Данные результаты опубликованы в 4 печатных работах [83,84,85,86].

ЗАКЛЮЧЕНИЕ

Список литературы диссертационного исследования кандидат физико-математических наук Кичигин, Дмитрий Юрьевич, 2010 год

1. Владимиров М.А. Критерии полноты тестового покрытия в генетических алгоритмах генерации тестов // Труды Института системного программирования РАН. Том 9. 2006. сс.57-66.

2. Епифанов Н.А. Методы Реализации Регрессионного Тестирования по Расширенным Тестовым Наборам // Диссертация на соискание учёной степени кандидата технических наук, Санкт-Петербургский Государственный Политехнический Университет, Санкт-Петербург, 2003.

3. Иванников В.П., Петренко А.К. Задачи верификации ОС Linux в контексте ее использования в государственном секторе // Труды Института системного программирования РАН. Ноябрь, 2006, сс. 9-14.

4. Кострикин А.И. Введение в алгебру. Основы алгебры // М. Наука. 1994. 320с.

5. Котляров В. П., Епифанов И. А., Некрасов А. О., Коликова Т. В. Основы современного тестирования программного обеспечения, разработанного на С# // СПб., СПбГТУ, Нестор, 2003, 86с.

6. Котляров В.П., Коликова Т.В. Основы тестирования программного обеспечения // М.: Интернет-Университет Информационных Технологий, БИНОМ. 2006. 285с.

7. Курош А.Г. Лекции по общей алгебре // Издание второе. М.Наука.1973. 400с.

8. Лаврищева Е.М., Петрухин В.А. Методы и средства инженерии программного обеспечения: Учебник // МФТИ (ГУ), Москва. 2006.

9. Липаев В. В. Тестирование программ // М., Радио и связь, 1986.

10. Липаев В. В., Позин Б.А., Штрик А.А. Технология сборочного программирования // Под ред. В.В.Липаева. М., Радио и связь, 1992.

11. Майерс Г. Надежность программного обеспечения (пер. с англ. под ред. В.ШКауфмана) //М.:Мир, 1980. 360с.

12. Майерс Г. Искусство тестирования программ (пер. с англ.) // М.: Финансы и Статистика, 1982. 178с.

13. Петренко А., Петренко О., Бритвина Е., Грошев С., Монахов А. Тестирование на основе моделей // Открытые Системы. #09, 2003, сс. 41-47.

14. Силаков Д. В. Текущее состояние и перспективы развития инфраструктуры LSB // Труды Института системного программирования РАН. 2007.

15. Шимаров В. А. Тестирование программ: цели и особенности инструментальной поддержки // Программное обеспечение ЭВМ / АН БССР, Институт математики, Минск, 1994, № 100, сс. 19-43.

16. Abdullah К., Kimble J.E.Jr., White L.J. Correcting for unreliable regression integration testing // ICSM 1995: pp. 232-241.

17. American National Standards Institute. Programming Language C. ANSI standard X3.159-1989 // ANSI, December 1989.

18. ANSI/IEEE Std 829-1998, IEEE Standard for Software Test Documentation // The Institute of Electrical and Electronics Engineers, New York, 1998.

19. ANSI/IEEE Std 610.12-1990, IEEE Standard Glossary of Software Engineering Technology // The Institute of Electrical and Electronics Engineers, New York, 1990.

20. Bentley W.G., Miller E.F. CT coverage initial results // Softw. Quality J. 2, 1, 1993. pp. 29-47.

21. Bible J., Rothermel G., Rosenblum D.S. A comparative study of coarse- and fine-grained safe regression test-selection techniques // ACM Transactions on Software Engineering and Methodology (TOSEM), v. 10 n.2, April 2001, p. 149183.

22. Budd T.A., Lipton R.J., Sayward F.G., DeMillo R.A. The design of a prototype mutation system for program testing. In Proceedings of National Computer Conference, 1978. pp. 623-627.

23. С library to perform Input/Output operations. http://www.cplusplus.com/reference/clibrary/cstdio/

24. Christmansson J., Chillarege R. Generation of an Error Set that Emulates Software Faults Based on Field Data// FTCS'26, Sendai, Japan, 1996, pp. 304313.

25. Cornett S., Code Coverage Analysis, 2002 http://www.bullseye.com/coverage.html

26. Cotroneo D., Natella R., Pecchia A., Russo S. An Approach for Assessing Logs by Software Fault Injection // Suppl. Proc. IEEE International Conference on Dependable Systems and Networks, 2009, A15-A20.

27. Delamaro M.E., Maldonado J.C., Mathur, A.P. Interface Mutation: an approach to integration testing // IEEE TSE, Vol. 27, No. 3, March 2001, pp.228-247.

28. DeMillo R.A., Lipton R.J., Sayward F.G. Hints on test data selection: Help for the practising programmer// Computer 11, April 1978. pp.34-41.

29. DeMillo R.A., Guindi D.S., McCracken W.M., Offutt A.J., King, K.N. An extended overview of the Mothra software testing environment // In Proceedings of SIGSOFT Symposium on Software Testing, Analysis and Verification 2, July, 1988. pp. 142-151.

30. Documentation for GNU Assembler 2.17, 2006. http://sourceware.org/binutils/docs-2.17/as/index.html

31. Duraes J.A., Madeira H.S. Emulation of Software Faults: A Field Data Study and a Practical Approach // IEEE Transactions on Software Engineering, Vol.32, No. 11, Nov. 2006, pp. 849-867.

32. Elbaum S., Malishevsky A.G., Rothermel G. Prioritizing test cases for regression testing // Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis, Portland, Oregon, United States, August, 2000, pp. 102-112.

33. Filesystem Hierarchy Standard, http://www.pathname.com/fhs/

34. Forrest S., Hofmeyr S.A., Somayaji A., Longstaff T.A. A Sense of Self for Unix Processes // IEEE Symposium on Computer Security and Privacy, Los Alamos, CA, 1996, pp.120-128.

35. FSF/UNESCO Free Software Directory Website, GNU Binutils Collection of binary utilities, 2006. http://directory.fsf.org/GNU/binutils.html

36. GCCXML Website, http://www.gccxml.org/

37. Gettys J., Scheifler R.W. Xlib С Language X Interface, XWindow System Standard, X Version 11, Release 6.7. http://www.x.org/docs/Xl 1/xlib.pdf

38. GNU С Library, GNU Project, Free Software Foundation (FSF), Inc. http://ftp.gnu.org/gnu/glibc/

39. Goodenough, J. B. and Gerhart, S. L. Toward a theory of test data selection // IEEE Trans. Softw. Eng. SE-3 (June). 1975.

40. Gourlay, J. A mathematical framework for the investigation of testing // IEEE Trans. Softw. Eng. SE-9, Nov. 1983, pp. 686-709.

41. Harrold M.J., Soffa M.L. Selecting and Using Data for Integration Testing // IEEE Softw. 8, 2 (Mar. 1991), 1991, pp.58-65.

42. Harrold M.J., Gupta R., Soffa M.L. A methodology for controlling the size of a test suite // ACM Transactions on Software Engineering and Methodology (TOSEM), v.2 n.3, July 1993, pp.270-285.

43. Hiller M., Christmansson J., Rimen M., An experimental comparison of fault and error injection // In Proceedings of the IEEE International Symposium on Software Reliability Engineering (ISSRE '98), 1998, pp. 369-378.

44. Hoftneyr S.A., Forrest S., Somayaji A. Intrusion Detection using Sequences of System Calls // Journal of Computer Security, 6, 1998, pp. 151-180.

45. Howden W. E. Reliability of the path analysis testing strategy // IEEE Trans. Softw.Eng. SE-2, Sept. 1976, pp. 208-215.

46. Hunt G., Brubacher D. Detours: binary interception of Win32 functions // Proceedings of the 3rd USENIX Windows NT Symposium, Seattle, WA, July 1999, pp. 135-143.

47. Java(TM) Virtual Machine Tool' Interface (JVM TI) http://java.sun.c0m/javase/6/d0cs/techn0tes/guides/jvmti/

48. Jin Z., Offutt J. Integration testing based on software couplings. // In Proceedings of the Tenth Annual Conference on Computer Assurance (COMPASS 95), Gaithersburg, MD: IEEE Computer Society Press, June 1995, pp. 13-23.

49. Jin Z., Offutt J. Coupling-based criteria for integration testing // The Journal of Software Testing, Verification, and Reliability, 8(3), September 1998, pp. 133154.

50. Jones J.A., Harrold MJ. Test-Suite Reduction and Prioritization for Modified Condition/Decision Coverage //IEEE Transactions on Software Engineering, vol. 29, no. 3, Mar. 2003, pp. 195-209.

51. Kim J. M., Porter A., Rothermel G. An empirical study of regression test application frequency // Proceedings of the 2000 International Conference on Software Engineering, 2000, pp. 126-135.

52. Kim Y.W. Efficient use of code coverage in large-scale software development // Proceedings of the 2003 conference of the Centre for Advanced Studies on Collaborative research, IBM Press, 2003, pp. 145-155.

53. King K.N., Offutt A.J. A Fortran language system for mutation-based software testing // Softw. Pract. Exper. 21,7 (July), 1991, pp. 685-718.

54. Leung H., L. White. A study of integration testing and software regression at the integration level // Int. Conf. on Sofware Maintenance, (San Diego), 1990, pp. 290-301.

55. Leung H. K. N., White L, J. A cost model to compare regression test strategies // Proceedings of the Conference^ Software Maintenance, 1991, pp. 201 208.

56. Linux Standard Base Desktop Specification 3.1.0 // Free Standards Group. April 24, 2006. http://refspecs.linux-foundation.Org/LSB3.l.0/

57. Linux Standard Base (LSB) pages // The Linux Foulzehl elation http://www.linuxfoundation.org/en/LSB

58. Linux Standard Base Application Battery pages // The Linux FouLmL<3.ation http://www.linuxfoundation.org/appbat/

59. LSB Database Home pages // The Linux Fouceilelation http://ispras.linuxfoundation.org/index.php/LSBDatabaseHome

60. Ma X., He Z., Sheng В., Ye C. A Genetic Algorithm for Test-Suite Re<±Txcrtion // 2005 IEEE International Conference on Systems, Man and Cybernetics^ "Vol 1 Oct. 2005, pp: 133- 139.

61. Madeira H., Vieira M., Costa D. On the Emulation of Software F^ojQts by Software Fault Injection // Proc. Int'l Conf. Dependable Systems and N^srtrvvorks (DSN '00), 2000, pp. 417-426.

62. McCabe T.J. A complexity measure // IEEE Transactions on Software Engineering, SE-2, #4, 1976, p.308-320.

63. McMaster S., Memon A. Call Stack Coverage for Test Suite Reduction /V ICSM 21st IEEE International Conference on Software Maintenance (ICSM'O-ST^ 2005 pp.539-548.

64. McMaster S., Memon A., Call Stack Coverage for GUI Test-Suite Redxxction // Proceedings of the 17th International Symposium on Software Reliability Engineering, November, 2006, p.33-44.

65. Pietrek M. The .NET Profiling API and the DNProfiler Tool // MSDN IVTeigazine,

66. Dec. 2001, http://msdn.microsoftxoni/msdrmiag/issues/0l/l2/hood/defaTjtILl:.aspx

67. Rapps S., Weyuker E.J. Selecting Software Test Data Using Data. Flow Information // IEEE Transactions on Software Engineering, vol. II, no. -4э ДрГ 1985, pp. 367-375.

68. Rothermel, G. Efficient, effective regression testing using safe test selection techniques. Ph.D. Dissertation // Clemson University, Clemson, SC. 1996.

69. Rothermel, G., Harrold M. J. Analyzing regression test selection techniques // IEEE Trans. Softw. Eng. 22, Aug. 1996, pp. 529-551.

70. Rothermel G., Harrold M.J., von Ronne J., Hong C. Empirical studies of test-suite reduction // Journal of Software Testing, Verification, and Reliability, V. 12, no. 4, December, 2002.

71. Rountev A., Kagan S., Sawin J. Coverage criteria for testing of object interactions in sequence diagrams // In Fundamental Approaches to Software Engineering, LNCS 3442, 2005, pp. 282-297.

72. Shimarov V. A. Definition and quantitative estimation of testing criteria // Software Quality Concern for people. Proceedings of the Fourth European Conference on Software Quality. October 17-20, Basel, Switzerland, 1994, pp. 350 -360.

73. SUSE Linux Enterprise pages, www.novell.com/linux/

74. Warrender C., Forrest S., Pearlmutter B. Detecting Intrusions Using System Calls: Alternative Data Models // IEEE Symposium on Security and Privacy, IEEE Computer Society, Oakland, CA, 1999, pp. 133-145.

75. Willmor D., Embury S.M. A Safe Regression Test Selection Technique for Database-Driven Applications' // Proceedings of the 21st IEEE International Conference on Software Maintenance (ICSM'05), September 2005, pp.421-430.

76. Wong W.E., Horgan J.R., London S.A., Mathur A.P. Effect of test set minimization on faults detection effectiveness // Proceedings of the 17"' International Conference on Software Engineering, 1995, pp. 41 50.

77. X.Org Foundation. Releases / Download page. http://www.x.org/wiki/Releases/Download

78. Zhu H. Adequate Testing of Computer Software // An Online Book on Software Testing. August 1995, http://cms.brookes.ac.uk/staff/HongZhu/testbookweb/chOO.html.

79. Zhu H., Hall P.A.V., May J.H.R. Software Unit Test Coverage and Adequacy // ACM Computing Surveys, Vol.29, No.4, December 1997, pp.366-427.

80. Кичигин Д.Ю. О применении подходов Data Mining для обнаружения вторжений // Программные системы и инструменты. Тематический сборник № 4, ВМиК МГУ, 2003 год, сс. 122-134

81. Kichigin D. Test Suite Reduction for Regression Testing of Simple Interactions between Two Software Modules // In Proceedings of Spring Young Researchers Colloquium on Software Engineering (SYRCoSE 2007). Volume 2, ISP RAS, 2007, pp. 31-37.

82. Кичигин Д.Ю. Об одном методе сокращения набора тестов // Сборник трудов ИСП РАН. М: ИСП РАН, 2007, сс.79-92.

83. Кичигин Д.Ю. Метод редукции тестового набора для регрессионного интеграционного тестирования // Журнал РАН «Программирование», Номер 5, 2009, сс. 57-66.

84. Dmitry Kichigin. A Method for Test Suite Reduction for Regression Testing of Interactions between Software Modules // Springer-Verlag, Lecture Notes in Computer Science, Volume 5947, 2010, pp. 177-184.

Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.