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

TMPA-2015: Automated process of creating test scenarios for financial protocols and connectivity testing

Jan 22, 2018

Download

Education

Iosif Itkin
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: TMPA-2015: Automated process of creating test scenarios for financial protocols and connectivity testing

Автоматизированное создание

тест-кейсов для тестирования

соединений и протоколов

Сергей Павлов, Андрей Соловьев, Александр Бормотин,

Анна Торопова, Иосиф Иткин

12 ноября 2015

Quality Assurance & Related Software Development for Innovative Trading Systems

Tel: +7 495 640 2460, +1 415 830 38 49

www.exactpro.com

Page 2: TMPA-2015: Automated process of creating test scenarios for financial protocols and connectivity testing

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: Automated process of creating test scenarios for financial protocols and connectivity testing

Зачем?

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

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

В финансовой индустрии существуют универсальные протоколы (FIX, SWIFT)

Принципы создания тестов для протоколов достаточно просты и применимы к

большинству систем

Стоит попытаться автоматизировать процесс создания тест-кейсов для

тестирования протоколов и подключений

3Quality 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: Automated process of creating test scenarios for financial protocols and connectivity testing

Зачем?

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

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

В финансовой индустрии существуют универсальные протоколы (FIX, SWIFT)

Принципы создания тестов для протоколов достаточно просты и применимы к

большинству систем

Стоит попытаться автоматизировать процесс создания тест-кейсов для

тестирования протоколов и подключений

4Quality 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: Automated process of creating test scenarios for financial protocols and connectivity testing

Зачем?

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

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

В финансовой индустрии существуют универсальные протоколы (FIX, SWIFT)

Принципы создания тестов для протоколов достаточно просты и применимы к

большинству систем

Стоит попытаться автоматизировать процесс создания тест-кейсов для

тестирования протоколов и подключений

5Quality 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: Automated process of creating test scenarios for financial protocols and connectivity testing

Зачем?

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

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

В финансовой индустрии существуют универсальные протоколы (FIX, SWIFT)

Принципы создания тестов для протоколов достаточно просты и применимы к

большинству систем

Стоит попытаться автоматизировать процесс создания тест-кейсов для

тестирования протоколов и подключений

6Quality 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: Automated process of creating test scenarios for financial protocols and connectivity testing

Зачем?

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

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

В финансовой индустрии существуют универсальные протоколы (FIX, SWIFT)

Принципы создания тестов для протоколов достаточно просты и применимы к

большинству систем

Стоит попытаться автоматизировать процесс создания тест-кейсов для

тестирования протоколов и подключений

7Quality 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: Automated process of creating test scenarios for financial protocols and connectivity testing

Зачем?

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

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

В финансовой индустрии существуют универсальные протоколы (FIX, SWIFT)

Принципы создания тестов для протоколов достаточно просты и применимы к

большинству систем

Стоит попытаться автоматизировать процесс создания тест-кейсов для

тестирования протоколов и подключений

8Quality 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: Automated process of creating test scenarios for financial protocols and connectivity testing

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: Automated process of creating test scenarios for financial protocols and connectivity testing

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

10Quality 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: Automated process of creating test scenarios for financial protocols and connectivity testing

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: Automated process of creating test scenarios for financial protocols and connectivity testing

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: Automated process of creating test scenarios for financial protocols and connectivity testing

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

• Текстовые (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: Automated process of creating test scenarios for financial protocols and connectivity testing

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: Automated process of creating test scenarios for financial protocols and connectivity testing

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

15

Field Offset Length Type Description

Length 0 2 UInt16

Length of the message block

including the header and all

payload messages.

Message

Count2 1 UInt8

Number of payload messages that

will follow the header.

Market Data

Group3 1 Byte

Identity of the market data group

the payload messages relate to.

Sequence

Number4 4 UInt32

Sequence number of the first

payload message.

Payload 5 Variable - One or more payload messages.

Page 16: TMPA-2015: Automated process of creating test scenarios for financial protocols and connectivity testing

Способы описания сообщений - 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: Automated process of creating test scenarios for financial protocols and connectivity testing

Способы описания сообщений - 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: Automated process of creating test scenarios for financial protocols and connectivity testing

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

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

...

Page 19: TMPA-2015: Automated process of creating test scenarios for financial protocols and connectivity testing

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: Automated process of creating test scenarios for financial protocols and connectivity testing

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

20

t

Client Server

Login Message

Heartbeat

Login message

Heartbeat

Page 21: TMPA-2015: Automated process of creating test scenarios for financial protocols and connectivity testing

Требования к описанию

технологического процесса

21

• Точность

• Полнота

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

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

• Гибкость

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

Page 22: TMPA-2015: Automated process of creating test scenarios for financial protocols and connectivity testing

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

Конечные автоматы (англ. 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: Automated process of creating test scenarios for financial protocols and connectivity testing

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

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 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);

Page 24: TMPA-2015: Automated process of creating test scenarios for financial protocols and connectivity testing

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: Automated process of creating test scenarios for financial protocols and connectivity testing

Как генерировать тесты при

помощи словаря и 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;

Page 26: TMPA-2015: Automated process of creating test scenarios for financial protocols and connectivity testing

Как генерировать тесты при

помощи словаря и workflow

TCP/IP connection is

closed

call event (when)

26

when (Timer =

<User_max_idling_time>)

TCP/IP connection is

established

entry / Timer==0;

Page 27: TMPA-2015: Automated process of creating test scenarios for financial protocols and connectivity testing

Как генерировать тесты при

помощи словаря и 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;

Page 28: TMPA-2015: Automated process of creating test scenarios for financial protocols and connectivity testing

Как генерировать тесты при

помощи словаря и 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;

Page 29: TMPA-2015: Automated process of creating test scenarios for financial protocols and connectivity testing

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

29

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

MinOccurs Количество появлений поля в

сообщении больше либо равно

параметру MinOccurs

Количество появлений поля в

сообщении меньше параметра

MinOccurs

MaxOccurs Количество появлений поля в

сообщении меньше либо равно

параметру MaxOccurs

Количество появлений поля в

сообщении больше параметра

MaxOccurs

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

параметру Length

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

Length

Data type (Целые числа)

● Значение в середине

диапазона;

● Значение равно

максимальному/минимальному

для этого типа данных;

(Целые числа)

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

кроме “-” и “0-9”;

● Значение с символом “-”,

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

Page 30: TMPA-2015: Automated process of creating test scenarios for financial protocols and connectivity testing

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

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

Page 31: TMPA-2015: Automated process of creating test scenarios for financial protocols and connectivity testing

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

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

Page 32: TMPA-2015: Automated process of creating test scenarios for financial protocols and connectivity testing

Как генерировать тесты при

помощи словаря и 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;

Page 33: TMPA-2015: Automated process of creating test scenarios for financial protocols and connectivity testing

Как генерировать тесты при

помощи словаря и 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;

Page 34: TMPA-2015: Automated process of creating test scenarios for financial protocols and connectivity testing

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

• client sends/system sends

• registered/not registered

• correct/not correct

• entry actions

• actions/transitions

• variables

• guard

• call event (when)

34

Page 35: TMPA-2015: Automated process of creating test scenarios for financial protocols and connectivity testing

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

Page 36: TMPA-2015: Automated process of creating test scenarios for financial protocols and connectivity testing

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

Что в итоге?

• Словари vs Конечные автоматы? И то и другое!

• Разные протоколы - единая структура

• Сложные конечные автоматы? Современные представления! (UML и

SCXML)

Что дальше?

• Применение метода для других протоколов

• Хватит проектировать! Нам нужен код!

• Есть ли фундаментальные ограничения?

36Quality 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: Automated process of creating test scenarios for financial protocols and connectivity testing

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

Что в итоге?

• Словари vs Конечные автоматы? И то и другое!

• Разные протоколы - единая структура

• Сложные конечные автоматы? Современные представления! (UML и

SCXML)

Что дальше?

• Применение метода для других протоколов

• Хватит проектировать! Нам нужен код!

• Есть ли фундаментальные ограничения?

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

www.exactpro.com

Page 38: TMPA-2015: Automated process of creating test scenarios for financial protocols and connectivity testing

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

Что в итоге?

• Словари vs Конечные автоматы? И то и другое!

• Разные протоколы - единая структура

• Сложные конечные автоматы? Современные представления! (UML и

SCXML)

Что дальше?

• Применение метода для других протоколов

• Хватит проектировать! Нам нужен код!

• Есть ли фундаментальные ограничения?

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

www.exactpro.com

Page 39: TMPA-2015: Automated process of creating test scenarios for financial protocols and connectivity testing

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

Что в итоге?

• Словари vs Конечные автоматы? И то и другое!

• Разные протоколы - единая структура

• Сложные конечные автоматы? Современные представления! (UML и

SCXML)

Что дальше?

• Применение метода для других протоколов

• Хватит проектировать! Нам нужен код!

• Есть ли фундаментальные ограничения?

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

www.exactpro.com

Page 40: TMPA-2015: Automated process of creating test scenarios for financial protocols and connectivity testing

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

Что в итоге?

• Словари vs Конечные автоматы? И то и другое!

• Разные протоколы - единая структура

• Сложные конечные автоматы? Современные представления! (UML и

SCXML)

Что дальше?

• Применение метода для других протоколов

• Хватит проектировать! Нам нужен код!

• Есть ли фундаментальные ограничения?

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

www.exactpro.com

Page 41: TMPA-2015: Automated process of creating test scenarios for financial protocols and connectivity testing

Спасибо!

41

Page 42: TMPA-2015: Automated process of creating test scenarios for financial protocols and connectivity testing

Ваши вопросы

42