<!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>Mathematical Model for Ranking High-Level User Interface Regression Tests</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ilya Zarubin</string-name>
          <email>zarubin@nntu.ru</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Aleksandr Filinskikh</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>
          ,
          <addr-line>Minina 24, Nizhny Novgorod, 603950</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>A mathematical model has been developed for ranking high-level verification scenarios (manual tests) when forming a pool of regression tests. The model takes into account the significance of selection methods based on the analysis of previous runs of regression tests, the opinion of the expert group, the specifics of the changes made in the current release, and also has the ability to use an arbitrary number of additional test selection methods. The model can be used to analyze historical data of regression test runs using neural networks in order to identify the most effective approaches to selecting tests for regression testing. The model can be implemented in a software package that interacts with various testing management systems in order to significantly accelerate the formation of a pool of regression tests with a different approach to selection, which can be used by a test engineer of average qualification and without a deep understanding of the features and architecture of the information system being developed. regression testing, methods for selecting regression tests, testing multicomponent information systems, forming a pool of regression tests.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        The process of developing information systems (IS) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is a complex multi-stage procedure. The
resulting IP may have specific features - for example, due to the scope of application of this IP. At the same
time, most IS should be reliable, fault-tolerant and easy to use. To ensure these IS parameters, there are
specific approaches to the implementation of IS development projects, such as the Waterfall model [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and
the V-model [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. In conditions of high competition in the market of developers IS, as well as to obtain a
working prototype of the system in the shortest possible time, an Iterative model [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], a Spiral model [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], a
RAD model [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], Agile [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and so on can be used. At the same time, in each of these models, considerable
attention is paid to the testing procedure [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>
        The main task of the testing procedure is to detect and log errors. In the future, analyzing the errors
found, it can be concluded that the IS is ready to be transferred to the customer or end user for operation.
During the period of active development and operation of the IS, a large number of methods for finding
errors in the system were developed, depending on the specifics of the IS, its scope of application, display,
complexity, architecture, and so on. Not only working IS prototypes can be tested, but also isolated modules
[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], documentation [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], development processes [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Correct and timely application of testing procedures
reduces the time and cost of development and increases the attractiveness of the IS from the user's point of
view and, consequently, increases the commercial success of the developed IS.
      </p>
      <p>2021 Copyright for this paper by its authors.</p>
      <p>
        Currently, the most popular model of IS development is Agile, which allows you to flexibly approach
the formation of the order of implementation of IS capabilities both at the start of the project and in the
process of its execution. Iterations ("sprints") are used for gradual functional growth of the IS [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], which
usually last about two weeks. At the same time, within one iteration, all the necessary testing procedures
must be performed, such as smoke [13], integration [14], functional [15], regression [16] types of testing.
In addition, depending on the specifics of the system, you may need to perform other types of testing, such
as performance testing [17] or security testing [18]. It should be noted separately that in the conditions of
extremely tight deadlines for the development of modern IS and, often, a lack of qualified personnel to
perform full-fledged testing, a situation may arise when all the necessary types of testing cannot be
performed in a timely manner. For example, smoke testing, if there are test scenarios, can be performed by
an engineer of low qualification. At the same time, the list of tests for regression testing (RT) must first be
correctly formed, which cannot be performed by a test engineer with insufficient qualifications and who
does not have a deep understanding of the specifics and architecture of the developed IS.
      </p>
      <p>In the process of creating a pool of regression tests, three main tasks are solved [19]. Within the
framework of solving the problem of selecting scenarios for RT, the following approaches are known:
 integer programming approach [20];
 Data-flow analysis approach [21];
 symbolic execution approach [22];
 dynamic slicing based approach [23];
 graph-walk approach [24];
 textual difference approach [25];
 the approach of dividing the graph of system dependencies (SDG Slicing approach) [26];
 Path analysis [27];
 Firewall approach [28];
 Cluster Identification [29].</p>
      <p>Unfortunately, almost all of these approaches are focused on analyzing the IC code and are of little use
for test engineers who search for errors from the point of view of the graphical user interface and operate
high-level tests. The selection of tests can be performed separately using test filtering in test management
systems [30], based on the analysis of the results of previous launches [31] or based on the opinion of an
expert group. To increase the speed of forming a pool of regression tests and reduce the number of missed
scenarios for RT, with which it would be possible to detect an error, it is necessary to develop a
methodology that would take into account an arbitrary number of test selection parameters for RT in terms
of previous launches, newly made changes to the IS, the opinion of the expert group, and could also be
freely scaled using additional test selection approaches.
2. The methodology of forming the RT pool based on the analysis of changes in
the UI</p>
      <p>In the conditions of using the "continuous integration/continuous delivery" approach (CI/CD) [32] in
the process of developing IS and the absence of" code-freeze " [33], there is a need for rapid (literally –
within a few minutes) formation of a pool of RT that is relevant at the moment – with a certain list and
configuration of components that would take into account the changes made, take into account the potential
mutual impact of the changes made, and so on. The formed pool of tests should be ranked in such a way
that at the beginning of the list there are tests, the implementation of which will allow us to detect errors in
the most critical areas of the IS as efficiently as possible and, therefore, to make a conclusion about the
quality of the IS as quickly as possible. Thus, the tests performed at the beginning of regression testing are
more valuable for making a decision about the readiness of the IS for transfer to the customer, while
continuing to perform RT with each test will be less important in terms of the importance of the detected
errors (Fig. 1).</p>
      <p>For the selection of high-level regression tests, the following approaches are most often used:
 according to the importance of the test (high/medium/low);
 by the number of errors detected by this test;
 by the date of the last launch;
 by duration of execution;
 by testing area;
 by the degree of updating of the component/code area.</p>
      <p>Depending on the specifics and architecture of the developed IS, the list of methods that can be used for
selecting tests for RT may vary, for example, for microservice IS, it is very useful to use a selection method
that takes into account the degree of potential impact of the changes made to the components adjacent to
the microservice, while this method cannot be applied in an IS with a monolithic architecture.</p>
      <p>For the correct formation of a ranked pool of regression tests, it is necessary to use not one of the
proposed approaches, but a set of them. In this case, the significance of the test (ST) can be calculated as
the sum of the test values for each of the applied selection approaches:
  = ∑( 1 +  2 + ⋯ +   )
(1)
where: Iа – total ST; I1 – ST selected by the method 1; I2 – ST selected by method 2; In – ST selected by the
method n.</p>
      <p>It is obvious that the approaches to selecting tests for the RT pool are unequal and differ in efficiency
from the point of view of finding errors in the developed IS. To take into account the different effectiveness
of selection approaches, as well as in the case of selecting tests using approaches that rank tests by certain
numerical values (for example, the number of errors detected by the test), the coefficient k is used:
  =∑( 1 1 +  2 2 + ⋯ +     ) (2)</p>
      <p>The coefficient k is selected by the expert group on the basis of a comprehensive assessment of this
approach to the selection of RT from the point of view of error detection.</p>
      <p>Another effective way to select scenarios for RT is to analyze previously performed sets of regression
tests. The number of RT launches that need to be analyzed is specific to each of the projects and depends
on many factors, for example, the frequency of RT launches, the amount of functional gain between RT
launches, the number of other IS testing methods that are used in the process of IS development, and so on.</p>
      <p>It should be taken into account that the analysis of previous RT launches does not take into account the
specifics of the current version of the IC on which RT is planned to be launched (which modules were
updated, which new functionality was introduced, which errors were fixed, etc.), therefore, it is necessary
to take into account the opinion of the expert group, which makes a consolidated decision on the value of
the ST for each of the RT selection methods for the current release.</p>
      <p>In addition, the availability of historical data on previous RT launches will make it possible to implement
effective training of neural networks [34] to generate coefficients for various RT selection approaches.</p>
      <p>The resulting ST of each of the tests can be calculated as the sum of ST for each of the ranking methods
(expert group, analysis of historical data or generated using neural network technology):
where It – total SТ; Ih – ST calculated using historical data;Ie – ST calculated using expert group; Iml – ST
calculated using neural network technology.</p>
      <p>When using an arbitrary number of ways to rank ST, the formula (3) is transformed into the following
form:</p>
      <p>=∑( ℎ +   +   )
  =∑( 1 +  2 + ⋯ +   )
(3)
(4)
where It – total SТ; I1 – ST calculated using method 1; I2 – ST calculated using method 2; In – ST calculated
using method n.</p>
      <p>Application of a mathematical model for calculating the significance of tests
in the formation of a pool of RT</p>
      <p>The presented mathematical model can be implemented in a software application that allows you to
flexibly adjust the coefficients for each of the selection methods by an expert group (Fig. 2) and also
determine the coefficients when analyzing historical data (Fig. 3).</p>
      <p>This application quickly forms a pool of regression tests, ranked by the significance of the test in terms
of the effectiveness of finding errors in the work of the information system being developed (Fig. 4)</p>
      <p>The use of a mathematical model for selecting regression tests using the developed software package
led to an increase in the detected errors during one regression testing session by 11% for an IC with a high
functional increase during the development iteration and by 6% for an IC with an average functional
increase (Fig. 5).</p>
    </sec>
    <sec id="sec-2">
      <title>4. Conlusion</title>
      <p>Using the proposed mathematical model of the RT pool formation allows you to quickly create a list of
tests ranked in terms of the effectiveness of detecting errors in the developed IS, which can be calculated
for a certain execution time (4 hours, a day, a week, and so on) and can be quickly re-formed if any
significant changes are made to the code of the tested IS.</p>
      <p>Using the application, with an implemented mathematical model of RT selection, allows you to
significantly reduce the time costs for forming a RT pool, avoid mistakes when choosing tests, and also
perform test selection for employees without high qualifications and a deep understanding of the
architecture of the developed IS.
[13] K. Beck, Extreme programming. Development through testing, Peter, 2020, pp. 125-135.
[14] R. Savin, Dot Com testing or a Manual on the abuse of bugs in Internet startups, 2017, pp. 72-83. (in</p>
      <p>Russian).
[15] D. Efanov, V. Sapozhnikov, V. Sapozhnikov, Fundamentals of the theory of functional control of logic
automation devices, OmniScriptum Publishing KS, 2018, pp. 124-129. (in Russian).
[16] V. Lipaev, Quality of software, Moscow, Finance and statistics, 1983, pp. 175-195. (in Russian).
[17] B. Erinle, Performance Testing with JMeter 3, Packt Publishing, 2017, pp. 112-115.
[18] R. Svensson, From Hacking to Report Writing. An Introduction to Security and Penetration Testing,</p>
      <p>Springer Nature Customer Service Center LLC, 2016, pp. 189-193.
[19] S. Yoo, M. Harman, Regression testing minimization, selection and prioritization: A survey, King's</p>
      <p>College London, 2007, pp. 8-12.
[20] K. Fischer, A test case selection method for the validation of software maintenance modification, in:
Proceeding of International Computer Software and applications Conference. IEEE Computer Society
Press, 1977, pp. 421-426.
[21] R. Gupta, M. J. Harrold, M. L Soffa, An approach to regression testing using slicing, in: Proceedings
of the International Conference on Software Maintenance (ICSM 1992), IEEE Computer Society
Press. 1992, pp. 299-308.
[22] S. S. Yau, Z. A. Kishimoto, Method for revalidating modified programs in the maintenance phase, in:
Proceedings of the International Computer Software and applications Conference (COMPSAC 1987).</p>
      <p>IEEE Computer Society Press, 1987, pp. 272-277.
[23] H. Agrawal, J. R. Horgan, E. W. Krauser, S. A. London, Incremental regression testing, in:
Proceedings of the International Conference on Software Maintenance (ICSM 1993), IEEE Computer
Society Press, 1993, pp. 348-357.
[24] G. Rorhermel, M. J. Harrold, A safe, efficient regression test selection technique, ACM Transaction
on Software Engineering and Methodology (1997) 173-210. doi:10.1145/248233.248262.
[25] F. Vokolos, P. Frankl, A. Pythia, A Regression test selection tool based on text differencing, in:
Proceedings of the International Conference on Reliability Quality and Safety of Software Intensive
Systems, Chapman and Hall, 2000. doi: 10.1007/978-0-387-35097-4_1.
[26] S. Bates, S. Horwitz, Incremental program testing using program dependence graphs, ACM
Transactions on Programming Languages and Systems, 9(3) (1987) 319-349.
doi:10.1145/24039.24041.
[27] P. Benedusi, A. Cmitile, U. De Carlini, Post-maintenance testing based on path change analysis, in:
Proceeding of International Conference on Software Maintenance (ICSM 1988). IEEE Computer
Society Press, 1988, pp. 352-361. doi 10.1109/ICSM.1988.10187.
[28] HKN. Leung, L. White, Insights into testing and regression testing global veriables, Computer Science,
1990, pp. 209-222. doi: 10.1002/smr.4360020403.
[29] J. Laski, W. Szermer, Identification of program modification and its applications in software
maintenance, in: Proceeding of International Conference on Software Maintenance (ICSM 1992).</p>
      <p>IEEE Computer Society Press, 1992, pp. 282-290. doi: 10.1109/ICSM.1992.242533.
[30] R. Black, Managing the Testing Process. Practical Tools and Techniques for Managing Hardware and</p>
      <p>Software Testing, John Wiley &amp; Sons Limited, 2019.
[31] I. B. Zarubin, A. D. Filinskikh, Automated generation of weight coefficients of selection methods
when forming a pool of regression tests, in: Proceedings of the IST-2021 conference, 2021, pp
393398. (in Russian).
[32] M. Pol, Duval, M. Stiven, III. Matias, A. Glover, Continuous Integration: Improving Software Quality
and Reducing Risk (The Addison-Wesley Signature Series), Williams, 2008, pp. 158-164.
[33] P. Goodliffe, chapter 22: The curious case of the frozen code. Becoming a Better Programmer: A</p>
      <p>Handbook for People Who Care About Code, O'Reilly Media, Inc, 2014, pp. 195-203.
[34] D. Brown, Artificial Intelligence for Business. Understand Neural Networks and Machine Learning
for Robotics. A Step-By-Step Method to Develop AI and Ml Projects for Business, 17 Books
Publishing, 2020, pp. 54-59.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>S. D.</given-names>
            <surname>Kuznetsov</surname>
          </string-name>
          , Great Russian encyclopedia.
          <year>2004</year>
          . URL: https://bigenc.ru /technology_and_technique/text/3444940. (in Russian).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>A.</given-names>
            <surname>Shokoya</surname>
          </string-name>
          , Waterfall to Agile - A Practical Guide to Agile Transition, TamaRe House Publishers Ltd,
          <year>2012</year>
          , pp.
          <fpage>53</fpage>
          -
          <lpage>58</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>S. M.</given-names>
            <surname>Staroletov</surname>
          </string-name>
          ,
          <article-title>Fundamentals of software testing and verification</article-title>
          . Textbook, Publishing house «Lan»,
          <year>2018</year>
          , pp.
          <fpage>16</fpage>
          -
          <lpage>18</lpage>
          . (in Russian).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>C.</given-names>
            <surname>Larman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. R.</given-names>
            <surname>Basili</surname>
          </string-name>
          ,
          <article-title>Iterative and Incremental Development: A Brief History</article-title>
          ,
          <source>Computer</source>
          <volume>36</volume>
          (
          <issue>6</issue>
          ) (
          <year>2003</year>
          )
          <fpage>47</fpage>
          -
          <lpage>56</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>R.</given-names>
            <surname>Höller</surname>
          </string-name>
          , Rapid Application Development. diplom.de,
          <year>2001</year>
          , pp.
          <fpage>96</fpage>
          -
          <lpage>102</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>R.</given-names>
            <surname>Höller</surname>
          </string-name>
          , Rapid Application Development. diplom.de,
          <year>2001</year>
          , pp.
          <fpage>74</fpage>
          -
          <lpage>81</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>M. H.</given-names>
            <surname>Martin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. C.</given-names>
            <surname>Fergal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Garret</surname>
          </string-name>
          ,
          <article-title>An Agile Implementation within a Medical Device Software Organization</article-title>
          ,
          <source>in: Proceedings of the Software Process Improvement and Capability Determination</source>
          ,
          <source>Communications in Computer and Information Science</source>
          ,
          <year>2014</year>
          , pp.
          <fpage>190</fpage>
          -
          <lpage>201</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>319</fpage>
          - 13036-1_
          <fpage>17</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>G.</given-names>
            <surname>Myers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Badgett</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Sandler</surname>
          </string-name>
          ,
          <article-title>The art of testing programs</article-title>
          .
          <source>Third edition</source>
          ,
          <year>2019</year>
          , pp.
          <fpage>20</fpage>
          -
          <lpage>21</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>V.</given-names>
            <surname>Khorikov</surname>
          </string-name>
          ,
          <article-title>Principles of unit testing. A separate publication</article-title>
          ,
          <year>2021</year>
          , pp.
          <fpage>212</fpage>
          -
          <lpage>228</lpage>
          . (in Russian).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>G.</given-names>
            <surname>Lynford</surname>
          </string-name>
          ,
          <source>Internal Control Audit and Compliance. Documentation and Testing Under the New COSO Framework</source>
          , John Wiley &amp; Sons Limited,
          <year>2017</year>
          , pp.
          <fpage>98</fpage>
          -
          <lpage>103</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>E.</given-names>
            <surname>Scanlon</surname>
          </string-name>
          <string-name>
            <surname>Thomas</surname>
          </string-name>
          ,
          <article-title>Breaking the Addiction to Process. An Introduction to Agile Development</article-title>
          , IT Governance Publishing Ltd,
          <year>2011</year>
          , pp.
          <fpage>87</fpage>
          -
          <lpage>95</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>G.</given-names>
            <surname>Caldwell</surname>
          </string-name>
          , Agile Project Management.
          <article-title>The Complete Guide for Beginners to Scrum, Agile Project Management, and Software Development</article-title>
          ,
          <string-name>
            <surname>SD Publishing</surname>
            <given-names>LLC</given-names>
          </string-name>
          ,
          <year>2020</year>
          , pp.
          <fpage>111</fpage>
          -
          <lpage>121</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>