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

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

crdoo
November 14, 2014
5

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

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

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

crdoo

November 14, 2014
Tweet

More Decks by crdoo

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  9. 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

    View Slide

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

    View Slide

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

    View Slide

  12. 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

    View Slide

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

    View Slide

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



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

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide