<?xml version="1.0"?>
<!DOCTYPE article
PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.4 20190208//EN"
       "JATS-journalpublishing1.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" article-type="research-article" dtd-version="1.4" xml:lang="en">
 <front>
  <journal-meta>
   <journal-id journal-id-type="publisher-id">Bulletin of the Angarsk State Technical University</journal-id>
   <journal-title-group>
    <journal-title xml:lang="en">Bulletin of the Angarsk State Technical University</journal-title>
    <trans-title-group xml:lang="ru">
     <trans-title>Вестник Ангарского Государственного Технического Университета</trans-title>
    </trans-title-group>
   </journal-title-group>
   <issn publication-format="print">2686-777X</issn>
  </journal-meta>
  <article-meta>
   <article-id pub-id-type="publisher-id">91810</article-id>
   <article-id pub-id-type="doi">10.36629/2686-777X-2024-1-18-175-177</article-id>
   <article-categories>
    <subj-group subj-group-type="toc-heading" xml:lang="ru">
     <subject>ТЕХНИЧЕСКАЯ КИБЕРНЕТИКА</subject>
    </subj-group>
    <subj-group subj-group-type="toc-heading" xml:lang="en">
     <subject>TECHNICAL CYBERNETICS</subject>
    </subj-group>
    <subj-group>
     <subject>ТЕХНИЧЕСКАЯ КИБЕРНЕТИКА</subject>
    </subj-group>
   </article-categories>
   <title-group>
    <article-title xml:lang="en">MATHEMATICAL METHODS IN TESTING</article-title>
    <trans-title-group xml:lang="ru">
     <trans-title>МАТЕМАТИЧЕСКИЕ МЕТОДЫ В ТЕСТИРОВАНИИ</trans-title>
    </trans-title-group>
   </title-group>
   <contrib-group content-type="authors">
    <contrib contrib-type="author">
     <name-alternatives>
      <name xml:lang="ru">
       <surname>Александрова</surname>
       <given-names>Елена Григорьевна</given-names>
      </name>
      <name xml:lang="en">
       <surname>Aleksandrova</surname>
       <given-names>Elena Grigor'evna</given-names>
      </name>
     </name-alternatives>
    </contrib>
    <contrib contrib-type="author">
     <name-alternatives>
      <name xml:lang="ru">
       <surname>Добрынина</surname>
       <given-names>Надежда Николаевна</given-names>
      </name>
      <name xml:lang="en">
       <surname>Dobrynina</surname>
       <given-names>Nadezhda Nikolaevna</given-names>
      </name>
     </name-alternatives>
     <xref ref-type="aff" rid="aff-1"/>
    </contrib>
   </contrib-group>
   <aff-alternatives id="aff-1">
    <aff>
     <institution xml:lang="ru">ФГБОУ ВО &quot;Ангарский государственный технический университет&quot;</institution>
     <country>RU</country>
    </aff>
    <aff>
     <institution xml:lang="en">Federal State Funded Educational Establishment of Higher Education «Angarsk State Technical University»</institution>
     <country>RU</country>
    </aff>
   </aff-alternatives>
   <pub-date publication-format="print" date-type="pub" iso-8601-date="2024-12-19T04:51:26+03:00">
    <day>19</day>
    <month>12</month>
    <year>2024</year>
   </pub-date>
   <pub-date publication-format="electronic" date-type="pub" iso-8601-date="2024-12-19T04:51:26+03:00">
    <day>19</day>
    <month>12</month>
    <year>2024</year>
   </pub-date>
   <volume>1</volume>
   <issue>18</issue>
   <fpage>175</fpage>
   <lpage>177</lpage>
   <history>
    <date date-type="received" iso-8601-date="2024-12-11T00:00:00+03:00">
     <day>11</day>
     <month>12</month>
     <year>2024</year>
    </date>
   </history>
   <self-uri xlink:href="https://angtu.editorum.ru/en/nauka/article/91810/view">https://angtu.editorum.ru/en/nauka/article/91810/view</self-uri>
   <abstract xml:lang="ru">
    <p>В статье рассмотрено применение дискретных математических методов, с помощью которых тестировщик может анализировать связи между структурой программного продукта и логикой его поведения</p>
   </abstract>
   <trans-abstract xml:lang="en">
    <p>The article discusses the use of discrete mathematical methods, with the help of which a tester can analyze the connections between the structure of a software product and the logic of its behavior</p>
   </trans-abstract>
   <kwd-group xml:lang="ru">
    <kwd>тестирование</kwd>
    <kwd>математические методы</kwd>
    <kwd>тест-кейсы</kwd>
    <kwd>чек-листы</kwd>
   </kwd-group>
   <kwd-group xml:lang="en">
    <kwd>testing</kwd>
    <kwd>mathematical methods</kwd>
    <kwd>test cases</kwd>
    <kwd>checklists</kwd>
   </kwd-group>
  </article-meta>
 </front>
 <body>
  <p>Каждый день инженеры по обеспечению качества взаимодействуют с логическими формулами, поведением параметров и структурных пластов информации. В их профессиональные задачи входит проверка и контроль за состоянием систем.А это значит, тестировщику крайне полезно обладать математическим и алгоритмическим мышлением, чтобы хорошо понимать логику проверяемого программного обеспечения.Если QA применяет математический подход в своей деятельности, все логические операции в процессе тестирования программного обеспечения будут качественно связанны между собой, действия будут последовательными, а любая проверяемая функция будет тщательно анализироваться.Знания дискретной математики позволяют отыскать оптимальное решение в любой рабочей ситуации. К примеру, можно настроить оптимальный набор тестовых случаев, не включая в них все допустимые сценарии.Также, дискретная математика позволяет визуализировать точные параметры ПО, которые были проверены и покрыты тестами.В процессе проведения тестирования ожидаемые результаты поведения ПО могут кардинальным образом отличаться от фактического результата. Из этого следует, что базовая задача отдела тестирования – максимально охватить все допустимые тестовые случаи при проверке программного обеспечения.Чтобы лучше понять применение познаний дискретной математики в сфере QA, можно обратиться к диаграмме Венна (рисунок 1), которая наглядно иллюстрирует подобную взаимосвязь. Рисунок 1 - диаграмма Венна Подобная диаграмма позволяет не просто определить набор необходимых тестовых ситуаций, но и также провести сравнение использования (целесообразности применения) того или иного набора. Только дискретная математика позволяет оптимизировать и анализировать наборы тестовых действий, влияющих на функционирование программного комплекса.Теорию множеств стоит рассмотреть на примере наглядного тестового случая, когда тестировщику поставлена задача по проверке логики работы приложения «Следующий день» (программа, что показывает какой день будет следующий после введенной даты).Итак, теория множеств позволяет создать так называемый псевдокод:M1={month:month has 30 days}M2={month:month has 31 days except December}M3={month:month is February}M4={month:month is December} D1={day:1&lt;=day&lt;=28}D2={day:1&lt;=day&lt;=29}D3={day:1&lt;=day&lt;=30} D4={day:1&lt;=day&lt;=31}Y1={year:year is a leap year}Y2={year:year is not a leap year}Основываясь на этих данных, тестеровщики могут проводить всевозможные проверки. Такой формат данных не только повышает скорость обработки тестов программным обеспечением, но и снижает риск пропуска глобальной ошибки.Большая часть дискретной математики основана на так называемых «теориях графов», изучающих графы. Эти графы применяются для качественного представления связей между данными или объектами. Наиболее распространенный пример графа – компьютерная сеть.Графы играют основополагающую роль для процесса разработки программного обеспечения. К примеру, с их помощью можно разложить некоторые функции (сложные задачи) на мелкие составляющие части, что позволит эффективно понимать необходимые бизнес-процессы.Вернемся непосредственно к процессу тестирования ПО и представим, что у нас есть некий поток процесса (к примеру, перемещение задачи внутри системы отслеживания задач). Таким образом тестировщик располагает условием некоторой задачи и может перенести ее на другой этап (ориентированный граф), или может достичь определенной точки, где нет возможности редактировать сущность (неориентированный граф).Следующий пример: тестировщик получил набор сущностей и действий, которые можно выполнять с этими сущностями. А с помощью матрицы смежности у него есть возможность сократить набор тестовых случаев.Именно процесс сокращения тестовых случаев является наиболее важной частью любого процесса тестирования программного обеспечения. Ведь возникает максимальный охват тестирования и избегается процедура проведения ненужных проверок.Задача тестировщика – охватить веб-продукт, применяя эффективные контрольные примеры, с помощью которых можно проверять все допустимые комбинации действий с программным обеспечением. QA-специалисты могут добиться максимального успеха, прилагая небольшие усилия, основываясь на базовых принципах дискретной математики (алгоритмы) для поиска оптимальных наборов тестовых случаев.Также дискретная математика позволяет понимать, как на самом деле производится программное обеспечение, ведь любой веб-продукт использует специальные алгоритмы и методы дискретной математики (вместе с логикой). Подобный тезис означает то, что, если мы знаем, как работает программа, мы можем отыскать внутри нее ошибку, которая не будет видна рядовому пользователю.Рассмотрим, как программное обеспечение работает на основе микросервисной технологии снабженной сетью Петри (рисунок 2). Рисунок 2 - Сети Петри На картинке видно, что система обладает начальным состоянием и должна получить входящий сигнал, который направляется от другой системы. В зависимости от полученного итога должно выполниться определенное действие.Другими словами, сети Петри показывают динамику всей системы. Если есть определенная проблема, ее можно очень быстро локализировать.Все искусственные нейронные сети также базируются на принципах графа. Они обладают способностями обработки данных нейронами человеческого мозга. Любая часть нейронной системы базируется на графе, в содержание которой входят «входные» узлы, «скрытый» слой и «исходящие» узлы.Определенная часть информации поступает на входной слой, а ранее добавленные алгоритмы скрытого слоя позволяют обрабатывать данные с последующей отправкой итогов на исходящий этап. То есть, нейронная сеть может выполнять действия на основе таких данных.Все модели ИНС требуют обучения или расчёта весов связей. В общем случае, обучение – такой выбор параметров сети, при котором сеть лучше всего справляется с поставленной проблемой. Обучение — это задача многомерной оптимизации, и для ее решения существует множество алгоритмов. Рисунок 3 – Структура нейронной сети Технически обучение заключается в нахождении коэффициентов связей между нейронами. В процессе обучения нейронная сеть способна выявлять сложные зависимости между входными данными и выходными, а также выполнять обобщение. Это значит, что в случае успешного обучения сеть сможет вернуть верный результат на основании данных, которые отсутствовали в обучающей выборке.Последний пример применения дискретной математики в QA рассмотрен на основе построения тестирования программного обеспечения. Есть большое количество методологий проверок и подходов с названием «millennium testing», которые были разработаны и внедрены в обиход еще в начале 2000-х годов.BDD (от англ. Behavior Driven Development) – часть так называемого миллениум тестирования, которая позволяет тестировщикам выстраивать более тесную связь между приемкой функций и проверками, используемыми для тестирования определенной функциональности.Базовая структура рабочего функционирования BDD (рисунок 4) выстроена на базе динамического графа (Сети Петри).  Рисунок 4 - QA начинает BDD автоматизацию Таким образом, базовые преимущества использования наработок дискретной математики в повседневной деятельности компании по обеспечению качества:эффективная помощь в понимании бизнес-логики разрабатываемого функционала;возможность дробления сложных задач на мелкие компоненты;выполнение эффективного тестирования с меньшей затратой выделенного времени;наглядная визуализация внутреннего строения архитектуры ПО.Однозначно, дискретная математика позволяет повышать эффективность тестирования любого программного обеспечения. Каждый аспект дискретной математики упрощает интерпретацию программного обеспечения и всех его жизненных циклов.</p>
 </body>
 <back>
  <ref-list>
   <ref id="B1">
    <label>1.</label>
    <citation-alternatives>
     <mixed-citation xml:lang="ru">Куликов С.С. Тестирование программного обеспечения. Базовый курс / Куликов С.С. – Москва: &quot;Химия&quot;, 1981. – 200 с</mixed-citation>
     <mixed-citation xml:lang="en">Kulikov S.S. Testirovanie programmnogo obespecheniya. Bazovyy kurs / Kulikov S.S. – Moskva: &quot;Himiya&quot;, 1981. – 200 s</mixed-citation>
    </citation-alternatives>
   </ref>
   <ref id="B2">
    <label>2.</label>
    <citation-alternatives>
     <mixed-citation xml:lang="ru">Александрова Е. Г., Добрыни-на Н. Н. Жизненный цикл и основные принципы тестирования // Современные технологии и научно-технический прогресс. 2023. №. 1. С. 95-96.</mixed-citation>
     <mixed-citation xml:lang="en">Aleksandrova E. G., Dobryni-na N. N. Zhiznennyy cikl i osnovnye principy testirovaniya // Sovremennye tehnologii i nauchno-tehnicheskiy progress. 2023. №. 1. S. 95-96.</mixed-citation>
    </citation-alternatives>
   </ref>
   <ref id="B3">
    <label>3.</label>
    <citation-alternatives>
     <mixed-citation xml:lang="ru">Александрова Е. Г., Добрыни-на Н. Н. Место тестирования в различных моделях разработки программного обеспечения // Современные технологии и научно-технический прогресс. 2023. №. 1. С. 97-98.</mixed-citation>
     <mixed-citation xml:lang="en">Aleksandrova E. G., Dobryni-na N. N. Mesto testirovaniya v razlichnyh modelyah razrabotki programmnogo obespecheniya // Sovremennye tehnologii i nauchno-tehnicheskiy progress. 2023. №. 1. S. 97-98.</mixed-citation>
    </citation-alternatives>
   </ref>
  </ref-list>
 </back>
</article>
