Sentence view

Universal Dependencies - English - GUM

LanguageEnglish
ProjectGUM
Corpus Parttrain
AnnotationPeng, Siyao;Zeldes, Amir

Text: -


[1] tree
Design of Mutation Operators for Testing Geographic Information Systems
s-1
GUM_academic_mutation-1
Design of Mutation Operators for Testing Geographic Information Systems
[2] tree
Suilen H. Alvarado Laboratorio de Bases de Datos Campus de Elviña, Centro de investigación CITIC, Universidade da Coruña, 15071 A Coruña, Spain; s.hernandez@udc.es
s-2
GUM_academic_mutation-2
Suilen H. Alvarado Laboratorio de Bases de Datos Campus de Elviña, Centro de investigación CITIC, Universidade da Coruña, 15071 A Coruña, Spain; s.hernandez@udc.es
[3] tree
Presented at the 2nd XoveTIC Congress, A Coruña, Spain, 56 September 2019.
s-3
GUM_academic_mutation-3
Presented at the 2nd XoveTIC Congress, A Coruña, Spain, 5–6 September 2019.
[4] tree
Abstract:
s-4
GUM_academic_mutation-4
Abstract:
[5] tree
In this article, we propose the definition of specific mutation operators for testing Geographic Information Systems.
s-5
GUM_academic_mutation-5
In this article, we propose the definition of specific mutation operators for testing Geographic Information Systems.
[6] tree
We describe the process for applying the operators and generating mutants, and present a case study where these mutation operators are applied to two real-world applications.
s-6
GUM_academic_mutation-6
We describe the process for applying the operators and generating mutants, and present a case study where these mutation operators are applied to two real-world applications.
[7] tree
Keywords: mutation operators; geographic information systems; mutation testing
s-7
GUM_academic_mutation-7
Keywords: mutation operators; geographic information systems; mutation testing
[8] tree
1. Introduction
s-8
GUM_academic_mutation-8
1. Introduction
[9] tree
Mutation-based testing [1] is a test technique that involves artificially introducing errors into a System Under Test (SUT).
s-9
GUM_academic_mutation-9
Mutation-based testing [1] is a test technique that involves artificially introducing errors into a System Under Test (SUT).
[10] tree
A mutant is a copy of the system in which a change has been done that, in most cases, will lead to a behaviour different than expected.
s-10
GUM_academic_mutation-10
A mutant is a copy of the system in which a change has been done that, in most cases, will lead to a behaviour different than expected.
[11] tree
The different mutants are generated automatically by the application of mutation operators.
s-11
GUM_academic_mutation-11
The different mutants are generated automatically by the application of mutation operators.
[12] tree
In the state of the art, we have found mutation operators, both general purpose and specific to different technologies, languages and paradigms [29].
s-12
GUM_academic_mutation-12
In the state of the art, we have found mutation operators, both general purpose and specific to different technologies, languages and paradigms [2–9].
[13] tree
However, these operators are not adequate when trying to test software features associated with specific domains.
s-13
GUM_academic_mutation-13
However, these operators are not adequate when trying to test software features associated with specific domains.
[14] tree
In this article, we propose mutation operators specific to the domain of Geographic Information Systems (GIS) applications.
s-14
GUM_academic_mutation-14
In this article, we propose mutation operators specific to the domain of Geographic Information Systems (GIS) applications.
[15] tree
These operators reproduce programming errors that are litely to occur during the development of this type of applications.
s-15
GUM_academic_mutation-15
These operators reproduce programming errors that are litely to occur during the development of this type of applications.
[16] tree
In addition, we present the implementation of these operators and as proof of concept we apply these operators to two real-world GIS applications and we generate the mutants.
s-16
GUM_academic_mutation-16
In addition, we present the implementation of these operators and as proof of concept we apply these operators to two real-world GIS applications and we generate the mutants.
[17] tree
2. Mutation Operators for GIS
s-17
GUM_academic_mutation-17
2. Mutation Operators for GIS
[18] tree
As a previous step to designing the mutation operators, we analyzed the main technologies used specifically in the development of GIS, and we identified typical errors a programmer can introduce during the development.
s-18
GUM_academic_mutation-18
As a previous step to designing the mutation operators, we analyzed the main technologies used specifically in the development of GIS, and we identified typical errors a programmer can introduce during the development.
[19] tree
These errors were formalized into mutation operators.
s-19
GUM_academic_mutation-19
These errors were formalized into mutation operators.
[20] tree
In order to apply these operators to a SUT, we rely on Java reflection and aspect-oriented programming.
s-20
GUM_academic_mutation-20
In order to apply these operators to a SUT, we rely on Java reflection and aspect-oriented programming.
[21] tree
Reflection allows us to obtain the list of classes and methods of the SUT, so the user can decide the methods to wish the operators will be applied.
s-21
GUM_academic_mutation-21
Reflection allows us to obtain the list of classes and methods of the SUT, so the user can decide the methods to wish the operators will be applied.
[22] tree
Later, we capture information about the methods of the SUT to be mutated, together with the information of the mutation operators that were already defined.
s-22
GUM_academic_mutation-22
Later, we capture information about the methods of the SUT to be mutated, together with the information of the mutation operators that were already defined.
[23] tree
From these data, we generate the mutation operator, in the form of on aspect, which will then be possible to interweave with the SUT which generates a mutant of the SUT.
s-23
GUM_academic_mutation-23
From these data, we generate the mutation operator, in the form of on aspect, which will then be possible to interweave with the SUT which generates a mutant of the SUT.
[24] tree
Next, we describe the definition of two operators and two cases of application on real-world GIS applications.
s-24
GUM_academic_mutation-24
Next, we describe the definition of two operators and two cases of application on real-world GIS applications.
[25] tree
ChangeCoordSys Operator (Listing 1):
s-25
GUM_academic_mutation-25
ChangeCoordSys Operator (Listing 1):
[26] tree
It exchanges the coordinate system of a geometry, so it does not match the coordinate system that is being used in the user interface.
s-26
GUM_academic_mutation-26
It exchanges the coordinate system of a geometry, so it does not match the coordinate system that is being used in the user interface.
[27] tree
It simulates the error of not checking that the coordinate system is correct.
s-27
GUM_academic_mutation-27
It simulates the error of not checking that the coordinate system is correct.
[28] tree
The error is introduced by directly modifying the coordinate system of geometry when recovering the wrapping of the figure.
s-28
GUM_academic_mutation-28
The error is introduced by directly modifying the coordinate system of geometry when recovering the wrapping of the figure.
[29] tree
Listing 1: A simplified definition of the ChangeCoordSys Operator.
s-29
GUM_academic_mutation-29
Listing 1: A simplified definition of the ChangeCoordSys Operator.
[30] tree
This operator was applied to a mobile technology GIS application.
s-30
GUM_academic_mutation-30
This operator was applied to a mobile technology GIS application.
[31] tree
This application allows registering places of interest for the user.
s-31
GUM_academic_mutation-31
This application allows registering places of interest for the user.
[32] tree
These areas of interest are called Geofences.
s-32
GUM_academic_mutation-32
These areas of interest are called Geofences.
[33] tree
A Geofence is determined by a geographical location expressed in terms of latitude, longitude, and a radius around that location.
s-33
GUM_academic_mutation-33
A Geofence is determined by a geographical location expressed in terms of latitude, longitude, and a radius around that location.
[34] tree
By creating a Geofence with an erroneous location from its central location, the device will receive incorrect location notifications.
s-34
GUM_academic_mutation-34
By creating a Geofence with an erroneous location from its central location, the device will receive incorrect location notifications.
[35] tree
As a result, the user will see in the application’s map viewer the Geofences drawn in erroneous zones (Figure 1).
s-35
GUM_academic_mutation-35
As a result, the user will see in the application’s map viewer the Geofences drawn in erroneous zones (Figure 1).
[36] tree
Figure 1. Original and mutant application.
s-36
GUM_academic_mutation-36
Figure 1. Original and mutant application.
[37] tree
BooleanPolygonConstraint Operator (Listing 2):
s-37
GUM_academic_mutation-37
BooleanPolygonConstraint Operator (Listing 2):
[38] tree
It introduces errors in the processing of geometries, manipulating the result of the operations that carry out the verification of different topological restrictions between geometries, such as intersects, covers or overlap.
s-38
GUM_academic_mutation-38
It introduces errors in the processing of geometries, manipulating the result of the operations that carry out the verification of different topological restrictions between geometries, such as intersects, covers or overlap.
[39] tree
Listing 2: A simplified definition of the BooleanPolygonConstraint Operator.
s-39
GUM_academic_mutation-39
Listing 2: A simplified definition of the BooleanPolygonConstraint Operator.
[40] tree
To test this operator it was applied to a land reparcelling system.
s-40
GUM_academic_mutation-40
To test this operator it was applied to a land reparcelling system.
[41] tree
The objective of the land reparcelling is to reunify the lands of an owner to facilitate their exploitation.
s-41
GUM_academic_mutation-41
The objective of the land reparcelling is to reunify the lands of an owner to facilitate their exploitation.
[42] tree
In this application, the result of the operation between two polygons has been affected.
s-42
GUM_academic_mutation-42
In this application, the result of the operation between two polygons has been affected.
[43] tree
This error causes the incorrect display of the resulting geometry that should be drawn in the user interface after the operation applied to the two initial geometries (Figure 2).
s-43
GUM_academic_mutation-43
This error causes the incorrect display of the resulting geometry that should be drawn in the user interface after the operation applied to the two initial geometries (Figure 2).
[44] tree
Figure 2. Original and mutant application.
s-44
GUM_academic_mutation-44
Figure 2. Original and mutant application.
[45] tree
3. Conclusions
s-45
GUM_academic_mutation-45
3. Conclusions
[46] tree
In existing proposals, we can find both generic and specific mutation operators.
s-46
GUM_academic_mutation-46
In existing proposals, we can find both generic and specific mutation operators.
[47] tree
However, these are not adequate to cover errors in particular domains.
s-47
GUM_academic_mutation-47
However, these are not adequate to cover errors in particular domains.
[48] tree
We have defined new operators specific to the GIS domain and a way to apply them to a SUT.
s-48
GUM_academic_mutation-48
We have defined new operators specific to the GIS domain and a way to apply them to a SUT.
[49] tree
In addition, we have tested the operators defined in two GIS applications.
s-49
GUM_academic_mutation-49
In addition, we have tested the operators defined in two GIS applications.
[50] tree
As future work, we intend to extend this approach to other domains, as well as to use the developed operators for the automatic improvement of sets of test cases.
s-50
GUM_academic_mutation-50
As future work, we intend to extend this approach to other domains, as well as to use the developed operators for the automatic improvement of sets of test cases.

Edit as listText viewDependency trees