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

Post on 25-Jan-2017

168 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

Quality Assurance & Related Software Development for Innovative Trading SystemsTel: +7 495 640 2460, +1 415 830 38 49www.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=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

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 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.

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

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

...

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

PILLTIMER

PACMAN EATSPOWER PILL

UPDATEMOVEMENT

UPDATEMOVEMENT

UPDATEMOVEMENT

MOVE FROMPACMAN

MOVE TOPACMAN

COLLISIONWITH PACMAN

TIMERENDS

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

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

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 passwordTCP/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

top related