SlideShare a Scribd company logo
1 of 37
Тестирование
телекоммуникационных протоколов
на основе моделей с конечным
числом переходов
Радиофизический факультет
Кафедра информационных технологий в исследовании дискретных структур
Зав. кафедрой Евтушенко Нина Владимировна
Томский государственный университет
Шабалдина Наталия Владимировна
2
Понятие протокола
Протокол – набор правил о порядке передачи и способе
представления данных
Протокол передачи данных (Википедия)— набор
соглашений логического уровня интерфейса, который
определяет обмен данных между различными
программами. Эти соглашения задают
единообразный способ передачи сообщений и
обработки ошибок при взаимодействии программного
обеспечения разнесённой в пространстве
аппаратуры, соединённой тем или иным
интерфейсом
Протокол – алгоритм управления связью
3
Понятие телекоммуникационного протокола
Телекоммуникации (греч. tele - вдаль, далеко и лат. communicatio - общение) -
это передача и прием любой информации (звука, изображения, данных,
текста) на расстояние по различным электромагнитным системам
(кабельным и оптоволоконным каналам, радиоканалам и другим проводным
и беспроводным каналам связи)
Телекоммуникационная сеть - это система технических средств, посредством
которой осуществляются телекоммуникации
К телекоммуникационным сетям относятся:
1. Компьютерные сети (для передачи данных)
2. Телефонные сети (передача голосовой информации)
3. Радиосети (передача голосовой информации - широковещательные
услуги)
4. Телевизионные сети (передача голоса и изображения -
широковещательные услуги)
Источник – Компьютерные сети и телекоммуникации – онлайн учебник (
http://www.lessons-tva.info/edu/telecom.html)
Телекоммуникационный протокол – алгоритм управления связью (набор
правил о порядке передачи и способе представления данных) в
телекоммуникационной (компьютерной) сети
4
Фрагмент из RFC-спецификации протокола POP3
5
1. Разработка спецификации
Этапы разработки и тестирования протоколов
6. Другие виды тестирования…
2. Анализ корректности спецификации
3. Реализация протокола
4. Тестирование реализации на соответствие
спецификации
5. Тестирование взаимодействия
6
Тестирование на соответствие
спецификации
Системы S (спецификация)
и Imp (реализация)
S: I* → O*
Imp: I* → O*
• Задача: проверить с
помощью конечного
множества входных
последовательностей, что S
и Imp имеют одинаковое
поведение на допустимых
входных данных
S
Imp
I
I
O
O
7
Модели с конечным числом переходов

Конечные автоматы (детерминированные и
недетерминированные)

Расширенные автоматы

Временные автоматы
Все перечисленные модели используются для
описания поведения систем, которые под
воздействием входных символов переходят из
состояния в состояние и выдают при этом выходные
символы
Все модели инициальные, то есть предполагается,
что в исследуемой системе есть исправный
(надёжный) входной сигнал СБРОС
8
Некоторые работы по конечным автоматам
Мур Э. Ф. Умозрительные эксперименты с
последовательными машинами // Автоматы. – М.: Изд-во
иностр. лит., 1956. – С. 179–210.
Гилл А. Введение в теорию конечных автоматов. – М:
Наука,1966. – 272 с.
Грунский И. С., Петренко А. Ф. Построение проверяющих
экспериментов с автоматами, описывающими протоколы //
Автоматика и Вычислительная техника. – 1988. – № 4. – С.
7–14.
Матросова А. Ю. Алгоритмические методы синтеза тестов. –
Томск: Изд-во Томского госуниверситета, 1990. – 207 с.
Бурдонов И. Б., Косачев А. С., Кулямин В. В. Использование
конечных автоматов для тестирования программ //
Программирование. – 2000. – №2. – С. 12–28.
9
S – множество состояний
X – входной алфавит
Y – выходной алфавит
h – отношение переходов,
h ⊆ S × X × Y × S
s1 – начальное состояние
x1 / y2
s1
s2
x1 / y1
s3
x2 / y2x1 / y1
Конечный автомат (Finite State Machine)
S = <S, X, Y, h, s1 >
Инициальный автомат – есть начальное состояние
Связный автомат – любое состояние достижимо из
начального
10
x1 / y2
s1
s2
x1 / y1
s3
x2 / y2x1 / y1
Типы конечных автоматов
Полностью определенный автомат –
из каждого состояния
по каждому входному символу
есть хотя бы один переход.
Иначе автомат частичный
Детерминированный автомат –
из каждого состояния
по каждому входному символу
не более одного перехода.
Иначе недетерминированный
11
Построение проверяющих тестов путем
обхода графа переходов эталонного
автомата
V = {αi | ∀ si ∈ S} – множество
достижимости, |V| = n,
n – число состояний эталонного автомата
V
s
1
s
3
s
2
… …
- Пройти по всем переходам графа переходов автомата
- Гарантирует обнаружение выходных неисправностей
Один из вариантов построения обхода – VX
s1
si
αi
αi – кратчайшая последовательность,
по которой состояние si достижимо из
начального
12
Понятие модели неисправностей
< S, ~, ℜ >
Спецификация
Область
неисправностей
Требуемое отношение соответствия
между спецификацией и реализацией
13
Методы синтеза тестов относительно
модели <S,≅,ℑm(X,Y)>
V
s
1
s
3
s
2
W, Wp, UIOv, HSI, UIO, DS, H, SPY
V – множество достижимости, |V|=n, основа теста VXm-n+1
m
X Y
n – число состояний эталонного автомата, m – число состояний реализации
Далее прицепляются различающие последовательности
Разница методов – в построении различающих последовательностей
14
Некоторые работы по методам синтеза тестов
для конечных автоматов
Василевский М.П. О распознавании неисправностей автоматов //
Кибернетика.- 1973.- №4.- С.98 108‑
Евтушенко Н.В., Петренко А.Ф. Метод построения проверяющего
эксперимента для произвольного детерминированного автомата //
Автоматика и Вычислительная техника.-1990.-№5.-C.73-76
Куфарева И.Б., Дорофеева М.Ю. Минимизация проверяющих тестов
для конечных автоматов // Вестник ТГУ. Приложение. № 1(II). - 2002.
-С. 357-362
A. Simao, A. Petrenko, N. Yevtushenko. Generating Reduced Tests for
FSMs with Extra States. TestCom/FATES 2009, p. 129-145
15
S = (S, X, Y, V, T)
t = (s, x, P, op, up, y, s’)
P: Dinp × Dv → { Истина, Ложь }
op: Dinp × Dv → Dout
up: Dinp × Dv → Dv
Dinp – множество значений входных параметров входного символа x
Dout – множество значений выходных параметров выходного символа y
Dv – множество значений контекстных переменных
Задача достижимости конфигураций в общем случае решается
только полным моделированием расширенного автомата
Конфигурация: пара (s, v)
Расширенный автомат
(Extended Finite State Machine)
16
A. Cavalli, D. Lee, C. Rinderknecht, F. Zaidi. Hit-or-Jump: An algorithm for
embedded testing with applications to IN services // Proceedings of
Joint Inter., Conf. FORTE/PSTV99. –1999. – P. 41-58
A. Petrenko, S. Boroday, R. Groz. Confirming configurations in EFSM testing
// IEEE TSE. – 2004. – Vol. 30(1). – P. 29-42
K. El-Fakih, S. Prokopenko, N. Yevtushenko, G. Bochmann. Fault diagnosis
in extended Finite State Machine // Lecture Notes in Computer
Science. – 2003. – P. 197–210
K. El-Fakih, A. Kolomeez, S. Prokopenko, N. Yevtushenko. Extended Finite
State Machine Based Test Derivation Driven by User Defined Faults //
ICST. – 2008. – P. 308-317
Некоторые работы по расширенным
автоматам
17
Входо-выходные полуавтоматы
(Input/Output automata)
- Более общая модель по сравнению с автоматом
- За входным символом не обязательно следует выходной
- Методы синтеза полных проверяющих тестов для входо-
выходных полуавтоматов относительно отношения ioco
доставляют бесконечные тесты
Q. M. Tan, A. Petrenko. Test Generation for Specifications Modeled by
Input/Output Automata // The Proceedings of the IFIP 11th International
Workshop on Testing of Communicating Systems, IWTCS'98, Russia. –
1998
Громов М.Л. Метод построения полного проверяющего теста для входо-
выходных полуавтоматов // Вестник Томского государственного
университета, сер. управление, вычислительная техника и
информатика.– Томск, ТГУ, 2008.– № 3(4). – С. 85-98
18
Схема построения и подачи тестов для
протокольных реализаций
Tester
(подает на
реализацию
команды,
сравнивает
ответы с
ожидаемыми)
RFC-
спецификация
протокола
Расширенный
автомат
Конечный автомат,
полученный путем
моделирования
Тест,
построенный
обходом
графа
переходов
Тест в
«правильном»
формате
19
Протокол POP3
POP3 - почтовый протокол, с помощью которого пользователи
могут забирать свою почту с почтовых серверов, стандартный
порт POP3 сервера – 110
Начало взаимодействия клиента и сервера символизирует
приветствие, которое сервер отсылает клиенту при успешном
установлении соединения
POP3-
клиент
POP3-
сервер
Команды клиента
Ответы сервера
Ответ сервера всегда начинается с одного из двух идентификаторов
"+OK" означает успешное выполнение команды клиента
"-ERR" означает, что команда не была выполнена
20
Протокол POP3. Состояние AUTHORIZATION
USER <имя пользователя> (обязательный параметр) - с помощью
этой команды клиент передает серверу имя пользователя
Если сервер ответил "+OK" на команду USER, то клиент в качестве
следующей команды отсылает PASS
PASS <пароль> (обязательный параметр) - с помощью этой
команды клиент передает серверу пароль пользователя
Если же сервер ответил "-ERR" на команду USER, то клиент либо
может отправить команду USER повторно, либо отправить
команду QUIT для того, чтобы закрыть соединение
Когда сервер получает команду PASS, он по аргументам этих двух
команд определяет, должен ли быть предоставлен клиенту
доступ к одному из почтовых ящиков
21
Протокол POP3. Состояние TRANSACTION
STAT (нет параметров) - с помощью этой команды клиент
запрашивает у сервера общую информацию о почтовом ящике
пользователя (количество писем, суммарный размер)
LIST [<номер сообщения>] (опциональный параметр) - с
помощью этой команды клиент запрашивает у сервера более
подробную информацию о почтовом ящике пользователя
(размер каждого письма), а при задании параметра -
непосредственно информацию об указанном письме
RETR <номер сообщения> (обязательный параметр) - с
помощью этой команды клиент запрашивает у сервера письмо с
указанным номером
22
Протокол POP3. Состояния TRANSACTION и
UPDATE
DELE <номер сообщения> (обязательный параметр) - с
помощью этой команды клиент информирует сервер о том, что
следует удалить письмо с указанным номером
RSET (нет параметров) - с помощью этой команды клиент
запрашивает восстановление всех писем, отмеченных как
удаленные
Письмо, отмеченное как удаленное, будет удалено в состоянии
UPDATE (наступает после того, как сервер получит команду
QUIT) - в этом состоянии сервер освобождает все ресурсы,
удаляет письма, отмеченные как удаленные, посылает POP3-
клиенту положительный ответ на команду QUIT
Затем TCP-соединение будет закрыто
23
Конечный автомат, описывающий работу
почтового сервера (POP3)
S0
Aut1
Trans Aut2
Connect / +OK
QUIT / +OK
QUIT / +OK
QUIT / +OK
USER / +OK PASS / -ERR
PASS / +OK ANY / -ERR
ANY / -ERR
{LIST | RETR | STAT | DELE} / +OK
ANY / -ERR
ANY – любой другой входной символ кроме перечисленных из
этого же состояния
24
Расширенный автомат, описывающий работу
почтового сервера (POP3)
25
По расширенному автомату в общем случае нельзя
построить обход графа переходов (не можем
выполнить переход пока контекстная переменная не
приняла нужное значение, т.е. пока не стал
выполним предикат)
При построении тестов для протоколов применялся
следующий подход:
1) По расширенному автомату путем моделирования
строится эквивалентный конечный автомат
2) Строится обход графа переходов полученного
конечного автомата
Построение проверяющего теста для протокола,
описанного расширенным автоматом
26
Для подачи построенных тестов на программную реализацию
протокола можно использовать программу Tester,
разработанную на кафедре ИТИДиС ТГУ
- 2003 г., проект ИДО ТГУ «Лабораторные работы по
курсу Интернет-программирование», руководитель Н.В.
Евтушенко, исполнители Шабалдин А.В., Шабалдина
Н.В., Коломеец А.В.
В первой версии поддерживалось только активное
тестирование студенческих реализаций протоколов
(тестировалась серверная часть протокола)
- На сегодняшний день добавлено пассивное
тестирование (появилась возможность тестировать
клиентскую часть протокола) и проверка
взаимодействия (разработчик Шабалдин А.В.)
Тестирование программной реализации
протокола
27
Тестирование программных
реализаций сетевых протоколов
Архитектура тестера
Студенческая
реализация
компоненты
База данных с
тестами
Тестер-
сервер
Тестер-
клиент
Интерфейс для
пополнения
базы тестов
28
Схема активного тестирования серверной
компоненты протокола
Tester
(подает
команды,
сравнивает
ответы с
ожидаемыми)
Серверная
реализация
Команды клиента
Ответы сервера
При активном тестировании обычно система выключается
из обычного функционирования на время тестирования
29
Журнал активного тестирования ошибочной
серверной реализации протокола
[17:58:59] *** Test sequence begins 1 : Проверка правильности
аутентификации последнего пользователя
[17:58:59] Request: USER user3rn
Expected response: ^+OK(| .*)rn
[17:59:05] Responce: +OK enter password for user user3rn
Correct!
[17:59:05] Request: PASS testrn
Expected response: ^+OK(| .*)rn
[17:59:11] Responce: -ERR user or password incorrectrn
Wrong!
user1:guest
user2:111
user3:test
Содержимое файла с паролями
30
Пассивное тестирование реализации
клиентской части протокола
Tester
(наблюдает
поведение)
Серверная
реализация
(исправная)
Клиентская
реализация
Ответы сервера
Команды клиента
При пассивном тестировании обычно система работает в
нормальном режиме, есть возможность только наблюдать
ее работу
31
Журнал пассивного тестирования
[18:20:37] OnStart(): testing process started
[18:20:37] *** Waiting for client connection 20 sec.
[18:20:43] *** Client connected to port 2525.
[18:20:58] Response: USER tiggerrn Request:
+OK Hello, tigger. Please enter your passwordrn
[18:21:14] Response: PASS thecatrn Request:
+OK Come in, tigger.rn
[18:21:30] Response: statrn Request: +OK 3 57rn
[18:21:45] Response: listrn Request: +OK 1 18rn2 33rn3 6rn
[18:22:01] Response: retr 1rn Request: +OK
Here comes the messagernmessage 1rnmess 12rn.rn
[18:22:17] Response: retr 4rn Request: -ERR No message
with #4rn
[18:22:32] Response: quitrn Request: +OK Bye-bye.rn
[18:22:32] *** Waiting for client connection 20 sec.
[18:22:53] test_client(): timeout waiting for client
[18:23:13] OnStart(): testing process stopped
32
Тестирование взаимодействия
Wireshark
(анализатор
пакетов)
Серверная
реализация
Клиентская
реализация
Команды клиента, ответы сервера
Tester
(анализирует
dump-файл)
dump-файл
33
Диаграмма DHCP
34
Проект ФЦП (2009-2010 гг)
НИР «Проведение прикладных и проблемно-
ориентированных поисковых исследований в области
информационно-телекоммуникационных систем с участием
научных организаций Франции»
Совместно с TELECOM&Management Южный Париж, г. Еври,
Франция
Обнаружены ошибки в программных реализациях
POP3 и IRC протоколов
35
Post Office Protocol v.3
По расширенному автомату был промоделирован конечный автомат и
построен тест
Количество тестовых последовательностей для POP3-сервера – 73,
средняя длина тестовой последовательности – 10,
максимальное время тестирования 1723 секунд
Тест для POP3-протокола обнаружил ошибку в
реализации tpop3d-1.5.5
Когда отправляются две подряд команды DELE применительно к одному и
тому же сообщению, в обоих случаях сервер возвращает +OK, хотя во
втором случае должно быть -ERR
(RFC1939, chapter 5, "DELE msg" description)
Тестом, построенным по конечному автомату со слайда 24, такая ошибка
не может быть обнаружена, т.к. в этом автомате вообще нет параметров, в
том числе при команде DELE
36
Internet Relay Chat Protocol
Тестировалась программная реализация IRC протокола ngIRCd ver. 16
Обнаруженные ошибки:
1.Неправильный код ответа на команду NICK с пустым параметром (т.е. без
указанного псевдонима)
Согласно спецификации [RFC2812, section 3.1.2 (раздел 3.1.2)], ответом на
NICK без параметра должно быть сообщение с кодом 431
(ERR_NONICKNAMEGIVEN), сервер же возвращает код ответа 461
(ERR_NEEDMOREPARAMS)
2. Неправильная обработка сервером попытки использования уже занятого
псевдонима
В том случае, когда псевдоним, который передается в параметре команды
NICK, уже занят, сервер должен вернуть ответ с кодом 433
(ERR_NICKNAMEINUSE). Тестируемая реализация в ответ на попытку
повторной регистрации уже используемого псевдонима вернула пустое
сообщение.
3. Неправильная обработка команды MODE с отсутствующим псевдонимом, но в
которой присутствует второй параметр (+i), задающий режим работы
37
СПАСИБО ЗА ВНИМАНИЕ

More Related Content

Viewers also liked

Степан Петухов
Степан ПетуховСтепан Петухов
Степан Петухов
LiloSEA
 
Vladimir Itsykson. CSEDays
Vladimir Itsykson. CSEDaysVladimir Itsykson. CSEDays
Vladimir Itsykson. CSEDays
LiloSEA
 
Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.
LiloSEA
 
Hash cse lecture3
Hash cse lecture3Hash cse lecture3
Hash cse lecture3
LiloSEA
 
Поиск объектов
Поиск объектовПоиск объектов
Поиск объектов
LiloSEA
 
Александр Тиморин. Мошеннические атаки
Александр Тиморин. Мошеннические атакиАлександр Тиморин. Мошеннические атаки
Александр Тиморин. Мошеннические атаки
LiloSEA
 
CSEDays. Юрий Айдаров
CSEDays. Юрий АйдаровCSEDays. Юрий Айдаров
CSEDays. Юрий Айдаров
LiloSEA
 
CSEDays. Олег Ушмаев
CSEDays. Олег УшмаевCSEDays. Олег Ушмаев
CSEDays. Олег Ушмаев
LiloSEA
 
Антон Конушин_Введение
Антон Конушин_ВведениеАнтон Конушин_Введение
Антон Конушин_Введение
LiloSEA
 
CSEDays. Александр Семенов
CSEDays. Александр СеменовCSEDays. Александр Семенов
CSEDays. Александр Семенов
LiloSEA
 

Viewers also liked (11)

Степан Петухов
Степан ПетуховСтепан Петухов
Степан Петухов
 
Vladimir Itsykson. CSEDays
Vladimir Itsykson. CSEDaysVladimir Itsykson. CSEDays
Vladimir Itsykson. CSEDays
 
Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.
 
Hash cse lecture3
Hash cse lecture3Hash cse lecture3
Hash cse lecture3
 
Поиск объектов
Поиск объектовПоиск объектов
Поиск объектов
 
Александр Тиморин. Мошеннические атаки
Александр Тиморин. Мошеннические атакиАлександр Тиморин. Мошеннические атаки
Александр Тиморин. Мошеннические атаки
 
CSEDays. Юрий Айдаров
CSEDays. Юрий АйдаровCSEDays. Юрий Айдаров
CSEDays. Юрий Айдаров
 
CSEDays. Олег Ушмаев
CSEDays. Олег УшмаевCSEDays. Олег Ушмаев
CSEDays. Олег Ушмаев
 
Антон Конушин_Введение
Антон Конушин_ВведениеАнтон Конушин_Введение
Антон Конушин_Введение
 
CSEDays. Александр Семенов
CSEDays. Александр СеменовCSEDays. Александр Семенов
CSEDays. Александр Семенов
 
Presentación Alfa 9 Meet Magento España 2016 - Implementar con éxito un eComm...
Presentación Alfa 9 Meet Magento España 2016 - Implementar con éxito un eComm...Presentación Alfa 9 Meet Magento España 2016 - Implementar con éxito un eComm...
Presentación Alfa 9 Meet Magento España 2016 - Implementar con éxito un eComm...
 

Similar to Natalia Shabaldina. CSEDays

2007 Селеменев "Разработка программно-математических средств для оценки произ...
2007 Селеменев "Разработка программно-математических средств для оценки произ...2007 Селеменев "Разработка программно-математических средств для оценки произ...
2007 Селеменев "Разработка программно-математических средств для оценки произ...
RF-Lab
 
Тестирование осень 2013 лекция 2
Тестирование осень 2013 лекция 2Тестирование осень 2013 лекция 2
Тестирование осень 2013 лекция 2
Technopark
 
Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2
Technopark
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
yaevents
 
2007 Никольская "Разработка программных средств для помехоустойчивого кодиров...
2007 Никольская "Разработка программных средств для помехоустойчивого кодиров...2007 Никольская "Разработка программных средств для помехоустойчивого кодиров...
2007 Никольская "Разработка программных средств для помехоустойчивого кодиров...
RF-Lab
 
2016 Забелин Вячеслав Андреевич Бакалаврская работа: Разработка программных с...
2016 Забелин Вячеслав Андреевич Бакалаврская работа: Разработка программных с...2016 Забелин Вячеслав Андреевич Бакалаврская работа: Разработка программных с...
2016 Забелин Вячеслав Андреевич Бакалаврская работа: Разработка программных с...
RF-Lab
 
практика 2
практика 2практика 2
практика 2
student_kai
 

Similar to Natalia Shabaldina. CSEDays (20)

Верификация управляющих программ в системе автоматизации РТК (Iron hand)
Верификация управляющих программ в системе автоматизации РТК (Iron hand)Верификация управляющих программ в системе автоматизации РТК (Iron hand)
Верификация управляющих программ в системе автоматизации РТК (Iron hand)
 
Probabilistic Verification in Computational Systems Design
Probabilistic Verification in Computational Systems DesignProbabilistic Verification in Computational Systems Design
Probabilistic Verification in Computational Systems Design
 
РЕАЛИЗАЦИЯ АЛГОРИТМА ШУМОПОДАВЛЕНИЯ В РЕЧЕВОМ ТРАКТЕ СИСТЕМ МОБИЛЬНОЙ СВЯЗИ Н...
РЕАЛИЗАЦИЯ АЛГОРИТМА ШУМОПОДАВЛЕНИЯ В РЕЧЕВОМ ТРАКТЕ СИСТЕМ МОБИЛЬНОЙ СВЯЗИ Н...РЕАЛИЗАЦИЯ АЛГОРИТМА ШУМОПОДАВЛЕНИЯ В РЕЧЕВОМ ТРАКТЕ СИСТЕМ МОБИЛЬНОЙ СВЯЗИ Н...
РЕАЛИЗАЦИЯ АЛГОРИТМА ШУМОПОДАВЛЕНИЯ В РЕЧЕВОМ ТРАКТЕ СИСТЕМ МОБИЛЬНОЙ СВЯЗИ Н...
 
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...
TMPA-2015: Expanding the Meta-Generation of Correctness Conditions by Means o...
 
лекция 2
лекция 2лекция 2
лекция 2
 
TMPA-2013 Frenkel: Verifying Functional Reliability
TMPA-2013 Frenkel: Verifying Functional ReliabilityTMPA-2013 Frenkel: Verifying Functional Reliability
TMPA-2013 Frenkel: Verifying Functional Reliability
 
2007 Селеменев "Разработка программно-математических средств для оценки произ...
2007 Селеменев "Разработка программно-математических средств для оценки произ...2007 Селеменев "Разработка программно-математических средств для оценки произ...
2007 Селеменев "Разработка программно-математических средств для оценки произ...
 
Тестирование осень 2013 лекция 2
Тестирование осень 2013 лекция 2Тестирование осень 2013 лекция 2
Тестирование осень 2013 лекция 2
 
лекция 10
лекция 10лекция 10
лекция 10
 
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)
 
Tpo 06
Tpo 06Tpo 06
Tpo 06
 
Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
 
Atomics, CAS and Nonblocking algorithms
Atomics, CAS and Nonblocking algorithmsAtomics, CAS and Nonblocking algorithms
Atomics, CAS and Nonblocking algorithms
 
2007 Никольская "Разработка программных средств для помехоустойчивого кодиров...
2007 Никольская "Разработка программных средств для помехоустойчивого кодиров...2007 Никольская "Разработка программных средств для помехоустойчивого кодиров...
2007 Никольская "Разработка программных средств для помехоустойчивого кодиров...
 
Насколько счетчик EM цифровой?
Насколько счетчик EM цифровой?Насколько счетчик EM цифровой?
Насколько счетчик EM цифровой?
 
верификация
верификацияверификация
верификация
 
2016 Забелин Вячеслав Андреевич Бакалаврская работа: Разработка программных с...
2016 Забелин Вячеслав Андреевич Бакалаврская работа: Разработка программных с...2016 Забелин Вячеслав Андреевич Бакалаврская работа: Разработка программных с...
2016 Забелин Вячеслав Андреевич Бакалаврская работа: Разработка программных с...
 
практика 2
практика 2практика 2
практика 2
 
Разработка генератора трафика ip
Разработка генератора трафика ipРазработка генератора трафика ip
Разработка генератора трафика ip
 

More from LiloSEA

CSEDays. Алексей Кадиев
CSEDays. Алексей КадиевCSEDays. Алексей Кадиев
CSEDays. Алексей Кадиев
LiloSEA
 
Александра Торгашова
Александра ТоргашоваАлександра Торгашова
Александра Торгашова
LiloSEA
 
Лукина Ольга. Безопасность в соц. сетях
Лукина Ольга. Безопасность в соц. сетяхЛукина Ольга. Безопасность в соц. сетях
Лукина Ольга. Безопасность в соц. сетях
LiloSEA
 
Андрей Лабунец. Механизмы трассировки
Андрей Лабунец. Механизмы трассировкиАндрей Лабунец. Механизмы трассировки
Андрей Лабунец. Механизмы трассировки
LiloSEA
 
Андрей Гаража. Биоинформатика
Андрей Гаража. БиоинформатикаАндрей Гаража. Биоинформатика
Андрей Гаража. Биоинформатика
LiloSEA
 
Cse коновалова титов
Cse коновалова титовCse коновалова титов
Cse коновалова титов
LiloSEA
 
схемы разделения секрета
схемы разделения секретасхемы разделения секрета
схемы разделения секрета
LiloSEA
 
почти пороговая схема разделения секрета
почти пороговая схема разделения секретапочти пороговая схема разделения секрета
почти пороговая схема разделения секрета
LiloSEA
 
Алексей Голдбергс. Криптография для бизнеса
Алексей Голдбергс. Криптография для бизнесаАлексей Голдбергс. Криптография для бизнеса
Алексей Голдбергс. Криптография для бизнеса
LiloSEA
 
Simonova sql server-enginetesting
Simonova sql server-enginetestingSimonova sql server-enginetesting
Simonova sql server-enginetesting
LiloSEA
 
Simonova CSEDays
Simonova CSEDaysSimonova CSEDays
Simonova CSEDays
LiloSEA
 
Nikolay Shilov. CSEDays 3
Nikolay Shilov. CSEDays 3Nikolay Shilov. CSEDays 3
Nikolay Shilov. CSEDays 3
LiloSEA
 
Nikolay Shilov. CSEDays 2
Nikolay Shilov. CSEDays 2Nikolay Shilov. CSEDays 2
Nikolay Shilov. CSEDays 2
LiloSEA
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDays
LiloSEA
 
MSR in Russia. CSEDays
MSR in Russia. CSEDaysMSR in Russia. CSEDays
MSR in Russia. CSEDays
LiloSEA
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDays
LiloSEA
 
Artem Shabarshin. CSEDays
Artem Shabarshin. CSEDaysArtem Shabarshin. CSEDays
Artem Shabarshin. CSEDays
LiloSEA
 
Anna Baranova. CSEDays
Anna Baranova. CSEDaysAnna Baranova. CSEDays
Anna Baranova. CSEDays
LiloSEA
 
Dmitriy Nikonenko. CSEDays
Dmitriy Nikonenko. CSEDaysDmitriy Nikonenko. CSEDays
Dmitriy Nikonenko. CSEDays
LiloSEA
 

More from LiloSEA (19)

CSEDays. Алексей Кадиев
CSEDays. Алексей КадиевCSEDays. Алексей Кадиев
CSEDays. Алексей Кадиев
 
Александра Торгашова
Александра ТоргашоваАлександра Торгашова
Александра Торгашова
 
Лукина Ольга. Безопасность в соц. сетях
Лукина Ольга. Безопасность в соц. сетяхЛукина Ольга. Безопасность в соц. сетях
Лукина Ольга. Безопасность в соц. сетях
 
Андрей Лабунец. Механизмы трассировки
Андрей Лабунец. Механизмы трассировкиАндрей Лабунец. Механизмы трассировки
Андрей Лабунец. Механизмы трассировки
 
Андрей Гаража. Биоинформатика
Андрей Гаража. БиоинформатикаАндрей Гаража. Биоинформатика
Андрей Гаража. Биоинформатика
 
Cse коновалова титов
Cse коновалова титовCse коновалова титов
Cse коновалова титов
 
схемы разделения секрета
схемы разделения секретасхемы разделения секрета
схемы разделения секрета
 
почти пороговая схема разделения секрета
почти пороговая схема разделения секретапочти пороговая схема разделения секрета
почти пороговая схема разделения секрета
 
Алексей Голдбергс. Криптография для бизнеса
Алексей Голдбергс. Криптография для бизнесаАлексей Голдбергс. Криптография для бизнеса
Алексей Голдбергс. Криптография для бизнеса
 
Simonova sql server-enginetesting
Simonova sql server-enginetestingSimonova sql server-enginetesting
Simonova sql server-enginetesting
 
Simonova CSEDays
Simonova CSEDaysSimonova CSEDays
Simonova CSEDays
 
Nikolay Shilov. CSEDays 3
Nikolay Shilov. CSEDays 3Nikolay Shilov. CSEDays 3
Nikolay Shilov. CSEDays 3
 
Nikolay Shilov. CSEDays 2
Nikolay Shilov. CSEDays 2Nikolay Shilov. CSEDays 2
Nikolay Shilov. CSEDays 2
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDays
 
MSR in Russia. CSEDays
MSR in Russia. CSEDaysMSR in Russia. CSEDays
MSR in Russia. CSEDays
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDays
 
Artem Shabarshin. CSEDays
Artem Shabarshin. CSEDaysArtem Shabarshin. CSEDays
Artem Shabarshin. CSEDays
 
Anna Baranova. CSEDays
Anna Baranova. CSEDaysAnna Baranova. CSEDays
Anna Baranova. CSEDays
 
Dmitriy Nikonenko. CSEDays
Dmitriy Nikonenko. CSEDaysDmitriy Nikonenko. CSEDays
Dmitriy Nikonenko. CSEDays
 

Natalia Shabaldina. CSEDays

  • 1. Тестирование телекоммуникационных протоколов на основе моделей с конечным числом переходов Радиофизический факультет Кафедра информационных технологий в исследовании дискретных структур Зав. кафедрой Евтушенко Нина Владимировна Томский государственный университет Шабалдина Наталия Владимировна
  • 2. 2 Понятие протокола Протокол – набор правил о порядке передачи и способе представления данных Протокол передачи данных (Википедия)— набор соглашений логического уровня интерфейса, который определяет обмен данных между различными программами. Эти соглашения задают единообразный способ передачи сообщений и обработки ошибок при взаимодействии программного обеспечения разнесённой в пространстве аппаратуры, соединённой тем или иным интерфейсом Протокол – алгоритм управления связью
  • 3. 3 Понятие телекоммуникационного протокола Телекоммуникации (греч. tele - вдаль, далеко и лат. communicatio - общение) - это передача и прием любой информации (звука, изображения, данных, текста) на расстояние по различным электромагнитным системам (кабельным и оптоволоконным каналам, радиоканалам и другим проводным и беспроводным каналам связи) Телекоммуникационная сеть - это система технических средств, посредством которой осуществляются телекоммуникации К телекоммуникационным сетям относятся: 1. Компьютерные сети (для передачи данных) 2. Телефонные сети (передача голосовой информации) 3. Радиосети (передача голосовой информации - широковещательные услуги) 4. Телевизионные сети (передача голоса и изображения - широковещательные услуги) Источник – Компьютерные сети и телекоммуникации – онлайн учебник ( http://www.lessons-tva.info/edu/telecom.html) Телекоммуникационный протокол – алгоритм управления связью (набор правил о порядке передачи и способе представления данных) в телекоммуникационной (компьютерной) сети
  • 5. 5 1. Разработка спецификации Этапы разработки и тестирования протоколов 6. Другие виды тестирования… 2. Анализ корректности спецификации 3. Реализация протокола 4. Тестирование реализации на соответствие спецификации 5. Тестирование взаимодействия
  • 6. 6 Тестирование на соответствие спецификации Системы S (спецификация) и Imp (реализация) S: I* → O* Imp: I* → O* • Задача: проверить с помощью конечного множества входных последовательностей, что S и Imp имеют одинаковое поведение на допустимых входных данных S Imp I I O O
  • 7. 7 Модели с конечным числом переходов  Конечные автоматы (детерминированные и недетерминированные)  Расширенные автоматы  Временные автоматы Все перечисленные модели используются для описания поведения систем, которые под воздействием входных символов переходят из состояния в состояние и выдают при этом выходные символы Все модели инициальные, то есть предполагается, что в исследуемой системе есть исправный (надёжный) входной сигнал СБРОС
  • 8. 8 Некоторые работы по конечным автоматам Мур Э. Ф. Умозрительные эксперименты с последовательными машинами // Автоматы. – М.: Изд-во иностр. лит., 1956. – С. 179–210. Гилл А. Введение в теорию конечных автоматов. – М: Наука,1966. – 272 с. Грунский И. С., Петренко А. Ф. Построение проверяющих экспериментов с автоматами, описывающими протоколы // Автоматика и Вычислительная техника. – 1988. – № 4. – С. 7–14. Матросова А. Ю. Алгоритмические методы синтеза тестов. – Томск: Изд-во Томского госуниверситета, 1990. – 207 с. Бурдонов И. Б., Косачев А. С., Кулямин В. В. Использование конечных автоматов для тестирования программ // Программирование. – 2000. – №2. – С. 12–28.
  • 9. 9 S – множество состояний X – входной алфавит Y – выходной алфавит h – отношение переходов, h ⊆ S × X × Y × S s1 – начальное состояние x1 / y2 s1 s2 x1 / y1 s3 x2 / y2x1 / y1 Конечный автомат (Finite State Machine) S = <S, X, Y, h, s1 > Инициальный автомат – есть начальное состояние Связный автомат – любое состояние достижимо из начального
  • 10. 10 x1 / y2 s1 s2 x1 / y1 s3 x2 / y2x1 / y1 Типы конечных автоматов Полностью определенный автомат – из каждого состояния по каждому входному символу есть хотя бы один переход. Иначе автомат частичный Детерминированный автомат – из каждого состояния по каждому входному символу не более одного перехода. Иначе недетерминированный
  • 11. 11 Построение проверяющих тестов путем обхода графа переходов эталонного автомата V = {αi | ∀ si ∈ S} – множество достижимости, |V| = n, n – число состояний эталонного автомата V s 1 s 3 s 2 … … - Пройти по всем переходам графа переходов автомата - Гарантирует обнаружение выходных неисправностей Один из вариантов построения обхода – VX s1 si αi αi – кратчайшая последовательность, по которой состояние si достижимо из начального
  • 12. 12 Понятие модели неисправностей < S, ~, ℜ > Спецификация Область неисправностей Требуемое отношение соответствия между спецификацией и реализацией
  • 13. 13 Методы синтеза тестов относительно модели <S,≅,ℑm(X,Y)> V s 1 s 3 s 2 W, Wp, UIOv, HSI, UIO, DS, H, SPY V – множество достижимости, |V|=n, основа теста VXm-n+1 m X Y n – число состояний эталонного автомата, m – число состояний реализации Далее прицепляются различающие последовательности Разница методов – в построении различающих последовательностей
  • 14. 14 Некоторые работы по методам синтеза тестов для конечных автоматов Василевский М.П. О распознавании неисправностей автоматов // Кибернетика.- 1973.- №4.- С.98 108‑ Евтушенко Н.В., Петренко А.Ф. Метод построения проверяющего эксперимента для произвольного детерминированного автомата // Автоматика и Вычислительная техника.-1990.-№5.-C.73-76 Куфарева И.Б., Дорофеева М.Ю. Минимизация проверяющих тестов для конечных автоматов // Вестник ТГУ. Приложение. № 1(II). - 2002. -С. 357-362 A. Simao, A. Petrenko, N. Yevtushenko. Generating Reduced Tests for FSMs with Extra States. TestCom/FATES 2009, p. 129-145
  • 15. 15 S = (S, X, Y, V, T) t = (s, x, P, op, up, y, s’) P: Dinp × Dv → { Истина, Ложь } op: Dinp × Dv → Dout up: Dinp × Dv → Dv Dinp – множество значений входных параметров входного символа x Dout – множество значений выходных параметров выходного символа y Dv – множество значений контекстных переменных Задача достижимости конфигураций в общем случае решается только полным моделированием расширенного автомата Конфигурация: пара (s, v) Расширенный автомат (Extended Finite State Machine)
  • 16. 16 A. Cavalli, D. Lee, C. Rinderknecht, F. Zaidi. Hit-or-Jump: An algorithm for embedded testing with applications to IN services // Proceedings of Joint Inter., Conf. FORTE/PSTV99. –1999. – P. 41-58 A. Petrenko, S. Boroday, R. Groz. Confirming configurations in EFSM testing // IEEE TSE. – 2004. – Vol. 30(1). – P. 29-42 K. El-Fakih, S. Prokopenko, N. Yevtushenko, G. Bochmann. Fault diagnosis in extended Finite State Machine // Lecture Notes in Computer Science. – 2003. – P. 197–210 K. El-Fakih, A. Kolomeez, S. Prokopenko, N. Yevtushenko. Extended Finite State Machine Based Test Derivation Driven by User Defined Faults // ICST. – 2008. – P. 308-317 Некоторые работы по расширенным автоматам
  • 17. 17 Входо-выходные полуавтоматы (Input/Output automata) - Более общая модель по сравнению с автоматом - За входным символом не обязательно следует выходной - Методы синтеза полных проверяющих тестов для входо- выходных полуавтоматов относительно отношения ioco доставляют бесконечные тесты Q. M. Tan, A. Petrenko. Test Generation for Specifications Modeled by Input/Output Automata // The Proceedings of the IFIP 11th International Workshop on Testing of Communicating Systems, IWTCS'98, Russia. – 1998 Громов М.Л. Метод построения полного проверяющего теста для входо- выходных полуавтоматов // Вестник Томского государственного университета, сер. управление, вычислительная техника и информатика.– Томск, ТГУ, 2008.– № 3(4). – С. 85-98
  • 18. 18 Схема построения и подачи тестов для протокольных реализаций Tester (подает на реализацию команды, сравнивает ответы с ожидаемыми) RFC- спецификация протокола Расширенный автомат Конечный автомат, полученный путем моделирования Тест, построенный обходом графа переходов Тест в «правильном» формате
  • 19. 19 Протокол POP3 POP3 - почтовый протокол, с помощью которого пользователи могут забирать свою почту с почтовых серверов, стандартный порт POP3 сервера – 110 Начало взаимодействия клиента и сервера символизирует приветствие, которое сервер отсылает клиенту при успешном установлении соединения POP3- клиент POP3- сервер Команды клиента Ответы сервера Ответ сервера всегда начинается с одного из двух идентификаторов "+OK" означает успешное выполнение команды клиента "-ERR" означает, что команда не была выполнена
  • 20. 20 Протокол POP3. Состояние AUTHORIZATION USER <имя пользователя> (обязательный параметр) - с помощью этой команды клиент передает серверу имя пользователя Если сервер ответил "+OK" на команду USER, то клиент в качестве следующей команды отсылает PASS PASS <пароль> (обязательный параметр) - с помощью этой команды клиент передает серверу пароль пользователя Если же сервер ответил "-ERR" на команду USER, то клиент либо может отправить команду USER повторно, либо отправить команду QUIT для того, чтобы закрыть соединение Когда сервер получает команду PASS, он по аргументам этих двух команд определяет, должен ли быть предоставлен клиенту доступ к одному из почтовых ящиков
  • 21. 21 Протокол POP3. Состояние TRANSACTION STAT (нет параметров) - с помощью этой команды клиент запрашивает у сервера общую информацию о почтовом ящике пользователя (количество писем, суммарный размер) LIST [<номер сообщения>] (опциональный параметр) - с помощью этой команды клиент запрашивает у сервера более подробную информацию о почтовом ящике пользователя (размер каждого письма), а при задании параметра - непосредственно информацию об указанном письме RETR <номер сообщения> (обязательный параметр) - с помощью этой команды клиент запрашивает у сервера письмо с указанным номером
  • 22. 22 Протокол POP3. Состояния TRANSACTION и UPDATE DELE <номер сообщения> (обязательный параметр) - с помощью этой команды клиент информирует сервер о том, что следует удалить письмо с указанным номером RSET (нет параметров) - с помощью этой команды клиент запрашивает восстановление всех писем, отмеченных как удаленные Письмо, отмеченное как удаленное, будет удалено в состоянии UPDATE (наступает после того, как сервер получит команду QUIT) - в этом состоянии сервер освобождает все ресурсы, удаляет письма, отмеченные как удаленные, посылает POP3- клиенту положительный ответ на команду QUIT Затем TCP-соединение будет закрыто
  • 23. 23 Конечный автомат, описывающий работу почтового сервера (POP3) S0 Aut1 Trans Aut2 Connect / +OK QUIT / +OK QUIT / +OK QUIT / +OK USER / +OK PASS / -ERR PASS / +OK ANY / -ERR ANY / -ERR {LIST | RETR | STAT | DELE} / +OK ANY / -ERR ANY – любой другой входной символ кроме перечисленных из этого же состояния
  • 24. 24 Расширенный автомат, описывающий работу почтового сервера (POP3)
  • 25. 25 По расширенному автомату в общем случае нельзя построить обход графа переходов (не можем выполнить переход пока контекстная переменная не приняла нужное значение, т.е. пока не стал выполним предикат) При построении тестов для протоколов применялся следующий подход: 1) По расширенному автомату путем моделирования строится эквивалентный конечный автомат 2) Строится обход графа переходов полученного конечного автомата Построение проверяющего теста для протокола, описанного расширенным автоматом
  • 26. 26 Для подачи построенных тестов на программную реализацию протокола можно использовать программу Tester, разработанную на кафедре ИТИДиС ТГУ - 2003 г., проект ИДО ТГУ «Лабораторные работы по курсу Интернет-программирование», руководитель Н.В. Евтушенко, исполнители Шабалдин А.В., Шабалдина Н.В., Коломеец А.В. В первой версии поддерживалось только активное тестирование студенческих реализаций протоколов (тестировалась серверная часть протокола) - На сегодняшний день добавлено пассивное тестирование (появилась возможность тестировать клиентскую часть протокола) и проверка взаимодействия (разработчик Шабалдин А.В.) Тестирование программной реализации протокола
  • 27. 27 Тестирование программных реализаций сетевых протоколов Архитектура тестера Студенческая реализация компоненты База данных с тестами Тестер- сервер Тестер- клиент Интерфейс для пополнения базы тестов
  • 28. 28 Схема активного тестирования серверной компоненты протокола Tester (подает команды, сравнивает ответы с ожидаемыми) Серверная реализация Команды клиента Ответы сервера При активном тестировании обычно система выключается из обычного функционирования на время тестирования
  • 29. 29 Журнал активного тестирования ошибочной серверной реализации протокола [17:58:59] *** Test sequence begins 1 : Проверка правильности аутентификации последнего пользователя [17:58:59] Request: USER user3rn Expected response: ^+OK(| .*)rn [17:59:05] Responce: +OK enter password for user user3rn Correct! [17:59:05] Request: PASS testrn Expected response: ^+OK(| .*)rn [17:59:11] Responce: -ERR user or password incorrectrn Wrong! user1:guest user2:111 user3:test Содержимое файла с паролями
  • 30. 30 Пассивное тестирование реализации клиентской части протокола Tester (наблюдает поведение) Серверная реализация (исправная) Клиентская реализация Ответы сервера Команды клиента При пассивном тестировании обычно система работает в нормальном режиме, есть возможность только наблюдать ее работу
  • 31. 31 Журнал пассивного тестирования [18:20:37] OnStart(): testing process started [18:20:37] *** Waiting for client connection 20 sec. [18:20:43] *** Client connected to port 2525. [18:20:58] Response: USER tiggerrn Request: +OK Hello, tigger. Please enter your passwordrn [18:21:14] Response: PASS thecatrn Request: +OK Come in, tigger.rn [18:21:30] Response: statrn Request: +OK 3 57rn [18:21:45] Response: listrn Request: +OK 1 18rn2 33rn3 6rn [18:22:01] Response: retr 1rn Request: +OK Here comes the messagernmessage 1rnmess 12rn.rn [18:22:17] Response: retr 4rn Request: -ERR No message with #4rn [18:22:32] Response: quitrn Request: +OK Bye-bye.rn [18:22:32] *** Waiting for client connection 20 sec. [18:22:53] test_client(): timeout waiting for client [18:23:13] OnStart(): testing process stopped
  • 34. 34 Проект ФЦП (2009-2010 гг) НИР «Проведение прикладных и проблемно- ориентированных поисковых исследований в области информационно-телекоммуникационных систем с участием научных организаций Франции» Совместно с TELECOM&Management Южный Париж, г. Еври, Франция Обнаружены ошибки в программных реализациях POP3 и IRC протоколов
  • 35. 35 Post Office Protocol v.3 По расширенному автомату был промоделирован конечный автомат и построен тест Количество тестовых последовательностей для POP3-сервера – 73, средняя длина тестовой последовательности – 10, максимальное время тестирования 1723 секунд Тест для POP3-протокола обнаружил ошибку в реализации tpop3d-1.5.5 Когда отправляются две подряд команды DELE применительно к одному и тому же сообщению, в обоих случаях сервер возвращает +OK, хотя во втором случае должно быть -ERR (RFC1939, chapter 5, "DELE msg" description) Тестом, построенным по конечному автомату со слайда 24, такая ошибка не может быть обнаружена, т.к. в этом автомате вообще нет параметров, в том числе при команде DELE
  • 36. 36 Internet Relay Chat Protocol Тестировалась программная реализация IRC протокола ngIRCd ver. 16 Обнаруженные ошибки: 1.Неправильный код ответа на команду NICK с пустым параметром (т.е. без указанного псевдонима) Согласно спецификации [RFC2812, section 3.1.2 (раздел 3.1.2)], ответом на NICK без параметра должно быть сообщение с кодом 431 (ERR_NONICKNAMEGIVEN), сервер же возвращает код ответа 461 (ERR_NEEDMOREPARAMS) 2. Неправильная обработка сервером попытки использования уже занятого псевдонима В том случае, когда псевдоним, который передается в параметре команды NICK, уже занят, сервер должен вернуть ответ с кодом 433 (ERR_NICKNAMEINUSE). Тестируемая реализация в ответ на попытку повторной регистрации уже используемого псевдонима вернула пустое сообщение. 3. Неправильная обработка команды MODE с отсутствующим псевдонимом, но в которой присутствует второй параметр (+i), задающий режим работы

Editor's Notes

  1. &amp;lt;number&amp;gt;
  2. &amp;lt;number&amp;gt;
  3. &amp;lt;number&amp;gt;
  4. &amp;lt;number&amp;gt;
  5. Поэтому в данной работе была выбрана более компактная модель представления – расширенный автомат. В отличие от конечного автомата в расширенный автомат добавлены предикаты, входные и выходные параметры, а так же контекстные переменные, которые играют роль глобальных переменных в описании протокола. Расширенный автомат является более компактным. Однако в отличие от конечных автоматов для расширенных автоматов неизвестны необходимые и достаточные условия эквивалентности двух расширенных автоматов, т.е. неизвестны необходимые и достаточные условия того, что два автомата (спецификация и реализация) имеют одинаковое поведение. ***ТОЖЕ НУЖЕН РИСУНОК***
  6. Кроме того, здесь нужен краткий обзор, (можно на одном слайде), кто и как строил тесты для расширенных автоматов.
  7. &amp;lt;number&amp;gt;