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


Автоматизация тестирования прикладного ПО на основе low-code платформы

Работа №116468

Тип работы

Магистерская диссертация

Предмет

программирование

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

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



ВВЕДЕНИЕ 4
ОСНОВНАЯ ЧАСТЬ 8
1 ИССЛЕДОВАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ 9
1.1 Обзор деятельности предприятия и разрабатываемой low-code XRM-платформы 9
1.2 Обзор предметной области тестирования 16
1.2.1 Автоматизация тестирования ПО 20
1.2.2 Обзор методов автоматизация E2E-тестирования 22
1.2.3 Наследование как метод оптимизации кодовой базы 25
1.3 Формирование требований к автотестам 27
1.4 Выбор и обзор используемых при разработке технологий 29
2 РАЗРАБОТКА АВТОМАТИЗИРОВАННЫХ ТЕСТОВ 37
2.1 Подготовка окружения 37
2.1.1 Создание удаленного репозитория 37
2.1.2 Установка Git на ПК 38
2.1.3 Клонирование репозитория 39
2.1.4 Установка Python и создание виртуального окружения 40
2.1.5 Установка Selenium и Pytest 42
2.2 Разработка проекта автотестов 44
2.2.1 Конфигурационный файл 44
2.2.2 Локаторы 48
2.2.3 Класс «Базовая страница» 50
2.2.4 Класс «Страница авторизации» 57
2.2.5 Тест-кейсы для страницы авторизации 59
2.2.6 Служебные файлы 61
2.3 Запуск автотестов 64
3 Анализ результатов и перспективы развития проекта 66
3.1 Анализ результатов 66
3.2 Предлагаемые улучшения проекта 69
ЗАКЛЮЧЕНИЕ 73
СПИСОК ТЕРМИНОВ 77
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ 78
ПРИЛОЖЕНИЯ 84
ПРИЛОЖЕНИЕ 1 Акт о внедрении результатов ВКР в опытную эксплуатацию 85
ПРИЛОЖЕНИЕ 2 Листинг программного кода 87


В данной работе автор поднял и рассмотрел актуальную проблематику в области разработки программного обеспечения – автоматизацию тестирования. С ростом проектов и, соответственной, кодовой базы кратно возрастает объем временных ресурсов на процесс контроля качества. А с ростом временных затрат также повышаются и накладные расходы, увеличиваются сроки поставки продуктов, что может становиться критичным для конечных заказчиков.
Но самым главным является снижение качества выпускаемых программных продуктов, так как даже наняв обширный штат специалистов по качеству, проводящих проверки в ручном режиме, неизбежно возникновение дефектов в силу сложности структуры крупных систем и количества зависимостей.
С целью митигации перечисленных рисков были предложены разработка и внедрение в проект программных средств автоматизации процесса тестирования на разных уровнях: модульном и системном. Автоматизированные скрипты имеют ряд преимуществ по отношению к ручному запуску сценариев, в том числе: 1) ускорение процесса тестирования; 2) оптимизация затрат на обеспечение качества на проекте; 3) повышение производительности проектной команды; 4) исключение человеческого фактора во избежание допущения ошибок по причинам долгой монотонной работы и понижения концентрации внимания.
Целью выпускной квалификационной работы является оптимизация процесса контроля качества программного обеспечения, разрабатываемого компанией ООО «К2 Айти» на основе low-code платформы, путем проектирования, разработки и внедрения автоматизированных тестов, а также формирования предложений по развитию проекта.
Исходя из поставленной цели, были сформулированы следующие задачи:
 Исследование предприятия;
 Исследование разрабатываемой платформы, на основе которой разрабатывается прикладное ПО;
 Исследование предметной области тестирования ПО;
 Формулировка требований к проекту автоматизации;
 Обзор и выбор технологий реализации;
 Подготовка окружения и разработка автоматизированных тестов;
 Запуск скриптов тестирования;
 Анализ результатов и формирование предложений по развитию проекта.
Объектом исследования работы послужил процесс разработки прикладного программного решения, основанного на XRM low-code платформе под названием Ketu. Low-code подход обеспечивает быструю разработку приложений с минимальным кодированием, быстрой настройкой и развертыванием. При этом XRM-платформы позволяют внедрять нетиповые информационные системы, заточенные под прикладные нужны конкретного заказчика.
В качестве предмета исследования выступил процесс контроля качества поставляемой информационной системы, который в первоначальном виде представлял из себя проведение испытаний исключительно в ручном режиме, что являлось тонким местом жизненного цикла разработки ПО в целом.
Тестирование ПО проводится на разных уровнях и имеет множество классификаций. В рамках данной работы автор касался среднего и верхнего уровней тестирования, были предложены вниманию разработка автоматизированных скриптов для проверки корректности работы ИС посредством взаимодействия через пользовательский интерфейс с имитацией действий реальных пользователей в браузерах. Помимо этого, был представлен ряд предложений касательно внедрения автоматизированных API-тестов.
В последние годы набирает популярность способ разработки автотестов с использованием специализированных инструментов, позволяющих производить запись действий пользователя в режиме реального времени, а затем конвертировать их в скрипт. Главными преимуществами подхода являются низкая стоимость и относительно высокая скорость подготовки скриптов.
Однако, имеются достаточно весомые отрицательные стороны, а именно: 1) скрипты генерируются таким образом, что вносить изменения в них практически невозможно – при необходимости правки теста потребуется заново производить запись полного процесса; 2) подход предоставляет значительно более скудные функциональные возможности по сравнению с подходом разработки в ручном режиме.
В связи с перечисленными причинами в работе был рассмотрен иной способ разработки автоматизированных тестов – создание скриптов тестирования с использованием языка программирования Python, фреймворка взаимодействия с браузерами Selenium WebDriver и рядя других библиотек и технологий. Это позволило реализовать полноценные и всесторонние проверки информационной системы.








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

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

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


В рамках данной работы исследована актуальная в области разработки программного обеспечения проблема – автоматизация тестирования ПО. С помощью автоматизации возможно:
1. ускорение процесса контроля качества,
2. оптимизация затрат,
3. повышение производительности проектных команд,
4. исключение человеческого фактора.
В качестве объекта исследования выступил процесс разработки XRM low-code платформы компанией ООО «К2 Айти», на основе которой создается прикладная информационная система. В исходной точке процесс тестирования системы проводился исключительно путем ручного запуска тестовых сценариев без использования средств автоматизации.
Предметом исследования являлся непосредственно процесс тестирования программного обеспечения, анализ которого провел автор. Были рассмотрены понятия обеспечения качества и тестирования, представлен один из подходов к классификации видов тестирования.
Для реализации цели выпускной квалификационно работы, заключающейся в оптимизация процесса контроля качества программного обеспечения путем автоматизации, был выполнен ряд задач:
1. Сформированы требования к автоматизированным тестам, включающие как бизнес, так и технические требования. При этом, приведена таблица применимости требований к обоим типам: E2E и API.
2. Представлено описание используемых актуальных и современных технологий и аргументы в пользу выбора именно такого стека, который в итоговом варианте включил в себя следующее: язык программирования высокого уровня Python 3.9, фреймворк взаимодействия с браузером Selenium WedDriver и тест-раннер Pytest последней версии. В качестве системы контроля версий и резервного копирования использовался Git.
Неотъемлемой частью процесса разработки автотестов является подготовка окружения, которой был посвящен отдельный пункт работы. Процесс включил в себя установку и дальнейшую настройку требуемых программных компонентов и модулей.
Во второй главе работы был подробно разобран весь процесс разработки скриптов автоматизированного тестирования. Представлено описание методов и функциональных возможностей тестов, а также структуры проекта. Отдельное внимание было уделено реализации модулей, покрывающих заявленные к автотестам требования, в частности конфигурируемость, мультиязычность и low-code подход. Также представлено описание процесса запуска тестов и чтения сформированных отчетов.
Были получены результаты, полностью удовлетворяющие поставленным требованиям. Большая часть (около 65%) методов взаимодействия с элементами вынесены в базовый класс.
Разработано в общей сложности 40 тест-кейсов, что покрывает около 85% всех имеющихся сценариев. Среднее время запуска одного теста составило 20 секунд против прогона в ручном режиме – 10 минут, что дает возможность экономии временных ресурсов до 30 раз.
По проведенным расчетам без учета увеличения количество тестов в будущем, а также влияния раннего обнаружения дефектов на общее качество продукта и стоимость разработки и поддержки приложения, период окупаемости проекта составил около 6 месяцев.
Полученные в ходе выполнения работы практические и теоретические результаты прошли апробацию и внедрены в опытную эксплуатацию компании ООО «К2 Айти», что подтверждается актом о внедрении в приложении 1.
В рамках прошедшей 12-15 апреля 2021г. конференции молодых исследователей с международным участием «Инновационное развитие техники и технологий в промышленности (ИНТЕКС-2021)» была опубликована в сборнике материалов (часть 4) статья автора, непосредственно связанная с данной работой, на тему: «Наследование как метод оптимизации кодовой базы автоматизированных тестов в паттерне PAGE OBJECT MODEL».
Таким образом, поставленная цель выпускной квалификационной работы выполнена с соблюдением заявленных требований в полном объеме. При этом результаты работы прошли практическую апробацию (акт приведен в приложении 1).


1. Сайт ООО «К2 Айти» [Электронный ресурс] // Общество с ограниченной ответственностью «К2 Айти»: официальный сайт, 2020. URL: http://www.k2it.ru (дата обращения: 04.09.2020);
2. Что такое Low-code платформа [Электронный ресурс] // Террасофт: официальный сайт, 2020. URL: https://www.terrasoft.ru/page/low-code (дата обращения: 20.11.2020);
3. Яковлев Г. С., Иванов Ф.Ф. Использование LOW-CODE платформ при переходе на процессные подход в создании автоматизированных систем // Вестник КРАУНЦ: журнал. Сургутский государственный университет, г. Сургут: 2020, С. 122;
4. Летунов А.С., Докучаев В.А. LOW-CODE платформы, как инструмент разработки программного обеспечения // Телекоммуникации и информационные технологии: журнал. МТУСИ: 2019, С. 123;
5. Концепция Low-code в действии [Электронный ресурс] // Comindware: официальный сайт компании, 2020. URL: https://www.comindware.com/ru/low-code-development-platform/ (дата обращения: 21.10.2020);
6. Губкин А.С. XRM – эффективный подход в автоматизации бизнес-процессов предприятия // Ползуновский альманах №1 2013: журнал. АГТУ им. И.И. Ползунова, г. Барнаул: 2013, С. 188;
7. ГОСТ Р ИСО/МЭК 9126-93. Информационная технология. Оценка программной продукции. Характеристики качества и руководства по их применению;
8. Штогрина Е.С. Лекция «Тестирование ПО» [Электронный ресурс] // DocPlayer, 2021. URL: https://docplayer.ru/27896205-Lekciya-testirovanie-po.html (дата обращения: 14.01.2021);
9. Лекция «Качество ПО и методы его контроля» [Электронный ресурс] // Национальный открытый университет ИНТУИТ, 2021. URL: https://intuit.ru/studies/courses/64/64/lecture/1874?page=3 (дата обращения: 05.01.2021);
10. Guide to the Software Engineering Body of Knowledge Version 3.0 SWEBOK / пер. с англ. // IEEE Computer Society Products and Services, 2014;
11. Синяя М.В. Тестирование программного обеспечения: понятие, классификация, практика применения // Вестник цифровой экономики: журнал. ФГБУ «Координационный центр Межправительственной комиссии в области вычислительной техники», г. Москва: 2020, С.57;
12. Шварцман М.Е. Открытые API и создание сети разработчиков электронных библиотек // Университетская КНИГА: журнал. ИД Университетская КНИГА, г. Москва: 2012, С.62;
13. Деркач Е.В. Функциональное тестирование исполнительного ядра программно-реализованного контроллера на этапе разработки программной составляющей // Информационные технологии и системы: сборнике трудов конференции. Ханты-Мансийск: Изд-во АУ «Югорский НИИ Информационных Технологий», 2019. С. 89;
14. Федоровская М.М. Система автоматизированного тестирования на предприятии, занимающимся разработкой и внедрением автоматизированных систем управления производством / пер. с англ. // Information technology. Problems and solutions: журнал. Уфимский государственный нефтяной технический университет, г. Уфа: 2020, С. 55;
15. Сайт ООО «Технологии качества» [Электронный ресурс] // Общество с ограниченной ответственностью «Технологии качества», 2020. URL: https://www.a1qa.ru/blog/avtomatizatsiya-testirovaniya-ot-a-do-ya-chast-1/ (дата обращения: 14.12.2020);
16. Майк Кон SCRUM: Гибкая разработка ПО.: пер. с англ. – М.: Издательский дом «Вильямс», 2011. — 576 с., С. 394;
17. Хэм Воке Пирамида тестов на практике: пер. с англ [Электронный ресурс] // Хабр: он-лайн сообщество, 2021. URL: https://habr.com/ru/post/358950/ (дата обращения: 14.01.2021);
18. Рождественский М.М., Забродин Д.А. Наследование как метод оптимизации кодовой базы автоматизированных тестов в паттерне PAGE OBJECT MODEL // Всероссийская научная конференция «ИНТЕКС-2021»: сборник материалов (часть 4). РГУ им. А.Н. Косыгина, г. Москва: 2021, С.16;
19. Распространенность браузеров под ПК/ пер. с англ. [Электронный ресурс] // Сайт проекта StatCounter: официальный сайт, 2021. URL: https://gs.statcounter.com/browser-market-share/desktop/worldwide/#monthly-201901-201912-bar (дата обращения: 20.04.2021);
20. Копылов М.С., Бирюков Е.Д. Использование многопоточности в сценариях, написанных на языке Python, в системах автоматизированного проектирования трёхмерной графики // Новые информационные технологии в автоматизированных системах: журнал. ИПМ им. М.В. Келдыша РАН: 2018. С. 120;
21. TIOBE Index за май 2021 года / пер. с англ. [Электронный ресурс] // TIOBE Software BV: официальный сайт, 2021. URL: https://www.tiobe.com/tiobe-index/ (дата обращения: 05.05.2021);
22. IEEE Spectrum рейтинг за 2020 год / пер. с англ. [Электронный ресурс] // IEEE: официальный сайт, 2021. URL: https://spectrum.ieee.org/ns/IEEE_TPL_2020/index/2020/1/1/1/1/1/50/1/50/1/50/1/30/1/30/1/20/1/20/1/5/1/50/1/100/1/50/ (дата обращения: 18.04.2021);
23. Топ 7 языков программирования для автоматизации тестирования в 2020 году / пер. с англ. [Электронный ресурс] // DZone: официальный сайт, 2021. URL: https://dzone.com/articles/top-7-programming-languages-for-test-automation-in/ (дата обращения: 23.04.2021);
24. Лось Н.А., Ярошенко А.Л., Алексеев В.Ф. Автоматизация тестирования web-приложений с использованием Selenium WebDriver // Современные проблемы радиоэлектроники и телекоммуникаций "РТ-2017": материалы конференции. Белорусский государственный университет информатики и радиоэлектроники: 2017. С. 250;
25. Сайт GitHub [Электронный ресурс] // Сайт проекта GitHub: официальный сайт, 2021. URL: https://github.com/ (дата обращения: 13.03.2021);
26. Сайт Git [Электронный ресурс] // Сайт проекта Git: официальный сайт, 2021. URL: https://git-scm.com/ (дата обращения: 10.04.2021);
27. Мешкова Е.В., Митрошина Е.В. Обеспечение безопасности протокола SSH: шифрование, аутентификация сервера, аутентификация клиента // E-SCIO: журнал. Пермский национальный исследовательский политехнический университет: 2017. С. 100;
28. Сайт Python [Электронный ресурс] // Сайт проекта Python, страница загрузки: официальный сайт, 2021. URL: https://www.python.org/downloads/windows/ (дата обращения: 10.04.2021);
29. Демьянов М. Создание виртуальных окружений и установка библиотек для Python 3 в IDE PyCharm [Электронный ресурс] // Хабр: он-лайн сообщество, 2021. URL: https://habr.com/ru/post/491916/ (дата обращения: 16.03.2021);
30. Наумов Р.В. Программирование Python.COM объекты в Django // ACADEMY: журнал. Институт математики и информатики Северо-Восточный федеральный университет им. М.К. Аммосова: 2016. С. 11;
31. How to implement xunit-style set-up [Электронный ресурс] // Сайт проекта Pytest: holger krekel and pytest-dev team, 2021. URL: https://docs.pytest.org/en/latest/how-

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




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