Automated process of creating test scenarios for financial protocols and connectivity testing
Anna Toropova, Sergey Pavlov, Andrey Soloviev, Alexander Bormotin, Iosif Itkin, Exactpro Systems
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
TMPA-2015: Automated process of creating test scenarios for financial protocols and connectivity testing
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
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.
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
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
closed
client sends; registered/not registered
25
Client sends Login Request
(registered username AND not
registered password)
TCP/IP connection is
established
entry / Timer==0;
26. Как генерировать тесты при
помощи словаря и workflow
TCP/IP connection is
closed
call event (when)
26
when (Timer =
<User_max_idling_time>)
TCP/IP connection is
established
entry / Timer==0;
27. Как генерировать тесты при
помощи словаря и workflow
27
MITCH-replay connection is established
entry / system sends Logon Response (Status == A), Timer==0, User_Logins_count++;
TCP/IP connection is established
entry; system sends
Client sends Login Request
(registered username AND
registered password)
TCP/IP connection is
established
entry / Timer==0;
28. Как генерировать тесты при
помощи словаря и workflow
28
MITCH-replay connection is established
entry / system sends Logon Response (Status == A), Timer==0, User_Logins_count++;
TCP/IP connection is
closed
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;
29. Корректные и некорректные сообщения
29
Аттрибут Позитивные тесты Негативные тесты
MinOccurs Количество появлений поля в
сообщении больше либо равно
параметру MinOccurs
Количество появлений поля в
сообщении меньше параметра
MinOccurs
MaxOccurs Количество появлений поля в
сообщении меньше либо равно
параметру MaxOccurs
Количество появлений поля в
сообщении больше параметра
MaxOccurs
Length Длина поля меньше либо равна
параметру Length
Длина поля больше параметра
Length
Data type (Целые числа)
● Значение в середине
диапазона;
● Значение равно
максимальному/минимальному
для этого типа данных;
(Целые числа)
● Значение содержащие символы
кроме “-” и “0-9”;
● Значение с символом “-”,
находящемся не в начале.
30. Способы описания технологического процесса
30
TCP/IP connection is
established
entry / Timer==0;
Client sends correct not
Login Request;
TCP/IP connection is
closed
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;
internal actions
31. Способы описания технологического процесса
31
TCP/IP connection is
established
entry / Timer==0;
Client sends correct not
Login Request;
TCP/IP connection is
closed
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 Login Request (registered username AND
registered password)
Client sends Logout
Request / system does
nothing (1 sec);
internal actions
32. Как генерировать тесты при
помощи словаря и workflow
32
TCP/IP connection is
closed
guard
Client sends Login Request (registered username AND
registered password) [User_Logins_count >=
<Max_Logins_count>] / Login Response (Status == b)
TCP/IP connection is
established
entry / Timer==0;
33. Как генерировать тесты при
помощи словаря и workflow
33
MITCH-replay connection is established
entry / system sends Logon Response (Status == A), Timer==0, User_Logins_count++;
TCP/IP connection is
closed
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;
35. 35
● Зачем?
● Протоколы передачи данных. Финансовые протоколы
● 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
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. А что в итоге и что дальше?
Что в итоге?
• Словари vs Конечные автоматы? И то и другое!
• Разные протоколы - единая структура
• Сложные конечные автоматы? Современные представления! (UML и
SCXML)
Что дальше?
• Применение метода для других протоколов
• Хватит проектировать! Нам нужен код!
• Есть ли фундаментальные ограничения?
37
Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49
www.exactpro.com
38. А что в итоге и что дальше?
Что в итоге?
• Словари vs Конечные автоматы? И то и другое!
• Разные протоколы - единая структура
• Сложные конечные автоматы? Современные представления! (UML и
SCXML)
Что дальше?
• Применение метода для других протоколов
• Хватит проектировать! Нам нужен код!
• Есть ли фундаментальные ограничения?
38
Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49
www.exactpro.com
39. А что в итоге и что дальше?
Что в итоге?
• Словари vs Конечные автоматы? И то и другое!
• Разные протоколы - единая структура
• Сложные конечные автоматы? Современные представления! (UML и
SCXML)
Что дальше?
• Применение метода для других протоколов
• Хватит проектировать! Нам нужен код!
• Есть ли фундаментальные ограничения?
39
Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49
www.exactpro.com
40. А что в итоге и что дальше?
Что в итоге?
• Словари vs Конечные автоматы? И то и другое!
• Разные протоколы - единая структура
• Сложные конечные автоматы? Современные представления! (UML и
SCXML)
Что дальше?
• Применение метода для других протоколов
• Хватит проектировать! Нам нужен код!
• Есть ли фундаментальные ограничения?
40
Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49
www.exactpro.com