Moscow Exchange Test Automation of a Backup System at TMPA-2014 (Trading Systems Testing)
Post on 01-Jul-2015
1124 Views
Preview:
DESCRIPTION
Transcript
14 ноября 2014, КостромаЖердер ВадимОАО Московская Биржа
Ульянина ТатьянаНИЯУ МИФИ
Автоматизация тестирования системы резервирования торговой системы ASTS Московской Биржи
1
Торговая система ASTS
2
Описание системыНачальная конфигурация:
Главная компонента (Main)
«Горячий» резерв (backup, BU)
«Теплый» резерв (warm backup, WBU)
Диспетчер (governor, Gov)
Сервер доступа (gateway, GW)
Tks1
Tks2
Tks3
Tks4
Tks5
3
Граф взаимодействий
WBUWBU
GOVGOV MAINMAIN
BUBU
GWGW
User 1
User 2
User n
…
4
Задачи:1. Создать сценарий теста
2. Проверить адекватность реакции компонент
3. Убедиться в устойчивости подключения сервера доступа
4. Измерить величину временных задержек на сервере доступа
5. Измерить время переключения и сформировать отчет
Continuous integration Полностью автоматический режим
5
Предлагаемый подходКомпоненты системы
конечные автоматы
копии одного и того же конечного автомата различаются лишь начальными состояниями
Компонента Начальное состояниеMAIN MAIN SINGLE
BU BACKUP STARTWBU WARMBACKUP START
6
Диаграммы состояний компонент системы
MAIN
GW
Синхронизация
BU с MAIN
Завершение работы компоненты
Завершение работы компоненты
MAIN WITH
BACKUP
MAINSINGLE
Заверш
ениераб
оты
ПодключениеК MAIN
Потеря связиК MAIN
Зав
ерш
ение
раб
оты
GW- off
GW- on
TERMINATED
Stop
TERMINATED
Stop
7
Диаграммы состояний компонент системы
BACKUP
WARMBACKUP
Синхронизация
BU с MAIN
Завершение работы компоненты
Завершение
работы компонентыBU
READY
BU
START
TERMINATED
Stop
MAIN
MAIN недоступен
Синхронизация
WBU с BU
Завершение работы компоненты
Завершение
работы компонентыWBU
READY
TERMINATED
Stop
BACKUP
BU недоступен
WBUSTART
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
9
Реализация на языке Python
o Обход графа и запись сценария
o Сценарии тестов порождают управляющие bash-скрипты в операционной системе Linux.
Этап 1. Создание сценария
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'},…]
Граф переходов:
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
12
Пример:
runandsave ssh $TEBACKUPMACHINE "\`cat ~/ASTSDIR\`/te/bin/testBU.sh KILLTE $Scenario $TIMESTAMP"
Сценарий в виде Bash-скрипта
Структура команды:<функция записи в лог> ssh <Node> <вызов скрипта> <команда> <параметры>
13
Этап 2. Выполнение сценария
o Порожденные скрипты исполняются в рамках инфраструктуры автоматизированного тестирования.
Сценарий 1
Сценарий 2
Сценарий n
…
…
…
Управляющий скрипт
14
Этап 3. Анализ результатов теста
o по результатам теста – журналам работы компонент
o Δt - ?
o занесение данных о переходах компонент в файл отчёта
Последовательность переключений
Времена переключений
… …
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
16
Заключение:Для автоматизации тестирования разработаны инструменты, реализующие:
генерацию всевозможных тестовых сценариев;
анализ правильности реакции компонент на внешние события;
анализ устойчивости подключения сервера доступа;
вычисление времени переключения каждой компоненты в новое состояние;
формирование отчета о переходах компонент.
Результаты работы внедрены в практику тестирования на Московской бирже.
1.0Заголовок (обычн+жирн)
18
Спасибо за внимание!
Жердер Вадим, Vadim.Zherder@moex.comУльянина Татьяна, Ulyanina@mail.ru
top related