Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

2 Описание системы Начальная конфигурация: Главная компонента (Main) «Горячий» резерв (backup, BU) «Теплый» резерв (warm backup, WBU) Диспетчер (governor, Gov) Сервер доступа (gateway, GW) Tks1 Tks2 Tks3 Tks4 Tks5

Slide 4

Slide 4 text

3 Граф взаимодействий WBU GOV MAIN BU GW User 1 User 2 User n …

Slide 5

Slide 5 text

4  Задачи: 1. Создать сценарий теста 2. Проверить адекватность реакции компонент 3. Убедиться в устойчивости подключения сервера доступа 4. Измерить величину временных задержек на сервере доступа 5. Измерить время переключения и сформировать отчет  Continuous integration  Полностью автоматический режим

Slide 6

Slide 6 text

5 Предлагаемый подход Компоненты системы  конечные автоматы  копии одного и того же конечного автомата  различаются лишь начальными состояниями Компонента Начальное состояние MAIN MAIN SINGLE BU BACKUP START WBU WARMBACKUP START

Slide 7

Slide 7 text

6 Диаграммы состояний компонент системы  MAIN  GW Синхронизация BU с MAIN Завершение работы компоненты Завершение работы компоненты MAIN WITH BACKUP MAIN SINGLE Завершение работы Подключение К MAIN Потеря связи К MAIN Завершение работы GW - off GW - on TERMINATED Stop TERMINATED Stop

Slide 8

Slide 8 text

7 Диаграммы состояний компонент системы  BACKUP  WARMBACKUP Синхронизация BU с MAIN Завершение работы компоненты Завершение работы компоненты BU READY BU START TERMINATED Stop MAIN MAIN недоступен Синхронизация WBU с BU Завершение работы компоненты Завершение работы компоненты WBU READY TERMINATED Stop BACKUP BU недоступен WBU START

Slide 9

Slide 9 text

8 Синхронизация BU с MAIN MAIN есть MAIN отсутствует MAIN недоступен Синхронизация BU с MAIN BU недоступен Завершение работы компоненты Синхронизация WBU с BU Запрос на переведение WBU в состояние BU WARM BACKUP START WARM BACKUP READY BACK UP READY BACK UP WAIT GOVER NOR BACK UP START WBU discon nected MAIN WITH BACK UP TERMINATED STOP Начальное состояние MAIN Начальное состояние BU Начальное состояние WBU Завершение работы компоненты Завершение работы компоненты Завершение работы компоненты Завершение работы компоненты BU есть BU discon nected Завершение работы компоненты Этап 1. Создание сценария WARM BACKUP WAIT GOV ERNOR MAIN SINGLE

Slide 10

Slide 10 text

9 Реализация на языке Python o Обход графа и запись сценария o Сценарии тестов порождают управляющие bash-скрипты в операционной системе Linux. Этап 1. Создание сценария

Slide 11

Slide 11 text

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'}, …] Граф переходов:

Slide 12

Slide 12 text

11 Пример сценария, полученного по графу переходов Event MAIN state BU state WBU state PATH 1 MAIN SINGLE BACKUP START WARMBACKUP START Sync BU with MAIN MAIN WITH BACKUP BACKUP READY WARMBACKUP START Sync WBU with BU MAIN WITH BACKUP 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 WITH BACKUP 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

Slide 13

Slide 13 text

12 Пример: runandsave ssh $TEBACKUPMACHINE "\`cat ~/ASTSDIR\`/te/bin/testBU.sh KILLTE $Scenario $TIMESTAMP" Сценарий в виде Bash-скрипта Структура команды: <функция записи в лог> ssh <вызов скрипта> <команда> <параметры>

Slide 14

Slide 14 text

13 Этап 2. Выполнение сценария o Порожденные скрипты исполняются в рамках инфраструктуры автоматизированного тестирования. Сценарий 1 Сценарий 2 Сценарий n … … … Управляющий скрипт

Slide 15

Slide 15 text

14 Этап 3. Анализ результатов теста o по результатам теста – журналам работы компонент o Δt - ? o занесение данных о переходах компонент в файл отчёта Последовательность переключений Времена переключений … …

Slide 16

Slide 16 text

15 Таблица переходов TKS Initial State Time 1 Time 2 New State Time delta Sync BU with MAIN tks1 MAIN SINGLE 2014-06-14 10:16:21.786970 2014-06-14 10:16:37.254394 MAIN WITH BACKUP 15.467424 Sync BU with MAIN tks2 BACKUP START 2014-06-14 10:16:34.228663 2014-06-14 10:16:37.254197 BACKUP READY 3.025534 Sync WBU with BU tks3 WARMBACKUP START 2014-06-14 10:17:01.699093 2014-06-14 10:17:01.699386 WARMBACKUP READY 0.000293 MAIN unaccessible tks2 Lost link to Main 2014-06-14 10:23:00.330469 2014-06-14 10:23:02.001329 MAIN SINGLE 1.67086 Sync BU with MAIN tks2 MAIN SINGLE 2014-06-14 10:23:02.001329 2014-06-14 10:23:06.374270 MAIN WITH BACKUP 4.372941

Slide 17

Slide 17 text

16 Заключение: Для автоматизации тестирования разработаны инструменты, реализующие:  генерацию всевозможных тестовых сценариев;  анализ правильности реакции компонент на внешние события;  анализ устойчивости подключения сервера доступа;  вычисление времени переключения каждой компоненты в новое состояние;  формирование отчета о переходах компонент. Результаты работы внедрены в практику тестирования на Московской бирже.

Slide 18

Slide 18 text

1.0 Заголовок (обычн+жирн) 18 Спасибо за внимание! Жердер Вадим, [email protected] Ульянина Татьяна, [email protected]