Sentence view Universal Dependencies - English - GUM Language English Project GUM Corpus Part train Annotation Peng, Siyao;Zeldes, Amir
Text: Transcription Written form - Colors
Design of Mutation Operators for Testing Geographic Information Systems
s-1
GUM_academic_mutation-1
Design of Mutation Operators for Testing Geographic Information Systems
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
Presented at the 2nd XoveTIC Congress , A Coruña , Spain , 5 – 6 September 2019 .
s-3
GUM_academic_mutation-3
Presented at the 2nd XoveTIC Congress, A Coruña, Spain, 5–6 September 2019.
Abstract :
s-4
GUM_academic_mutation-4
Abstract:
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.
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.
Keywords : mutation operators ; geographic information systems ; mutation testing
s-7
GUM_academic_mutation-7
Keywords: mutation operators; geographic information systems; mutation testing
1. Introduction
s-8
GUM_academic_mutation-8
1. Introduction
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).
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.
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.
In the state of the art , we have found mutation operators , both general purpose and specific to different technologies , languages and paradigms [ 2 – 9 ] .
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].
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.
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.
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.
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.
2. Mutation Operators for GIS
s-17
GUM_academic_mutation-17
2. Mutation Operators for GIS
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.
These errors were formalized into mutation operators .
s-19
GUM_academic_mutation-19
These errors were formalized into mutation operators.
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.
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.
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.
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.
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.
ChangeCoordSys Operator ( Listing 1 ) :
s-25
GUM_academic_mutation-25
ChangeCoordSys Operator (Listing 1):
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.
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.
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.
Listing 1 : A simplified definition of the ChangeCoordSys Operator .
s-29
GUM_academic_mutation-29
Listing 1: A simplified definition of the ChangeCoordSys Operator.
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.
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.
These areas of interest are called Geofences .
s-32
GUM_academic_mutation-32
These areas of interest are called Geofences.
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.
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.
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).
Figure 1 . Original and mutant application .
s-36
GUM_academic_mutation-36
Figure 1. Original and mutant application.
BooleanPolygonConstraint Operator ( Listing 2 ) :
s-37
GUM_academic_mutation-37
BooleanPolygonConstraint Operator (Listing 2):
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.
Listing 2 : A simplified definition of the BooleanPolygonConstraint Operator .
s-39
GUM_academic_mutation-39
Listing 2: A simplified definition of the BooleanPolygonConstraint Operator.
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.
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.
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.
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).
Figure 2 . Original and mutant application .
s-44
GUM_academic_mutation-44
Figure 2. Original and mutant application.
3. Conclusions
s-45
GUM_academic_mutation-45
3. Conclusions
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.
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.
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.
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.
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 list • Text view • Dependency trees