<!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>Method of dynamic selection of regression tests during developing multimodule information systems in conditions of CI/CD</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>I.B.Zarubin</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>A.D.Filinskikh simarglz@yandex.ru</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>alexfil@yandex.ru</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Nizhny Novgorod State Technical University n. a. R.Е. Alexeev</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>The article considers the forming a pool of regression tests when using the CI/CD process in the development of information systems consisting of a significant number of interacting modules and using various database management systems. The reasons that do not allow using standard filters of testing management systems to account for possible interactions between modules of the developed information system are indicated. The method of selection of the tests to consider the interaction and potential mutual influence of modules on each other, which also minimizes the pool of selected tests, and rank tests for significance from the point of view of a decision on the correctness of the implementation of the functionality of the information system and the system's readiness for its transfer to the customer. The method of dynamic selection of tests that allow to quickly evaluate changes made to the components of the information system in terms of possible negative impact on the unaffected components and functionality is considered. The advantages and disadvantages of the considered methodology, the necessary conditions for its successful application, and ways to implement it both in new projects for the development of information systems and in existing projects in continuous development and without the possibility of organizing code freezing are given.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        High competition in the field of information systems
(IS) development [1] forces companies that develop IS to
reduce the development time and the number of employees
involved in the process of creating IS, while trying to avoid
reducing the quality of their product. Various software
development models are used to reduce development time,
such as Agile [2], Iterative model [
        <xref ref-type="bibr" rid="ref15 ref6">3</xref>
        ], V-model [
        <xref ref-type="bibr" rid="ref3">4</xref>
        ], and so
on. Almost all IS development companies use methods for
implementing the most popular Agile model at the
moment. It is necessary to note the growing popularity of
the methodology of "Extreme programming" (XP) [5] (one
of the implementations of the Agile process) - "continuous
integration/continuous delivery" (Continuous integration /
Continuous delivery – CI/CD) [6], which allows for
regular functional growth of the IS and its rapid updating.
This methodology is especially convenient for use in the
process of developing IS, which consist of several
components (micro-services) [7].
      </p>
      <p>An attempt to reduce the number of employees
involved in the development of IS often results to reduce
the number of staff in the testing Department (QA) [8],
whose tasks, among other things, include checking the IS
for bugs and usability [9]. However, in terms of the impact
on the commercial success of IS, the role of testing is hard
to overestimate – it is unlikely that a potential user will
want to use a software product that is riddled with bugs
and uncomfortable to use.</p>
      <p>
        There are many different test methods that can be
classified by the test object, the test subject, by the
positivity of the scenarios, the degree of isolation of the
tested component, the degree of automation, by the stage
of testing and so on [
        <xref ref-type="bibr" rid="ref16">10</xref>
        ]. One of the most important types
of testing that is used in almost every IS development
project is Regression testing (RT) [11] – a specific activity
of QA engineers aimed to detecting bugs in the modules
or functionality of the IS that have not been changed, but
could be affected by changes in related modules or
functionality. Regression can occur both in the interaction
between individual IS modules, and in the interaction
between two different IS when transmitting any
information [12].
      </p>
      <p>Using the Agile development process in conjunction
with the CI/CD methodology in conditions of insufficient
resources for checking the quality of IS and extremely
tight development deadlines may lead to a lack of
sufficient time to run some extremely important types of
testing. RT is often neglected, since the correct selection
of the tests for this type of testing is quite complex and
requires a deep understanding of the system architecture,
and this type of testing reveals a small number (in absolute
numbers) of is errors. In the case of developing a
multicomponent IS, the choice of scenarios for RT that would
check the possible negative consequences of changes is an
extremely difficult task. Unfortunately, very often the
criterion for selecting tests for RT is the" importance " of
the test or a failed test result during the previous RT – it is
very easy to select tests based on these criteria, but they do
not allow you to select the correct set of scenarios that can
effectively detect errors in the operation of IS modules or
functions that have not been modified.</p>
      <p>The "code freeze" procedure is very important from the
point of view of detecting errors in IS [13]. During this
procedure, the IP code is not modified for some time – to
check the entire IS, rather than any part of it, to detect and
localize non-obvious bugs and bugs with complex
playback scenarios that affect several components of the
IS. It usually takes a significant amount of time to check
the entire IS – from a week to a month (depending, of
course, on the complexity of the IP and the number of test
engineers involved in testing process), and the set of RT
scenarios does not change. It is obvious that running a set
of tests in parallel with the modification of the is code will
lead to the loss of relevance of the test results after only
one or two changes have been made. In other words, the
results of tests performed at the beginning of a specific test
procedure refer to an already outdated version of the IS
and do not provide an answer about the quality of the
current IS configuration. In practice, the "code freeze"
procedure is often neglected during the IS development
process due to planning errors and a lack of understanding
of the need to perform all the necessary quality control
procedures before transferring the IS to the customer.</p>
      <p>This situation in multicomponent systems is
complicated by the presence of a significant number of
paths and rules for interaction between components – in
such cases, it is very difficult to take into account all
possible influences on the information system in the
development process and, as a result, avoid negative
effects on components that are not directly affected by
code changes.</p>
      <p>Based on above, there is an urgent need to develop a
methodology that would allow you to quickly create a list
of scenarios for RT, as well as take into account the
changes made to the IS components and an arbitrary
number of criteria for selection.
2.</p>
    </sec>
    <sec id="sec-2">
      <title>Methods for selecting scenarios for regression testing using filters</title>
      <p>In the context of continuous development of new
functionality and new components in complex
multicomponent IS, it is necessary to be able to select tests
that would show regression (bugs occurrence) in the
components of the system that have not been modified.
The selection of tests should be made in a short time and,
preferred, should not require special knowledge and a deep
understanding of the system`s architecture. For some
methods of selection, it is sufficient to filter tests using the
tools built into the test management system. For example,
it is possible to quickly select high-priority tests (for
example, one of the most popular test and defect
management systems - Jira) (Fig. 1).</p>
      <p>In the same way, it is possible to select test cases which
are developed during a certain time period (Fig. 2) or test
cases developed to verify one of the components of a
multicomponent IS (Fig. 3).</p>
      <p>Depending on the specifics of the project, it is possible
to select test cases using one of the following parameters:
˗ by success of the previous test run;
˗ by the number of bugs found during the test
execution;
˗ by priority of bugs found during the test execution;
˗ by duration of the test case;
˗ by the employee who completed the test;
˗ by test case developer;
˗ by finding the test in a specific test Suite;
and so on.</p>
      <p>Obviously, it is possible to combine test selection
parameters during filtering and even determine the order
of these tests according to certain rules (Fig. 4).
Selection by filters is very convenient, but it has some
very significant limitations:
1. It is not pfossible to select tests that would test
functionality that indirectly depends on changes made
to the IS, for example, cases of changing the format of
a message transmitted from one module of a
multicomponent system to another;
2. It is not Possible to organize the selection and ranking
of test cases based on the weight coefficients of
various selection methods;
3. It is not possible to quickly create a list of test cases
that would track changes in the system over a certain
period – sprint, week, or day.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Selection and ranking of test cases depending on the degree of potential impact of the changes</title>
      <p>The IS development process is usually organized in
such a way as to reduce the time and other resources spent
on it. At the same time, there may be situations when
savings are made by escaping some important procedures
from the point of view of confirming the quality of IS. RT
is a complex and time-consuming procedure – that is why
in the process of developing complex multicomponent IS
in a tight time frame, regression testing is performed only
if resources are available and the selection of tests for RT
is carried out using extremely simplified methods – based
on the importance of the test or the results of the previous
RT. This approach has a high risk of losing the quality of
components that have not been explicitly changed and,
consequently, have not passed the standard checks that has
new or updated functions and modules. It is needed to
develop the method that would allow you to take tests that
would allow to consider the interaction of components and
modules would not require comprehensive knowledge of
the test IS and would use any number of methods of
selection of tests for RT.</p>
      <p>As an example, let's consider a simplified scheme of a
multi-module information system (Fig. 5).</p>
      <p>Real-time data collection modules collect information
from third-party systems or databases and transmit the
collected information to the enrichment module. The
augmentation module supplements the received data with
additional information from the additional database
(which, in turn, is supplemented by a separate data
collection module) and transmits the enriched data to the
main database.</p>
      <p>Data from the main database is processed by various
modules – for generating various types of reports, graphs
and diagrams, and performing various transformations of
data from the database. These modules can transmit
processed data to the notification module for further
conversion and transfer to the modules for sending data to
third-party systems.</p>
      <p>The visualization module can receive various types of
information from all processing modules to display it to
users in real time.</p>
      <p>Let's imagine the interaction of modules of the
presented is in the form of a graph [14] (Fig. 6).
very deep knowledge in system architecture and the
structure and content of the test scripts.</p>
      <p>To solve this problem, it is suggested to entering
information about adjacent modules in the description of
the module verification test, changes in which may cause
the need to run this test. This allows to select not only all
the necessary tests for related modules, but also to check
the correct operation of modules that are not directly
affected by the change. Such effect can be secondary,
tertiary, and so on, depending on the degree of distance
from the module with the changes made. However,
considering all levels of relationships will lead to the
selection of all possible test cases, which clearly does not
make sense in the context of the RT selection task.</p>
      <p>It is obvious that if there is filtering of incoming and
outgoing data from modules, the influence of changes
made in any module on adjacent modules is on average
more pronounced than the indirect influence of different
levels [15]. Thus, it is possible to rank the importance of
the RT of different modules (Fig.7).
Thus, it is obvious that the changes made to the
calculation module (the vertex of graph 8) indirectly affect
modules 6, 10, and 14 (the main database, notification
module, and visualization module), and, accordingly, it
makes sense to check the correctness of these modules in
interaction with the updated module 8.</p>
      <p>Moreover, it could not be exclude the indirect impact
of changes – not on the adjacent module, but on the
module that interacts with the adjacent module – changes
made to the calculation module 8 may disrupt the correct
operation of the sending modules 11, 12 and 13. At the
level of unit and integration tests-selection and even the
creation of the necessary test cases, can be done by
automated systems that analyze the source code, but the
selection of tests of high level, such as system and
regression test cases, that constitute the sequence of steps
in human language, is a very difficult task, which requires</p>
      <p>Based on Fig. 7, it is obvious that it is necessary first
to perform RT on modules 6, 10 and 14, and second of
allon modules 4, 7, 9, 11, 12, 13 etc.</p>
      <p>When evaluating the possible impact of the changes on
adjacent modules, it is also necessary to consider that in
modern multi-module IS, not all interactions between
modules are two-way. Let's look at an example of such an
IS (Fig. 8).</p>
      <p>Based on the direction of data flows in Fig. 8, it is
obvious that changes in module 8 may affect only some of
the IP modules (highlighted in yellow and blue) –
therefore, the number of RT to assess the impact of
changes on adjacent modules will be significantly reduced.</p>
      <p>For convenience in further research, we will introduce
a numerical measure of the significance of the regression
test of an adjacent component in terms of checking the
correctness of the is operation – the significance of the test
– ST. For simplicity of calculations, we assume that the ST
of modules that directly interact with the updated module
is equal to 100, tests of a module that interacts with the
updated module through one intermediate module will
have a ST of 50; through two modules - 25, and so on. In
this way, we can rank tests and perform first those tests
that are most likely to detect errors in the operation of IS
modules introduced by the update.</p>
      <p>In the process of developing modern multi-module IS,
work on updating, correcting, refining the code is usually
performed on several modules at once. Let us consider the
situation of RT selection if two modules in the IS are
changed simultaneously (Fig. 9).</p>
      <p>The total ST value for changing two modules
simultaneously is shown in fig. 10.</p>
      <p>It is obvious that the changes made to modules 8 and
10 have the greatest potential impact on module 14. A ST
value of 200 indicates the need to perform RT for module
14 with the highest priority. Next, you need to perform RT
for modules 11, 12 and 13 (ST 150), then for modules 10
and 6 (ST 100), and finally for modules 7 and 9 (ST 50).</p>
      <p>Thus, using this method, it is possible to determine the
priorities of regression tests in a multi-module IS in a
situation when changes were made to several modules
simultaneously.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Selection and ranking of test scenarios using an arbitrary number of selection methods and the value of the ST</title>
      <p>Currently, there are a significant number of methods
for assessing the degree of is regression [16], RT selection,
which are based on various principles for determining the
need to run the test. The use of multiple methods of
selection RT at the same time facilitates the identification
of RT, which are able to detect bugs in the IS. Let's look
at how to rank test scenarios selected using various
methods together, taking into account the degree of
potential impact of updated components. Let's assume that
high-priority tests are selected, tests that were performed
unsuccessfully in the previous RT, and tests that are able
to detect bugs made to the system by updating an adjacent
module.</p>
      <p>=</p>
      <p>(  +   +   )
where: Iа – sum of ST; Ip – ST by priority; If – ST by
success of the previous RT run; Ic – ST considering the
potential impact of updated related modules.</p>
      <p>For an arbitrary number of selection methods (1) is
converted as follows:
  =</p>
      <p>( 1 +  2 + ⋯ +   )
  =
where: Iа – sum of ST; I1 – ST of the test cases selected by
method 1; I2 – ST of the test cases selected by method 2;
In – ST of the test cases selected by method n.</p>
      <p>Using (2), it is possible to get the significance of the
test in terms of the possibility of detecting errors in the IS
– the more importantly test case received higher value of
the ST. Thus, we get a test queue ranked by the priority of
test execution.</p>
      <p>Separately, it should be noted that (2) is correct for the
ST values of each selection method in a certain general
range, for example, from 0 to 1 or from 0 to 100. If this
condition cannot be met for various reasons, it is suggested
to use additional rationing.</p>
      <p>1 ×  1 +  2 ×  2 + ⋯ +   ×</p>
      <p>1 +  2 + ⋯ +  
где: Iа – sum of ЗТ; w1 – weight coefficient for group of
the test cases 1; I1 – ST of the test cases selected by method
1; w2 – weight coefficient for group of the test cases 2; I2
– ST of the test cases selected by method 2; wn – weight
coefficient for group of the test cases n; In – ST of the test
cases selected by method n;</p>
    </sec>
    <sec id="sec-5">
      <title>5. Using the method of calculating the total significance of the test for the rapid creation of a list of RT</title>
      <p>In case of use the practice of continuous development
and issuance of new versions of IS modules (CI/CD), there
is an urgent need to take into account the changes made to
the IS when selecting tests as often as possible. The
method of selecting regression tests presented above
allows quickly select the most significant scenarios
without a deep dive into the specifics of IS. For example,
daily generating a list of tests for each tester that will
allows to validate and detect bugs in the IS, given as the
previous day's code changes, the results of the test
execution for a certain period, etc. and thus reduce the
negative impact of absence in the life cycle [17]
development is "code freeze».</p>
      <p>This method can be integrated into test management
programs using the API and basic constructs of popular
programming languages (Fig. 11).
(1)
(2)
(3)</p>
      <p>Separately, it should be noted that the above method is
also suitable for determining the priority of running
automated module and integration tests when it is
necessary to select autotests to run, for example, in the
case of a high duration of test execution.</p>
    </sec>
    <sec id="sec-6">
      <title>6. Conclusions</title>
      <p>The presented method of selecting regression tests
based on the sum of significance of tests has the following
advantages:
1. Takes into account the potential impact of changes
made to related modules;
2. Takes into account any number of selection methods;
3. Allows rapid selection of tests for RT;
4. Can be integrated into test management frameworks;
5. Can be used in automated testing systems.</p>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgments</title>
      <p>This work was completed and published with financial
support from the Russian Foundation for Basic Research,
grant 19-07-00926.
[1] Kuznetsov</p>
      <p>Electronic</p>
      <p>S.D.</p>
      <p>Great</p>
      <p>Russian
encyclopedia.</p>
      <p>resource:</p>
    </sec>
    <sec id="sec-8">
      <title>About the authors</title>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>https://bigenc.ru/technology_and_technique/text/344</mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          4940. [2]
          <string-name>
            <surname>McHugh</surname>
            ,
            <given-names>Martin; McCaffery</given-names>
          </string-name>
          , Fergal; Coady, Garret
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <source>(4 November</source>
          <year>2014</year>
          ). Mitasiunas, Antanas; Rout,
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>Computer</surname>
          </string-name>
          and Information Science.
          <volume>477</volume>
          . pp.
          <fpage>190</fpage>
          -
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          201. doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>319</fpage>
          -13036-1_
          <fpage>17</fpage>
          .
          <string-name>
            <surname>ISBN</surname>
          </string-name>
          978-
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          3-
          <fpage>319</fpage>
          -13035-4. [3]
          <string-name>
            <surname>Larman</surname>
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Basili</surname>
            <given-names>V.R.</given-names>
          </string-name>
          <string-name>
            <surname>Iterative</surname>
          </string-name>
          and Incremental
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <surname>Development</surname>
          </string-name>
          : A Brief History // Computer. - 2003. -
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          Vol.
          <volume>36</volume>
          , №
          <fpage>6</fpage>
          . - P.
          <fpage>47</fpage>
          -
          <lpage>56</lpage>
          . [4]
          <string-name>
            <surname>Staroletov</surname>
            <given-names>S. M.</given-names>
          </string-name>
          <article-title>Fundamentals of software testing and</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <string-name>
            <given-names>verification.</given-names>
            <surname>Textbook</surname>
          </string-name>
          . Publishing house «Lan»
          <fpage>2018</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          p.
          <fpage>344</fpage>
          . (pp.
          <fpage>16</fpage>
          -
          <lpage>18</lpage>
          ).
          <source>ISBN 978-5-8114-3041-3</source>
          . [5]
          <string-name>
            <given-names>Kent</given-names>
            <surname>Back</surname>
          </string-name>
          <article-title>Extreme programming</article-title>
          .
          <source>SPb.: Publishing</source>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          house «Piter» 2017 p.
          <volume>294</volume>
          ISBN
          <issue>978</issue>
          -5-
          <fpage>496</fpage>
          -02570-6. [6]
          <string-name>
            <surname>Pol</surname>
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Duval</surname>
          </string-name>
          ,
          <string-name>
            <surname>Stiven M. Matias</surname>
            <given-names>III</given-names>
          </string-name>
          , Andrey Glover.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <string-name>
            <given-names>Series</given-names>
            <surname>)</surname>
          </string-name>
          .
          <source>- Wiliams</source>
          ,
          <year>2008</year>
          . p.
          <fpage>240</fpage>
          -
          <lpage>ISBN</lpage>
          978-5-
          <fpage>8459</fpage>
          -
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          1408-
          <fpage>8</fpage>
          . [7]
          <string-name>
            <surname>Balalaie</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Heydarnoori</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Jamshidi</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          <source>IEEE Software: journal. - 2016</source>
          . - 1
          <string-name>
            <surname>May</surname>
          </string-name>
          (vol.
          <volume>33</volume>
          , no.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          <volume>3</volume>
          ). - P.
          <fpage>42</fpage>
          -
          <lpage>52</lpage>
          . - ISSN 0740-
          <fpage>7459</fpage>
          . - DOI:
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          10.1109/MS.
          <year>2016</year>
          .
          <volume>64</volume>
          [8]
          <string-name>
            <given-names>Glenford</given-names>
            <surname>Myers</surname>
          </string-name>
          , Tom Budget,
          <string-name>
            <given-names>Cory</given-names>
            <surname>Sandler</surname>
          </string-name>
          . The art
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          <article-title>of software testing</article-title>
          .
          <source>Third edition</source>
          .
          <year>2019</year>
          . p.
          <fpage>272</fpage>
          . (p.
          <fpage>20</fpage>
          -
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          <source>21) ISBN 978-5-907144-37-8</source>
          [9]
          <string-name>
            <surname>Filinskikh</surname>
            <given-names>A.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guliaeva</surname>
            <given-names>U.I.</given-names>
          </string-name>
          <article-title>Analysis of</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          <source>KOGRAF-2019</source>
          .
          <article-title>Collection of materials of the 29th</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          <source>graphic information technologies and systems</source>
          .
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          Novgorod). [10]
          <string-name>
            <given-names>R.</given-names>
            <surname>Saving</surname>
          </string-name>
          .
          <article-title>Testing dom com or Пособие по</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          <string-name>
            <surname>стартапах.</surname>
          </string-name>
          <year>2017</year>
          . p.
          <fpage>312</fpage>
          . ISBN 978-5-
          <fpage>4485</fpage>
          -4551-1. [11]
          <string-name>
            <given-names>S.</given-names>
            <surname>Yoo</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Harman</surname>
          </string-name>
          . Regression testing
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          King`s College London -
          <year>2007</year>
          . - c. 60. [12]
          <string-name>
            <surname>Filinskikh</surname>
            <given-names>A.D.</given-names>
          </string-name>
          ,
          <article-title>The information metric is the</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          <source>candidate of technical Sciences</source>
          ,
          <volume>05</volume>
          .
          <fpage>13</fpage>
          .
          <fpage>17</fpage>
          -
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          <source>protected 26.12.13, approved 23.06</source>
          .
          <fpage>14</fpage>
          - Nizhny
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          <string-name>
            <surname>Novgorod</surname>
          </string-name>
          ,
          <fpage>2013</fpage>
          - 180 p. [
          <volume>13</volume>
          ]
          <string-name>
            <given-names>Pete</given-names>
            <surname>Goodliffe</surname>
          </string-name>
          . chapter
          <volume>22</volume>
          :
          <article-title>The curious case of the</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          <string-name>
            <surname>"O'Reilly Media</surname>
          </string-name>
          ,
          <source>Inc."</source>
          ,
          <year>2014</year>
          -
          <volume>10</volume>
          -03. - С.
          <fpage>195</fpage>
          -
          <lpage>203</lpage>
          . -
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          362 с. - ISBN 9781491905586. [14]
          <string-name>
            <surname>Volchenskaya</surname>
            <given-names>T.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kniazkov</surname>
            <given-names>V.S. Computer</given-names>
          </string-name>
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          <source>mathematics: Part</source>
          <volume>2</volume>
          . Graph teothry / Textbook. Penza:
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          Publishong house of Penza university,
          <year>2002</year>
          . 101 p. [
          <volume>15</volume>
          ]
          <string-name>
            <surname>Lipaev</surname>
            <given-names>V. V.</given-names>
          </string-name>
          <article-title>Quality of the software</article-title>
          . - М.: Finance
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          and statistics,
          <year>1983</year>
          . - 263 p. [
          <volume>16</volume>
          ]
          <string-name>
            <surname>Zarubin</surname>
            <given-names>I.B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Filinskikh</surname>
            <given-names>A.D.</given-names>
          </string-name>
          <article-title>Method of estimation of</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          <article-title>by weight coefficients</article-title>
          . // Т 78 Proceedings of the
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          <string-name>
            <given-names>after R. E.</given-names>
            <surname>Alekseev</surname>
          </string-name>
          . - Nizhny
          <string-name>
            <surname>Novgorod</surname>
          </string-name>
          ,
          <year>2019</year>
          . №
          <fpage>4</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          <source>(127)</source>
          . - 204 p. (
          <volume>9</volume>
          -
          <fpage>17</fpage>
          ). [17]
          <article-title>National standard of the Russian Federation</article-title>
          GOST R
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          56136
          <article-title>-2014 life cycle Management of military</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          products.
          <source>Terms and definitions. Reissue 11</source>
          .
          <year>2016</year>
          p.
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          <volume>20</volume>
          (p.
          <fpage>5</fpage>
          -
          <lpage>6</lpage>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>