Generación aleatoria de casos de test Espresso para Android
- Autores
- Arcuschin Moreno, Iván
- Año de publicación
- 2024
- Idioma
- español castellano
- Tipo de recurso
- tesis doctoral
- Estado
- versión publicada
- Colaborador/a o director/a de tesis
- Galeotti, Juan Pablo
- Descripción
- El testing es una parte integral del proceso de desarrollo de aplicaciones Android: al correr casos de test regularmente en sus aplicaciones, los desarrolladores pueden verificar el correcto comportamiento y la usabilidad antes de poner las aplicaciones a disposición del público. Espresso es un framework de testing que permite a los desarrolladores escribir casos de test de interfaz de usuario (UI) Android concisos, confiables y legibles, y es el único framework de testing de UI con una amplia adopción entre los desarrolladores de aplicaciones. Se han propuesto varias herramientas de generación automática de tests para ayudar a los desarrolladores en la tarea de testing. Sin embargo, muchas de estas herramientas no producen casos de test ejecutables, solo informan errores, y de las que generan tests, sólo algunas admiten el formato Espresso. Esta tesis se centra en mejorar la generación de casos de test Espresso para aplicaciones Android. Comenzamos realizando un estudio empírico que compara la efectividad de distintos algoritmos evolutivos y muestra que dichos algoritmos no son adecuados para generar casos de test Android, siendo muchas veces superados por algoritmos puramente aleatorios. A continuación, analizamos los desafíos de generar casos de test en formato Espresso, utilizando un enfoque basado en traducción que aprovecha la salida de herramientas de testing automático existentes. Encontramos que uno de los principales desafíos es la falta de propiedades únicas para identificar de manera inequívoca widgets específicos en la UI. Esto se agrava debido a que muchas herramientas utilizan el Servicio de Accesibilidad de Android, que puede devolver información inconsistente. Finalmente, esta tesis presenta una técnica para generar casos de test Espresso que son ampliamente más confiables que los generados utilizando el enfoque basado en traducción según una evaluación experimental en 1.035 apps Android. Esta técnica incluye algoritmos novedosos para generar View Matchers de Espresso que seleccionan de manera concisa widgets de Android, y para crear View Assertions de Espresso que sirven para tests de regresión. Utiliza además el framework Espresso directamente para obtener información e interactuar con la aplicación bajo test.
Testing is an integral part of the Android application development process: by running regularly testing their apps, developers can verify correct behavior and usability before making the applications available to the public. Espresso is a testing framework that allows developers to write concise, reliable, and readable Android user interface (UI) test cases and is the only UI testing framework with widespread adoption among application developers. Several automated test generation tools have been proposed to assist developers in the testing task. However, many of these tools only report errors and do not produce executable test cases, and of those that generate tests, only some support the Espresso format. This thesis focuses on improving the generation of Espresso test cases for Android applications. We begin by conducting an empirical study comparing the effectiveness of different evolutionary algorithms and show that such algorithms are not suitable for generating Android test cases, often being surpassed by purely random algorithms. Next, we analyze the challenges of generating Espresso test cases, using a translation-based approach that leverages the output of existing automated testing tools. We find that one of the main challenges is the lack of unique properties to unequivocally identify specific widgets in the UI. This is exacerbated by the fact that many tools use the Android Accessibility Service, which can return inconsistent information. Finally, this thesis presents a technique for generating Espresso test cases that are significantly more reliable than those generated using the translation-based approach, according to an experimental evaluation on 1,035 Android apps. This technique includes novel algorithms for generating Espresso View Matchers that concisely select Android widgets and for creating Espresso View Assertions used in regression tests. It also directly utilizes the Espresso framework to gather information and interact with the application under test.
Fil: Arcuschin Moreno, Iván. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina. - Materia
-
ANDROID
ESPRESSO
GENERACION DE CASOS DE TEST
ORACULOS DE TEST
ALGORITMOS BASADOS EN BUSQUEDA
ANDROID
ESPRESSO
TEST GENERATION
TEST ORACLES
SEARCH-BASED SOFTWARE TESTING - Nivel de accesibilidad
- acceso abierto
- Condiciones de uso
- https://creativecommons.org/licenses/by-nc-sa/2.5/ar
- Repositorio
- Institución
- Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
- OAI Identificador
- tesis:tesis_n7499_ArcuschinMoreno
Ver los metadatos del registro completo
id |
BDUBAFCEN_69ec149be2d523a441584eb2356f33f8 |
---|---|
oai_identifier_str |
tesis:tesis_n7499_ArcuschinMoreno |
network_acronym_str |
BDUBAFCEN |
repository_id_str |
1896 |
network_name_str |
Biblioteca Digital (UBA-FCEN) |
spelling |
Generación aleatoria de casos de test Espresso para AndroidRandom Espresso Test Case Generation for AndroidArcuschin Moreno, IvánANDROIDESPRESSOGENERACION DE CASOS DE TESTORACULOS DE TESTALGORITMOS BASADOS EN BUSQUEDAANDROIDESPRESSOTEST GENERATIONTEST ORACLESSEARCH-BASED SOFTWARE TESTINGEl testing es una parte integral del proceso de desarrollo de aplicaciones Android: al correr casos de test regularmente en sus aplicaciones, los desarrolladores pueden verificar el correcto comportamiento y la usabilidad antes de poner las aplicaciones a disposición del público. Espresso es un framework de testing que permite a los desarrolladores escribir casos de test de interfaz de usuario (UI) Android concisos, confiables y legibles, y es el único framework de testing de UI con una amplia adopción entre los desarrolladores de aplicaciones. Se han propuesto varias herramientas de generación automática de tests para ayudar a los desarrolladores en la tarea de testing. Sin embargo, muchas de estas herramientas no producen casos de test ejecutables, solo informan errores, y de las que generan tests, sólo algunas admiten el formato Espresso. Esta tesis se centra en mejorar la generación de casos de test Espresso para aplicaciones Android. Comenzamos realizando un estudio empírico que compara la efectividad de distintos algoritmos evolutivos y muestra que dichos algoritmos no son adecuados para generar casos de test Android, siendo muchas veces superados por algoritmos puramente aleatorios. A continuación, analizamos los desafíos de generar casos de test en formato Espresso, utilizando un enfoque basado en traducción que aprovecha la salida de herramientas de testing automático existentes. Encontramos que uno de los principales desafíos es la falta de propiedades únicas para identificar de manera inequívoca widgets específicos en la UI. Esto se agrava debido a que muchas herramientas utilizan el Servicio de Accesibilidad de Android, que puede devolver información inconsistente. Finalmente, esta tesis presenta una técnica para generar casos de test Espresso que son ampliamente más confiables que los generados utilizando el enfoque basado en traducción según una evaluación experimental en 1.035 apps Android. Esta técnica incluye algoritmos novedosos para generar View Matchers de Espresso que seleccionan de manera concisa widgets de Android, y para crear View Assertions de Espresso que sirven para tests de regresión. Utiliza además el framework Espresso directamente para obtener información e interactuar con la aplicación bajo test.Testing is an integral part of the Android application development process: by running regularly testing their apps, developers can verify correct behavior and usability before making the applications available to the public. Espresso is a testing framework that allows developers to write concise, reliable, and readable Android user interface (UI) test cases and is the only UI testing framework with widespread adoption among application developers. Several automated test generation tools have been proposed to assist developers in the testing task. However, many of these tools only report errors and do not produce executable test cases, and of those that generate tests, only some support the Espresso format. This thesis focuses on improving the generation of Espresso test cases for Android applications. We begin by conducting an empirical study comparing the effectiveness of different evolutionary algorithms and show that such algorithms are not suitable for generating Android test cases, often being surpassed by purely random algorithms. Next, we analyze the challenges of generating Espresso test cases, using a translation-based approach that leverages the output of existing automated testing tools. We find that one of the main challenges is the lack of unique properties to unequivocally identify specific widgets in the UI. This is exacerbated by the fact that many tools use the Android Accessibility Service, which can return inconsistent information. Finally, this thesis presents a technique for generating Espresso test cases that are significantly more reliable than those generated using the translation-based approach, according to an experimental evaluation on 1,035 Android apps. This technique includes novel algorithms for generating Espresso View Matchers that concisely select Android widgets and for creating Espresso View Assertions used in regression tests. It also directly utilizes the Espresso framework to gather information and interact with the application under test.Fil: Arcuschin Moreno, Iván. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.Universidad de Buenos Aires. Facultad de Ciencias Exactas y NaturalesGaleotti, Juan Pablo2024-04-12info:eu-repo/semantics/doctoralThesisinfo:eu-repo/semantics/publishedVersionhttp://purl.org/coar/resource_type/c_db06info:ar-repo/semantics/tesisDoctoralapplication/pdfhttps://hdl.handle.net/20.500.12110/tesis_n7499_ArcuschinMorenospainfo:eu-repo/semantics/openAccesshttps://creativecommons.org/licenses/by-nc-sa/2.5/arreponame:Biblioteca Digital (UBA-FCEN)instname:Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturalesinstacron:UBA-FCEN2025-09-29T13:41:26Ztesis:tesis_n7499_ArcuschinMorenoInstitucionalhttps://digital.bl.fcen.uba.ar/Universidad públicaNo correspondehttps://digital.bl.fcen.uba.ar/cgi-bin/oaiserver.cgiana@bl.fcen.uba.arArgentinaNo correspondeNo correspondeNo correspondeopendoar:18962025-09-29 13:41:27.859Biblioteca Digital (UBA-FCEN) - Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturalesfalse |
dc.title.none.fl_str_mv |
Generación aleatoria de casos de test Espresso para Android Random Espresso Test Case Generation for Android |
title |
Generación aleatoria de casos de test Espresso para Android |
spellingShingle |
Generación aleatoria de casos de test Espresso para Android Arcuschin Moreno, Iván ANDROID ESPRESSO GENERACION DE CASOS DE TEST ORACULOS DE TEST ALGORITMOS BASADOS EN BUSQUEDA ANDROID ESPRESSO TEST GENERATION TEST ORACLES SEARCH-BASED SOFTWARE TESTING |
title_short |
Generación aleatoria de casos de test Espresso para Android |
title_full |
Generación aleatoria de casos de test Espresso para Android |
title_fullStr |
Generación aleatoria de casos de test Espresso para Android |
title_full_unstemmed |
Generación aleatoria de casos de test Espresso para Android |
title_sort |
Generación aleatoria de casos de test Espresso para Android |
dc.creator.none.fl_str_mv |
Arcuschin Moreno, Iván |
author |
Arcuschin Moreno, Iván |
author_facet |
Arcuschin Moreno, Iván |
author_role |
author |
dc.contributor.none.fl_str_mv |
Galeotti, Juan Pablo |
dc.subject.none.fl_str_mv |
ANDROID ESPRESSO GENERACION DE CASOS DE TEST ORACULOS DE TEST ALGORITMOS BASADOS EN BUSQUEDA ANDROID ESPRESSO TEST GENERATION TEST ORACLES SEARCH-BASED SOFTWARE TESTING |
topic |
ANDROID ESPRESSO GENERACION DE CASOS DE TEST ORACULOS DE TEST ALGORITMOS BASADOS EN BUSQUEDA ANDROID ESPRESSO TEST GENERATION TEST ORACLES SEARCH-BASED SOFTWARE TESTING |
dc.description.none.fl_txt_mv |
El testing es una parte integral del proceso de desarrollo de aplicaciones Android: al correr casos de test regularmente en sus aplicaciones, los desarrolladores pueden verificar el correcto comportamiento y la usabilidad antes de poner las aplicaciones a disposición del público. Espresso es un framework de testing que permite a los desarrolladores escribir casos de test de interfaz de usuario (UI) Android concisos, confiables y legibles, y es el único framework de testing de UI con una amplia adopción entre los desarrolladores de aplicaciones. Se han propuesto varias herramientas de generación automática de tests para ayudar a los desarrolladores en la tarea de testing. Sin embargo, muchas de estas herramientas no producen casos de test ejecutables, solo informan errores, y de las que generan tests, sólo algunas admiten el formato Espresso. Esta tesis se centra en mejorar la generación de casos de test Espresso para aplicaciones Android. Comenzamos realizando un estudio empírico que compara la efectividad de distintos algoritmos evolutivos y muestra que dichos algoritmos no son adecuados para generar casos de test Android, siendo muchas veces superados por algoritmos puramente aleatorios. A continuación, analizamos los desafíos de generar casos de test en formato Espresso, utilizando un enfoque basado en traducción que aprovecha la salida de herramientas de testing automático existentes. Encontramos que uno de los principales desafíos es la falta de propiedades únicas para identificar de manera inequívoca widgets específicos en la UI. Esto se agrava debido a que muchas herramientas utilizan el Servicio de Accesibilidad de Android, que puede devolver información inconsistente. Finalmente, esta tesis presenta una técnica para generar casos de test Espresso que son ampliamente más confiables que los generados utilizando el enfoque basado en traducción según una evaluación experimental en 1.035 apps Android. Esta técnica incluye algoritmos novedosos para generar View Matchers de Espresso que seleccionan de manera concisa widgets de Android, y para crear View Assertions de Espresso que sirven para tests de regresión. Utiliza además el framework Espresso directamente para obtener información e interactuar con la aplicación bajo test. Testing is an integral part of the Android application development process: by running regularly testing their apps, developers can verify correct behavior and usability before making the applications available to the public. Espresso is a testing framework that allows developers to write concise, reliable, and readable Android user interface (UI) test cases and is the only UI testing framework with widespread adoption among application developers. Several automated test generation tools have been proposed to assist developers in the testing task. However, many of these tools only report errors and do not produce executable test cases, and of those that generate tests, only some support the Espresso format. This thesis focuses on improving the generation of Espresso test cases for Android applications. We begin by conducting an empirical study comparing the effectiveness of different evolutionary algorithms and show that such algorithms are not suitable for generating Android test cases, often being surpassed by purely random algorithms. Next, we analyze the challenges of generating Espresso test cases, using a translation-based approach that leverages the output of existing automated testing tools. We find that one of the main challenges is the lack of unique properties to unequivocally identify specific widgets in the UI. This is exacerbated by the fact that many tools use the Android Accessibility Service, which can return inconsistent information. Finally, this thesis presents a technique for generating Espresso test cases that are significantly more reliable than those generated using the translation-based approach, according to an experimental evaluation on 1,035 Android apps. This technique includes novel algorithms for generating Espresso View Matchers that concisely select Android widgets and for creating Espresso View Assertions used in regression tests. It also directly utilizes the Espresso framework to gather information and interact with the application under test. Fil: Arcuschin Moreno, Iván. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina. |
description |
El testing es una parte integral del proceso de desarrollo de aplicaciones Android: al correr casos de test regularmente en sus aplicaciones, los desarrolladores pueden verificar el correcto comportamiento y la usabilidad antes de poner las aplicaciones a disposición del público. Espresso es un framework de testing que permite a los desarrolladores escribir casos de test de interfaz de usuario (UI) Android concisos, confiables y legibles, y es el único framework de testing de UI con una amplia adopción entre los desarrolladores de aplicaciones. Se han propuesto varias herramientas de generación automática de tests para ayudar a los desarrolladores en la tarea de testing. Sin embargo, muchas de estas herramientas no producen casos de test ejecutables, solo informan errores, y de las que generan tests, sólo algunas admiten el formato Espresso. Esta tesis se centra en mejorar la generación de casos de test Espresso para aplicaciones Android. Comenzamos realizando un estudio empírico que compara la efectividad de distintos algoritmos evolutivos y muestra que dichos algoritmos no son adecuados para generar casos de test Android, siendo muchas veces superados por algoritmos puramente aleatorios. A continuación, analizamos los desafíos de generar casos de test en formato Espresso, utilizando un enfoque basado en traducción que aprovecha la salida de herramientas de testing automático existentes. Encontramos que uno de los principales desafíos es la falta de propiedades únicas para identificar de manera inequívoca widgets específicos en la UI. Esto se agrava debido a que muchas herramientas utilizan el Servicio de Accesibilidad de Android, que puede devolver información inconsistente. Finalmente, esta tesis presenta una técnica para generar casos de test Espresso que son ampliamente más confiables que los generados utilizando el enfoque basado en traducción según una evaluación experimental en 1.035 apps Android. Esta técnica incluye algoritmos novedosos para generar View Matchers de Espresso que seleccionan de manera concisa widgets de Android, y para crear View Assertions de Espresso que sirven para tests de regresión. Utiliza además el framework Espresso directamente para obtener información e interactuar con la aplicación bajo test. |
publishDate |
2024 |
dc.date.none.fl_str_mv |
2024-04-12 |
dc.type.none.fl_str_mv |
info:eu-repo/semantics/doctoralThesis info:eu-repo/semantics/publishedVersion http://purl.org/coar/resource_type/c_db06 info:ar-repo/semantics/tesisDoctoral |
format |
doctoralThesis |
status_str |
publishedVersion |
dc.identifier.none.fl_str_mv |
https://hdl.handle.net/20.500.12110/tesis_n7499_ArcuschinMoreno |
url |
https://hdl.handle.net/20.500.12110/tesis_n7499_ArcuschinMoreno |
dc.language.none.fl_str_mv |
spa |
language |
spa |
dc.rights.none.fl_str_mv |
info:eu-repo/semantics/openAccess https://creativecommons.org/licenses/by-nc-sa/2.5/ar |
eu_rights_str_mv |
openAccess |
rights_invalid_str_mv |
https://creativecommons.org/licenses/by-nc-sa/2.5/ar |
dc.format.none.fl_str_mv |
application/pdf |
dc.publisher.none.fl_str_mv |
Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales |
publisher.none.fl_str_mv |
Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales |
dc.source.none.fl_str_mv |
reponame:Biblioteca Digital (UBA-FCEN) instname:Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales instacron:UBA-FCEN |
reponame_str |
Biblioteca Digital (UBA-FCEN) |
collection |
Biblioteca Digital (UBA-FCEN) |
instname_str |
Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales |
instacron_str |
UBA-FCEN |
institution |
UBA-FCEN |
repository.name.fl_str_mv |
Biblioteca Digital (UBA-FCEN) - Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales |
repository.mail.fl_str_mv |
ana@bl.fcen.uba.ar |
_version_ |
1844618706770984960 |
score |
13.070432 |