Тема: АВТОМАТИЗАЦИЯ КОНЕЧНО-АВТОМАТНОГО ТЕСТИРОВАНИЯ СЕРВЕРНЫХ РЕАЛИЗАЦИЙ ПРОТОКОЛОВ ПРИКЛАДНОГО УРОВНЯ
Характеристики работы
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
ВВЕДЕНИЕ 2
1 Основные определения и обозначения 4
1.1 Конечный автомат 4
1.2 Расширенный автомат 7
2 Синтез тестов на основе конечных автоматов 11
2.1 Модели неисправности и тесты 11
2.2 Методы синтеза тестов 12
2.3 Синтез тестов для расширенных автоматов 14
3 Инструмент конечно-автоматного тестирования серверных реализаций.... 15
3.1 Тестирование сетевых приложений 15
3.2 Инструменты синтеза тестов 16
3.2.1 Для конечных автоматов 16
3.2.2 Для расширенных автоматов 18
3.3 Инструмент подачи тестов на реализацию 21
4 Экспериментальные результаты 25
4.1 Описание протокола POP3 25
4.2 Тестирование серверной реализации протокола POP3 27
4.2.1 Для классического автомата 27
4.2.2 Для расширенного автомата 29
ЗАКЛЮЧЕНИЕ 32
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ 33
📖 Введение
Для синтеза тестов с гарантированной полнотой покрытия неисправностей, достаточно часто применяются формальные модели. Модели с конечным числом состояний, такие как конечные автоматы, полуавтоматы и связанные с ними модели, достаточно активно применяются для решения задач анализа и синтеза телекоммуникационных систем. Конечные автоматы [1,2] позволяют построить достаточно адекватную для задачи тестирования модель реальных телекоммуникационных систем и формально определить класс обнаруживаемых неисправностей [3].
Однако, при тестировании современных протоколов прикладного уровня, достаточно часто приходится учитывать хранимые такими протоколами данные, такие как, например, учётные данные, количество текущих соединений и т.д. Такая информация часто не может быть описана конечным числом состояний и, соответственно, построенный по конечному автомату тест не гарантирует обнаружение связанных с ней ошибок. Для моделирования подобных систем, конечные автоматы были расширены контекстными переменными, предикатами на переходах, а также входными и выходными параметрами. Расширенные автоматы позволяют более точно описать современные телекоммуникационные протоколы, но, их язык не является регулярным, что усложняет решение многих задач анализа и синтеза. Тем не менее, существуют методы синтеза тестов для расширенных автоматов, преимущественно основанные на построении по расширенному автомату соответствующих конечно-автоматных абстракций.
Для синтеза тестов по конечному атвомату могут быть использованы существующие инструменты, например, онлайн-сервис FSMTestOnline [4], предоставляющий возможность моделировать конечные и расширенные конечные автоматы и строить тесты различными методами, включающими в себя обход графа переходов и модификации метода Василевского.
Таким образом, тест для протокола прикладного уровня может быть построен с использованием существующих инструментов, но нерешённой остаётся проблема подачи теста на реализацию такого протокола. Подача тестов вручную является слишком трудозатратным в связи с большими размерами тестов и такой подход часто не может быть достаточно эффективно использован на практике [5]. Решением этой проблемы является автоматизация тестирования, которой и посвящена данная работа.
В данной работе разрабатывается приложение, которое позволит тестировать функциональные требования серверных реализаций сетевых протоколов прикладного уровня. Ключевая роль программы - сокращение трудозатрат при тестировании путем автоматизации подачи тестовых последовательностей на сервер.
✅ Заключение
Тестирование на основе конечного автомата и расширенного конечного автомата в совокупности, позволяет в наибольшей мере покрыть ошибки различных классов.





