<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Разработка технологии автоматизированного нагрузочного тестирования банковской платежной системы</article-title>
      </title-group>
      <fpage>256</fpage>
      <lpage>263</lpage>
      <abstract>
        <p>The article is devoted to the development of technology for automated load testing of the bank payment system based on load testing models. The object of the study is creation of automated test performance of bank payment systems. The subject of the study is the technology of automated performance testing. The aim of the study is to develop automated technology of performance testing systems and managed messages, for automatic preparation process and launching of performance tests, analysis of results with further compilation of reports. The article considers the main aspects of the developed technology. Аннотация. Данная статья посвящена разработке технологии автоматизированного нагрузочного тестирования банковской платежной системы, основанной на моделях нагрузочного тестирования. Объектом исследования является процесс проведения нагрузочных испытаний банковских платежных систем. Предметом исследования является технология автоматизированного нагрузочного тестирования. Целью исследования является разработка технологии автоматизированного нагрузочного тестирования банковских платежных систем. Статья содержит главные аспекты разрабатываемой технологии.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Для обеспечения качества таких систем, нагрузочное тестирование является
обязательным в дополнение к обычному функциональному тестированию и
проводится на регулярной основе, чтобы гарантировать, что они могут
правильно функционировать под нагрузкой.</p>
      <p>Актуальность статьи обусловлена необходимостью регулярного
тестирования банковских платежных систем, отсутствием готовых решений и технологий
для этих целей. На текущий момент подавляющее большинство инструментов
тестирования направлены на работу с графическим интерфейсом пользователя.
Однако такими средствами невозможно протестировать систему, которая
обрабатывает электронные сообщения и не имеет непосредственного
взаимодействия с пользователем. В связи с этим и возникла потребность разработать
технологию, направленную на нагрузочное тестирование банковских платежных
систем. Анализ научно-технической литературы показал, что готовых решений
для систем такого класса, то есть для систем, управляемых преимущественно
сообщениями, а не рабочих мест конкретных операторов – нет. Необходимость
затрат на тестирование определяется тем, что ошибка, проявившаяся в такой
системе, может приносить конкретные, зачастую измеримые потери:
невыполнение обязательств (как следствие – штрафы или другие виды претензий),
потерю клиентов, ошибки в расчетах, приводящие к дополнительным затратам или
невыполнению заказов, задержке, некорректным расчетам или даже к срыву
автоматизированных банковских операций, то есть к прямым потерям.</p>
      <p>Научная новизна статьи заключается в том, что для банковских платежных
систем была предложена новая технология автоматизированного комплексного
нагрузочного тестирования, обеспечивающая адекватность нагрузочного
эксперимента. Также технология использует методы «неразрушающего контроля»1,
что позволяет оценить результаты нагрузочного тестирования без искажения
сторонней нагрузкой. А тестирование проводится методом «черного ящика» на
этапах жизненного цикла (ЖЦ) – эксплуатация, сопровождение и развитие.</p>
      <p>Объектом исследования является процесс проведения нагрузочных
испытаний банковских платежных систем.</p>
      <p>Предметом исследования является технология автоматизированного
нагрузочного тестирования.</p>
      <p>Целью в данной статье поставлена разработка технологии
автоматизированного нагрузочного тестирования банковской платежной системы, для
автоматизации процесса подготовки к нагрузочным испытаниям, их проведению и
анализу результатов с дальнейшим составлением отчетов.</p>
      <p>Задачи, необходимые для достижения цели:
1. Анализ предметной области;
1 Под «неразрушающим контролем» понимается наблюдение за объектом тестирования без
вмешательства в вычислительные процессы тестируемой системы.
2. Разработка технологического процесса нагрузочного тестирования
банковской платежной системы;
3. Разработка проекта автоматизации решения задач для проведения
нагрузочных испытаний банковской платежной системы;
Каждый раздел статьи будет посвящен решению поставленной задачи под
соответствующим номером.
2</p>
      <p>Анализ предметной области
Тестирование программного обеспечения (далее – ПО) — вид деятельности
в процессе разработки, который связан с выполнением процедур, направленных
на обнаружение (доказательство наличия) ошибок в разрабатываемой системе.</p>
      <p>Нагрузочное тестирование (далее – НТ) — это вид тестирования, при
котором имитируется работа определенного числа пользователей на каком-либо
общем ресурсе (одновременная работа пользователей с ПО), либо подается
определенное количество тестовых данных на какую-либо систему. Данный вид
тестирования позволяет выявить максимально возможное число одновременно
работающих пользователей, определить время выполнения выбранных
операций, определить границы приемлемой производительности, выявить узкие
места как в аппаратной части (CPU, ОЗУ и пр.), так и в программной.</p>
      <p>При автоматизированном тестировании для выполнения тестов и дальнейшей
проверки результатов их выполнения используются программные средства.</p>
      <p>Чтобы обеспечить адекватность поставленной задачи проведения
автоматизированного нагрузочного тестирования, исходных данных и результатов
эксперимента, необходимо достичь между заказчиком и подрядчиком обоюдного
понимания ключевых аспектов планируемого эксперимента.</p>
      <p>
        На текущий момент на рынке для обеспечения адекватности нагрузочного
тестирования банковских платежных систем нет решений, за исключением
одного. Существует публикация по моделям в нагрузочном тестировании. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]
В ней говорится о том, что существуют метамодели для обеспечения
адекватности результатов нагрузочного тестирования и его частей: постановки
задачи, исходных данных и анализа результатов нагрузочного теста. Эти модели
применимы к нагрузочному тестированию информационных систем (в том
числе банковских платежных систем), включающих прикладное и системное ПО в
IT – среде функционирования, развернутые на оборудовании комплекса
технических средств информационной системы (далее – ИС).
      </p>
      <p>
        Модели были разработаны авторами публикации «Модели в нагрузочном
тестировании» Б.А. Позиным и И.В. Галаховым. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>В данной публикации присутствует понятие «метамодель». Метамодель
нужна для описания возможных понятий, которые могут быть существенными
при последующем нагрузочном тестировании и оценке адекватности его
результатов.</p>
      <p>Метамодели нужны для обеспечения общего подхода к постановке задачи
как Заказчиком, так и Исполнителем. Они являются промежуточным
элементом, соединяющим неформализованные требования Заказчика с
формализованным описанием нагрузочного эксперимента в виде моделей.</p>
      <p>Представлены следующие метамодели:
1. Метамодель требований – содержит правила формализации требований к
эксплуатационным характеристикам системы.
2. Метамодель системы – позволяет описать структуру системы как сеть систем
массового обслуживания, состоящих из элементов типа «ресурс» и связей
между ними.
3. Метамодель нагрузки – определяет структуру входного потока нагрузки.
4. Метамодель измерений – предназначена для унификации описания способов
получения измеряемых величин при нагрузочном тестировании ИС,
принципиальных возможностей постановки процесса измерений, типовых способов
оценки показателей и характеристик, общих свойств инструментальных
средств для анализа возможностей их использования для автоматизации
измерений.</p>
      <p>Рис. 1. Модели в нагрузочном тестировании.
На основе метамоделей формируются соответственно модели требований,
системы, нагрузки и измерении (рисунок 1). В модели требований представлены
требования к системе, состоящие из бизнес-правил и технических требований. В
модели системы указаны устройства объекта тестирования, программные
комплексы, связи между комплексами, связи комплексов с устройствами объекта
тестирования. В модели нагрузки представлены функции для распределения
нагрузки, матрица потоков нагрузки и интерфейсы для ввода нагрузки (в виде
ссылки на модель системы). В модели измерений указаны измеряемые
величины для каждого типа устройств системы, периодичность и скважность
измерений, расчетные показатели и взаимосвязь с измеряемыми величинами, правила
и алгоритмы получения расчетных показателей, типовые критерии оценки
полученных результатов.
Разработка технологического процесса нагрузочного
тестирования банковской платежной системы
Сама технология нагрузочного тестирования делится на три фазы:
1. Планирование НТ банковской платежной системы;
2. Проведение НТ банковской платежной системы;
3. Анализ и формирование отчета
Каждая фаза включает в себя несколько этапов.</p>
      <p>Характерными этапами для фазы «планирование НТ банковской платежной
системы» являются:
• разработка плана нагрузочного тестирования системы;
• разработка программы и методики испытаний (ПМИ);
• разработка диаграммы нагрузки.
• генерация надлежащей нагрузки (тестовых данных) в соответствии с планом
нагрузочного тестирования и диаграммой нагрузки.
Характерными этапами для фазы «проведение НТ банковской платежной
системы» являются:
• подача нагрузки;
• сбор данных для дальнейшего анализа;
Характерными этапами для фазы «анализ и формирование отчета» являются:
• анализ и агрегация всех данных, полученных в результате тестирования;
• составление итогового отчета.</p>
      <p>На рисунке 2 представлено описание автоматизированных бизнес-процессов
проведения комплексного НТ на всех фазах, описанных в технологии
автоматизированного НТ. На схеме показано, на каких фазах используются модели НТ и
система автоматизированного нагрузочного тестирования (далее – САНТ),
автоматизирующая данные фазы.
Рис. 2. Описание организации автоматизированного бизнес-процесса проведения НТ.
4
Разработка проекта автоматизации решения задач для
проведения нагрузочных испытаний банковской
платежной системы
Для автоматизации технологии и процесса проведения НТ банковской
платежной системы была разработана САНТ.</p>
      <p>САНТ автоматизирует процесс НТ на всех фазах и состоит из подсистем
генерации нагрузки, подачи нагрузки, анализа данных и формирования отчета
(рисунок 3).</p>
      <p>Рис. 3. Проект автоматизации технологии НТ банковской платежной системы.
Тестирование происходит следующим образом: на фазе планирования в
соответствии моделью нагрузки, согласованной у заказчика, с помощью подсистемы
генерации нагрузки генерируются тестовые платежные сообщения и
помещаются в базу данных (далее – БД) САНТ. Затем подсистема подачи нагрузки
берет тестовые платежные сообщения из БД САНТ и подает их с привязкой ко
времени на вход тестируемой системы, а именно в средства гарантированной
доставки сообщений. После чего подсистема анализа данных и формирования
отчета собирает с тестируемой системы данные для анализа и составления
сводного отчета по результатам НТ.
5</p>
      <p>Заключение
В результате анализа предметной области сформулированы требования к
технологии нагрузочного тестирования и средствам ее автоматизации. Также было
установлено, что на рынке нет готовых решений для комплексного
нагрузочного тестирования, с использованием концепции «неразрушающего контроля»,
методом «черного ящика» систем, управляемых в основном сообщениями, на
этапах жизненного цикла – эксплуатация, сопровождение и развитие.</p>
      <p>Разработана технология нагрузочного тестирования банковской платежной
системы, основанная на совместном использовании моделей, которые
позволяют адекватно построить нагрузку на тестируемую систему в ходе эксперимента
и адекватно оценить результаты нагрузочного тестирования. Технология
основана на моделях нагрузочного тестирования, чтобы обеспечить адекватность
поставленной задачи, исходных данных и результатов нагрузочного
эксперимента, а также обоюдного понимания ключевых аспектов планируемого
эксперимента между заказчиком и подрядчиком.
Автоматизированы фазы технологии нагрузочного тестирования.
Разработанная технология была автоматизирована с помощью разработки системы
автоматизированного нагрузочного тестирования (САНТ), таким образом удалось:
1. Сократить затраты на ресурсы и время для подготовки тестовых данных. За
счет автоматизации генерации тестовых данных было сокращено количество
сотрудников, задействованных в подготовке тестовых данных до 1 человека,
а также достигнуто сокращение времени подготовки тестовых данных с трех
недель до 1 рабочего дня при генерации 10 миллионов платежных сообщений
всех типов, что позволяет повысить качество эксперимента.
2. Сократить время на анализ и формирование отчетов. Так как анализ с
последующей фильтрацией полученной информации, обработка измеряемых
характеристик (их интерпретация, агрегация) и формирование отчета проходят
в автоматизированном режиме, удалось сократить время проведения фазы
анализа и формирования отчетов с 5-7 дней до получаса.
Литература</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. Models in performance testing,
          <string-name>
            <surname>Pozin</surname>
            <given-names>B.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Galakhov</surname>
            <given-names>I.V.</given-names>
          </string-name>
          , Programming and
          <string-name>
            <given-names>Computer</given-names>
            <surname>Software</surname>
          </string-name>
          .
          <year>2011</year>
          . Т.
          <volume>37</volume>
          . № 1. pp.
          <fpage>15</fpage>
          -
          <lpage>25</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Zhen</given-names>
            <surname>Ming Jiang; Ahmed E. Hassan</surname>
          </string-name>
          ,
          <source>A Survey on Load Testing of Large-Scale Software Systems // IEEE Transactions on Software Engineering</source>
          (Volume:
          <volume>41</volume>
          , Issue:
          <volume>11</volume>
          ,
          <string-name>
            <surname>Nov</surname>
          </string-name>
          .1
          <year>2015</year>
          ), pp.
          <fpage>1091</fpage>
          -
          <lpage>1118</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>