moscow exchange test automation of a backup system at tmpa-2014 (trading systems testing)

18
14 ноября 2014, Кострома Жердер Вадим ОАО Московская Биржа Ульянина Татьяна НИЯУ МИФИ Автоматизация тестирования системы резервирования торговой системы ASTS Московской Биржи

Upload: iosif-itkin

Post on 01-Jul-2015

1.124 views

Category:

Documents


1 download

DESCRIPTION

Tools & Methods of Program Analysis (TMPA-2014) Conference in Kostroma, November 14-15 Рассмотрена задача автоматизации тестирования программного комплекса с двухуровневым резервированием. Предложен подход на основе описания комплекса как системы конечных автоматов, тогда тестовые сценарии есть пути на графе переходов конечного автомата. На основе этого подхода создано инструментальное средство, позволяющее находить всевозможные пути графа (возможные сценарии осуществления переходов, порождающие управляющие bash-скрипты в операционной системе Linux). Предусмотрено исполнение порожденных скриптов в рамках инфраструктуры автоматизированного тестирования. Инструментальное средство позволяет проверить исправность работы системы резервирования

TRANSCRIPT

Page 1: Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Systems Testing)

14 ноября 2014, КостромаЖердер ВадимОАО Московская Биржа

Ульянина ТатьянаНИЯУ МИФИ

Автоматизация тестирования системы резервирования торговой системы ASTS Московской Биржи

Page 2: Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Systems Testing)

1

Торговая система ASTS

Page 3: Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Systems Testing)

2

Описание системыНачальная конфигурация:

Главная компонента (Main)

«Горячий» резерв (backup, BU)

«Теплый» резерв (warm backup, WBU)

Диспетчер (governor, Gov)

Сервер доступа (gateway, GW)

Tks1

Tks2

Tks3

Tks4

Tks5

Page 4: Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Systems Testing)

3

Граф взаимодействий

WBUWBU

GOVGOV MAINMAIN

BUBU

GWGW

User 1

User 2

User n

Page 5: Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Systems Testing)

4

Задачи:1. Создать сценарий теста

2. Проверить адекватность реакции компонент

3. Убедиться в устойчивости подключения сервера доступа

4. Измерить величину временных задержек на сервере доступа

5. Измерить время переключения и сформировать отчет

Continuous integration Полностью автоматический режим

Page 6: Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Systems Testing)

5

Предлагаемый подходКомпоненты системы

конечные автоматы

копии одного и того же конечного автомата различаются лишь начальными состояниями

Компонента Начальное состояниеMAIN MAIN SINGLE

BU BACKUP STARTWBU WARMBACKUP START

Page 7: Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Systems Testing)

6

Диаграммы состояний компонент системы

MAIN

GW

Синхронизация

BU с MAIN

Завершение работы компоненты

Завершение работы компоненты

MAIN WITH

BACKUP

MAINSINGLE  

Заверш

ениераб

оты

ПодключениеК MAIN

Потеря связиК MAIN

Зав

ерш

ение

раб

оты

GW- off

GW- on

TERMINATED

Stop

TERMINATED

Stop

Page 8: Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Systems Testing)

7

Диаграммы состояний компонент системы

BACKUP

WARMBACKUP

Синхронизация

BU с MAIN

Завершение работы компоненты

Завершение

работы компонентыBU

READY

BU

START 

TERMINATED

Stop

MAIN

MAIN недоступен

Синхронизация

WBU с BU

Завершение работы компоненты

Завершение

работы компонентыWBU

READY 

TERMINATED

Stop

BACKUP

BU недоступен

WBUSTART

Page 9: Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Systems Testing)

8

Синхронизация BU с MAIN

MAIN есть

MAIN отсутствует

MAIN недоступен

Синхронизация BU с MAIN

BU недоступен

Завершение работы компоненты

Синхронизация WBU с BU

Запрос на переведение WBUв состояние BU

WARMBACKUP START

WARMBACKUP READY

BACKUP

READY

BACKUP WAIT GOVER

NOR

BACKUP

START

WBU disconnected

MAIN WITH

BACKUP

TERMINATED

STOP

Начальное состояние

MAIN

Начальное состояние BU

Начальное состояние

WBU

Завершение работы

компоненты

Завершение работы компоненты

Завершение работы компоненты

Завершение работы компоненты

BU есть

BU disconnected

Завершение работы компоненты

Этап 1. Создание сценария

WARMBACKUP

WAIT GOV ERNOR

MAIN SINGLE

Page 10: Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Systems Testing)

9

Реализация на языке Python

o Обход графа и запись сценария

o Сценарии тестов порождают управляющие bash-скрипты в операционной системе Linux.

Этап 1. Создание сценария

Page 11: Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Systems Testing)

10

Модуль Fysom

class Component(Fysom):def init (self, initial state, log name, tks name, tks ip):…

events list = [ {'name': 'Sync BU with MAIN', 'src': 'BU unsync', 'dst': 'BU synced'}, {'name': 'MAIN unaccessible', 'src': 'BU synced', 'dst': 'BU Wait Gov'},…]

Граф переходов:

Page 12: Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Systems Testing)

11

Пример сценария, полученного по графу переходовEvent MAIN state BU state WBU state

PATH 1

  MAIN SINGLE BACKUP START WARMBACKUP START

Sync BU with MAIN

MAIN WITHBACKUP

BACKUP READY WARMBACKUP START

Sync WBU with BU MAIN WITHBACKUP

BACKUP READY WARMBACKUP READY

BU unaccessible MAIN SINGLE No BU WARMBACKUP WAIT GOVERNOR

Switch WBU to BU MAIN SINGLE No BU BACKUP START

Sync BU with MAIN

MAIN WITHBACKUP

No BU BACKUP READY

MAIN unaccessible No MAIN No BU BACKUP WAIT GOVERNOR

Gov Permission granted

No MAIN No BU MAIN SINGLE

1

2

3

4

5

6

Page 13: Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Systems Testing)

12

Пример:

runandsave ssh $TEBACKUPMACHINE "\`cat ~/ASTSDIR\`/te/bin/testBU.sh KILLTE $Scenario $TIMESTAMP"

Сценарий в виде Bash-скрипта

Структура команды:<функция записи в лог> ssh <Node> <вызов скрипта> <команда> <параметры>

Page 14: Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Systems Testing)

13

Этап 2. Выполнение сценария

o Порожденные скрипты исполняются в рамках инфраструктуры автоматизированного тестирования.

Сценарий 1

Сценарий 2

Сценарий n

Управляющий скрипт

Page 15: Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Systems Testing)

14

Этап 3. Анализ результатов теста

o по результатам теста – журналам работы компонент

o Δt - ?

o занесение данных о переходах компонент в файл отчёта

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

Времена переключений

… …

Page 16: Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Systems Testing)

15

Таблица переходовTKS Initial State Time 1 Time 2 New State Time delta

Sync BU with MAINtks1 MAIN SINGLE 2014-06-14

10:16:21.7869702014-06-14

10:16:37.254394MAIN WITH

BACKUP15.467424

Sync BU with MAINtks2 BACKUP START 2014-06-14

10:16:34.2286632014-06-14

10:16:37.254197BACKUP READY

3.025534

Sync WBU with BU

         

tks3WARMBACKUP

START2014-06-14

10:17:01.6990932014-06-14

10:17:01.699386WARMBACKUP

READY 0.000293MAIN

unaccessibletks2 Lost link to Main 2014-06-14

10:23:00.3304692014-06-14

10:23:02.001329MAIN SINGLE 1.67086

Sync BU with MAINtks2 MAIN SINGLE 2014-06-14

10:23:02.0013292014-06-14

10:23:06.374270MAIN WITH

BACKUP4.372941

Page 17: Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Systems Testing)

16

Заключение:Для автоматизации тестирования разработаны инструменты, реализующие:

генерацию всевозможных тестовых сценариев;

анализ правильности реакции компонент на внешние события;

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

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

формирование отчета о переходах компонент.

Результаты работы внедрены в практику тестирования на Московской бирже.

Page 18: Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Systems Testing)

1.0Заголовок (обычн+жирн)

18

Спасибо за внимание!

Жердер Вадим, [email protected]Ульянина Татьяна, [email protected]