Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

2,232 views

Published on

Tools & Methods of Program Analysis (TMPA-2014)
Conference in Kostroma, November 14-15

Рассмотрена задача автоматизации тестирования программного комплекса с двухуровневым резервированием. Предложен подход на основе описания комплекса как системы конечных автоматов, тогда тестовые сценарии есть пути на графе переходов конечного автомата. На основе этого подхода создано инструментальное средство, позволяющее находить всевозможные пути графа (возможные сценарии осуществления переходов, порождающие управляющие bash-скрипты в операционной системе Linux). Предусмотрено исполнение порожденных скриптов в рамках инфраструктуры автоматизированного тестирования. Инструментальное средство позволяет проверить исправность работы системы резервирования

  • Be the first to comment

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

  1. 1. 14 ноября 2014, Кострома Жердер Вадим ОАО Московская Биржа Ульянина Татьяна НИЯУ МИФИ Автоматизация тестирования системы резервирования торговой системы ASTS Московской Биржи
  2. 2. 1 Торговая система ASTS
  3. 3. 2 Описание системы Начальная конфигурация: Главная компонента (Main) «Горячий» резерв (backup, BU) «Теплый» резерв (warm backup, WBU) Диспетчер (governor, Gov) Сервер доступа (gateway, GW) Tks1 Tks2 Tks3 Tks4 Tks5
  4. 4. 3 Граф взаимодействий WWBBUU GGOOVV MMAAIINN BBUU GGWW User 1 User 2 … User n
  5. 5.  Задачи: 1. Создать сценарий теста 2. Проверить адекватность реакции компонент 3. Убедиться в устойчивости подключения сервера доступа 4. Измерить величину временных задержек на сервере доступа 5. Измерить время переключения и сформировать отчет 4  Continuous integration  Полностью автоматический режим
  6. 6. Предлагаемый подход Компоненты системы  конечные автоматы  копии одного и того же конечного автомата  различаются лишь начальными состояниями Компонента Начальное состояние MAIN MAIN SINGLE BU BACKUP START WBU WARMBACKUP START 5
  7. 7. 6 Диаграммы состояний компонент системы  MAIN  GW Завершение работы компоненты Синхронизация BU с MAIN Завершение работы компоненты MAIN WITH BACKUP MAIN SINGLE работы Завершение Потеря связи К MAIN Подключение К MAIN Завершение работы GW - off GW - on TERMINATED Stop TERMINATED Stop
  8. 8. Диаграммы состояний компонент системы 7  BACKUP  WARMBACKUP Завершение работы компоненты Синхронизация BU с MAIN Завершение работы BU компоненты READY BU START TERMINATED Stop MAIN недоступен MAIN Завершение работы компоненты Синхронизация WBU с BU Завершение работы WBU компоненты READY TERMINATED Stop BU недоступен BACKUP WBU START
  9. 9. 8 Завершение работы компоненты BU недоступен Начальное состояние BU Синхронизация BU с MAIN MAIN недоступен Синхронизация BU с MAIN BU есть Завершение работы компоненты MAIN есть MAIN отсутствует Синхронизация WBU с BU Запрос на переведение WBU в состояние BU WARM BACKUP START WARM BACKUP READY BACK UP START BACKU P READY BACKU P WAIT GOVER NOR WBU discon nected MAIN WITH BACKU P TERMINATED STOP Начальное состояние MAIN Начальное состояние WBU Завершение работы компоненты Завершение работы компоненты BU discon nected Завершение работы компоненты Завершение работы компоненты Этап 1. Создание сценария WARM BACKUP WAIT GOV ERNOR MAIN SINGLE
  10. 10. 9 Реализация на языке Python Этап 1. Создание сценария o Обход графа и запись сценария o Сценарии тестов порождают управляющие bash-скрипты в операционной системе Linux.
  11. 11. 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'}, …]
  12. 12. Пример сценария, полученного по графу переходов Event MAIN state BU state WBU state PATH 1 MAIN SINGLE BACKUP START WARMBACKUP START 11 Sync BU with MAIN 1 MAIN WITH BACKUP BACKUP READY WARMBACKUP START Sync WBU with BU MAIN WITH BACKUP BACKUP READY WARMBACKUP READY 2 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 3 4 5 6
  13. 13. Пример: runandsave ssh $TEBACKUPMACHINE "`cat ~/ASTSDIR`/te/bin/testBU.sh KILLTE $Scenario $TIMESTAMP" 12 Сценарий в виде Bash-скрипта Структура команды: <функция записи в лог> ssh <Node> <вызов скрипта> <команда> <параметры>
  14. 14. … 13 Этап 2. Выполнение сценария o Порожденные скрипты исполняются в рамках инфраструктуры автоматизированного тестирования. Сценарий 1 Сценарий 2 Сценарий n Управляющий скрипт … …
  15. 15. 14 Этап 3. Анализ результатов теста o по результатам теста – журналам работы компонент o Δt - ? o занесение данных о переходах компонент в файл отчёта Последовательность переключений Времена переключений … …
  16. 16. 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
  17. 17. Заключение: Для автоматизации тестирования разработаны инструменты, реализующие:  генерацию всевозможных тестовых сценариев;  анализ правильности реакции компонент на внешние события;  анализ устойчивости подключения сервера доступа;  вычисление времени переключения каждой компоненты в новое состояние;  формирование отчета о переходах компонент. Результаты работы внедрены в практику тестирования на Московской бирже. 16
  18. 18. 1.0 Заголовок (обычн+жирн) Спасибо за внимание! Жердер Вадим, Vadim.Zherder@moex.com Ульянина Татьяна, Ulyanina@18 mail.ru

×