=Paper= {{Paper |id=Vol-1490/paper30 |storemode=property |title=Method of UNIT testing for computing software modules algorithms |pdfUrl=https://ceur-ws.org/Vol-1490/paper30.pdf |volume=Vol-1490 }} ==Method of UNIT testing for computing software modules algorithms== https://ceur-ws.org/Vol-1490/paper30.pdf
Mathematical Modeling


    Method of UNIT testing for algorithms of computing
                   software modules

               Kovartsev A.N., Popova-Kovartseva D.A., Gorshkova E.E.

                              Samara State Aerospace University



       Abstract. The method of automating Unit testing processes for computing
       software modules is considered in the paper. Modern means of testing
       automation, which are analyzed in many scientific studies, specialize mainly in
       testing graphical user interfaces, web-interfaces, network communications,
       information systems, etc., which is the result of a huge demand in the market
       for software products within these spheres. Software modules of computing
       character are overshadowed by such products despite the fact that these
       modules have considerable scientific and practical value. They deal mostly
       with high tech spheres: aerospace cluster, energy industry, defense complex,
       etc. The article presents an original method of Unit testing for computing
       modules based on the algorithm of global search for infinite discontinuity points
       of testing function, which allows to find fatal errors in computing software
       modules, as well as incorrectness in implementation of algorithms for
       mathematical models. The universal method of Unit testing is offered within the
       class of computing modules, which helps to minimize the time for program
       debugging and to find fatal errors with less effort, as well as to organize total
       module testing for all modules of the program.

       Keywords: Unit testing, testing automation, computing software modules,
       global optimization, fatal errors


       Citation: Kovartsev A.N., Popova-Kovartseva D.A., Gorshkova E.E. Method
       of unit testing for algorithms of computing software modules. Proceedings of
       Information Technology and Nanotechnology (ITNT-2015), CEUR Workshop
       Proceedings, 2015; 1490: 252-261. DOI: 10.18287/1613-0073-2015-1490-252-
       261


Introduction
     Developers of modern software (SW) face the challenge to carry out their
projects within tight deadlines and with minimal resources consumption [1, 2],
whereas software vendors strive to carry out testing appropriately, quickly, and
thoroughly. Most types of work, used in software programming, are to be supported
by automated means of testing.
     Modern means of automated testing are constantly expanding at present and
include testing of graphical user interfaces, checking requirement compatibility,
download speed, code coverage, web-interface, network communications, information


                                                                                           252
Information Technology and Nanotechnology (ITNT-2015)
Mathematical Modeling                          Kovartsev A.N., Popova-Kovartseva D.Aโ€ฆ


systems, etc. This results from the huge demand in the market for software products
within these spheres. Software modules of computing character are overshadowed by
such products despite the fact that these modules have considerable scientific and
practical value. They deal mostly with high tech spheres [3]: aerospace cluster,
energy industry, defense complex, etc.
      Testing is the method of providing the required level of SW quality. In the
general sense, software testing is the process that allows to determine the correctness,
completeness and quality of the developed software product. Unfortunately, it is
impossible to determine unambiguously whether the analyzed program functions
correctly or not, as well as to guarantee the absence of defects in a software product
because human factor problems may appear at all SW lifecycle stages [4]. Therefore,
all existing testing methods operate within private formal methods of testing
organized for the analyzed product. The list of modern methods and approaches for
solving the problem of program testing is extensive and diverse. On the one hand, this
diversity is determined by the current practice of using a computer while solving a
variety of problems and, accordingly, by the specific features of software products
themselves.
      The class of computing software modules (CSM), based on the use of
mathematical models, has some specific features. Such programs, carried out on a
computer, are sure to calculate any function that realizes the display output of input
data. This implies that a computer by means of its resources finishes the definition of
a partly determined function, which results in complete definition. Consequently, it is
possible to estimate if the results of program execution are right or wrong only by
comparing the specification of the expected function with the results of its
calculation; this is carried out in the testing process. For the class of computing
software modules, methods of Unit testing [20] and test tools based on models using
formal methods [4,6] are more suitable.
      Formal methods usually allow to solve a limited range of testing software tasks
within a particular class, however, they are able to work effectively in industrial
projects and require a minimum number of special skills and knowledge so that to be
used [4]. Currently, within monitoring the formal properties of SW, methods of test
construction are thoroughly developed on the basis of finite-state automation [7, 8].
For them, accuracy characteristics and evaluation of completeness of performed tests
are known. In these techniques, computing route is analyzed not only for performing
some formulae, but also for coordination with the specified automation model of the
proper behavior. Nowadays these methods are rarely used, mainly for monitoring
small critical applications [4]. Formal methods are rather โ€œheavy-weightโ€, they
require well-qualified specialists, at least at the stage of software modeling. The weak
point of formal methods is the need to construct the model itself on the parallel basis
and to check its correctness.
      The practice of industrial software production shows that the most effective
strategy is to search and correct as many errors as possible at the earliest stage of
software development. Methods of Unit testing are appropriate for this purpose. Unit
testing consists in checking the software performance on a set of input and
corresponding output data. This approach allows to reveal a significant number of
errors and locate them quickly as it is easier to find an error within a module than to
do it within the whole project. CSM can be easily interpreted with a vector

                                                                                        253
Information Technology and Nanotechnology (ITNT-2015)
Mathematical Modeling                          Kovartsev A.N., Popova-Kovartseva D.Aโ€ฆ


computable function ๐‘ = ๐‘“(๐‘‹) = (๐‘“1 (๐‘‹), ๐‘“2 (๐‘‹), โ€ฆ , (๐‘‹))๐‘‡ , having a set of input
parameters ๐‘‹ = (๐‘ฅ1 , ๐‘ฅ2 , โ€ฆ , ๐‘ฅ๐‘› )๐‘‡ of the module and a set of calculated data ๐‘ =
(๐‘ง1 , ๐‘ง2 , โ€ฆ , ๐‘ง๐‘š )๐‘‡ .
       The origin of errors for CSM is extensive and diverse. Errors occur when initial
and boundary conditions, which characterize the value and location of external
factors, are set incorrectly. They may be related with a set of limitations and
assumptions resulting from the physical nature of the object and limiting the range of
input parameters.
       Among the errors of this kind for CSM, two most common groups can be
distinguished: calculation errors and logical (algorithmic) errors. Calculation errors
are mostly connected with incorrect recording or programming of mathematical
expressions and manifest themselves as arithmetic error of division by 0, the square
root of a negative number, as calculation of rational or transcendental functions, etc.
They can only be detected while executing the program and lead to program stoppage.
       Logical errors are connected with the distortion of problem solving algorithm
and result from incorrect problem setting, wrong consideration of all conditions for
solving the problem, incorrect management organization within CSM, and errors in
the input of logical expressions. These errors are difficult to correct, corrections often
being made with the help of formal methods [5].
       Nevertheless, there is a universal method for detecting errors of calculating and
partly logical character in computing software modules [3, 9]. This method is based
on the fact that all computing modules, implemented as a program, โ€œworkโ€ within
integrity of used functions or mathematical models. Otherwise, the program canโ€™t be
used. If we organize the search for infinite discontinuity of the function by some
means, we will be able to detect all calculating errors of any origin mentioned above.
Relatively โ€œsimpleโ€ methods of global optimization (GO) of multivariable functions
are appropriate for this purpose[10].
       In this paper we consider the improved algorithm of global search for points of
discontinuity of the second type, intended for detecting error situations in the software
modules of computing character. This algorithm is the basis of Unit testing for
computing software modules.

1. Problem Statement
     Let the area of error search in computing module be a unit cube (in general โ€“
hypercube) ะŸ ๏€ฝ [0, 1] ๏‚ด [0, 1] ๏‚ด [0, 1] , which is proportionally divided into eight
smaller cubes.
     Unit testing algorithm of computing modules, formally described by vector
function ๐‘ = ๐‘“(๐‘‹), can be put as the problem of global optimization

max f k2 ( X ), k ๏€ฝ 1,..., m,                                                           (1)
  X

which is aimed at detecting (or ensuring the absence of) discontinuity points of the
second type in the examined function. The infinite discontinuity ๏‚ฑ ๏‚ฅ is realized in
numbers marked by code NaN on a computer; in fact we can specify the upper limit



                                                                                        254
Information Technology and Nanotechnology (ITNT-2015)
Mathematical Modeling                                    Kovartsev A.N., Popova-Kovartseva D.Aโ€ฆ

                                              (๐‘˜)
of acceptable values |๐‘“๐‘˜ (๐‘‹)| โ‰ค ๐‘€๐‘ ๐‘ข๐‘ or each calculating parameter of a module. To
simplify the situation, we will further consider scalar function ๐‘“(๐‘‹) = ๐‘š๐‘Ž๐‘ฅ๐‘“๐‘–2 (๐‘‹).
      Among the well-known one-parameter methods of multiextremal optimization,
R.G. Strongin statistic information method is the most effective [10]. The method is
based on the use of approximate posterior probability distribution of global extremum
location, which is formed in the process of function testing, which allows to realize a
more balanced strategy to search for function global minimum. This strategy is so
effective that it is often transferred from one-dimensional case to multivariable
function optimization.
      It is shown in the paper [10] that function extremum search is realized by
maximizing a simple characteristic function:

                           ( zi ๏€ญ zi ๏€ญ1 ) 2
R(i) ๏€ฝ ๏ญ( xi ๏€ญ xi ๏€ญ1 ) ๏€ซ                    ๏€ญ 2( zi ๏€ซ zi ๏€ญ1 ) ,                                   (2)
                           ๏ญ( xi ๏€ญ xi ๏€ญ1 )

where ๏ญ โ€“ estimation of Lipschitz constant, which is calculated in the process of
function extremum search:
     ๏ƒฌ1       M ๏€ฝ 0,                      z ๏€ญ zi ๏€ญ1
๏ญ๏€ฝ๏ƒญ                          M ๏€ฝ max i                 ,
     ๏ƒฎrM      M  ๏€พ 0,                i  ( xi ๏€ญ xi ๏€ญ1 )
where r โ€“ parameter.
      The condition of Lipschitz for optimized function simplifies greatly the search
for function extremum as the limitation of function growth degree allows to find local
extremum vicinity quickly. However, while searching for a set of infinite
discontinuity, areas of function monotony as well as extremum vicinity are equally
useless. It is much more important to determine the criteria which will be responsive
to the fast increase and decrease of function.
      Nowadays, mathematical aspects of function behavior in vicinities of
discontinuity points are not analyzed thoroughly, which complicates detecting
function discontinuity presence while analyzing its behavior on local continuous
sections. The paper [11] offers the characteristic function, created by analogy with
(2), but it is more adapted to solve the task of search for infinite discontinuities points.
The following characteristic function is offered to use:

R(i) ๏€ฝ (d 2 f ( X ic ))2 Dir ,                                                                    (3)

where ๐‘‹๐‘–๐‘ โ€“ the centre of a cube, ๐ท๐‘— โ€“ cube diagonal of search algorithm, r โ€“ scaling
parameter.
       The second differential of function can be calculated with the help of
interpolation of initial function using Newtonโ€™s first interpolation formula [12] for full
factorial plan 3๐‘› [13]. Then, using ๐‘ƒ2,2,2 (๐‘‹) it is easy to calculate ๐‘‘ 2 ๐‘“(๐‘‹) โ‰ˆ
๐‘‘ 2 ๐‘ƒ2,2,2 (๐‘‹).
       In search algorithm, there is a proportional division of search area into smaller
parts: the unit interval โ€“ into 2 parts; square โ€“ into 4 parts, cube โ€“ into 8 parts, etc. Fig.
1 shows a diagram of search area division for two-dimensional case. We will consider
the three-dimensional case further in order to present a good illustration.


                                                                                                  255
Information Technology and Nanotechnology (ITNT-2015)
Mathematical Modeling                                                 Kovartsev A.N., Popova-Kovartseva D.Aโ€ฆ


                        y

                        1




                            0

                                   0                                                      1                 x

                                    Fig. 1. โ€“ Diagram of Search Area Division

      Construction of interpolating polynomial for multidimensional case can be
realized as follows.
๐‘ = โ€–๐‘ง๐‘–๐‘—๐‘˜ โ€–(๐‘–, ๐‘—, ๐‘˜ = 0,1,2)
is the matrix of testing function values at nodal points of full factorial plan 3๐‘› . We
                                                          (0)                  (0)                   (0)
                                                ๐‘ฅ โˆ’๐‘ฅ1                  ๐‘ฅ โˆ’๐‘ฅ2                   ๐‘ฅ โˆ’๐‘ฅ3
introduce new variables ๐‘ž = 1                                   ;๐‘ = 2               ;๐‘Ÿ = 3                . The starting point of
                                             โ„Ž           โ„Ž                                       โ„Ž
                                            (0) (0) (0)
interpolation grid is             ๐‘‹ (0) = (๐‘ฅ1 , ๐‘ฅ2 , ๐‘ฅ3 ; h
                                                 โ€“ the step of interpolation grid.
Newtonโ€™s interpolation polynomial is to be calculated in the form of matrix. Symbols
of multidimensional matrix and content of main operations are borrowed from the
paper [13]. To do this, we need to calculate the matrix of finite differences ๐‘ฬƒ.
     z๏ก        ๏„1r z๏ก       ๏„2rr z๏ก ๏„1q z๏ก               ๏„1qr๏€ซ1 z๏ก       ๏€ซ2
                                                                       ๏„1qrr z๏ก      ๏„2qq z๏ก        ๏€ซ1
                                                                                                 ๏„2qqr z๏ก           ๏€ซ2
                                                                                                                 ๏„2qqrr z๏ก
~              1๏€ซ1              1๏€ซ 2      1๏€ซ1             1๏€ซ1๏€ซ1        1๏€ซ1๏€ซ 2        2 ๏€ซ1         2 ๏€ซ1๏€ซ1           ๏€ซ1๏€ซ 2       (4)
Z ๏€ฝ ๏„1p z๏ก     ๏„ z
                 pr ๏ก       ๏„ z ๏„ z
                                 prr ๏ก     qp ๏ก         ๏„  qpr ๏กz     ๏„ qprr ๏ก z ๏„ z  qqp ๏ก      ๏„ qqpr ๏ก  z    ๏„2qqprr  z๏ก
               2 ๏€ซ1             2๏€ซ 2      1๏€ซ 2            1๏€ซ 2 ๏€ซ1      1๏€ซ 2 ๏€ซ 2      2๏€ซ 2         2 ๏€ซ 2 ๏€ซ1         ๏€ซ 2๏€ซ 2
     ๏„2pp z๏ก   ๏„ z
                ppr ๏ก       ๏„       z ๏„ z
                                 pprr ๏ก    qpp ๏ก        ๏„  qppr ๏กz    ๏„ qpprr ๏กz ๏„        z
                                                                                     qqpp ๏ก      ๏„qqppr ๏ก  z    ๏„2qqpprr  z๏ก
Here ฮฑ= 000. We introduce a vector

Q ๏€ฝ (1 q q(q ๏€ญ 1) / 2)๏‚ข;
P ๏€ฝ (1 p p( p ๏€ญ 1) / 2)๏‚ข;                                                                                                      (5)
R ๏€ฝ (1 r r (r ๏€ญ 1) / 2)๏‚ข .

Considering (๏ฌ, ๏ญ) -convoluted product of vectors Q, P, R with ฮป = 0, ยต= 0, we get
the matrix of independent variables
๐‘‹ฬƒ = ๐‘„๐‘ƒ๐‘… = โ€–๐‘ž๐‘– โˆ™ ๐‘๐‘— โˆ™ ๐‘Ÿ๐‘˜ โ€– (๐‘–, ๐‘—, ๐‘˜ = 0,1,2                                    (6)
Thus, Newtonโ€™s interpolation polynomial has the following matrix form


                  ๏€จ             ๏€ฉ ๏ƒฅ Z~
                                            2
                  ~ ~                                             ~
P2, 2, 2 ( X ) ๏€ฝ3 Z X ๏€ฝ                                c0c1c2   ๏ƒ— X c0c1c2 ,                                                   (6)
                                       c0 ,c1 ,c3 ๏€ฝ0



                                                                                                                               256
Information Technology and Nanotechnology (ITNT-2015)
Mathematical Modeling                                                    Kovartsev A.N., Popova-Kovartseva D.Aโ€ฆ


where c ๏€ฝ (c0 , c1, c2 ) โ€“ Caylean summation index [14].
      The elements of matrix (4) can be calculated using the definition of finite
differences of corresponding orders.
      To calculate partial derivatives we need vectors
๐‘„โ€ฒ = (0 1 ๐‘ž โˆ’ 0.5)โ€ฒ ; ๐‘ƒ ; = (0 1 ๐‘ โˆ’ 0.5)โ€ฒ ; ๐‘…โ€ฒ = (0 1 ๐‘Ÿ โˆ’ 0.5)โ€ฒ ; ๐‘„โ€ฒโ€ฒ = ๐‘ƒโ€ฒโ€ฒ =
๐‘…โ€ฒโ€ฒ = (0 0 1)โ€ฒ ,
then
                           1                            1                            1
Px๏‚ข1 ( X ) ๏€ฝ3 ( Z~ (Q๏‚ขPR )) ; Px๏‚ข2 ( X ) ๏€ฝ3 ( Z~ (QP๏‚ขR)) ; Px๏‚ข3 ( X ) ๏€ฝ3 ( Z~ (QPR๏‚ข)) ,
                           h                            h                            h
and the second derivatives:
                                1                                  1                                   1
Px๏‚ข๏‚ข1x1 ( X ) ๏€ฝ3 ( Z~ (Q๏‚ข๏‚ขPR )) 2 ; Px๏‚ข๏‚ข2 x2 ( X ) ๏€ฝ3 (Z~ (QP๏‚ข๏‚ขR)) 2 ; Px๏‚ข๏‚ข3 x3 ( X ) ๏€ฝ3 ( Z~ (QPR๏‚ข๏‚ข)) 2 .
                               h                                  h                                   h
        Now it is easy to calculate the value of the second differential in the centers of
each eight cubes of original search area partition:
d 2 f ( X ic ) ๏‚ป ( Px๏‚ข1๏‚ข x1 ( X ic ) ๏€ซ Px๏‚ข๏‚ข2 x2 ( X ic ) ๏€ซ Px๏‚ข๏‚ข3 x3 ( X ic ) ๏€ซ 2( Px๏‚ข1๏‚ข x2 ( X ic ) ๏€ซ Px๏‚ข1๏‚ข x3 ( X ic ) ๏€ซ Px๏‚ข๏‚ข2 x3 ( X ic )))h2 .
      The value of characteristic function is calculated for each of new cubes, which
are written onto the line ordered list in descending order of values. At each stage of
search algorithm for discontinuity points of testing function, the first item on the list is
chosen โ€“ a cube with maximum value of characteristic function, which is subjected to
further division. The algorithm works till the condition of algorithm stoppage appears:
(max|๐‘ง๐‘– | > ๐‘€๐‘ ๐‘ข๐‘ )ห…(๐‘š๐‘–๐‘›๐‘– โ„Ž๐‘– < ๐œ€). This condition of algorithm stoppage ensures the
completion of its work if the value of testing function is outside function domain or
the given density of viewing the original area of testing function is reached.

2. Examples of using the proposed method of Unit testing for computing modules

2.1. Method testing with model examples
      The proposed testing method of CSM got its name as finite differences method
(FDM) due to the use of finite differences of the function. The efficiency of its work
can be evaluated by means of discontinuous function โ€“ Kovartsevโ€™s test [11],
specially developed for this case, and a set of test functions generated by the GKLS
generator [15]. The first test is characterized by a single discontinuity point (which is
difficult to detect) added to linear combination of error functions. The second one is a
continuous function with a large number of local extrema. Test functions are
presented in Table 1.
      In literature, the efficiency of search algorithms is usually evaluated using the
operating characteristics machine [16]. Operating characteristic is the dependence of
error detection probability ๐‘ƒ๐‘Ž๐‘™๐‘” on the amount of calls to the tested function ๐‘๐‘“ .
      Since the second-order discontinuity points can be found by any of the global
optimization algorithms, the efficiency of the proposed FDM algorithm was compared
with the efficiency of direct GO method, for example, the modified bisection method
(BM) [17].



                                                                                                                                                257
Information Technology and Nanotechnology (ITNT-2015)
Mathematical Modeling                                                 Kovartsev A.N., Popova-Kovartseva D.Aโ€ฆ


                                              Table 1. A set of test functions
โ„–    Function                                                                                      General view
1    Kovartsev test function:
                                    ( x ๏€ญa )2 ๏€ซ( x2 ๏€ญa2i )2             ( x ๏€ญb )2 ๏€ซ( x2 ๏€ญb2 )2
                    19             ๏€ญ 1 1i                              ๏€ญ 1 1
      f ( x1 , x2 ) ๏€ฝ ๏ƒฅ (i ๏€ซ 1)e            0.01            ๏€ซ 1/(1 ๏€ญ e          0.01           )
                    i ๏€ฝ0

      x1 , x 2 ๏ƒŽ [0; 1]
     20 local extrema. One second-order discontinuity
     point
2    GKLS test functions.
     Continuous twice differentiable function. 10 local
     extrema. One global extremum. Points of
     discontinuity are not observed.



      The operating characteristics of FDM and BM methods are shown in Fig. 2.
They are created for test function 1 which has a local discontinuity point of the second
type (see Table 1). As we can see from fig. 2, the efficiency of the proposed algorithm
is much greater than the efficiency of the bisection method. In Fig. 2 the solid line
indicates operating characteristics of FDM algorithm, the dashed one indicates
characteristics of BM algorithm. It happens because the bisection method is focused on
the optimization of continuous functions, which leads to a more detailed analysis of the
function areas when Lipschitz constant evaluation increases. This situation occurs
every time when the function is calculated near the points of its discontinuity. By
contrast, FDM method is oriented on looking for areas of rapid growth of the test
function.
      The situation changes if FDM method โ€œworksโ€ with continuous function. Figure
3 shows the operating characteristics of these methods, created for continuous GKLS
test function.
      The figure illustrates the fact that the efficiency of FDM algorithm for continuous
functions is much lower than the efficiency of BM algorithm. If we have continuous
functions with no discontinuity points of the second type (test software module has no
errors), the finite difference method is forced to examine thoroughly the space of the
optimized variables.

2.2. Testing of software modules for calculating acoustic characteristics of gas
pressure regulator
      This part presents the results of Unit testing for computing models included in
the program that realizes the optimization of gas pressure regulator (GPR) parameters
with use of orifice plates [21].Significant changes in pressure during orificing and
speed acceleration generate the noise which accompanies the work of these machines.
This noise exceeds the established health standards. Rational choice of orifice flow
area (and their quantity) can significantly reduce the noise level of this device [18].



                                                                                                                  258
Information Technology and Nanotechnology (ITNT-2015)
Mathematical Modeling                          Kovartsev A.N., Popova-Kovartseva D.Aโ€ฆ




         Fig. 2. โ€“ Operating characteristics of FDM and BM methods for function โ„–1




         Fig. 3. โ€“ Operating characteristics of FDM and BM methods for function โ„–2

      Output parameters of GPR for the stationary case have been calculated by
solving the system of nonlinear equations that describe gas motion in its specific
sections: the valve mechanism and orifice package:

๏ƒฌGx ๏€ญ G1 ๏€ฝ 0,
๏ƒฏG ๏€ญ G ๏€ฝ 0,
๏ƒฏ 1      2
๏ƒญ                                                                                       (7)
๏ƒฏ....
๏ƒฏ๏ƒฎGn ๏€ญ1 ๏€ญ Gn ๏€ฝ 0,

                                                                                        259
Information Technology and Nanotechnology (ITNT-2015)
Mathematical Modeling                          Kovartsev A.N., Popova-Kovartseva D.Aโ€ฆ


      ๐บ๐‘ฅ โ€“ gas flow through the valve, ๐บ๐‘– โ€“ gas flow through i-orifice plate. When the
input parameters of module are given, for example, ๐‘๐‘– , ๐‘๐‘–+1 โ€“ pressure before and after
orifice plate correspondingly; ๐‘†๐‘– โ€“ areas of i-orifice flow, etc. we can calculate gas
mass flux through orifice and as a result โ€“ acoustic power generated by orifice plate
[19].
      We used a rather simple module for calculating the orifice flow capacity (๐ถ๐‘ฃ๐‘– ) in
order to calculate the gas mass flux through orifice. Testing the module by FDM
method with approximately 200 calls to the module revealed methodological error in
the algorithm model. It turned out that if ๐‘๐‘– โ†’ ๐‘๐‘–+1 โˆ’ ๐ถ๐‘ฃ๐‘– โ†’ โˆž, and ๐‘๐‘– < ๐‘๐‘–+1 , flow
capacity is indefinite (error code NaN occurs).
      Certainly, it would be possible to require the calculation with this module
๐ถ๐‘ฃ๐‘– (๐‘๐‘– , ๐‘๐‘–+1 ) to be carried out only in accordance with the condition ๐‘๐‘– > ๐‘๐‘–+1 , which
is natural for this type of device. But how can it be realized when numerical method
for solving systems of nonlinear equations (8) generates the values of independent
variables at each iteration on its own, not taking into consideration the above
mentioned circumstances? The easiest way to solve the problem is the artificial
replacement of function infinite discontinuity ๐ถ๐‘ฃ๐‘– (๐‘๐‘– , ๐‘๐‘–+1 ) with a larger but finite
discontinuity, and extension of definition by โ€œpenaltyโ€ value where it is indefinite. In
this case, the algorithm for solving systems of nonlinear equations is to find solutions
on its own, โ€œstarting withโ€ โ€œdysfunctionalโ€ combinations of independent variables.
      High speed of detecting fallible combinations of FDM independent variables in
this example can be explained by the fact that at the first stage of work, when the area
of rapid function growth is not detected, FDM distributes test points of testing
function in the search area. Since function ๐ถ๐‘ฃ๐‘– (๐‘๐‘– , ๐‘๐‘–+1 ) has significant areas of
uncertainty, FDM finds them quickly.

Conclusion
      The paper offers an original method of Unit testing for computing modules,
based on the algorithm of global search for infinite discontinuity of the testing
function, which allows to detect fatal errors in software computing modules, as well
as incorrectness in implementation of mathematical models of algorithms.
      The proposed scheme of accelerating algorithms for global optimization applied
to the search for points of discontinuity of the second order has confirmed completely
its viability with model and real examples. The basic idea of FDM algorithm is to
introduce a new heuristic characteristic function to the classical algorithm of global
optimization. The new function is based on the analysis of Strongin characteristic
function and takes into account the problem matters being solved. FDM algorithm is
the universal method of Unit testing for the class of computing modules. The
application of this method leads to the reduction of time for debugging, helps to find
fatal errors with less effort, and, as a result, to organize total testing of all program
modules.

References
 1. Dastin E, Reshka D, Paul D. Automatic software testing. Application, operation and
    maintenance. Moscow: Lori, 2003; 567 p. [in Russian]
 2. Lipaev VV. Program testing. M.: Radio and connection, 1986; 296 p. [in Russian]

                                                                                         260
Information Technology and Nanotechnology (ITNT-2015)
Mathematical Modeling                          Kovartsev A.N., Popova-Kovartseva D.Aโ€ฆ


 3. Kovartsev AN. Automation of software development and testing. Samara State Aerospace
    University, 1999; 148 p. [in Russian]
 4. Kuliamin VV. Software verification methods. Source:
    
 5. Kovartsev AN. An efficient algorithm for testing the truth of assertions for real numbers
    expressed in relational signatures. Computer Optics, 2014; 38(3): 550-554. [in Russian]
 6. Heitmeyer C, Archer M, Bharadwaj R, Jeffords R. Tools for constructing requirements
    specifications: The SCR toolset at the age of ten. Journal of Computer Systems Science
    and Engineering, 2005; 20(1): 19-35.
 7. Farchi E, Hartman F, Pinter SS. Using a model-based test generator to test for standard
    conformance. IBM Systems Journal, 2002; 41(1): 89-110.
 8. Cavalli A, Gervy C, Prokopenko S. New approaches for passive testing using an
    Extended Finite State Machine specification. Information and Software Technology, 2003;
    45(12): 837-852.
 9. Kovartsev AN, Logvinov AL. Efficiency improvement of testing algorithms for
    computing modules. Journal of Telecommunication systems, 2004; 4. [in Russian]
10. Strongin RG. Search for global optimum. Moscow: Znanie, 1990. [in Russian]
11. Kovartsev AN, Popova-Kovartseva DA, Serpovskaya EE. Testing mathematical models
    of computing algorithms based on global optimization method. Information technology
    and nanotechnologies. SSAU, 2015; 191-196. [in Russian]
12. Kovartsev AN. Computational mathematical. Samara: Ofort, 2011; 230 p. [in Russian]
13. Ermakov SM, Zhigliavsky AA. Mathematical theory of optimal experiment operation.
    Moscow: Nauka, 1987; 320 p. [in Russian]
14. Sokolov NP. Introduction to multidimensional matrix theory. Kiev: Nukova dumka, 1972;
    177 p. [in Russian]
15. Gaviano M, Kvasov DE, Lera D, Sergeyev YaD. Software for generation of classes of
    test functions with known local and global minima for global optimization. ACM TOMS,
    2003; 29(4): 469-480.
16. Gergel VP, Strongin RG. Absolute. Software system for global optimization method
    studying. Textbook. Nizhny Novgorod: Nizhegorodsky University Press, 1998; 141 p. [in
    Russian]
17. Kovartsev AN, Popova-Kovartseva DA, Abolmasov PV. Efficiency study of global
    parallel optimization for multivariable function. Vestnik NNGU, 2013; 3(1): 252-261. [in
    Russian]
18. Igolkin ะะ, Kruchkovะฐ AN, Koh AI, Safin AI, Shakhmatov EV. Pressure reducing
    valve noise reduction. Proceedings of the Nineteen International Congress on Sound and
    Vibration (ICSV 19). The international institute of Acoustics and Vibration, 2012, July 08-
    12.
19. Istvan L, Beranek V, Beranek L. Noise and vibration control engineering. Second
    edition. Principles and applications. Published by Wiley and Sons, Inc, 2006; 966 p.
20. Meszaros, G. xUnit test patterns: rafactoring test code. U.S. at Courier in Wesrford,
    Massachusetts, 2009; 835 p.
21. Karczub DG, Catron FW, Allen C. Blow-down valve noise and interactions with down
    stream orifice plates. Fagerlund Proceedings of IMECEโ€™03. ASME International
    Mechanical Engineering Congress, 2003; 43-49.




                                                                                           261
Information Technology and Nanotechnology (ITNT-2015)