38
Автоматизированное создание тест-кейсов для тестирования соединений и протоколов Сергей Павлов, Андрей Соловьев, Александр Бормотин, Анна Торопова, Иосиф Иткин 12 ноября 2015 Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 2460, +1 415 830 38 49 www.exactpro.com

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

Embed Size (px)

Citation preview

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

Автоматизированное создание тест-кейсов для тестирования соединений и протоколовСергей Павлов, Андрей Соловьев, Александр Бормотин,Анна Торопова, Иосиф Иткин12 ноября 2015

Quality Assurance & Related Software Development for Innovative Trading SystemsTel: +7 495 640 2460, +1 415 830 38 49www.exactpro.com

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

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

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

Зачем?

Финансовые платформы - сложные, постоянно развивающиеся системы

Для каждой новой функциональности надо создавать новые тесты

В финансовой индустрии существуют универсальные протоколы (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

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

Зачем?

Финансовые платформы - сложные, постоянно развивающиеся системы

Для каждой новой функциональности надо создавать новые тесты

В финансовой индустрии существуют универсальные протоколы (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

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

Зачем?

Финансовые платформы - сложные, постоянно развивающиеся системы

Для каждой новой функциональности надо создавать новые тесты

В финансовой индустрии существуют универсальные протоколы (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

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

Зачем?

Финансовые платформы - сложные, постоянно развивающиеся системы

Для каждой новой функциональности надо создавать новые тесты

В финансовой индустрии существуют универсальные протоколы (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

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

Зачем?

Финансовые платформы - сложные, постоянно развивающиеся системы

Для каждой новой функциональности надо создавать новые тесты

В финансовой индустрии существуют универсальные протоколы (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

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

Зачем?

Финансовые платформы - сложные, постоянно развивающиеся системы

Для каждой новой функциональности надо создавать новые тесты

В финансовой индустрии существуют универсальные протоколы (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

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

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

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

Протоколы передачи данных

10 Quality Assurance & Related Software Development for Innovative Trading Systems Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com

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

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

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

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

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

Финансовые протоколы

• Текстовые (FIX, SWIFT и т.д.)

00000000 38 3d 46 49 58 54 2e 31 2e 31 01 39 3d 31 38 32 8=FIXT.1.1SOH9=18200000010 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 "A00000010 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

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

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

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

Способы описания сообщений - текст/таблица

15

Field Offset Length Type Description

Length 0 2 UInt16Length 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.

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

Способы описания сообщений - 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

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

Способы описания сообщений - 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

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

Структура словаря

18

DictionaryNameDictionaryVersonDictionaryType...

DictionaryMessageNameMessageIDMessageType...

Message 1

FieldNameFieldTypeRequiredMin/Max value...

Field 1FieldNameFieldTypeRequiredMin/Max value...

Field M1

......

MessageNameMessageIDMessageType...

Message N

FieldNameFieldTypeRequiredMin/Max value...

Field 1FieldNameFieldTypeRequiredMin/Max value...

Field M2

...

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

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

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

Способы описания технологического процесса

20

t

Buy side

Sell side

Login Message

Heartbeat

Login message

Heartbeat

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

Требования к описаниютехнологического процесса

21

• Точность

• Полнота

• Лаконичность

• Наглядность

• Гибкость

• Возможность чтения программой

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

Способы описания технологического процесса

Конечные автоматы (англ. Finite State Machine)

• таблица Состояние/Событие• машина Мили• машина Мура• UML• SCXML• ...

22

START

PILLTIMER

PACMAN EATSPOWER PILL

UPDATEMOVEMENT

UPDATEMOVEMENT

UPDATEMOVEMENT

MOVE FROMPACMAN

MOVE TOPACMAN

COLLISIONWITH PACMAN

TIMERENDS

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

Способы описания технологического процесса

23

Client opens TCP/IP connectionTCP/IP connection is established

entry / Timer==0;Client sends correct not Login Request;

TCP/IP connection is closedClient sends Login Request (not registered username)

MITCH-replay connection is establishedEntry / 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);

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

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

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

Как генерировать тесты припомощи словаря и 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 passwordTCP/IP connection is established

entry / Timer==0;Client sends correct not Login Request;

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

Как генерировать тесты припомощи словаря и 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;

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

Как генерировать тесты припомощи словаря и 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;

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

Корректные и некорректные сообщения

28

Аттрибут Позитивные тесты Негативные тесты

MinOccurs Количество появлений поля в сообщении больше либо равно параметру MinOccurs

Количество появлений поля в сообщении меньше параметра MinOccurs

MaxOccurs Количество появлений поля в сообщении меньше либо равно параметру MaxOccurs

Количество появлений поля в сообщении больше параметра MaxOccurs

Length Длина поля меньше либо равна параметру Length

Длина поля больше параметра Length

Data type (Целые числа)● Значение в середине

диапазона;● Значение равно

максимальному/минимальному для этого типа данных;

(Целые числа)● Значение содержащие символы

кроме “-” и “0-9”;● Значение с символом “-”,

находящемся не в начале.

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

Как генерировать тесты припомощи словаря и 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;

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

Способы описания технологического процесса

• client sends/system sends

• registered/not registered

• entry actions

• actions/transitions

• variables

• guard

• call event (when)

• correct/not correct

30

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

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

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

А что в итоге и что дальше?

Что в итоге?

• Словари 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

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

А что в итоге и что дальше?

Что в итоге?

• Словари 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

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

А что в итоге и что дальше?

Что в итоге?

• Словари 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

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

А что в итоге и что дальше?

Что в итоге?

• Словари 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

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

А что в итоге и что дальше?

Что в итоге?

• Словари 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

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

Ваши вопросы

37

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

Спасибо!

38