SlideShare a Scribd company logo
Автоматизированное создание тест-
кейсов для тестирования
соединений и протоколов
Сергей Павлов, Андрей Соловьев, Александр Бормотин,
Анна Торопова, Иосиф Иткин
12 ноября 2015
Quality Assurance & Related Software Development for Innovative Trading Systems
Tel: +7 495 640 2460, +1 415 830 38 49
www.exactpro.com
2
● Зачем?
● Протоколы передачи данных. Финансовые протоколы
● Cпособы описания финансовых протоколов
● Технологический процесс (workflow)
● Как генерировать тесты при помощи словаря и workflow?
● А что в итоге и что дальше?
О чем пойдет речь
Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49
www.exactpro.com
Зачем?
Финансовые платформы - сложные, постоянно развивающиеся системы
Для каждой новой функциональности надо создавать новые тесты
В финансовой индустрии существуют универсальные протоколы (FIX, SWIFT)
Принципы создания тестов для протоколов достаточно просты и применимы к
большинству систем
Стоит попытаться автоматизировать процесс создания тест-кейсов для
тестирования протоколов и подключений
3
Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49
www.exactpro.com
Зачем?
Финансовые платформы - сложные, постоянно развивающиеся системы
Для каждой новой функциональности надо создавать новые тесты
В финансовой индустрии существуют универсальные протоколы (FIX, SWIFT)
Принципы создания тестов для протоколов достаточно просты и применимы к
большинству систем
Стоит попытаться автоматизировать процесс создания тест-кейсов для
тестирования протоколов и подключений
4
Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49
www.exactpro.com
Зачем?
Финансовые платформы - сложные, постоянно развивающиеся системы
Для каждой новой функциональности надо создавать новые тесты
В финансовой индустрии существуют универсальные протоколы (FIX, SWIFT)
Принципы создания тестов для протоколов достаточно просты и применимы к
большинству систем
Стоит попытаться автоматизировать процесс создания тест-кейсов для
тестирования протоколов и подключений
5
Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49
www.exactpro.com
Зачем?
Финансовые платформы - сложные, постоянно развивающиеся системы
Для каждой новой функциональности надо создавать новые тесты
В финансовой индустрии существуют универсальные протоколы (FIX, SWIFT)
Принципы создания тестов для протоколов достаточно просты и применимы к
большинству систем
Стоит попытаться автоматизировать процесс создания тест-кейсов для
тестирования протоколов и подключений
6
Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49
www.exactpro.com
Зачем?
Финансовые платформы - сложные, постоянно развивающиеся системы
Для каждой новой функциональности надо создавать новые тесты
В финансовой индустрии существуют универсальные протоколы (FIX, SWIFT)
Принципы создания тестов для протоколов достаточно просты и применимы к
большинству систем
Стоит попытаться автоматизировать процесс создания тест-кейсов для
тестирования протоколов и подключений
7
Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49
www.exactpro.com
Зачем?
Финансовые платформы - сложные, постоянно развивающиеся системы
Для каждой новой функциональности надо создавать новые тесты
В финансовой индустрии существуют универсальные протоколы (FIX, SWIFT)
Принципы создания тестов для протоколов достаточно просты и применимы к
большинству систем
Стоит попытаться автоматизировать процесс создания тест-кейсов для
тестирования протоколов и подключений
8
Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49
www.exactpro.com
9
● Зачем?
● Протоколы передачи данных. Финансовые протоколы
● Cпособы описания финансовых протоколов
● Технологический процесс (workflow)
● Как генерировать тесты при помощи словаря и workflow?
● А что в итоге и что дальше?
О чем пойдет речь
Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49
www.exactpro.com
Протоколы передачи данных
10
Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49
www.exactpro.com
TCP/IP Model OSI Model
Application Layer
Transport Layer
Internet Layer
Network Access Layer
Модели OSI и TCP/IP
11
Application Layer
Presentation Layer
Session Level
Transport Layer
Network Layer
Data Link Layer
Physical Layer
TCP/IP Model OSI Model
Application Layer
Transport Layer
Internet Layer
Network Access Layer
Модели OSI и TCP/IP
12
Application Layer
Presentation Layer
Session Level
Transport Layer
Network Layer
Data Link Layer
Physical Layer
Финансовые протоколы
• Текстовые (FIX, SWIFT и т.д.)
00000000 38 3d 46 49 58 54 2e 31 2e 31 01 39 3d 31 38 32 8=FIXT.1.1SOH9=182
00000010 01 33 35 3d 44 01 33 34 3d 36 31 30 01 34 39 3d SOH35=DSOH34=610SOH49=
00000020 4e 46 54 46 58 30 33 30 31 01 35 36 3d 46 47 57 NFTFX030SOH56=FGW
• Бинарные (ITCH, FAST)
00000000 30 00 02 42 93 03 00 00 06 54 87 78 00 00 22 41 0 B⌠ T┤x "A
00000010 00 00 00 00 30 00 00 00 02 00 00 00 42 e8 03 00 0 BХ
00000020 00 20 0f 00 00 00 00 00 9d 69 3a 00 00 00 00 00 ²i:
13
14
● Зачем?
● Протоколы передачи данных. Финансовые протоколы
● Cпособы описания финансовых протоколов
● Технологический процесс (workflow)
● Как генерировать тесты при помощи словаря и workflow?
● А что в итоге и что дальше?
О чем пойдет речь
Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49
www.exactpro.com
Способы описания сообщений - текст/таблица
15
Field Offset Length Type Description
Length 0 2 UInt16
Length of the message block
including the header and all
payload messages.
Message
Count
2 1 UInt8
Number of payload messages that
will follow the header.
Market Data
Group
3 1 Byte
Identity of the market data group
the payload messages relate to.
Sequence
Number
4 4 UInt32
Sequence number of the first
payload message.
Payload 5 Variable - One or more payload messages.
Способы описания сообщений - XML
<message name="LoginRequest">
<attribute type="java.lang.Short" name="MessageType">1</attribute>
<field isCollection="false" defaultvalue="11" type="java.lang.Integer"
name="Length">
<attribute type="java.lang.String" name="Type">UInt16</attribute>
<attribute type="java.lang.Integer" name="Offset">0</attribute>
<attribute type="java.lang.Integer" name="Length">2</attribute>
</field>
<field isCollection="false" defaultvalue="" type="java.lang.String"
name="Username">
<attribute type="java.lang.String" name="Type">Alpha</attribute>
<attribute type="java.lang.Integer" name="Offset">3</attribute>
<attribute type="java.lang.Integer" name="Length">8</attribute>
</field>
</message>
16
Способы описания сообщений - XSD
<xs:simpleType name="AnyBICIdentifier">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-
9]{3,3}){0,1}"/>
</xs:restriction>
</xs:simpleType>
>
<xs:simpleType name="DeniedReason4Code">
<xs:restriction base="xs:string">
<xs:enumeration value="ADEA"/>
<xs:enumeration value="DCAN"/>
<xs:enumeration value="DSET"/>
</xs:restriction>
</xs:simpleType>
17
Структура словаря
18
DictionaryName
DictionaryVerson
DictionaryType
...
Dictionary
MessageName
MessageID
MessageType
...
Message 1
FieldName
FieldType
Required
Min/Max value
...
Field 1
FieldName
FieldType
Required
Min/Max value
...
Field M1
...
...
MessageName
MessageID
MessageType
...
Message N
FieldName
FieldType
Required
Min/Max value
...
Field 1
FieldName
FieldType
Required
Min/Max value
...
Field M2
...
19
● Зачем?
● Протоколы передачи данных. Финансовые протоколы
● Cпособы описания финансовых протоколов
● Технологический процесс (workflow)
● Как генерировать тесты при помощи словаря и workflow?
● А что в итоге и что дальше?
О чем пойдет речь
Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49
www.exactpro.com
Способы описания технологического процесса
20
t
Buy
side
Sell
side
Login Message
Heartbeat
Login message
Heartbeat
Требования к описанию
технологического процесса
21
• Точность
• Полнота
• Лаконичность
• Наглядность
• Гибкость
• Возможность чтения программой
Способы описания технологического процесса
Конечные автоматы (англ. Finite State Machine)
• таблица Состояние/Событие
• машина Мили
• машина Мура
• UML
• SCXML
• ...
22
START
PILL
TIMER
PACMAN EATS
POWER PILL
UPDATE
MOVEMENT
UPDATE
MOVEMENT
UPDATE
MOVEMENT
MOVE FROM
PACMAN
MOVE TO
PACMAN
COLLISION
WITH PACMAN
TIMER
ENDS
Способы описания технологического процесса
23
Client opens TCP/IP connection
TCP/IP connection is established
entry / Timer==0;
Client sends correct not Login Request;
TCP/IP connection is closed
Client sends Login Request
(not registered username)
MITCH-replay connection is established
Entry / system sends Logon Response (Status == A), Timer==0, User_Logins_count++;
Client sends Replay Request / Timer==0, system sends Replay Response;
Client sends Snapshot Request / Timer==0, system sends Replay Response (Status == d);
Client sends Login Request (registered username AND registered password) / Timer==0, system sends Replay Response (Status == e);
Client sends Login Request (registered username AND
not registered password)
Client sends Login Request (incorrect Length) /
system does nothing (1 sec);
Client sends Replay Request (incorrect Length) /
system does nothing (1 sec);
Client sends Login Request (registered username AND registered
password) [User_Logins_count < <Max_Logins_count>]
Client sends Logout Request /
system does nothing (1 sec);
when (Timer =
<User_max_idling_time>)
Client sends Login Request (registered username AND registered
password) [User_Logins_count >= <Max_Logins_count>] / Login
Response (Status == b)
when (Timer = <User_max_idling_time>)
Client sends Login Request (incorrect Length) / system does
nothing (1 sec);
24
● Зачем?
● Протоколы передачи данных. Финансовые протоколы
● Cпособы описания финансовых протоколов
● Технологический процесс (workflow)
● Как генерировать тесты при помощи словаря и workflow?
● А что в итоге и что дальше?
О чем пойдет речь
Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49
www.exactpro.com
Как генерировать тесты при
помощи словаря и workflow
TCP/IP connection is closedTCP/IP connection is established
client sends; registered/not registered
25
Client sends Login Request (registered username
AND not registered password
TCP/IP connection is established
entry / Timer==0;
Client sends correct not Login Request;
Как генерировать тесты при
помощи словаря и workflow
TCP/IP connection is closedTCP/IP connection is established
call event (when)
26
when (Timer = <User_max_idling_time>)
TCP/IP connection is established
entry / Timer==0;
Client sends correct not Login Request;
Как генерировать тесты при
помощи словаря и workflow
27
MITCH-replay connection is established
entry / system sends Logon Response (Status == A), Timer==0, User_Logins_count++;
TCP/IP connection is closedTCP/IP connection is established
entry; system sends; incorrect length
Client sends Login Request
(registered username AND
registered password)
Client sends Replay Request
(incorrect Length) / system
does nothing (1 sec);
TCP/IP connection is established
entry / Timer==0;
Client sends correct not Login Request;
Корректные и некорректные сообщения
28
Аттрибут Позитивные тесты Негативные тесты
MinOccurs Количество появлений поля в
сообщении больше либо равно
параметру MinOccurs
Количество появлений поля в
сообщении меньше параметра
MinOccurs
MaxOccurs Количество появлений поля в
сообщении меньше либо равно
параметру MaxOccurs
Количество появлений поля в
сообщении больше параметра
MaxOccurs
Length Длина поля меньше либо равна
параметру Length
Длина поля больше параметра
Length
Data type (Целые числа)
● Значение в середине
диапазона;
● Значение равно
максимальному/минимальному
для этого типа данных;
(Целые числа)
● Значение содержащие символы
кроме “-” и “0-9”;
● Значение с символом “-”,
находящемся не в начале.
Как генерировать тесты при
помощи словаря и workflow
29
MITCH-replay connection is established
entry / system sends Logon Response (Status == A), Timer==0, User_Logins_count++;
TCP/IP connection is closedTCP/IP connection is established
guard
Client sends Login Request (registered username AND
registered password) [User_Logins_count >=
<Max_Logins_count>] / Login Response (Status == b)
Client opens TCP/IP connection
Client sends Login Request (registered username AND
registered password)
[User_Logins_count < <Max_Logins_count>]
Client sends Logout Request /
system does nothing (1 sec);
TCP/IP connection is established
entry / Timer==0;
Client sends correct not Login Request;
Способы описания технологического процесса
• client sends/system sends
• registered/not registered
• entry actions
• actions/transitions
• variables
• guard
• call event (when)
• correct/not correct
30
31
● Зачем?
● Протоколы передачи данных. Финансовые протоколы
● Cпособы описания финансовых протоколов
● Технологический процесс (workflow)
● Как генерировать тесты при помощи словаря и workflow?
● А что в итоге и что дальше?
О чем пойдет речь
Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49
www.exactpro.com
А что в итоге и что дальше?
Что в итоге?
• Словари vs Конечные автоматы? И то и другое!
• Разные протоколы - единая структура
• Сложные конечные автоматы? Современные представления! (UML и
SCXML)
Что дальше?
• Применение метода для других протоколов
• Хватит проектировать! Нам нужен код!
• Есть ли фундаментальные ограничения?
32
Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49
www.exactpro.com
А что в итоге и что дальше?
Что в итоге?
• Словари vs Конечные автоматы? И то и другое!
• Разные протоколы - единая структура
• Сложные конечные автоматы? Современные представления! (UML и
SCXML)
Что дальше?
• Применение метода для других протоколов
• Хватит проектировать! Нам нужен код!
• Есть ли фундаментальные ограничения?
33
Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49
www.exactpro.com
А что в итоге и что дальше?
Что в итоге?
• Словари vs Конечные автоматы? И то и другое!
• Разные протоколы - единая структура
• Сложные конечные автоматы? Современные представления! (UML и
SCXML)
Что дальше?
• Применение метода для других протоколов
• Хватит проектировать! Нам нужен код!
• Есть ли фундаментальные ограничения?
34
Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49
www.exactpro.com
А что в итоге и что дальше?
Что в итоге?
• Словари vs Конечные автоматы? И то и другое!
• Разные протоколы - единая структура
• Сложные конечные автоматы? Современные представления! (UML и
SCXML)
Что дальше?
• Применение метода для других протоколов
• Хватит проектировать! Нам нужен код!
• Есть ли фундаментальные ограничения?
35
Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49
www.exactpro.com
А что в итоге и что дальше?
Что в итоге?
• Словари vs Конечные автоматы? И то и другое!
• Разные протоколы - единая структура
• Сложные конечные автоматы? Современные представления! (UML и
SCXML)
Что дальше?
• Применение метода для других протоколов
• Хватит проектировать! Нам нужен код!
• Есть ли фундаментальные ограничения?
36
Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49
www.exactpro.com
Ваши вопросы
37
Спасибо!
38

More Related Content

PDF
A runtime verification system for Software Defined Networks
PPTX
TMPA-2015: Automated process of creating test scenarios for financial protoco...
PPT
TMPA-2015 > Инструмент для автоматизированого тестирования систем проведения ...
PPT
TMPA-2015: ClearTH: a Tool for Automated Testing of Post Trade Systems
PPT
TMPA-2013 Smirnov
PPT
TMPA-2015: Information Support System for Autonomous Spacecraft Control Macro...
PPT
TMPA-2013 Sharov: Client Certification
PPTX
Тестирование систем процессинга банковских карт. Особенности и сложности
A runtime verification system for Software Defined Networks
TMPA-2015: Automated process of creating test scenarios for financial protoco...
TMPA-2015 > Инструмент для автоматизированого тестирования систем проведения ...
TMPA-2015: ClearTH: a Tool for Automated Testing of Post Trade Systems
TMPA-2013 Smirnov
TMPA-2015: Information Support System for Autonomous Spacecraft Control Macro...
TMPA-2013 Sharov: Client Certification
Тестирование систем процессинга банковских карт. Особенности и сложности

Similar to TMPA-2015 > Автомитизирование создание тест-кейсов для тестирования соединений и протоколов (14)

PDF
TMPA-2015 Paper: Автоматизированное создание тест-кейсов для тестирования сое...
PPT
TMPA-2015: FPGA-Based Low Latency Sponsored Access
PDF
Кутумов - Автоматизация тестирования транспортных карт
PDF
TMPA-2015 > Инструмент для автоматизированого тестирования систем проведения ...
PPTX
Лекция 1 введение в тестирование ПО, основные понятия и принципы
PDF
быстрое тестирование
PPT
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)
PPT
Высоконагруженные трейдинговые системы и их тестирование
PPT
зуева татьяна - опыт автоматизации тестирования в Agile проекте
PDF
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
PPTX
Надежный тест-дизайн
POTX
Как жить в согласии с SOLID?
PDF
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
TMPA-2015 Paper: Автоматизированное создание тест-кейсов для тестирования сое...
TMPA-2015: FPGA-Based Low Latency Sponsored Access
Кутумов - Автоматизация тестирования транспортных карт
TMPA-2015 > Инструмент для автоматизированого тестирования систем проведения ...
Лекция 1 введение в тестирование ПО, основные понятия и принципы
быстрое тестирование
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)
Высоконагруженные трейдинговые системы и их тестирование
зуева татьяна - опыт автоматизации тестирования в Agile проекте
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
Надежный тест-дизайн
Как жить в согласии с SOLID?
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Ad

TMPA-2015 > Автомитизирование создание тест-кейсов для тестирования соединений и протоколов

  • 1. Автоматизированное создание тест- кейсов для тестирования соединений и протоколов Сергей Павлов, Андрей Соловьев, Александр Бормотин, Анна Торопова, Иосиф Иткин 12 ноября 2015 Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 2460, +1 415 830 38 49 www.exactpro.com
  • 2. 2 ● Зачем? ● Протоколы передачи данных. Финансовые протоколы ● Cпособы описания финансовых протоколов ● Технологический процесс (workflow) ● Как генерировать тесты при помощи словаря и workflow? ● А что в итоге и что дальше? О чем пойдет речь Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
  • 3. Зачем? Финансовые платформы - сложные, постоянно развивающиеся системы Для каждой новой функциональности надо создавать новые тесты В финансовой индустрии существуют универсальные протоколы (FIX, SWIFT) Принципы создания тестов для протоколов достаточно просты и применимы к большинству систем Стоит попытаться автоматизировать процесс создания тест-кейсов для тестирования протоколов и подключений 3 Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
  • 4. Зачем? Финансовые платформы - сложные, постоянно развивающиеся системы Для каждой новой функциональности надо создавать новые тесты В финансовой индустрии существуют универсальные протоколы (FIX, SWIFT) Принципы создания тестов для протоколов достаточно просты и применимы к большинству систем Стоит попытаться автоматизировать процесс создания тест-кейсов для тестирования протоколов и подключений 4 Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
  • 5. Зачем? Финансовые платформы - сложные, постоянно развивающиеся системы Для каждой новой функциональности надо создавать новые тесты В финансовой индустрии существуют универсальные протоколы (FIX, SWIFT) Принципы создания тестов для протоколов достаточно просты и применимы к большинству систем Стоит попытаться автоматизировать процесс создания тест-кейсов для тестирования протоколов и подключений 5 Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
  • 6. Зачем? Финансовые платформы - сложные, постоянно развивающиеся системы Для каждой новой функциональности надо создавать новые тесты В финансовой индустрии существуют универсальные протоколы (FIX, SWIFT) Принципы создания тестов для протоколов достаточно просты и применимы к большинству систем Стоит попытаться автоматизировать процесс создания тест-кейсов для тестирования протоколов и подключений 6 Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
  • 7. Зачем? Финансовые платформы - сложные, постоянно развивающиеся системы Для каждой новой функциональности надо создавать новые тесты В финансовой индустрии существуют универсальные протоколы (FIX, SWIFT) Принципы создания тестов для протоколов достаточно просты и применимы к большинству систем Стоит попытаться автоматизировать процесс создания тест-кейсов для тестирования протоколов и подключений 7 Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
  • 8. Зачем? Финансовые платформы - сложные, постоянно развивающиеся системы Для каждой новой функциональности надо создавать новые тесты В финансовой индустрии существуют универсальные протоколы (FIX, SWIFT) Принципы создания тестов для протоколов достаточно просты и применимы к большинству систем Стоит попытаться автоматизировать процесс создания тест-кейсов для тестирования протоколов и подключений 8 Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
  • 9. 9 ● Зачем? ● Протоколы передачи данных. Финансовые протоколы ● Cпособы описания финансовых протоколов ● Технологический процесс (workflow) ● Как генерировать тесты при помощи словаря и workflow? ● А что в итоге и что дальше? О чем пойдет речь Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
  • 10. Протоколы передачи данных 10 Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
  • 11. TCP/IP Model OSI Model Application Layer Transport Layer Internet Layer Network Access Layer Модели OSI и TCP/IP 11 Application Layer Presentation Layer Session Level Transport Layer Network Layer Data Link Layer Physical Layer
  • 12. TCP/IP Model OSI Model Application Layer Transport Layer Internet Layer Network Access Layer Модели OSI и TCP/IP 12 Application Layer Presentation Layer Session Level Transport Layer Network Layer Data Link Layer Physical Layer
  • 13. Финансовые протоколы • Текстовые (FIX, SWIFT и т.д.) 00000000 38 3d 46 49 58 54 2e 31 2e 31 01 39 3d 31 38 32 8=FIXT.1.1SOH9=182 00000010 01 33 35 3d 44 01 33 34 3d 36 31 30 01 34 39 3d SOH35=DSOH34=610SOH49= 00000020 4e 46 54 46 58 30 33 30 31 01 35 36 3d 46 47 57 NFTFX030SOH56=FGW • Бинарные (ITCH, FAST) 00000000 30 00 02 42 93 03 00 00 06 54 87 78 00 00 22 41 0 B⌠ T┤x "A 00000010 00 00 00 00 30 00 00 00 02 00 00 00 42 e8 03 00 0 BХ 00000020 00 20 0f 00 00 00 00 00 9d 69 3a 00 00 00 00 00 ²i: 13
  • 14. 14 ● Зачем? ● Протоколы передачи данных. Финансовые протоколы ● Cпособы описания финансовых протоколов ● Технологический процесс (workflow) ● Как генерировать тесты при помощи словаря и workflow? ● А что в итоге и что дальше? О чем пойдет речь Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
  • 15. Способы описания сообщений - текст/таблица 15 Field Offset Length Type Description Length 0 2 UInt16 Length of the message block including the header and all payload messages. Message Count 2 1 UInt8 Number of payload messages that will follow the header. Market Data Group 3 1 Byte Identity of the market data group the payload messages relate to. Sequence Number 4 4 UInt32 Sequence number of the first payload message. Payload 5 Variable - One or more payload messages.
  • 16. Способы описания сообщений - XML <message name="LoginRequest"> <attribute type="java.lang.Short" name="MessageType">1</attribute> <field isCollection="false" defaultvalue="11" type="java.lang.Integer" name="Length"> <attribute type="java.lang.String" name="Type">UInt16</attribute> <attribute type="java.lang.Integer" name="Offset">0</attribute> <attribute type="java.lang.Integer" name="Length">2</attribute> </field> <field isCollection="false" defaultvalue="" type="java.lang.String" name="Username"> <attribute type="java.lang.String" name="Type">Alpha</attribute> <attribute type="java.lang.Integer" name="Offset">3</attribute> <attribute type="java.lang.Integer" name="Length">8</attribute> </field> </message> 16
  • 17. Способы описания сообщений - XSD <xs:simpleType name="AnyBICIdentifier"> <xs:restriction base="xs:string"> <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0- 9]{3,3}){0,1}"/> </xs:restriction> </xs:simpleType> > <xs:simpleType name="DeniedReason4Code"> <xs:restriction base="xs:string"> <xs:enumeration value="ADEA"/> <xs:enumeration value="DCAN"/> <xs:enumeration value="DSET"/> </xs:restriction> </xs:simpleType> 17
  • 18. Структура словаря 18 DictionaryName DictionaryVerson DictionaryType ... Dictionary MessageName MessageID MessageType ... Message 1 FieldName FieldType Required Min/Max value ... Field 1 FieldName FieldType Required Min/Max value ... Field M1 ... ... MessageName MessageID MessageType ... Message N FieldName FieldType Required Min/Max value ... Field 1 FieldName FieldType Required Min/Max value ... Field M2 ...
  • 19. 19 ● Зачем? ● Протоколы передачи данных. Финансовые протоколы ● Cпособы описания финансовых протоколов ● Технологический процесс (workflow) ● Как генерировать тесты при помощи словаря и workflow? ● А что в итоге и что дальше? О чем пойдет речь Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
  • 20. Способы описания технологического процесса 20 t Buy side Sell side Login Message Heartbeat Login message Heartbeat
  • 21. Требования к описанию технологического процесса 21 • Точность • Полнота • Лаконичность • Наглядность • Гибкость • Возможность чтения программой
  • 22. Способы описания технологического процесса Конечные автоматы (англ. Finite State Machine) • таблица Состояние/Событие • машина Мили • машина Мура • UML • SCXML • ... 22 START PILL TIMER PACMAN EATS POWER PILL UPDATE MOVEMENT UPDATE MOVEMENT UPDATE MOVEMENT MOVE FROM PACMAN MOVE TO PACMAN COLLISION WITH PACMAN TIMER ENDS
  • 23. Способы описания технологического процесса 23 Client opens TCP/IP connection TCP/IP connection is established entry / Timer==0; Client sends correct not Login Request; TCP/IP connection is closed Client sends Login Request (not registered username) MITCH-replay connection is established Entry / system sends Logon Response (Status == A), Timer==0, User_Logins_count++; Client sends Replay Request / Timer==0, system sends Replay Response; Client sends Snapshot Request / Timer==0, system sends Replay Response (Status == d); Client sends Login Request (registered username AND registered password) / Timer==0, system sends Replay Response (Status == e); Client sends Login Request (registered username AND not registered password) Client sends Login Request (incorrect Length) / system does nothing (1 sec); Client sends Replay Request (incorrect Length) / system does nothing (1 sec); Client sends Login Request (registered username AND registered password) [User_Logins_count < <Max_Logins_count>] Client sends Logout Request / system does nothing (1 sec); when (Timer = <User_max_idling_time>) Client sends Login Request (registered username AND registered password) [User_Logins_count >= <Max_Logins_count>] / Login Response (Status == b) when (Timer = <User_max_idling_time>) Client sends Login Request (incorrect Length) / system does nothing (1 sec);
  • 24. 24 ● Зачем? ● Протоколы передачи данных. Финансовые протоколы ● Cпособы описания финансовых протоколов ● Технологический процесс (workflow) ● Как генерировать тесты при помощи словаря и workflow? ● А что в итоге и что дальше? О чем пойдет речь Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
  • 25. Как генерировать тесты при помощи словаря и workflow TCP/IP connection is closedTCP/IP connection is established client sends; registered/not registered 25 Client sends Login Request (registered username AND not registered password TCP/IP connection is established entry / Timer==0; Client sends correct not Login Request;
  • 26. Как генерировать тесты при помощи словаря и workflow TCP/IP connection is closedTCP/IP connection is established call event (when) 26 when (Timer = <User_max_idling_time>) TCP/IP connection is established entry / Timer==0; Client sends correct not Login Request;
  • 27. Как генерировать тесты при помощи словаря и workflow 27 MITCH-replay connection is established entry / system sends Logon Response (Status == A), Timer==0, User_Logins_count++; TCP/IP connection is closedTCP/IP connection is established entry; system sends; incorrect length Client sends Login Request (registered username AND registered password) Client sends Replay Request (incorrect Length) / system does nothing (1 sec); TCP/IP connection is established entry / Timer==0; Client sends correct not Login Request;
  • 28. Корректные и некорректные сообщения 28 Аттрибут Позитивные тесты Негативные тесты MinOccurs Количество появлений поля в сообщении больше либо равно параметру MinOccurs Количество появлений поля в сообщении меньше параметра MinOccurs MaxOccurs Количество появлений поля в сообщении меньше либо равно параметру MaxOccurs Количество появлений поля в сообщении больше параметра MaxOccurs Length Длина поля меньше либо равна параметру Length Длина поля больше параметра Length Data type (Целые числа) ● Значение в середине диапазона; ● Значение равно максимальному/минимальному для этого типа данных; (Целые числа) ● Значение содержащие символы кроме “-” и “0-9”; ● Значение с символом “-”, находящемся не в начале.
  • 29. Как генерировать тесты при помощи словаря и workflow 29 MITCH-replay connection is established entry / system sends Logon Response (Status == A), Timer==0, User_Logins_count++; TCP/IP connection is closedTCP/IP connection is established guard Client sends Login Request (registered username AND registered password) [User_Logins_count >= <Max_Logins_count>] / Login Response (Status == b) Client opens TCP/IP connection Client sends Login Request (registered username AND registered password) [User_Logins_count < <Max_Logins_count>] Client sends Logout Request / system does nothing (1 sec); TCP/IP connection is established entry / Timer==0; Client sends correct not Login Request;
  • 30. Способы описания технологического процесса • client sends/system sends • registered/not registered • entry actions • actions/transitions • variables • guard • call event (when) • correct/not correct 30
  • 31. 31 ● Зачем? ● Протоколы передачи данных. Финансовые протоколы ● Cпособы описания финансовых протоколов ● Технологический процесс (workflow) ● Как генерировать тесты при помощи словаря и workflow? ● А что в итоге и что дальше? О чем пойдет речь Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
  • 32. А что в итоге и что дальше? Что в итоге? • Словари vs Конечные автоматы? И то и другое! • Разные протоколы - единая структура • Сложные конечные автоматы? Современные представления! (UML и SCXML) Что дальше? • Применение метода для других протоколов • Хватит проектировать! Нам нужен код! • Есть ли фундаментальные ограничения? 32 Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
  • 33. А что в итоге и что дальше? Что в итоге? • Словари vs Конечные автоматы? И то и другое! • Разные протоколы - единая структура • Сложные конечные автоматы? Современные представления! (UML и SCXML) Что дальше? • Применение метода для других протоколов • Хватит проектировать! Нам нужен код! • Есть ли фундаментальные ограничения? 33 Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
  • 34. А что в итоге и что дальше? Что в итоге? • Словари vs Конечные автоматы? И то и другое! • Разные протоколы - единая структура • Сложные конечные автоматы? Современные представления! (UML и SCXML) Что дальше? • Применение метода для других протоколов • Хватит проектировать! Нам нужен код! • Есть ли фундаментальные ограничения? 34 Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
  • 35. А что в итоге и что дальше? Что в итоге? • Словари vs Конечные автоматы? И то и другое! • Разные протоколы - единая структура • Сложные конечные автоматы? Современные представления! (UML и SCXML) Что дальше? • Применение метода для других протоколов • Хватит проектировать! Нам нужен код! • Есть ли фундаментальные ограничения? 35 Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
  • 36. А что в итоге и что дальше? Что в итоге? • Словари vs Конечные автоматы? И то и другое! • Разные протоколы - единая структура • Сложные конечные автоматы? Современные представления! (UML и SCXML) Что дальше? • Применение метода для других протоколов • Хватит проектировать! Нам нужен код! • Есть ли фундаментальные ограничения? 36 Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com