ВВЕДЕНИЕ 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
Автоматизация тестирования прикладного ПО на основе low-code платформы
|
ВВЕДЕНИЕ 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) исключение человеческого фактора во избежание допущения ошибок по причинам долгой монотонной работы и понижения концентрации внимания.
Целью выпускной квалификационной работы является оптимизация процесса контроля качества программного обеспечения, разрабатываемого компанией ООО «К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. оптимизация затрат,
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).



