Features of software testing in the development of geographic information systems

. In this article, the method of selecting a method of testing geographic information systems is proposed. Nowadays, thanks to advances in information technology new methods of data exchange, positioning technologies, improvements in spatial databases, there has been a significant leap in development of geographic information system. When choosing a testing method, it is recommended to take into account not only the financial component, but also the specific characteristics of the tested software system. A list of questions is developed by which qualitative properties of software systems are formalized. The list of questions is based on the ISO/IEC 25010:2011 model. The relevance of this work follows from the fact that new technologies of software development require new approaches to testing software systems. Properly developed testing technique improves the quality of geographic information systems created. Improving quality increases the competitiveness and demand of software products.


Introduction
Manual testing is more flexible and better mimics user actions. Automated test sets are easy to reuse. Semi-automated testing helps to break down a large automation task into several small parts. The interaction between these parts is carried out in manual mode [1,2]. In this article, we offer a method of test method selection using expert evaluations of product managers or programmers and testers. The product manager or developer is offered a list of questions that have been developed taking into account the quality criteria of the geographic information system. In the first group of questions, the answer "yes" means the usability of testing automation usage. Positive answers to questions of the second group increase the priority of manual testing. The "yes" answers to third-group questions increase the advantage of semi-automatic testing.

Sample questions from the questionnaire with comments
Will fuzzing be carried out? Fuzzing is a software testing technique that involves sending incorrect, unexpected, or random data to an application. The input data is generated by a special random algorithm with mutations, written to a file or transmitted to the application© s input in a network packet. As a result of data processing, the process may end with failure. This situation means vulnerability. The fuzzing algorithm is described in [3,4].
Do you plan to use acceptance tests? This type of complex testing is necessary to determine the readiness level of the system for subsequent operation. Testing is done from the client© s point of view, verifying all actions and scenarios that the client should and should not perform. An important part of acceptance testing is beta testing on real devices by end users. Some beta testing tools interact with many internal and external testers, inviting them to participate in projects through email notifications. Tools that use cloud services are also effective for acceptance testing.
Is user© s interface convenience important? It is recommended to use the "fault tolerance" principle [5]. If the field requires natural numbers, the programmer can prohibit entering negative values at the code level. It is suggested to use the plan-do-check-act (PDCA) method: collect user© s feedback on the operation and design of the application; improve the software product taking comments into account. Emotional response evaluation involves studying the user© s feelings after the interaction with the software product has been completed. The feedback indicator will help to assess how well the user remembers working with the software after a long break. Repeating operations after timeout should be faster for an experienced user. The "Accuracy" parameter calculates the number of errors the user has made when working with the application. The user does not have to remember the information from the first part of the dialog to use it in subsequent parts. "Efficiency" is the number of steps and time it takes a user to complete basic tasks. The software product should be convenient for both experienced and inexperienced users. Error messages should clearly articulate the problem and offer a constructive solution. The software product should provide the ability to customize frequently used operations.
Is installation testing required? During the testing process, make sure that all user data is saved after updates. Updates must be supported by current and earlier versions of the operating system.
Will regression testing be performed? In regression testing, it is recommended to avoid tests redundancy [6] because one of the current issues is the limited resources allocated in the project for testing [7]. In general terms, regression testing consists of two steps. First, a test check for the detected error is developed. Secondly, the created test check is restarted after each change in the code.

Selecting a software test method using a multicriterion problem
Binary responses received from a product manager or developer form In the testing group, these answers are provided with weights It is recommended to assign weights as a small discrete set, for example [0, ¼, ½, ¾, 1]. In the first group of questions, the choice is made on the following principle in terms of this criterion: whether it is convenient to use automatic testing (score 1); rather convenient (estimate ¾); there is doubt in its convenience (score ½); there are serious doubts about its convenience (score ¼); completely inconvenient (score 0). In the second group, the principle in terms of this criterion is reverse -whether it is convenient to use manual testing (score 0); rather convenient (estimate ¼); there is doubt in its convenience (score ½); there are serious doubts about its convenience (score ¾); completely inconvenient (score 1). In the third group, the principle is the same as in the first. Estimates of β1, β2,..., βk are inconvenient for further processing, since βj = 0 answer when multiplied by weight always yields zero, and hence weight is not taken into account. It is proposed to separate the answer from zero (and from 1 at the same time) by replacing the numbers 0 and 1 with the numbers ¼ and ¾. If βi = 0, i = 1,..., k, then it is replaced by bi = ¼. If βi = 1, i = 1,..., k, then it is replaced by bi = ¾. Weights α1, α2,..., αk for evenness of further processing according to group rules are replaced by a1, a2,... ak. For the first group of questions focused on choosing automatic testing, weights α1, α2,..., αk1 only need to be normalized by groups -divided by k1: For the second group of questions focused on the selection of manual testing, it is necessary to invert weights αk1+1, αk1+2,... ,αk2 ( αi→ (1 -αi)) and change the sign in them: For the third group it is necessary to center estimates αk2+1, αk2+2, … , αk. Estimate of ½ must be neutral (zero). Given the number of criteria in this group (k --k1 -k2), we obtain: ai = (αi -½)/(k-k1-k2) для i= k2+1, … , k Next, we calculate the group convolution by the formula: The specified value is always within -1 ≤ D ≤ 1. The expected value of such convolution on the set of all possible initial estimates β1, β2,..., β kand weights α1, α 2,... ,αk equals to 0. Let us assign values D1 and D2, which determine the type of testing. Further we trisect the interval [0, 1]: D1 ≥ 0, D1 < D2, D2 ≤ 1. This leads to the third case where a formalized solution (manual, automated) is considered as not sufficiently valid. As specific values D1 and D2 , it is proposed to take values D1 = 0.33 and D2 = 0.66.
Selecting the R1G, R2G, or R3G test type for a particular module or the entire PC is done by the value of the D function.
When D ≥ D2 ,automated testing method is recommended. With D ≤ D1 ,manual testing method is recommended. With D1 < D < D2, mixed testing is recommended.

Results and Discussion
This technique was applied to three classes of geographic information systems (GIS): mobile GIS, server GIS, desktop GIS [8]. Technical characteristics of these GIS classes are given in Table 1:

Conclusion
Data analysis obtained as a result of the technique application developed by the author makes it possible to conclude that it is preferable to apply mixed testing to all GIS classes considered in the article. The percentage of manual testing varies depending on the GIS class.