Тип работы:
Предмет:
Язык работы:


Фреймворк модульного тестирования для функционально-потоковых параллельных программ

Работа №150340

Тип работы

Бакалаврская работа

Предмет

информатика

Объем работы41
Год сдачи2024
Стоимость4800 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
21
Не подходит работа?

Узнай цену на написание


Введение 3
1 Постановка задачи 5
1.1 Особенности функционально-потокового параллельного
программирования 5
1.2 Подход к разработке модульных тестов 7
1.3 Интерпретация тестовых наборов 10
1.4 Утилита модульного тестирования с графическим интерфейсом 13
1.5 Выводы по главе 14
2 Проектирование. Особенности реализации 15
2.1 Алгоритм и реализация утилиты модульного тестирования 15
2.2 Интеграция модульных тестов в среду ФПП программирования 17
2.3 Выводы по главе 20
3 Тестирование и особенности использования инструментов модульного
тестирования 21
3.1 Сборка. Требования к инструментам 21
3.2 Установка. Требования к системе 22
3.3 Проверка корректности работы утилит 22
3.4 Выводы по главе 27
Заключение 28
Список сокращений 29
Список использованных источников 30
ПРИЛОЖЕНИЕ А Примеры описания тестов 33
ПРИЛОЖЕНИЕ Б Результаты апробации работы 36

Одним из подходов повышения надежности программного обеспечения (ПО) является модульное тестирование. Для широко используемых языков программирования существуют инструменты, обеспечивающие поддержку процесса тестирования. Высокая эффективность процесса тестирования достигается с помощью его автоматизации, которая позволяет снизить негативное влияние человеческого фактора на результаты тестирования.
Целью работы является создание фреймворка модульного тестирования для языков функционально потоковой параллельной (ФПП) парадигмы. Функционально-потоковая парадигма имеет ряд особенностей, влияющих на процесс тестирования кода.
Исследований, связанных с реализацией инструментов модульного тестирования ФПП программ не проводилось, поэтому данная работа является актуальной.
Практическим результатом работы являются: предложенный подход к разработке тестов, а также созданный набор инструментов, позволяющий автоматизировать запуск тестов и сбор результатов тестирования. Произведена интеграция данных инструментов в разрабатываемую интегрированную среду разработки ФПП языков программирования.
Апробация работы. Результаты работы докладывались и обсуждались на международных конференциях:
• "Проспект Свободный";
• "Кибернетика, информатика, аналитика: модели, инструменты, методы".
Структура работы отражает решаемые задачи. Пояснительная записка состоит из введения, 3 глав, заключения, списка литературы из 19 наименований, 2 приложений, содержит 13 рисунков и 2 таблицы.
В первой главе описаны особенности функционально потоковой парадигмы влияющие на организацию системы модульного тестирования, а также инструментальные средства ФПП программирования с которыми интегрируется фреймворк модульного тестирования. Предложен подход к организации тестирования и структура программных средств, учитывающие специфику ФПП программирования. Разработана спецификация требований к инструментам модульного тестирования.
Вторая глава содержит результаты проектирования и реализации инструментальных средств модульного тестирования ФПП программ, описание особенностей использования созданных инструментов.
В рамках третьей главы разработаны примеры программ на которых выполнялось тестирование; созданы модульные тесты к существующим комплектам ФПП программ; выполнена проверка работоспособности инструментов модульного тестирования; описан процесс сборки фреймворка.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В рамках работы решена задача инструментальной поддержки процесса модульного тестирования функционально-потоковых программ:
а) предложен подход к разработке тестов;
б) разработан фреймворк модульного тестирования в виде скрипта на языке Python;
в) создано оконный интерфейс к фреймворку в виде ^t-виджета на языке C++, выполнена его встраивание в интегрированную среду разработки функционально-потоковых языков программирования.
В результате доклада работы на конференциях заняты 1 и 3 места. Дипломы приведены в приложение.
В рамках дальнейших работ возможно:
а) создание системы оценки качества тестового покрытия [18]. Для этого необходимо выполнить доработку интерпретатора функционально-потоковых параллельных программ - ввести в него режим исполнения программ, помечающий вершины реверсивного информационного графа после их использования;
б) адаптация системы тестирования для языка Smile использующего, в отличии от Пифагор, строгую типизацию [19]. Этот язык ориентирован на компиляцию программ, поэтому фреймворк модульного тестирования для этого языка должен собирать тестовые наборы и формировать из них точку входа.


1. Мартин, Р Чистый код. Создание, анализ и рефакторинг. Библиотека программиста. - Санкт-Петербург, 2014. - 464 с.
2. Легалов, А. И. Функциональный язык для создания архитектурнонезависимых параллельных программ / А. И. Легалов // Вычислительные технологии. - 2005. - Т. 10. - № 1. - С. 71-89.
3. Деннис, Д. Б. Схемы потока данных / Д. Б. Деннис, Д. Б. Фоссин, Д. П. Линдерман // Теория программирования. - 1972. - Т. 2. - С. 7-43.
4. Легалов, А. И. Инструментальная поддержка создания и трансформации функционально-потоковых параллельных программ / А. И. Легалов, В. С. Васильев, И. В. Матковский, М. С. Ушакова // Труды Института системного программирования РАН. - 2017. - Т. 29, № 5. - С. 165­184.
5. Легалов, А. И. Особенности хранения функционально-потоковых параллельных программ / А. И. Легалов, И. В. Матковский, А. В. Анкудинов // Сибирский журнал науки и технологий. - 2013. - № 4. - С. 53-57.
6. Легалов, А. И. Инструментальная поддержка эволюционного
расширения программ средствами процедурно-параметрического программирования / А. И. Легалов, П. В. Косов // Решетневские чтения. 2015. №19. URL:
https://cyberleninka.ru/article/n/instrumentalnaya-podderzhka-evolyutsionnogo- rasshireniya-programm-sredstvami-protsedurno-parametricheskogo- programmirovaniya (дата обращения 16.05.2024).
7. Макгрегор, Д. Тестирование объектно-ориентированного программного обеспечения. Практическое пособие: пер. с англ./Д. Макгрегор, Д. Сайкс: ООО «ТИД "ДС"». - 2002. - 432 с.
8. Качалов, С. К. Методика создания средства автоматического тестирования кроссплатформенного программного обеспечения / С. К. Качалов // Наукосфера. - 2021. - № 4-2. - С. 129-134. - EDN QEZZJU.
9. Loder, W. Erlang and Elixir for Imperative Programmers / W. Loder. - Apress, 2016.
10. pytest Documentation, Release 0.1. - 2023. -
URL: https://buildmedia.readthedocs.org/media/pdf/pytest/latest/pytest.pdf
(дата обращения 16.11.2023)
11. Васильев, В. С. Сравнение двух значений (любого типа) на Пифагор. Блог программиста. - URL: https://pro-prof.com/forums/topic/equals_pifagor (дата обращения 16.11.2023)
12. Функциональный язык параллельного программирования «Пифагор».
- 2004. - URL: http://www.softcraft.ru/parallel/fpp/fpp02/part02.pdf
(дата обращения 16.11.2023)
13. Репозиторий с исходным кодом программ. - URL: https://gitflic.ru/project/fpp/pifagor_tools_fork?branch=unit_test_framework (дата обращения 16.05.2024)
14. Сайт с скомпилированной и собранной средой разработки программ на языке Пифагор для операционной системы Windows. - URL: https://gitflic.ru/project/fpp/pifagor_tools_fork/release/53825713-7493-46ed-9025- 8bfd8014959a (дата обращения 16.11.2023)
15. Удалова, Ю. В. Библиотека математических функций для языка функционально-потокового параллельного программирования Пифагор / Ю. В. Удалова // Вестник Бурятского государственного университета. Математика, информатика. - 2019. - № 4. - С. 57-64. - DOI 10.18101/2304-5728­2019-4-57-64. - EDN NTIXAY....19


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ