Введение к работе
Актуальность работы. В основе современных технологий программирования лежит объектно-ориентированный (ОО) подход, позволяющий решить или исключить различные проблемы процедурного программирования, однако он привносит новые виды опшбок, которые требуют новых техник тестирования.
Основным элементом ОО программы является класс, под которым понимают новый тип данных, вводимый разработчиком при решении конкретной задачи. Элементами класса являются поля и методы. Поля - это данные, которые образуют значение или состояние класса. Методы - это операции над данными класса. Тестирование классов представляет собой важный аспект общего процесса тестирования, поскольку классы образуют «строительные блоки» ОО программ.
Методы тестирования классов, основанные на технике «черного ящика», не обеспечивают полное тестовое покрытие кода класса, поэтому они должны быть дополнены техникой структурного тестирования.
Существующие техники тестирования классов привязывают генерацию тестовых сценариев к существующей спецификации класса. Среди исследователей в этой области можно выделить В.В. Липаева, П.П. Пархоменко, В.И. Сагунова, А.А. Шалыто, D. MacGregor, D. Kung, P. Tonella и другие. Данные методики применимы к тестированию класса изолированно, не учитывают взаимодействие объектов классов в программе и требуют дополнительной модификации исходного кода программы для получения информации о текущем состоянии объекта класса.
Структурные техники тестирования классов, основанные на потоке данных и потоке управления, не учитывают тот важный фактор, что пользователь класса может вызывать его методы в произвольном порядке. Результат метода может быть ошибочным или корректным в зависимости от значений полученных переменных, когда метод вызывается. Поэтому техники анализа потока данных и потока управления для тестирования класса должны
основываться на вызове его методов в различных состояниях объекта тестируемого класса.
Существующие техники тестирования ОО программного обеспечения (ПО) являются ограниченными в применении, особенно при сильном расширении (увеличении кода) программы, соответственно исследования в области тестирования ОО ПО продолжаются и являются актуальными и необходимыми с точки зрения повышения надежности ПО.
Целью работы является разработка моделей и алгоритмов структурного тестирования взаимодействия классов в объектно-ориентированном программном обеспечении с целью генерации тестовых сценариев на основе исходного текста программы, обеспечивающих наиболее полное тестовое покрытие исходного кода.
Достижение поставленной цели предполагает решение следующих задач:
анализ существующих моделей, методов и алгоритмов тестирования ОО ПО;
обоснование целесообразности применения граф-модели для моделирования ООПО;
разработка метода анализа потока данных на основе граф-модели;
разработка алгоритма генерации тестовых сценариев для ОО ПО, обеспечивающих наиболее полное тестовое покрытие кода программы;
разработка технологии реализации полученных научных результатов на практике с целью подтверждения эффективности предложенного метода тестирования ОО ПО.
Методы исследования, применяемые в работе, основаны на теории графов, теории компьютерной алгебры, теории математической логики и методах программной инженерии.
Научная новизна работы заключается в следующем: 1. Предложена новая модель объектно-ориентированного програмного обеспечения в виде графа потока управления между классами программы, которая, в отличие от известных, учитывает особенности объектно-ориентированного программирования: инкапсуляцию данных, наследование и
полиморфизм.
-
В рамках предложенной базовой модели разработана новая диагностическая модель объектно-ориентированного программного обеспечения, позволяющая, в отличие от известных, генерировать тестовые сценарии на основе исходного кода программы.
-
Разработан алгоритм генерации тестовых сценариев, обеспечивающих полноту структурного тестирования объектно-ориентированного програмного обеспечения.
Практическая ценность работы
Разработанный метод позволяет автоматически генерировать тестовые сценарии для ОО ПО на основе исходного кода программы.
Полученные в диссертационной работе результаты могут использоваться для решения задач структурного тестирования ОО ПО. В рамках предлагаемого подхода тестирование не рассматривается как деятельность, выполняемая вдогонку за разработкой. Тестирование представляет собой процесс, тесно связанный с разработкой ПО. Разработанную систему генерации тестовых сценариев предлагается использовать на этапе реализации ОО ПО, что способствует выявлению проблем на ранних этапах процессаразработки ОО ПО (на которых их устранение сопряжено с меньшими затратами средств и усилий).
Обоснованность и достоверность результатов диссертационной работы обеспечены корректным использованием современного математического аппарата, использованием результатов последних исследований в таких областях как анализ потока данных, символьное выполнение программы, и подтверждены результатами экспериментальных исследований на реальном примере.
На защиту выносятся:
-
Базовая модель объектно-ориентированного программного обеспечения в виде графа потока управления между классами программы.
-
Диагностическая модель объектно-ориентированного программного обеспечения, включающая методы и алгоритмы решения задач структурного тестирования.
3. Метод автоматической генерации тестовых сценариев на основе исходного кода программы.
Реализация результатов работы
Практические результаты, полученные в ходе выполнения диссертационной работы, используются в производственном процессе одного из проектов компании «МЕРА НН», что подтверждается актом о внедрении. Они также используются в учебном процессе подготовки магистрантов направления «Информатика и вычислительная техника» по программе «Диагностические и информационно-поисковые системы» в Нижегородском государственном техническом университете им. Р.Е. Алексеева. Разработанный программный комплекс зарегистрирован в Реестре программ для ЭВМ Федеральной службы по интеллектуальной собственности, патентам и товарным знакам РФ.
Результаты работы использованы в госбюджетной НИР (Отчет по НИР «Диагностика технических и программных систем с использованием современных информационных технологий». № государственной регистрации 01.2009.00405 от 28.01.09 -Н. Новгород: НГТУ), выполненной в рамках НИОКР «Диагностические и информационно - поисковые системы» (№ регистрации 01201252337, интернет-номер ИИ 1112195013, руководитель работы Ломакина Л.С).
Апробация работы
Основные положения и результаты диссертационной работы докладывались и обсуждались на следующих научных конференциях:
Международных научно-технических конференциях «Информационные системы и технологии (ИСТ-2009, ИСТ-2010, ИСТ-2011)» (Нижний Новгород);
XV Международной открытой научной конференции «Современные проблемы информатизации» (Воронеж, 2010);
XI Международной молодежной научно-технической конференции «Будущее технической науки» (Нижний Новгород, 2012);
XVI Международной научно-практической конференции «Системный анализ в проектировании и управлении» (Санкт-Петербург, 2012).
Публикации
По теме диссертации опубликовано 10 работ, в том числе 3 статьи в рецензируемых изданиях из перечня ВАК РФ, свидетельство о государственной регистрации программы для ЭВМ № 2010611279 от 15 февраля 2010 г.
Структура и объем работы
Диссертация состоит из введения, четырех глав, заключения и списка литературы, включающего 97 наименований. Работа изложена на 117 страницах, содержит 7 таблиц и 27 иллюстраций.