Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Автоматизация тестирования системы резервирова...

crdoo
November 14, 2014
93

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

Жердер Вадим
ОАО Московская Биржа

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

crdoo

November 14, 2014
Tweet

More Decks by crdoo

Transcript

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

    Татьяна НИЯУ МИФИ Автоматизация тестирования системы резервирования торговой системы ASTS Московской Биржи
  2. 2 Описание системы Начальная конфигурация: Главная компонента (Main) «Горячий» резерв

    (backup, BU) «Теплый» резерв (warm backup, WBU) Диспетчер (governor, Gov) Сервер доступа (gateway, GW) Tks1 Tks2 Tks3 Tks4 Tks5
  3. 4  Задачи: 1. Создать сценарий теста 2. Проверить адекватность

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

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

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

    BU с MAIN Завершение работы компоненты Завершение работы компоненты BU READY BU START TERMINATED Stop MAIN MAIN недоступен Синхронизация WBU с BU Завершение работы компоненты Завершение работы компоненты WBU READY TERMINATED Stop BACKUP BU недоступен WBU START
  7. 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
  8. 9 Реализация на языке Python o Обход графа и запись

    сценария o Сценарии тестов порождают управляющие bash-скрипты в операционной системе Linux. Этап 1. Создание сценария
  9. 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'}, …] Граф переходов:
  10. 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
  11. 12 Пример: runandsave ssh $TEBACKUPMACHINE "\`cat ~/ASTSDIR\`/te/bin/testBU.sh KILLTE $Scenario $TIMESTAMP"

    Сценарий в виде Bash-скрипта Структура команды: <функция записи в лог> ssh <Node> <вызов скрипта> <команда> <параметры>
  12. 13 Этап 2. Выполнение сценария o Порожденные скрипты исполняются в

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

    – журналам работы компонент o Δt - ? o занесение данных о переходах компонент в файл отчёта Последовательность переключений Времена переключений … …
  14. 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
  15. 16 Заключение: Для автоматизации тестирования разработаны инструменты, реализующие:  генерацию

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