📄Работа №80189

Тема: Разработка системы интеграционного тестирования в многозвенных приложениях

Характеристики работы

Тип работы Дипломные работы, ВКР
Автоматика и управление
Предмет Автоматика и управление
📄
Объем: 50 листов
📅
Год: 2018
👁️
Просмотров: 104
Не подходит эта работа?
Закажите новую по вашим требованиям
Узнать цену на написание
ℹ️ Настоящий учебно-методический информационный материал размещён в ознакомительных и исследовательских целях и представляет собой пример учебного исследования. Не является готовым научным трудом и требует самостоятельной переработки.

📋 Содержание

ВВЕДЕНИЕ 9
1. Конструкторская часть 11
1.1. Организация информационного обмена между слоями приложения 11
1.2. Задачи тестирования 12
1.2.1. Реакция сервера на входящие запросы 13
1.2.2. Контроль типов данных 13
1.3. Поддержка многошаговых тестовых сценариев 15
1.4. Постановка задачи 15
1.5. Регрессионное тестирование 16
1.6. Использование инструмента в TDD 17
1.7. Программная реализация преобразования формата тестов к
исполняемому виду 20
1.7.1. Описание разработанного формата данных 21
1.7.2. Модуль преобразования формата тестов 23
1.7.2.1. Реализация процесса преобразования YAML в JavaScript 24
1.7.2.2. Реализация процесса контроля типов данных 28
1.7.2.3. Реализация сценариев тестирования подписок на события с
использованием WebSocket 32
1.7.2.4. Процесс аутентификации перед запуском тестов 33
1.7.2.5. Реализация многошаговых тестовых сценариев 34
1.7.2.6. Реализация процесса наследования шаблонных типов 34
1.7.2.7. Результат работы модуля преобразования формата тестов 36
1.7.3. Модуль для работы с HTTP запросами и WebSocket 38
1.7.3.1. Класс HTTPBackend 38
1.7.З.2. Класс SocketBackend 38
1.8. Автоматизация процесса тестирования 40
1.9. Интеграция в инфраструктуру разработки 42
2. Технологическая часть 43
2.1. Описание протоколов передачи данных 43
2.1.1. HTTP 43
2.1.2. WebSocket 44
2.2. Выбор языка программирования 45
2.3. Выбор формата описания файлов тестов 45
2.3.1. XML 45
2.3.2. JSON 46
2.3.3. YAML 46
2.4. Выбор фреймворка тестирования 47
2.4.1. Mocha 48
2.4.2. Jasmine 49
2.4.3. Jest 49
2.5. Используемые библиотеки 50
ЗАКЛЮЧЕНИЕ 51
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 52
ПРИЛОЖЕНИЕ А 54

📖 Введение

На сегодняшний день разработка программного обеспечения непосредственно связана с обновлением или изменением прежде реализованного функционала. В таком случае возникновение новых сбоев или повторное появление старых неисправностей довольно распространено.
Часто исправление проблемы в одной части программного кода непреднамеренно вызывает ошибку программного обеспечения в другой области. Может случиться так, что, когда какой-либо функционал будет перепроектирован, некоторые из ошибок, которые были сделаны в первоначальной реализации, могут возникнуть и в новой версии.
В современной архитектуре, представленной в виде клиента и сервера, таким функционалом, который подвергается частому перепроектированию, является серверная сторона приложения.
В таком приложении взаимодействие между компонентами происходит с помощью общедоступных интерфейсов. Тестирование этого взаимодействия называется интеграционным тестированием. В этом случае нет необходимости рассматривать внутреннюю структуру компонентов, важен только результат взаимодействия клиента и сервера. Таким образом, тестирование выполняется методом «черного ящика», когда описываются входные параметры запросов и ожидаемый результат [1].
Для упрощения интеграционного тестирования следует разработать систему, в которой тесты представлены в виде декларативного описания входных и выходных данных. Такой формат представления, кроме тестирования, позволит описать спецификацию интерфейса компонента.
В большинстве случаев разработки программного обеспечения считается хорошей практикой написание тестовых сценариев на уже готовую функциональную часть, которые регулярно запускаются после последующих изменений в программе. Хотя это может быть сделано вручную, но чаще это делается с использованием средств автоматического тестирования. Кроме того, возможна также настройка системы повторного запуска всех тестов через определенные промежутки времени. Общей стратегией автоматического тестирования является запуск системы интеграционного тестирования после успешной компиляции, каждую ночь или раз в неделю. Такая стратегия может быть автоматизирована с помощью внешнего инструмента, например, TeamCity.
Целью данной работы является разработка системы интеграционного тестирования в многозвенных приложениях, автоматизация данного процесса с помощью сервера непрерывной интеграции TeamCity, а также создание системы уведомлений о результатах автоматизированного тестирования.

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

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

👨‍🎓 Помощь в написании

✅ Заключение

В результате проделанной работы был разработана система интеграционного тестирования в многозвенных приложениях. Произведена автоматизация процесса тестирования с помощью сервера непрерывной интеграции TeamCity.Создана система уведомлений о результатах автоматизированного тестирования.
В рамках проекта решены следующие задачи:
• Разработан функционал отправки HTTPзапросов на сервер и тестирования корректности структур данных, приходящих в ответе;
• Создана поддержка тестирования WebSocketсоединений;
• Реализована процедура наследования шаблонных типов;
• Реализована поддержка построения многошаговых тестовых сценариев.
В качестве дальнейшего развития планируется усовершенствовать систему тестирования уведомлений - реализовать возможность тестирования при участии нескольких одновременно открытых WebSocketсоединений с выборочной подпиской на уведомления разных сущностей системы. Также предполагается добавить возможность создавать параметризованные тесты. Параметризация предполагает, что один и тот же тест можно использовать для однотипных запросов, но с отправкой разных структур данных на сервер.

Нужна своя уникальная работа?
Срочная разработка под ваши требования
Рассчитать стоимость
ИЛИ

📕 Список литературы

1. Watkins J., Mills S. Testing IT : an off-the-shelf software testing process, 2nd Edition - Cambridge University Press, 2011. - 334 p.
2. HTTP [Электронный ресурс]. Режим доступа:
https://ru.wikipedia.org/wiki/HTTP(дата обращения: 27.02.2017).
3. Регрессионное тестирование [Электронный ресурс]. Режим доступа: https://ru.wikipedia.org/wiki/Регрессионное_тестирование (дата обращения: 27.02.2017).
4. Разработка через тестирование [Электронный ресурс]. Режим доступа: https://ru.wikipedia.org/wiki/Разработка_через_тестирование
(дата обращения: 27.02.2017).
5. Рефакторинг [Электронный ресурс]. Режим доступа:
https://ru.wikipedia.org/wiki/Рефакторинг (дата обращения: 27.02.2017).
6. Introduction to Test Driven Development (TDD) [Электронный ресурс]. Режим доступа: http://agiledata.org/essays/tdd.html(дата обращения: 27.02.2017).
7. Configuring Jest [Электронный ресурс]. Режим доступа:
https:// facebook. github .io/jest/docs/en/ configuration.html (дата обращения:
27.02.2017).
8. Аутентификация и авторизация в микросервисных приложениях
[Электронный ресурс]. Режим доступа:
https://habr.com/company/dataart/blog/311376/(дата обращения: 27.02.2017).
9. Протокол передачи данных [Электронный ресурс]. Режим доступа: https://ru.wikipedia.org/wiki/Протокол_передачи_данных (дата обращения: 27.02.2017).
10. URI [Электронный ресурс]. Режим доступа:
https://ru.wikipedia.org/wiki/URI(дата обращения: 27.02.2017).
11. Путь к HTTP/2 [Электронный ресурс]. Режим доступа:
https://habr.com/post/308846/(дата обращения: 27.02.2017).
12. WebSocket [Электронный ресурс]. Режим доступа:
https://ru.wikipedia.org/wiki/WebSocket(дата обращения: 27.02.2017).
13. Docs | Node.js [Электронный ресурс].
https://nodejs.org/en/docs/(дата обращения: 27.02.2017).
14. Node.js [Электронный ресурс]. Режим доступа:
https://ru.wikipedia.org/wiki/Node.js(дата обращения: 27.02.2017).
15. XML [Электронный ресурс]. Режим доступа:
https://ru.wikipedia.org/wiki/XML(дата обращения: 27.02.2017).
16. Язык разметки [Электронный ресурс]. Режим доступа:
https://ru.wikipedia.org/wiki/Язык_разметки (дата обращения: 27.02.2017).
17. JSON [Электронный р доступа:
https://ru.wikipedia.org/wiki/JSON(дата обращения: 27.02.2017).
18. YAML [Электронный ресурс]. Режим доступа:
https://ru.wikipedia.org/wiki/YAML(дата обращения: 27.02.2017).
19. Модульное тестирование [Электронный ресурс]. Режим доступа: https://ru.wikipedia.org/wiki/Модульное_тестирование (дата обращения: 27.02.2017).
20. An Overview of JavaScript Testing in 2018 [Электронный ресурс]. Режим
доступа: https://medium.com/welldone-software/an-overview-of-javascript-
testing-in-2018-f68950900bc3 (дата обращения: 27.02.2017).
21. TeamCity [Электронный ресурс]. Режим доступа:
https://jetbrains.ru/products/teamcity/(дата обращения: 27.02.2017).

🛒 Оформить заказ

Работу высылаем в течении 5 минут после оплаты.
Предоставляемые услуги, в том числе данные, файлы и прочие материалы, подготовленные в результате оказания услуги, помогают разобраться в теме и собрать нужную информацию, но не заменяют готовое решение.
Укажите ник или номер. После оформления заказа откройте бота @workspayservice_bot для подтверждения. Это нужно для отправки вам уведомлений.

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