<!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>Automation of Selection of a Pool of Graphical Interface Regression Tests for Multi Module Information Systems1*</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Nizhny Novgorod State Technical University n. a. R.Е. Alexeyev</institution>
          ,
          <addr-line>Nizhny Novgorod</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <fpage>0000</fpage>
      <lpage>0002</lpage>
      <abstract>
        <p>Features of using the regression test selection method for automated testing of the graphical user interface in the development of information systems that consist of a set of modules are considered. The source of the need to create additional test environments required in the development of multi-module information systems that are using databases is specified. The three most popular approaches to organizing test environments - Copying, Scaling, and Scaling with synthetic data generation - are considered. The positive and negative sides are considered in terms of implementation, using, and resources spent on creating and maintaining resources, as well as in terms of the reliability of the results obtained in the process of testing models created using these approaches. The positive aspects of checking the quality of complex multi-module information systems from the point of view of the graphical user interface by various testing methods and, in particular, in the process of performing regression testing are presented. The positive aspects of using regression testing automation in conditions of lack of resources using various software platforms are indicated. The advantages of using the dynamic selection method for regression tests for automated testing are also given, as well as recommendations for implementing the selection method in existing and beginning projects.</p>
      </abstract>
      <kwd-group>
        <kwd>Regression Testing</kwd>
        <kwd>Automated Testing</kwd>
        <kwd>Graphical User Interface Testing</kwd>
        <kwd>Selection of Test Scenarios</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        The process of developing information systems (IS) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is a complex procedure
consisting of a significant number of stages, which, in turn, can be divided into some
phases. In a simplified way, the IS development lifecycle can be divided into
* Publication is supported by RFBR grant №19-07-00926.
planning, approving the IS architecture, writing code, testing, implementing, and
supporting [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>
        Of course, each of these stages is important and cannot be excluded from the IS
development process. Depending on the chosen model of IS development, these
stages can follow strictly one after another or be performed cyclically [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Thus, from
the point of view of commercial success is testing phase the most important because it
allows us to consider IS from the perspective of the end user, i.e. the consumer of the
software product, even if the architecture of is illogical, the code is overly
complicated and unreadable, but during testing was discovered almost all the
important errors in functionality and usability for the user is this is going to be more
attractive than a system with well written code, but full of errors.
      </p>
      <p>
        The testing stage, in turn, is also divided into several stages. Usually, a test
strategy that plans the types, categories, and order of testing is developed for each
project separately, but there is a list of tests that are mandatory for any of this – unit
testing, integration testing, smoke testing, release testing, system testing, regression
testing, interaction testing [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], and so on. Each of these test types has its own goals
and objectives and they are performed at different stages of information system
development [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], but regression testing (RT) [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] is a very important stage of detecting
errors in is that are under active development and functional growth, while forming a
list of tests for RT is a very non-trivial task.
      </p>
      <p>Regression testing is a special type of IS quality control aimed to detecting errors
in areas and modules that have not been modified specifically but may have lost their
correct functioning due to changes made to adjacent areas or modules. The
complexity of conducting a correct RT procedure is caused by the need to understand
the IS architecture when selecting tests for RT, which is especially difficult in the case
of developing a multi-module is with possible interaction of modules not directly, but
indirectly. In addition, it is necessary to have a good knowledge of various methods
for selecting scenarios for RT, which may not be available in the context of saving
resources for IS development and insufficient qualification of testing engineers.</p>
      <p>
        The frequency of RT execution depends on the specifics of the developed IP, the
selected IS development process [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], as well as the frequency of issuing new versions
of the software product to the customer, but it can not be less than once per
development cycle. At the same time, it is necessary to understand that the scenarios
performed within the RT are, as a rule, a standard test scenario [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. In the case of
frequent release of IS versions, repetition of the same scenario by the testing engineer
often leads to reduced testing efficiency and omission of errors. To avoid such
situations, make sense to automate regression testing to shift the performance of
routine regular operations to automated test management systems.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Regression Testing of the Graphical User Interface</title>
      <p>
        One of the simplest and most effective ways to check the quality of IS which are
developed using the most popular process continuous integration/continuous delivery
(CI / CD) [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], is to check the correctness of the graphical user interface (GUI) [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] –
the end user of non-specialized IS evaluates the quality of the interface and the
correctness of reactions to the user's impact.
      </p>
      <p>
        In simple monolith ("solid") IS [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], which consist of a single module which
performs all the necessary calculations, the interface is one of the parts of the code
that closely interacts with other parts of the code. Checking the correctness of the
display of the elements of the UI, transmitting graphical information between various
software environments, information systems and formats [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], their presence and
successful interaction with each other allows us to identify with high reliability the
occurrence of possible errors when making changes or additions to the code.
      </p>
      <p>
        For small sites on the Internet [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], as well as mobile applications, the assessment
of the correctness of the UI [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] also helps to conclude with a high degree of
confidence that errors have occurred made by any change by simply comparing the
results of RT before and after the changes made.
      </p>
      <p>
        For both types of described IS, the task of organizing an isolated environment [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]
for regression testing is not difficult – the version of the IS that is being tested can be
deployed on household computers or on mobile phones.
      </p>
      <p>
        Multicomponent IS are becoming increasingly popular for various reasons [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ].
they interact with a large amount of information [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], several databases, hundreds of
processors, and thousands of gigabytes of RAM. Such IS requiring a separate
approach to testing, which is due to the large amount of resources required for the
correct operation. The most common approaches to organizing test environments for
checking the quality of multicomponent IP systems are the following:
1. Duplicating the infrastructure and data of an instance which is currently in
commercial use (Fig. 1).
      </p>
      <p>Coping</p>
      <p>This approach is only applicable for small multi-module IS with a small
incoming data flow.</p>
      <p>2. Using a scaled-down industrial instance model-using fewer resources,
copying a certain percentage of data from the industrial instance database (Fig. 2).</p>
      <p>This approach allows you to save the resources which are necessary for the
operation of a test instance of the IS, while maintaining the ability to interact with
modules of different levels. At the same time partial copying of data from an
industrial database allows you to perform testing on data with a high degree of
similarity to real data.</p>
      <p>
        3. Using a scaled-down industrial instance model with generating synthetic data
in the database and using the necessary modules (Fig. 3).
This approach allows you to drastically reduce the resources necessary for
deploying the test infrastructure, isolate one or more connected modules, and generate
a certain range of data, which allows you to check the correctness of the system in
simulated situations (in situations that occur extremely rarely in industrial operation,
as well as in emergency situations). The application of this approach is significantly
simplified when using automatic control systems for containerized applications, such
as Kubernetes [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ].
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Automation of Regression Testing</title>
      <p>Using the most common and simple methods for selecting regression tests
(selection by priority, functionality, result of previous execution, date of execution)
leads to the formation of a fairly stable list of tests. In the process of developing an IS
with a regular CI/CD functional increment, regression testing is performed regularly,
meaning that testing engineers have to regularly perform the same scenarios, which
can lead to a decrease in concentration when performing such tests and as a result a
decrease in the effectiveness of searching for errors in the IC. To avoid such
situations, as well as to make more efficient use of testing engineer’s resources,
modern regression testing projects use automation for executing test scenarios [19].</p>
      <p>Once an automated test can be run an unlimited number of times in the future,
almost without the participation of an engineer. Tests can be developed and run using,
for example, TestComplete, Selenium, or Robot framework environments. The
automated launch of RT can be combined with the release of a new version of the IS
using, for example, the software system CI / CD Jenkins [20].</p>
      <p>In the case of a long process of IS development, the number of automated tests
and regression tests can reach large amounts and, consequently, the execution of all
automated tests can take a very long time. If the IS is a small application, site, or
mobile device app, you can solve the problem of running automated tests for a long
time by running these tests on multiple devices in parallel.</p>
      <p>Running a significant number of automated processes for complex multi-module
is with a database can take a very long time, while running several processes in
parallel may not be possible due to the presence of only one test infrastructure, which
can also be used for manual testing during the working day. It is possible to partially
solve this problem by dividing all automated tests into groups and running tests in
groups according to a certain schedule (Fig. 4).</p>
      <p>Such approach allows you to implement the execution of all automated RT but
requires significant costs for the correct formation of the list of RT and the schedule
for running these tests.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Automatic Selection of the Regression Test Pool</title>
      <p>In projects of the development of multicomponent IS with the regular release of
new versions with high functional growth, the issue of prioritizing, selecting and
minimizing the list of RT is very acute not only because of insufficient time to
conduct all the necessary checks, but also because of the high employment of the test
infrastructure. It is necessary to consider that the practice of CI/CD can lead to results
new version of is almost every day, which entails the need to conduct all possible
checks in the shortest terms and, therefore, to spend time on manual selection of
automated RT is very desirable for the reason that there are a significant number of
methods of selection of RT, which are based on different principles of determining
whether to run the test and correct their application often requires a large amount of
resources. In addition, when testing multicomponent IS, it is highly desirable to
consider the possible mutual impact of changes in modules and, more importantly, the
impact of changes on the UI. The method of selecting and ranking test scenarios
considering an arbitrary number of selection methods allows you to automate the
selection of RT.</p>
      <p>Let us assume that the selection of tests for RT is made using a certain number
of selection methods. For each of these methods, you can determine the significance
of this selection method in terms of the importance of running the test and whether the
test can detect an error. For convenience of calculations, you can use the value of the
test significance in the range from 0 to 100.</p>
      <p>Thus, the methodology for calculating the significance of the test for an
arbitrary number of RT selection methods can be defined as follows:</p>
      <p>Ia=∑〖(I1+I2+⋯+In)〗,
(1)
where
Iа – the total value of the test;
I1 – significance of the test selected by method 1;
I2 – significance of the test selected by method 2;
In – significance of the test selected by method n.</p>
      <p>Using (1), we get the significance of the test in terms of the possibility of
detecting errors in the IS – the higher the received significance of the test, the higher
the priority of the test execution.</p>
      <p>Separately, it should be noted that (1) is correct for the significance of the test
(ST) for each selection method in a certain General range, for example, from 0 to 1 or
from 0 to 100. If it is impossible to fulfill this condition for various reasons, it is
suggested to use additional normalization by weight coefficient (WK).</p>
      <p>Ia= 1×I1+ 2×I2+⋯+   ×I ,
 1+ 2+⋯+ 
(2)
where
Iа – total ST;
w1 – WK for test group 1;
I1 – ST, selected by method 1;
w2 – WK for test group 2;
I2 – ST, selected by method 2;
wn – WK for test group n;
In – ST, selected by method n;</p>
      <p>Thus, using (2) it is possible to get a queue of texts selected using an arbitrary
number of selection methods, which allows us to take into account the potential
mutual influence of IS modules, ranked by the priority of test execution, taking into
account the use of the UI. Having data in the test about the IS modules that are
necessary for the correct execution of this test will allow you to limit the use of test
infrastructure resources only to those modules that are necessary.</p>
      <p>In the future, the resulting list of automated tasks can be entered into the
configuration file of the software system for ensuring the continuous integration
process and will be performed in a period of time when the test infrastructure is not
involved in higher-priority tasks.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Using the</title>
    </sec>
    <sec id="sec-6">
      <title>Scenarios</title>
    </sec>
    <sec id="sec-7">
      <title>Methodology for Selecting and</title>
    </sec>
    <sec id="sec-8">
      <title>Ranking</title>
    </sec>
    <sec id="sec-9">
      <title>Test</title>
      <p>To implement the described method of RT selection, a software package was
developed that allows working with various testing management systems via the API.
Development was carried out in the object-oriented programming language JAVA.
The UI of the software package provides the possibility to use an arbitrary number of
test selection methods for RT, specify the WK for each of the selection methods, and
an area for displaying the test pool, ranked in descending order of ST (Fig. 5).</p>
      <p>This software package was used to create a pool of manual regression tests for
two different IS development projects on a daily basis, which made it possible to
quickly assess the potential IS regression in the conditions of daily updating of the
system modules.</p>
      <p>The effectiveness of this method was evaluated by comparing the RT results
(the number of errors found), which were formed by manual selection of test
scenarios and using a software package for IS versions similar in number and volume
of functional growth, for the same RT period (10 working days), on an identical
number of tests (103 tests).</p>
      <p>For a multi-module IS that evaluates the quality of the provided broadband data
and TV content service (the number of modules is more than 70) with a high
functional increase (over the period of 10 days, changes were made to the code of 22
modules), the number of detected errors detected by RT using an automated selection
method increased by 11%.</p>
      <p>For a modular IS that controls the car's multimedia information system (the
number of modules is 8) with an average functional increase (over a period of 10
days, changes were made to the code of 3 modules), the number of detected errors
detected by RT using an automated selection method increased by 6% (Fig. 6).</p>
      <p>At the same time, the time spent on forming the RT pool was reduced by 2 times
when using the automated selection method – from three hours to one and a half hours
(in total – when forming the RT pool daily).
6</p>
    </sec>
    <sec id="sec-10">
      <title>Conclusions</title>
      <p>This study has shown the possibility of applying the dynamic selection method
of regression tests for automated testing of graphical interfaces of multi-module
information systems. Integration of this methodology into existing IS development
projects provides the following advantages:
1 Allows to significantly reduce the time spent on the selection of
automated RT;
2 Allows to perform automated RT on a priority basis, the results of which
can be concluded with a high degree of probability that there are errors in
the most priority IS modules from the point of view of the UI;
3 Allows to take into account the potential mutual influence of different
modules in a multi-module IS when performing automated RT;
4 Allows to save the use of test infrastructure resources by prioritizing the
implementation of automated test scenarios.</p>
      <p>Axelrod, A.: Complete Guide to Test Automation: Techniques, Practices, and
Patterns for Building and Maintaining Effective Software Projects. Apress
(2018).</p>
      <p>Laster, B.: Jenkins 2: Up and Running: Evolve Your Deployment Pipeline for
Next Generation Automation. O'Reilly Media (2018).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Kuznetsov</surname>
            ,
            <given-names>S.D.</given-names>
          </string-name>
          <string-name>
            <surname>Great</surname>
          </string-name>
          <article-title>Russian encyclopedia</article-title>
          . https://bigenc.ru/technology_and_technique/text/3444940, accessed 20- September-
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Terry</surname>
            , R.,
            <given-names>O</given-names>
          </string-name>
          <string-name>
            <surname>'Connor</surname>
            ,
            <given-names>R.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dorling</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>An Agile Implementation within a Medical Device Software Organization</article-title>
          .
          <source>Software Process Improvement and Capability Determination. Communications in Computer and Information Science</source>
          . Springer (
          <year>2015</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          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>
          :
          <article-title>Iterative and Incremental Development: A Brief History</article-title>
          .
          <source>Computer</source>
          (
          <year>2003</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Savin</surname>
          </string-name>
          , R.:
          <article-title>Testing Dot Com or a Manual on how to abuse bugs in Internet startups</article-title>
          , “Delo”, Moscow (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Ambler</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lines</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Choose Your WoW!: A Disciplined Agile Delivery Handbook for Optimizing Your Way of Working (WoW)</article-title>
          .
          <source>Disciplined Agile</source>
          , Inc. (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Yoo</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harman</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Regression testing minimization, selection and prioritization: A survey, King`s College London (</article-title>
          <year>2007</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Hohhof</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Developing Information System for Competitive Intelligence Support</article-title>
          . Intelligent Information,
          <source>LIBRARY TRENDS</source>
          , Vol.
          <volume>43</volume>
          , No.
          <volume>2</volume>
          (
          <year>1994</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Golze</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sarbiewski</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zahm</surname>
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Quality optimization to achieve high business results</article-title>
          .
          <source>Third edition</source>
          . Wiley Publishing, Inc., Indianapolis, IN. (
          <year>2008</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Duvall</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Matyas</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Glover</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Continuous Integration: Improving Software Quality and Reducing Risk (The Addison-Wesley Signature Series)</article-title>
          .
          <source>Wiliams</source>
          (
          <year>2008</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Filinskikh</surname>
            ,
            <given-names>A. D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Merzlyakov</surname>
            ,
            <given-names>I. N.</given-names>
          </string-name>
          <article-title>Evaluating geometric models based on the structure of their parameters</article-title>
          .
          <source>In: Information-measuring and control systems Т</source>
          .
          <volume>13</volume>
          (
          <issue>3</issue>
          ),
          <fpage>69</fpage>
          -
          <lpage>74</lpage>
          , (
          <year>2015</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Richards</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Fundamentals of Software Architecture: An Engineering Approach</article-title>
          . O'
          <string-name>
            <surname>Reilly Media</surname>
          </string-name>
          (
          <year>2020</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Filinskikh</surname>
            ,
            <given-names>A. D.</given-names>
          </string-name>
          :
          <article-title>The information metric is the transmission and recovery of geometric models in professional software environments, dissertation of the candidate of technical Sciences</article-title>
          , Nizhny
          <string-name>
            <surname>Novgorod</surname>
          </string-name>
          (
          <year>2013</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Colborne</surname>
          </string-name>
          , G.:
          <article-title>Simple and Usable web, mobile, and interaction design 2nd edition</article-title>
          . New Riders, (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. Mobile Ui/Ux Design Notebook:
          <article-title>Mobile UI/UX Design Notebook: (Yellow) User Interface &amp; User Experience Design Sketchbook for App Designers and Developers - 8.5 x 11</article-title>
          .
          <string-name>
            <surname>Independently Published</surname>
          </string-name>
          (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Weidman</surname>
          </string-name>
          , G.:
          <article-title>Penetration testing</article-title>
          . No starch press. San Francisco (
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Levin</surname>
            ,
            <given-names>M. S.:</given-names>
          </string-name>
          <article-title>Modular System Design and Evaluation (Decision Engineering)</article-title>
          . Springer (
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Kleppmann</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Designing Data-Intensive Applications: The Big Ideas Behind Reliable</article-title>
          , Scalable, and
          <string-name>
            <given-names>Maintainable</given-names>
            <surname>Systems. O'Reilly Media</surname>
          </string-name>
          (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Lucsa</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          : Kubernetes in Action. DMK Press, Moscow (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>