Автоматизированное создание тест-
кейсов для тестирования
соединений и протоколов
Сергей Павлов, Андрей Соловьев, Александр Бормотин,
Анна Торопова, Иосиф Иткин
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

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 QualityAssurance & 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 OSIModel 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 OSIModel 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/Maxvalue ... 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
  • 37.
  • 38.