=Paper= {{Paper |id=Vol-2744/paper67 |storemode=property |title=Automation of Selection of a Pool of Graphical Interface Regression Tests for Multi Module Information Systems |pdfUrl=https://ceur-ws.org/Vol-2744/paper67.pdf |volume=Vol-2744 |authors=Ilya Zarubin,Aleksandr Filinskikh }} ==Automation of Selection of a Pool of Graphical Interface Regression Tests for Multi Module Information Systems== https://ceur-ws.org/Vol-2744/paper67.pdf
Automation of Selection of a Pool of Graphical Interface
Regression Tests for Multi Module Information Systems1*

       Ilya Zarubin [0000-0002-4870-6171] and Aleksander Filinskikh [0000-0003-3826-6771]

 Nizhny Novgorod State Technical University n. a. R.Е. Alexeyev, Nizhny Novgorod, Russia
                 simarglz@yandex.ru, alexfil@yandex.ru



       Abstract: 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.

       Keywords: Regression Testing, Automated Testing, Graphical User
       Interface Testing, Selection of Test Scenarios.

1      Introduction
The process of developing information systems (IS) [1] 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


Copyright © 2020 for this paper by its authors. Use permitted under Creative Commons
License Attribution 4.0 International (CC BY 4.0).
* Publication is supported by RFBR grant №19-07-00926.
planning, approving the IS architecture, writing code, testing, implementing, and
supporting [2].
     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 [3]. 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.
     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 [4], 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 [5], but regression testing (RT) [6] 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.
     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.
     The frequency of RT execution depends on the specifics of the developed IP, the
selected IS development process [7], 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 [8]. 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      Regression Testing of the Graphical User Interface
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) [9], is to check the correctness of the graphical user interface (GUI) [10] –
the end user of non-specialized IS evaluates the quality of the interface and the
correctness of reactions to the user's impact.
    In simple monolith ("solid") IS [11], 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 [12], 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.
    For small sites on the Internet [13], as well as mobile applications, the assessment
of the correctness of the UI [14] 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.
    For both types of described IS, the task of organizing an isolated environment [15]
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.
    Multicomponent IS are becoming increasingly popular for various reasons [16].
they interact with a large amount of information [17], 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).




                                              Coping




                            Fig. 1. Duplicate infrastructure for testing

     This approach is only applicable for small multi-module IS with a small
incoming data flow.
   2. Using a scaled-down industrial instance model-using fewer resources,
copying a certain percentage of data from the industrial instance database (Fig. 2).
                                               Scaling




                            Fig. 2. Scaling the infrastructure for testing

    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.
    3. Using a scaled-down industrial instance model with generating synthetic data
in the database and using the necessary modules (Fig. 3).




            Fig. 3. Test infrastructure with data generation and use of necessary modules

   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 [18].

3      Automation of Regression Testing

    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].
      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].
      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.
      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).




                        Fig. 4. Grouping the execution of automated tasks

      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      Automatic Selection of the Regression Test Pool
      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.
       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.
       Thus, the methodology for calculating the significance of the test for an
arbitrary number of RT selection methods can be defined as follows:



                                    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.

      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.
      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).
                                   𝑤 ×I1 +𝑤2 ×I2 +⋯+ 𝑤𝑛×I𝑛
                                Ia= 1                        ,                       (2)
                                        𝑤1 +𝑤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;

    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.
      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      Using the Methodology for Selecting and Ranking Test
       Scenarios
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).




                         Fig. 5. UI of the RT selection software package

     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.
     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).
      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%.
      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).




               Fig. 6. Increase in detected errors when using the selection method

      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      Conclusions

     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.
References
1.    Kuznetsov, S.D. Great Russian encyclopedia.
      https://bigenc.ru/technology_and_technique/text/3444940, accessed 20-
      September-2020.
2.    Terry, R., O'Connor, R.V., Dorling, A.: An Agile Implementation within a
      Medical Device Software Organization. Software Process Improvement and
      Capability Determination. Communications in Computer and Information
      Science. Springer (2015).
3.    Larman, C., Basili, V.R.: Iterative and Incremental Development: A Brief
      History. Computer (2003).
4.    Savin, R.: Testing Dot Com or a Manual on how to abuse bugs in Internet
      startups, “Delo”, Moscow (2017).
5.    Ambler, S., Lines, M.: Choose Your WoW!: A Disciplined Agile Delivery
      Handbook for Optimizing Your Way of Working (WoW). Disciplined Agile,
      Inc. (2019).
6.    Yoo, S., Harman, M.: Regression testing minimization, selection and
      prioritization: A survey, King`s College London (2007).
7.    Hohhof, B.: Developing Information System for Competitive Intelligence
      Support. Intelligent Information, LIBRARY TRENDS, Vol. 43, No. 2 (1994).
8.    Golze, A., Sarbiewski, M., Zahm A.: Quality optimization to achieve high
      business results. Third edition. Wiley Publishing, Inc., Indianapolis, IN. (2008).
9.    Duvall, P., Matyas, S., Glover, A.: Continuous Integration: Improving Software
      Quality and Reducing Risk (The Addison-Wesley Signature Series). Wiliams
      (2008).
10.   Filinskikh, A. D., Merzlyakov, I. N. Evaluating geometric models based on the
      structure of their parameters. In: Information-measuring and control systems Т.
      13 (3), 69-74, (2015).
11.   Richards, M.: Fundamentals of Software Architecture: An Engineering
      Approach. O'Reilly Media (2020).
12.   Filinskikh, A. D.: The information metric is the transmission and recovery of
      geometric models in professional software environments, dissertation of the
      candidate of technical Sciences, Nizhny Novgorod (2013).
13.   Colborne, G.: Simple and Usable web, mobile, and interaction design 2nd
      edition. New Riders, (2018).
14.   Mobile Ui/Ux Design Notebook: Mobile UI/UX Design Notebook: (Yellow)
      User Interface & User Experience Design Sketchbook for App Designers and
      Developers - 8.5 x 11. Independently Published (2019).
15.   Weidman, G.: Penetration testing. No starch press. San Francisco (2014).
16.   Levin, M. S.: Modular System Design and Evaluation (Decision Engineering).
      Springer (2014).
17.   Kleppmann, M.: Designing Data-Intensive Applications: The Big Ideas Behind
      Reliable, Scalable, and Maintainable Systems. O'Reilly Media (2017).
18.   Lucsa, M.: Kubernetes in Action. DMK Press, Moscow (2018).
19. Axelrod, A.: Complete Guide to Test Automation: Techniques, Practices, and
    Patterns for Building and Maintaining Effective Software Projects. Apress
    (2018).
20. Laster, B.: Jenkins 2: Up and Running: Evolve Your Deployment Pipeline for
    Next Generation Automation. O'Reilly Media (2018).