tmpa-2015: automated process of creating test scenarios for financial protocols and connectivity...

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

Upload: iosif-itkin

Post on 22-Jan-2018

3.219 views

Category:

Education


0 download

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