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
Biblioteca Digital (UBA-FCEN)
Institución
Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
OAI Identificador
tesis:tesis_n7499_ArcuschinMoreno

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