Метод и средства автоматизации тестирования интерфейса программирования приложения тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат технических наук Бирюков, Сергей Вячеславович

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

Оглавление диссертации кандидат технических наук Бирюков, Сергей Вячеславович

Введение.

1. Аналитический обзор существующих подходов к автоматизации тестирования интерфейса программирования приложения.

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

1.2. Стратегии построения тестов.

1.2.1. Поведенческое тестирование.

1.2.2. Структурное тестирование.

1.3. Тестирование на основе модели программного обеспечения.

1.4. Существующие средства и подходы к автоматизации тестирования интерфейса программирования приложения.

1.4.1. Автоматизированное модульное тестирование.

1.4.2. Генераторы шаблонов интерфейсных функций.

1.4.3. Технология ишТеэК.

1.4.4. Технология АвтЬ.

1.5. Особенности тестирования интерфейса программирования приложения.

1.6. Постановка задачи автоматизации тестирования интерфейса программирования приложения.

1.7. Форматы спецификаций интерфейса программирования приложения

1.8. Выводы.

2. Разработка метода автоматизации тестирования интерфейса программирования приложения.

2.1. Определение совокупности действий метода.

2.2. Разработка и построение унифицированной модели на основе спецификации.

2.3. Расширение унифицированной модели функциональными требованиями к интерфейсу программирования.

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

2.5. Разработка алгоритма оптимизации тестов.

2.6. Выводы.

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

3.1. Программная реализация метода автоматизации тестирования интерфейса программирования приложения.

3.1.1. Основные требования к программной реализации.

3.1.2. Структурная схема программной системы.

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

3.1.4. Построитель унифицированной модели.:.

3.1.5. Обходчик унифицированной модели.

3.1.6. Генератор тестов.

3.1.7. Оптимизатор тестов.

3.2. Результаты экспериментальных исследований метода автоматизации тестирования интерфейса программирования приложения.

3.2.1. Методика проведения экспериментальных исследований.

3.2.2. Анализ влияния параметров обхода модели на качество набора тестов

3.2.3. Анализ влияния использования значений по умолчанию на качество набора тестов.

3.2.4. Анализ эффективности оптимизации набора тестов.

3.2.5. Сравнительный анализ временных ресурсозатрат на получение набора тестов.

3.2.6. Сравнительный анализ эффективности набора тестов.

3.3. Результаты практической апробации метода для автоматизации тестирования программных библиотек макета комбинированной корреляционно-экстремальной системы навигации.

3.3.1. Структура программной системы моделирования.

3.3.2. Результаты тестирования программых библиотек наземной части КЭНС

3.4. Выводы.

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

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

Актуальность темы. В настоящее время необходимость систематизированного тестирования в промышленной разработке программного обеспечения (ПО) общепризнанна и неоспорима. Традиционные методы разработки тестов вручную уже не могут обеспечить качественное тестирование современных программных систем. Появляется все большее число методик автоматизации и инструментальных средств, направленных на повышение качества и сокращение ресурсозатрат на тестирование ПО. Недостаточно хорошо проведенное тестирование может нанести серьезный урон проекту в целом. Устранение ошибки на стадии сопровождения готового ПО обходится в среднем в 200 раз дороже, чем на стадии определения требований, а в результате позднего выявления ошибок общий бюджет проекта возрастает на 30-40% [1].

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

Под интерфейсом программирования приложения (Application Programming Interface, API) понимается набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах[2]. Детали реализации API при этом, как правило, скрыты. Помимо понятия «интерфейс программирования приложения» в литературе встречаются термины .«прикладной программный интерфейс»[3], «интерфейс прикладного программирования»^], которые являются синонимами. Примерами API могут служить библиотеки функций (COM DLL, .NET assembly), webсервисы, встроенные средства программирования приложений (YBA б MS Office).

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

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

Зачастую методы интерфейса оперируют данными сложного типа в качестве параметров. Эти данные не могут быть созданы напрямую, а должны быть получены в результате работы других методов. Например, в JavaScript API карт от Google[5] имеется интерфейсный метод Geocoder.geocode(.), принимающий в качестве параметра сложный объект GeocoderRequest. Объект GeocoderRequest создается отдельным методом-конструктором, при этом для создания этого объекта необходимо создать и передать конструктору сложные объекты LatLng и LatLngBounds. Таким образом, не всегда возможно независимое тестирование интерфейсных методов, необходимо уметь строить последовательности вызовов. Причем промежуточный результат должен быть пригодным для успешного вызова последующего метода в последовательности.

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

В последнее время определенный прогресс в автоматизации тестирования API достигнут в исследованиях в области моделирования программного обеспечения. Модели позволяют унифицировано описать структуру и функциональные требования к системам, а, значит, имеется возможность их обработки формальными методами. Вопросы применения моделей ПО для тестирования освещены в работах B.Beizer [15], H. Robinson [29], J. Whittaker [35] и других. Наиболее успешными технологиями, использующими идеи моделирования ПО для автоматизации тестирования, являются разработанная в Институте системного программирования РАН технология UniTESK [57, 58] и разработанная группой Microsoft Research технология AsmL [66, 67].

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

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

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

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

Объект исследований. Объектом исследования являются методы автоматизации тестирования интерфейса программирования приложения на основе модели, а также программные средства автоматизации тестирования на основе программных интерфейсов.

Целью настоящей работы является сокращение трудоемкости тестирования интерфейса программирования приложения.

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

Научная задача, решаемая в диссертации, - создание метода и алгоритмов универсальной среды тестирования программных интерфейсов, обеспечивающей сокращение трудоемкости тестирования АР1-интерфейсов.

Для достижения поставленной цели в диссертации решаются следующие задачи:

1) Провести анализ известных подходов к автоматизации тестирования интерфейса программирования приложения.

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

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

4) Разработать алгоритм обхода модели для генерации тестов.

5) Разработать алгоритм оптимизации тестов.

6) Разработать совокупность программных средств, объединенных в универсальную среду тестирования программных интерфейсов приложений.

7) Провести экспериментальные исследования и апробацию разработанного метода.

Научная новизна диссертации состоит в том, что в ней:

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

2) Разработан метод автоматизации тестирования интерфейса программирования приложения, отличающийся автоматизацией процесса построения модели АР1-интерфейса с расширением функциональными требованиями по его спецификации и этапа генерации кода тестов.

3) Впервые разработан алгоритм построения унифицированной модели, отличающийся наличием процедур разбора спецификации интерфейса, заданной в терминах ГОЬ, ЦМЬ или .1ЧЕТ-библиотеки.

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

5) Разработан алгоритм оптимизации тестов, отличающийся от известных способом выполнения оптимизации путем статического анализа тестового набора без изменения степени тестового покрытия.

Практическая ценность. В диссертации решена важная научная задача, заключающаяся в создании метода и алгоритмов автоматизации тестирования интерфейсов программирования приложений, позволяющего в сравнении с другими методами тестирования АР1-интерфейсов в 1,5-1,8 раза сократить временные затраты за счет автоматического построения модели на основе спецификации АР1 и генерации тестов с трансляцией в код без снижения качества тестового набора.

Практическая ценность работы подтверждается эффективностью применения предложенного метода и алгоритмов для тестирования программных библиотек макета корреляционно-экстремальной системы навигации в рамках научно-исследовательской работы №12405-8/533 «Исследования и разработка методов и средств высокоточного определения местоположения маневренных объектов по стереоскопическим изображениям местности и топогеодезической информации» (шифр* «Аксиома-ЮФУ»), что позволило сократить временные затраты на 65-75%.

Практическую ценность представляют разработанные программные модули разбора спецификаций API, построения модели API, обхода модели, генерации тестов, оптимизации тестов, объединенные в универсальную среду тестирования программных интерфейсов APITest.

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

Апробация работы. Результаты работы докладывались и обсуждались на Международных, Всероссийских и региональных научно-технических конференциях, в том числе на:

1) II Международной научно-практической Интернет-конференции «Инновационные подходы к применению информационных технологий в профессиональной деятельности», Белгород, 2010.

2) VII Всероссийской научно-практической конференции студентов, аспирантов и молодых ученых "Молодежь и современные информационные технологии", Томск, 2009.

3) VII Всероссийской конференции студентов, аспирантов и молодых ученых «Технологии Microsoft в теории и практике программирования», Таганрог, 2010.

4) II Ежегодной Всероссийской научно-практической конференции с международным участием «Перспективы развития информационных технологий». Новосибирск, 2010.

5) Всероссийской научно-технической конференции аспирантов, студентов и молодых ученых "Информатика и вычислительная техника - 2010". Ульяновск, 2010.

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

Публикации. Результаты, полученные в диссертации, нашли отражение в 12 печатных работах, среди них 7 статей (2 статьи в журналах перечня ВАК) и 1 свидетельство об официальной регистрации программы для ЭВМ №2010617638 «Программа автоматизации функционального тестирования интерфейса программирования приложения АРГГезЪ).

Структура работы. Материал основной части диссертационной работы изложен на 149 страницах. Диссертация состоит из введения, трех глав, заключения, списка литературы из 102 источников и приложений на 17 страницах.

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

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

3.4. Выводы

1) Разработаны программные средства универсальной среды тестирования программных интерфейсов АР1Тез1, содержащие модули разбора спецификаций АР1, построения модели АР1, обхода модели, генерации тестов, оптимизации тестов.

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

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

4) Исследования показали, что эффективность набора тестов может быть увеличена путем использования значений по умолчанию в доменах значений простых объектов. Кроме того, это позволяет избавиться от части ручного ввода перспективных в плане тестирования значений.

5) Полученные экспериментальным путем данные об эффективности оптимизации набора тестов свидетельствует о возможности сокращения исходного тестового набора до 1,5 раза без ухудшения качества.

6) Сравнительный анализ временных ресурсозатрат на получение тестовых наборов показал, что предложенный метод позволяет до 1,7 раз сократить временные затраты и до 3 раз уменьшить долю ручного труда по сравнению с другими модельными подходами за счет автоматического построения модели на основе спецификации АР1 и генерации тестов с трансляцией в код.

7) Проведенное формальное сравнение по критерию вводимых вручную строк кода разработанного метода с подходом на основе специализированных программ тестирования показывает, что использование системы АР1Тез1 с учетом времени на обучение работе с системой в 1,5-1,8 раз обеспечивает выигрыш в трудоемкости тестирования интерфейсных функций.

8) Апробация разработанного метода для автоматизации функционального тестирования программных библиотек макета корреляционно-экстремальной системы навигации позволила сократить временные затраты на 65-75% за счет автоматизации этапов построения модели, разработки и кодирования тестов.

ЗАКЛЮЧЕНИЕ

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

При проведении исследований и разработок в диссертационной работе получены следующие теоретические и прикладные результаты.

1. Показано, что сокращение трудоемкости тестирования программных интерфейсов возможно за счет автоматического построения модели интерфейса на основе спецификации в формате IDL, UML или метаданных библиотеки .NET.

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

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

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

5. Разработан алгоритм построения унифицированной модели, отличающийся наличием процедур разбора спецификации интерфейса, заданной в терминах ГОЬ, ИМЬ или метаданных ЛчГЕТ-библиотеки.

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

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

8. Разработаны программные средства универсальной среды тестирования программных интерфейсов АР1Тез1: модуль разбора спецификаций АР1, модуль построения модели АР1, модуль обхода модели АР1, модуль генерации тестов, модуль оптимизации тестов.

Основные научные результаты диссертационной работы опубликованы в работах [14, 73, 74, 91, 92].

По результатам диссертационной работы получено свидетельство об официальной регистрации программы для ЭВМ №2010617638 «Программа автоматизации функционального тестирования интерфейса программирования приложения АРХТеБЪ).

Результаты диссертации использованы при выполнении научно-исследовательской работы №12405-8/533 «Исследования и разработка методов и средств высокоточного определения местоположения маневренных объектов по стереоскопическим изображениям местности и топогеодезической информации» (шифр «Аксиома-ЮФУ») для автоматизации тестирования программных библиотек макета корреляционно-экстремальной системы навигации и в учебном процессе по курсу

Метрология и качество программного обеспечения», что подтверждается соответствующими актами и справками.

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

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

Список литературы диссертационного исследования кандидат технических наук Бирюков, Сергей Вячеславович, 2011 год

1. Новичков А., Панкратов В. Автоматизированное тестирование: оценка возврата инвестиций и сопутствующие риски // КомпьютерПресс -2005 -№11.

2. Интерфейс программирования приложений электронный ресурс.: Электронная энциклопедия Википедия. Режим доступа: http://ru.wikipedia.org/wiki/

3. Интерфейспрограммированияприложений, свободный.

4. Оринштейн Д. Прикладной программный интерфейс // Computerworld Россия, №9, 2009.

5. Пройдаков Э., Теплицкий J1. Англо-русский толковый словарь по вычислительной технике, Интернету и программированию. М.: Изд-во Русская редакция, 2004. - 858 с. - ISBN 5-7502-0195-3

6. Google Maps Javascript API Version 3 Reference электронный ресурс. Режим доступа:http://code.google.eom/intl/ru/apis/maps/documentation/javascript/3.4/refere псе.html, свободный.

7. Berger S. Understanding Bugs and Patches электронный ресурс.: An explanation of what a bug is and how a patch affects a software program. Режим доступа: www.aaф.org/learntech/computers/howto/a2003-03-07-bugsandpatches.html, свободный. Яз. англ.

8. Галицкая С. Информационные технологии в Беларуси электронный ресурс.: Обеспечение качества и тестирование ПО. Практический опыт и тенденции. Режим доступа: http://www.it-belarus.net/publications/view/53/, свободный.

9. Троелсен Э. Модель СОМ и применение ATL 3.0. Изд-во BHV-СПб, 2001. - 928 с. - ISBN 5-7791-0096.

10. Рихтер Дж. Windows для профессионалов: создание эффективных-Win32 приложений с учетом специфики 64-разрядной версии Windows/Пер, англ 4-е изд. - М.: Издательско-торговый дом "Русская Редакция", 2001. - 752 е.; ил.

11. Ю.Орфали Р., Харки Д. "JAVA и CORBA в приложениях клиент-сервер". М.: Изд-во Лори, 2000. - 717 с.

12. Аншина М. Цимбал А. Технологии создания распределенных систем. Для профессионалов. Изд-во Питер, 2002. - 576 с. ISBN 5-94723-4130.

13. Дастин Э., Рэшка Д., Пол Д. Автоматизированное тестирование программного обеспечения. Внедрение, управление и эксплуатация. -М.: Изд-во Лори, 2003. 567 с.

14. Black R. Critical Testing Processes: Plan, Prepare, Perform, Perfect. New York, 2003.-608 p.

15. Бейзер Б. Тестирование черного ящика. Технология функционального тестирования программного обеспечения. Изд-во Питер, 2004. - 320 с.

16. Howden W. Functional program testing and analysis. New York, 1987. -ISBN: 0-070-30550-1.

17. Clarke L. A formal evaluation of data flow path selection criteria // IEEE Transactions on software Engineering #15, pp.1318 1332.

18. Cohen E. A finite domain-testing strategy for computer program testing // Ph.D. diss., Ohio State University, 1978.

19. Ostrand Т., Balcer A., -The category-partition technique for specifying and generating functional tests // Communications of the ACM, 20, 10 (1988). pp. 676-686.

20. Blake N. Boundary Value Analysis электронный ресурс. Режим доступа: www.cs.swan.ac.uk/~csmarkus/CS339/dissertations/NeateB.pdf, свободный. Яз.англ.

21. Jorgenson P. Software Testing A Craftsman's Approach. - CRC Press, New York, 1995.

22. Topics in Syntax Testing электронный ресурс.: Material drawn from Beizer. Drexel University. Режим доступа: http://www.cs.drexel.edu/~spiros/teaching/CS576/slides/syntax.pdf, свободный. Яз.англ.

23. Myers G. The art of software testing. New York, 2004.

24. Канер С., Фолк Д., Кек Нгуен Е. Тестирование программного обеспечения. Киев, 2000.

25. Калбертсон Р., Браун К., Кобб Г. Быстрое тестирование. Вильяме, 2002.-384 с.

26. Тамре JI. Введение в тестирование программного обеспечения. -Вильяме, 2003. 368 с.

27. Beizer В. Software Testing Techniques, Second Edition. New York: Van Nostrand Reinhold, 1990. - 550 p.

28. Петренко А., Бритвина Е., Грошев С., Монахов А. Тестирование на основе моделей // «Открытые системы», 2003. №9.

29. Apfelbaum L., Doyle J. Model-Based Testing // Software Quality Week Conference, 1997.

30. Clarke J. Automated test generation from a behavioral model // Proceedings of the 11th International Software Quality Week (QW 98), 1998.

31. Боггс У., Боггс М. UML и Rational Rose 2002. М.: Изд-во Лори, 2004. -509 с.

32. James A. Whittaker, Michael G. Thomason. A Markov chain model for statistical software testing // IEEE Transactions on Software Engineering, 20(10), 1994. pp. 812-824.

33. Peter M. Maurer. The design and implementation of a grammar-based data generator // Software Practice & Experience, 1992, pp. 223-244.

34. Emin Gun Sirer, Brian N. Bershad. Using production grammars in software testing // The 2nd Conference on Domain-Specific Languages. 1999.

35. Robinson H. Using Pre-Oracled Data in Model-Based Testing электронный ресурс.: Internal Microsoft white paper. 1999. Режим доступа: http://www.geocities.com/harryrobinsontesting/pre-oracled.htm, свободный.- Яз.англ.

36. Ibrahim К. El-Far, James A. Whittaker. Model-based Software Testing. Encyclopedia on Software Engineering (edited by J.J. Marciniak) Wiley, 2001.- 1584 p.

37. Dennis К. Peters; David L. Parnas. Using test oracles generated from program documentation // IEEE Transactions on Software Engineering 24(3), 1998, pp. 161-171.

38. James A. Whittaker. Stochastic software testing // Annals of Software Engineering. 4, 1997, pp. 115-131.

39. Fujiwara S., Bochmann G., Khendek F., Amalou M., Ghedamsi A. Test selection based on finite state models // IEEE Transactions on Software Engineering, 17(6), 1991, pp. 591-603.

40. Dahbura A., Uyar, M. Optimal Test Sequence Generation for Protocols: The Chinese Postman Algorithm // Q.931, IEEE GLOBECOM, 1986.

41. Bodin L., Tucker A. A Model for Municipal Street Sweeping Operations. Modules in Applied Mathematics. Vol. 3: Discrete and System Models. -1983.

42. Jorgensen A., Whittaker J. An API Testing Method электронный ресурс. Режим доступа:http://www.geocities.com/modelbasedtesting/apitestingmethod.doc, свободный. Яз. англ.

43. Osherove R. The Art of Unit Testing. Softbound print, 2009, 375 p. -ISBN: 1933988274.

44. Макгрегор Д., Сайке Д. Тестирование объектно-ориентированного программного обеспечения. Практическое пособие. К.: ООО «ТИД «ДС», 2002. - 432с.

45. Beck. К. Simple Smalltalk Testing: With Patterns электронный ресурс. Режим доступа: http://www.xprogramming.com/testfram.htm, свободный. — Яз. англ.

46. Месарош Дж. Шаблоны тестирования xUnit: рефакторинг кода тестов. Вильяме, 2009, 832 с.

47. Голуб В., Лысачев П., Потапова Т., Москальцов В. Методика тестирования динамических библиотек // Вестник ВГУ, серия: системный анализ и информационные технологии, 2007, № 2.

48. Watkins-Gibbs J. API Testing vs. Unit Testing: What's the difference? электронный ресурс. Режим доступа: http://www.logigear.com/newsletter/apivsunit.asp, свободный. Яз. англ.

49. McCaffrey J. API Testing vs. Unit Testing электронный ресурс. Режим доступа:http://jamesmccaffrey.spaces.live.com/blog/cnsl504C7CC53E7E7FE8 !116.е ntry, свободный. Яз. англ.

50. SoapUI Feature Overview электронный ресурс. Режим доступа: http://www.soapui.org/features.html, свободный. Яз. англ.

51. Бирюков C.B. Автоматизация функционального тестирования web-сервисов // Известия ЮФУ. Технические науки. Тематический выпуск "Компьютерные и информационные технологии в науке, инженерии и управлении". Таганрог: Изд-во ТТИ ЮФУ, 2008, № 2. С. 175-178.

52. Кулямин В., Петренко А., Косачев А., Бурдонов И. Подход UniTesK к разработке тестов // Программирование, 29(6), 2003. С. 25-43.

53. Meyer В. Applying «Design by Contract» // IEEE Computer, vol. 25, No. 10, 1992, pp. 40-51.

54. Bourdonov, A. Kossatchev, A. Petrenko, D. Gaiter. KVEST: Automated Generation of Test Suites from Formal Specifications // FM'99: Formal Methods. LNCS 1708, Springer-Verlag, 1999, pp. 608-621.

55. Bourdonov, A. Kossatchev, V. Kuliamin, and A. Petrenko. UniTesK Test Suite Architecture // Proc. of FME 2002. LNCS 2391, Springer-Verlag, 2002, pp. 77-88.

56. Мутилин В. Тестирование компонентов, взаимодействующих посредством удаленного вызова методов электронный ресурс.: Труды Института системного программирования РАН. Режим доступа: http://citforum.univ.kiev.ua/SE/testing/mutilin/, свободный.

57. Gurevich Y. Evolving Algebras 1993: Lipari Guide, in Specification and Validation Methods, E. Boerger, Editor. 1995, Oxford University Press, p. 9-36.

58. Barnett M. and others. Model-Based Testing with AsmL // .NET. Microsoft Research.

59. Jacky J., Veanes M., Campbell C., Schulte W. Model-Based Software Testing and Analysis with C#. Cambridge University Press. 2008. 349p.

60. Таненбаум Э., Ван Стеен М. Распределенные системы. СПб.: Питер, 2003.-877 с.

61. Леоненков А. Самоучитель UML 2. СПб: «БХВ-Петербург», 2007. -576с.

62. How to read Object Model Diagrams электронный ресурс. Режим доступа:http://edndoc.esri.eom/arcobjects/8.3/Diagrams/ReadingOMDs.htm, свободный. Яз. англ.

63. Kovse J., Härder Т. Generic XMI-Based UML Model Transformations. ZDNet UK Whitepapers, 2002.

64. Meyer В. Eiffel: The Language. Prentice Hall, 1992.

65. Meyer B. Object-Oriented Software Construction, Second Edition. -Prentice Hall, 1997.

66. Иванников В., Камкин А., Косачев А., Кулямин В., Петренко А. Использование контрактных спецификаций для представления требований и функционального тестирования моделей аппаратуры // Программирование, № 5, 2007. С. 47-61.

67. Камкин А. Тестирование в условиях неполной информации. Подход к разработке спецификаций и генерации тестов электронный ресурс.: Труды Института системного программирования РАН. Режим доступа: http://citforum.ru/SE/testing/incinftesting/, свободный.

68. Сортов А., Хорошилов А. Функциональное тестирование Web-приложений на основе технологии UniTesK // Труды Института системного программирования РАН, №8, 2004, С. 77-97.

69. Винокуров Н., Ворожцов А. Практика и теория программирования. В 2-х книгах. Книга 2. Изд-во «Физматкнига», 2008. - 288с.

70. Проверка графа на ацикличность и нахождение цикла электронный ресурс. Режим доступа: http://e-maxx.ru/algo/findingcycle, свободный.

71. McMaster S., Memon A. Call Stack Coverage for Test Suite Reduction. // 21st IEEE international Conference on Software Maintenance (ICSM'05) -Volume 00 (September 25 30, 2005). ICSM. IEEE Computer Society, Washington, DC, pp. 539-548.

72. Rothermel G., Harrold J., von Ronne J., Hong C. Empirical studies of testsuite reduction // Journal of Software Testing, Verification, and Reliability, V. 12, no. 4, December, 2002.

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

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

75. Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ. -М: МЦНМО, 1990, 960 С.

76. Knuth D., Morris J., Pratt V. Fast pattern matching in strings // SIAM Journal on Computing 6 (2), pp. 323-350.

77. ГОСТ 34.601-90 «Автоматизированные системы. Стадии создания».

78. Вигерс К. Разработка требований к программному обеспечению. -Изд-во «Русская Редакция», 2004. 576 С.

79. Леффингуэлл Д., Уидриг Д. Принципы работы с требованиями к программному обеспечению. Унифицированный подход. Вильяме, 2001.448 С.

80. Новиков Ф. А. Дискретная математика для программистов. Питер, 2000.304 С.

81. Nachmanson L., Robertson G., Bong-shin Lee. Drawing graphs with GLEE technical report электронный ресурс.: Microsoft Research materials.

82. Режим доступа: ftp://ftp.research.microsoft.com/pub/tr/TR-2007-72.pdf, свободный. Яз. англ.

83. Страница проекта GameToolBox электронный ресурс. Режим доступа: http://sourceforge.net/projects/gametoolbox/, свободный.

84. Липаев В. Тестирование программ. М.: Радио и связь, 1986. - 296 С.

85. Липаев В. Обеспечение качаства программных средств. Методы и стандарты. М.: Синтег, 2001. - 380 С.

86. Рахманов В., Тимченко Б. Метрики в современном тестировании // Научно-технический вестник СПбГИТМО (ТУ). Выпуск 10. Информация и управление в технических системах. СПб.: СПбГИТМО(ТУ), 2003. С. 108-111.

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

88. Humphrey W. Introduction to the Personal Software Process. -Addison-Wesley Longman Publishing Co, 1997. 278 p.

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