Uma infraestrutura assistida por robô para detecção de perda de dados em aplicativos Android

Detalhes bibliográficos
Autor(a) principal: FREITAS, Davi Simões
Data de Publicação: 2022
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Institucional da UFPE
dARK ID: ark:/64986/0013000011pd4
Texto Completo: https://repositorio.ufpe.br/handle/123456789/46787
Resumo: Quando uma aplicação Android é interrompida por uma chamada ou quando a orientação do dispositivo é alterada (de retrato para paisagem ou vice-versa), o sistema operacional pode precisar destruir e recriar a atividade. Idealmente os dados e o estado da aplicação deveriam ser salvos (antes da destruição) e restaurados (após a recriação) para evitar perda de dados. Infelizmente, o sistema operacional Android não gerencia estes cenários nativamente e os desenvolvedores de aplicativos precisam explicitamente salvar e restaurar os dados da aplicação. Caso contrário, os usuários podem observar falhas de perda de dados (i.e., informações que estavam presentes antes da interrupção são perdidas após a recriação da atividade). Um trabalho recente (RIGANELLI et al., 2020) propôs uma abordagem automatizada para a detecção de perda de dados em aplicativos Android: casos de teste são gerados para explorar a interface do aplicativo e, durante a exploração, a aplicação é interrompida a partir do acionamento, via software, de uma rotação na tela. Capturas de tela e os dados do aplicativo antes e depois da rotação são comparados para verificar se dados foram perdidos. Tal proposta, entretanto, é i) pouco realista e ii) invasiva. Pouco realista porque a alteração na orientação da tela é acionada via software –— e não pelos sensores como aconteceria em um cenário real; e invasiva porque os comandos são enviados através de comunicação com o dispositivo via cabo USB ou dispositivo simulado. Este trabalho propõe a utilização de um braço robótico artesanal para proporcionar um ambiente de testes mais realista: os eventos de destruição e recriação das atividades são acionados pela rotação física do smartphone. A infraestrutura proposta também permite o envio de comandos sem a necessidade de conexão física com o dispositivo via cabo USB, um passo importante na direção de uma solução realista e não-invasiva. Para avaliar a viabilidade de utilização da infraestrutura proposta, uma avaliação empírica foi realizada considerando 77 aplicativos Android e 341 falhas de perda de dados foram identificadas. Todas as falhas identificadas foram reportadas aos desenvolvedores e, das 201 falhas que já foram analisadas, 180 (89,55%) foram confirmadas pelos desenvolvedores.
id UFPE_944b0021ba2bf01ad558b792250f0a5f
oai_identifier_str oai:repositorio.ufpe.br:123456789/46787
network_acronym_str UFPE
network_name_str Repositório Institucional da UFPE
repository_id_str 2221
spelling FREITAS, Davi Simõeshttp://lattes.cnpq.br/2745492621875141http://lattes.cnpq.br/0311224988123909http://lattes.cnpq.br/0005349558315095MIRANDA, Breno Alexandro Ferreira deIYODA, Juliano Manabu2022-09-29T16:21:30Z2022-09-29T16:21:30Z2022-08-23FREITAS, Davi Simões. Uma infraestrutura assistida por robô para detecção de perda de dados em aplicativos Android. 2022. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Pernambuco, Recife, 2022.https://repositorio.ufpe.br/handle/123456789/46787ark:/64986/0013000011pd4Quando uma aplicação Android é interrompida por uma chamada ou quando a orientação do dispositivo é alterada (de retrato para paisagem ou vice-versa), o sistema operacional pode precisar destruir e recriar a atividade. Idealmente os dados e o estado da aplicação deveriam ser salvos (antes da destruição) e restaurados (após a recriação) para evitar perda de dados. Infelizmente, o sistema operacional Android não gerencia estes cenários nativamente e os desenvolvedores de aplicativos precisam explicitamente salvar e restaurar os dados da aplicação. Caso contrário, os usuários podem observar falhas de perda de dados (i.e., informações que estavam presentes antes da interrupção são perdidas após a recriação da atividade). Um trabalho recente (RIGANELLI et al., 2020) propôs uma abordagem automatizada para a detecção de perda de dados em aplicativos Android: casos de teste são gerados para explorar a interface do aplicativo e, durante a exploração, a aplicação é interrompida a partir do acionamento, via software, de uma rotação na tela. Capturas de tela e os dados do aplicativo antes e depois da rotação são comparados para verificar se dados foram perdidos. Tal proposta, entretanto, é i) pouco realista e ii) invasiva. Pouco realista porque a alteração na orientação da tela é acionada via software –— e não pelos sensores como aconteceria em um cenário real; e invasiva porque os comandos são enviados através de comunicação com o dispositivo via cabo USB ou dispositivo simulado. Este trabalho propõe a utilização de um braço robótico artesanal para proporcionar um ambiente de testes mais realista: os eventos de destruição e recriação das atividades são acionados pela rotação física do smartphone. A infraestrutura proposta também permite o envio de comandos sem a necessidade de conexão física com o dispositivo via cabo USB, um passo importante na direção de uma solução realista e não-invasiva. Para avaliar a viabilidade de utilização da infraestrutura proposta, uma avaliação empírica foi realizada considerando 77 aplicativos Android e 341 falhas de perda de dados foram identificadas. Todas as falhas identificadas foram reportadas aos desenvolvedores e, das 201 falhas que já foram analisadas, 180 (89,55%) foram confirmadas pelos desenvolvedores.When an Android application is interrupted by a call or changes the device’s orientation (from portrait to landscape or vice versa), the operating system may need to destroy and recreate the activity. Ideally, data and application state should be saved (before destruction) and restored (after recreated) to avoid data loss. Unfortunately, the Android operating sys- tem does not manage these scenarios natively, and application developers explicitly need to save and restore application data. Otherwise, users may experience data loss failures (i.e., information that was present before the outage is lost after the activity is recreated). Recent work (RIGANELLI et al., 2020) has proposed an automated approach to detecting data loss in Android applications: test cases are generated to explore the application’s interface, and during exploration, the application is interrupted by triggering, via software, a rotation on the screen. Screenshots and application data before and after rotation are compared to see if data is lost. Such a proposal, however, is i) unrealistic and ii) invasive. Unrealistic because the change in screen orientation is triggered via software — and not by sensors as would happen in a real scenario, and invasive because commands are sent via communication with the device via USB cable or simulated device. This work proposes the use of a handcrafted robotic arm to provide a more realistic testing environment: the events of destruction and recreation of activities are triggered by the physical rotation of the smartphone. The proposed infrastructure also allows sending commands without the need to physically connect the device via a USB cable, an essential step towards a realistic and non-invasive solution. To assess the feasibility of using the proposed infrastructure, an empirical evaluation was performed considering 77 Android applications, and 341 data loss failures were identified. All identified failures were reported to the developers, and of the 201 bugs that have already been analyzed, 180 (89,55%) have been confirmed by the developers.porUniversidade Federal de PernambucoPrograma de Pos Graduacao em Ciencia da ComputacaoUFPEBrasilhttp://creativecommons.org/licenses/by-nc-nd/3.0/br/info:eu-repo/semantics/openAccessEngenharia de softwareTeste de softwareRobóticaUma infraestrutura assistida por robô para detecção de perda de dados em aplicativos Androidinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesismestradoreponame:Repositório Institucional da UFPEinstname:Universidade Federal de Pernambuco (UFPE)instacron:UFPETEXTDISSERTAÇÃO Davi Simões Freitas.pdf.txtDISSERTAÇÃO Davi Simões Freitas.pdf.txtExtracted texttext/plain155108https://repositorio.ufpe.br/bitstream/123456789/46787/4/DISSERTA%c3%87%c3%83O%20Davi%20Sim%c3%b5es%20Freitas.pdf.txt99fd893e7efb946dfa597369aa5afe46MD54THUMBNAILDISSERTAÇÃO Davi Simões Freitas.pdf.jpgDISSERTAÇÃO Davi Simões Freitas.pdf.jpgGenerated Thumbnailimage/jpeg1202https://repositorio.ufpe.br/bitstream/123456789/46787/5/DISSERTA%c3%87%c3%83O%20Davi%20Sim%c3%b5es%20Freitas.pdf.jpgf22c90277a8de9f2818bf82c36642656MD55CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8811https://repositorio.ufpe.br/bitstream/123456789/46787/2/license_rdfe39d27027a6cc9cb039ad269a5db8e34MD52LICENSElicense.txtlicense.txttext/plain; charset=utf-82362https://repositorio.ufpe.br/bitstream/123456789/46787/3/license.txt5e89a1613ddc8510c6576f4b23a78973MD53ORIGINALDISSERTAÇÃO Davi Simões Freitas.pdfDISSERTAÇÃO Davi Simões Freitas.pdfapplication/pdf10371696https://repositorio.ufpe.br/bitstream/123456789/46787/1/DISSERTA%c3%87%c3%83O%20Davi%20Sim%c3%b5es%20Freitas.pdf7d8efff08ca5a5972b0e2311eb4a06baMD51123456789/467872022-09-30 03:04:08.106oai:repositorio.ufpe.br:123456789/46787VGVybW8gZGUgRGVww7NzaXRvIExlZ2FsIGUgQXV0b3JpemHDp8OjbyBwYXJhIFB1YmxpY2l6YcOnw6NvIGRlIERvY3VtZW50b3Mgbm8gUmVwb3NpdMOzcmlvIERpZ2l0YWwgZGEgVUZQRQoKCkRlY2xhcm8gZXN0YXIgY2llbnRlIGRlIHF1ZSBlc3RlIFRlcm1vIGRlIERlcMOzc2l0byBMZWdhbCBlIEF1dG9yaXphw6fDo28gdGVtIG8gb2JqZXRpdm8gZGUgZGl2dWxnYcOnw6NvIGRvcyBkb2N1bWVudG9zIGRlcG9zaXRhZG9zIG5vIFJlcG9zaXTDs3JpbyBEaWdpdGFsIGRhIFVGUEUgZSBkZWNsYXJvIHF1ZToKCkkgLSBvcyBkYWRvcyBwcmVlbmNoaWRvcyBubyBmb3JtdWzDoXJpbyBkZSBkZXDDs3NpdG8gc8OjbyB2ZXJkYWRlaXJvcyBlIGF1dMOqbnRpY29zOwoKSUkgLSAgbyBjb250ZcO6ZG8gZGlzcG9uaWJpbGl6YWRvIMOpIGRlIHJlc3BvbnNhYmlsaWRhZGUgZGUgc3VhIGF1dG9yaWE7CgpJSUkgLSBvIGNvbnRlw7pkbyDDqSBvcmlnaW5hbCwgZSBzZSBvIHRyYWJhbGhvIGUvb3UgcGFsYXZyYXMgZGUgb3V0cmFzIHBlc3NvYXMgZm9yYW0gdXRpbGl6YWRvcywgZXN0YXMgZm9yYW0gZGV2aWRhbWVudGUgcmVjb25oZWNpZGFzOwoKSVYgLSBxdWFuZG8gdHJhdGFyLXNlIGRlIG9icmEgY29sZXRpdmEgKG1haXMgZGUgdW0gYXV0b3IpOiB0b2RvcyBvcyBhdXRvcmVzIGVzdMOjbyBjaWVudGVzIGRvIGRlcMOzc2l0byBlIGRlIGFjb3JkbyBjb20gZXN0ZSB0ZXJtbzsKClYgLSBxdWFuZG8gdHJhdGFyLXNlIGRlIFRyYWJhbGhvIGRlIENvbmNsdXPDo28gZGUgQ3Vyc28sIERpc3NlcnRhw6fDo28gb3UgVGVzZTogbyBhcnF1aXZvIGRlcG9zaXRhZG8gY29ycmVzcG9uZGUgw6AgdmVyc8OjbyBmaW5hbCBkbyB0cmFiYWxobzsKClZJIC0gcXVhbmRvIHRyYXRhci1zZSBkZSBUcmFiYWxobyBkZSBDb25jbHVzw6NvIGRlIEN1cnNvLCBEaXNzZXJ0YcOnw6NvIG91IFRlc2U6IGVzdG91IGNpZW50ZSBkZSBxdWUgYSBhbHRlcmHDp8OjbyBkYSBtb2RhbGlkYWRlIGRlIGFjZXNzbyBhbyBkb2N1bWVudG8gYXDDs3MgbyBkZXDDs3NpdG8gZSBhbnRlcyBkZSBmaW5kYXIgbyBwZXLDrW9kbyBkZSBlbWJhcmdvLCBxdWFuZG8gZm9yIGVzY29saGlkbyBhY2Vzc28gcmVzdHJpdG8sIHNlcsOhIHBlcm1pdGlkYSBtZWRpYW50ZSBzb2xpY2l0YcOnw6NvIGRvIChhKSBhdXRvciAoYSkgYW8gU2lzdGVtYSBJbnRlZ3JhZG8gZGUgQmlibGlvdGVjYXMgZGEgVUZQRSAoU0lCL1VGUEUpLgoKIApQYXJhIHRyYWJhbGhvcyBlbSBBY2Vzc28gQWJlcnRvOgoKTmEgcXVhbGlkYWRlIGRlIHRpdHVsYXIgZG9zIGRpcmVpdG9zIGF1dG9yYWlzIGRlIGF1dG9yIHF1ZSByZWNhZW0gc29icmUgZXN0ZSBkb2N1bWVudG8sIGZ1bmRhbWVudGFkbyBuYSBMZWkgZGUgRGlyZWl0byBBdXRvcmFsIG5vIDkuNjEwLCBkZSAxOSBkZSBmZXZlcmVpcm8gZGUgMTk5OCwgYXJ0LiAyOSwgaW5jaXNvIElJSSwgYXV0b3Jpem8gYSBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkZSBQZXJuYW1idWNvIGEgZGlzcG9uaWJpbGl6YXIgZ3JhdHVpdGFtZW50ZSwgc2VtIHJlc3NhcmNpbWVudG8gZG9zIGRpcmVpdG9zIGF1dG9yYWlzLCBwYXJhIGZpbnMgZGUgbGVpdHVyYSwgaW1wcmVzc8OjbyBlL291IGRvd25sb2FkIChhcXVpc2nDp8OjbykgYXRyYXbDqXMgZG8gc2l0ZSBkbyBSZXBvc2l0w7NyaW8gRGlnaXRhbCBkYSBVRlBFIG5vIGVuZGVyZcOnbyBodHRwOi8vd3d3LnJlcG9zaXRvcmlvLnVmcGUuYnIsIGEgcGFydGlyIGRhIGRhdGEgZGUgZGVww7NzaXRvLgoKIApQYXJhIHRyYWJhbGhvcyBlbSBBY2Vzc28gUmVzdHJpdG86CgpOYSBxdWFsaWRhZGUgZGUgdGl0dWxhciBkb3MgZGlyZWl0b3MgYXV0b3JhaXMgZGUgYXV0b3IgcXVlIHJlY2FlbSBzb2JyZSBlc3RlIGRvY3VtZW50bywgZnVuZGFtZW50YWRvIG5hIExlaSBkZSBEaXJlaXRvIEF1dG9yYWwgbm8gOS42MTAgZGUgMTkgZGUgZmV2ZXJlaXJvIGRlIDE5OTgsIGFydC4gMjksIGluY2lzbyBJSUksIGF1dG9yaXpvIGEgVW5pdmVyc2lkYWRlIEZlZGVyYWwgZGUgUGVybmFtYnVjbyBhIGRpc3BvbmliaWxpemFyIGdyYXR1aXRhbWVudGUsIHNlbSByZXNzYXJjaW1lbnRvIGRvcyBkaXJlaXRvcyBhdXRvcmFpcywgcGFyYSBmaW5zIGRlIGxlaXR1cmEsIGltcHJlc3PDo28gZS9vdSBkb3dubG9hZCAoYXF1aXNpw6fDo28pIGF0cmF2w6lzIGRvIHNpdGUgZG8gUmVwb3NpdMOzcmlvIERpZ2l0YWwgZGEgVUZQRSBubyBlbmRlcmXDp28gaHR0cDovL3d3dy5yZXBvc2l0b3Jpby51ZnBlLmJyLCBxdWFuZG8gZmluZGFyIG8gcGVyw61vZG8gZGUgZW1iYXJnbyBjb25kaXplbnRlIGFvIHRpcG8gZGUgZG9jdW1lbnRvLCBjb25mb3JtZSBpbmRpY2FkbyBubyBjYW1wbyBEYXRhIGRlIEVtYmFyZ28uCg==Repositório InstitucionalPUBhttps://repositorio.ufpe.br/oai/requestattena@ufpe.bropendoar:22212022-09-30T06:04:08Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)false
dc.title.pt_BR.fl_str_mv Uma infraestrutura assistida por robô para detecção de perda de dados em aplicativos Android
title Uma infraestrutura assistida por robô para detecção de perda de dados em aplicativos Android
spellingShingle Uma infraestrutura assistida por robô para detecção de perda de dados em aplicativos Android
FREITAS, Davi Simões
Engenharia de software
Teste de software
Robótica
title_short Uma infraestrutura assistida por robô para detecção de perda de dados em aplicativos Android
title_full Uma infraestrutura assistida por robô para detecção de perda de dados em aplicativos Android
title_fullStr Uma infraestrutura assistida por robô para detecção de perda de dados em aplicativos Android
title_full_unstemmed Uma infraestrutura assistida por robô para detecção de perda de dados em aplicativos Android
title_sort Uma infraestrutura assistida por robô para detecção de perda de dados em aplicativos Android
author FREITAS, Davi Simões
author_facet FREITAS, Davi Simões
author_role author
dc.contributor.authorLattes.pt_BR.fl_str_mv http://lattes.cnpq.br/2745492621875141
dc.contributor.advisorLattes.pt_BR.fl_str_mv http://lattes.cnpq.br/0311224988123909
dc.contributor.advisor-coLattes.pt_BR.fl_str_mv http://lattes.cnpq.br/0005349558315095
dc.contributor.author.fl_str_mv FREITAS, Davi Simões
dc.contributor.advisor1.fl_str_mv MIRANDA, Breno Alexandro Ferreira de
dc.contributor.advisor-co1.fl_str_mv IYODA, Juliano Manabu
contributor_str_mv MIRANDA, Breno Alexandro Ferreira de
IYODA, Juliano Manabu
dc.subject.por.fl_str_mv Engenharia de software
Teste de software
Robótica
topic Engenharia de software
Teste de software
Robótica
description Quando uma aplicação Android é interrompida por uma chamada ou quando a orientação do dispositivo é alterada (de retrato para paisagem ou vice-versa), o sistema operacional pode precisar destruir e recriar a atividade. Idealmente os dados e o estado da aplicação deveriam ser salvos (antes da destruição) e restaurados (após a recriação) para evitar perda de dados. Infelizmente, o sistema operacional Android não gerencia estes cenários nativamente e os desenvolvedores de aplicativos precisam explicitamente salvar e restaurar os dados da aplicação. Caso contrário, os usuários podem observar falhas de perda de dados (i.e., informações que estavam presentes antes da interrupção são perdidas após a recriação da atividade). Um trabalho recente (RIGANELLI et al., 2020) propôs uma abordagem automatizada para a detecção de perda de dados em aplicativos Android: casos de teste são gerados para explorar a interface do aplicativo e, durante a exploração, a aplicação é interrompida a partir do acionamento, via software, de uma rotação na tela. Capturas de tela e os dados do aplicativo antes e depois da rotação são comparados para verificar se dados foram perdidos. Tal proposta, entretanto, é i) pouco realista e ii) invasiva. Pouco realista porque a alteração na orientação da tela é acionada via software –— e não pelos sensores como aconteceria em um cenário real; e invasiva porque os comandos são enviados através de comunicação com o dispositivo via cabo USB ou dispositivo simulado. Este trabalho propõe a utilização de um braço robótico artesanal para proporcionar um ambiente de testes mais realista: os eventos de destruição e recriação das atividades são acionados pela rotação física do smartphone. A infraestrutura proposta também permite o envio de comandos sem a necessidade de conexão física com o dispositivo via cabo USB, um passo importante na direção de uma solução realista e não-invasiva. Para avaliar a viabilidade de utilização da infraestrutura proposta, uma avaliação empírica foi realizada considerando 77 aplicativos Android e 341 falhas de perda de dados foram identificadas. Todas as falhas identificadas foram reportadas aos desenvolvedores e, das 201 falhas que já foram analisadas, 180 (89,55%) foram confirmadas pelos desenvolvedores.
publishDate 2022
dc.date.accessioned.fl_str_mv 2022-09-29T16:21:30Z
dc.date.available.fl_str_mv 2022-09-29T16:21:30Z
dc.date.issued.fl_str_mv 2022-08-23
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.citation.fl_str_mv FREITAS, Davi Simões. Uma infraestrutura assistida por robô para detecção de perda de dados em aplicativos Android. 2022. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Pernambuco, Recife, 2022.
dc.identifier.uri.fl_str_mv https://repositorio.ufpe.br/handle/123456789/46787
dc.identifier.dark.fl_str_mv ark:/64986/0013000011pd4
identifier_str_mv FREITAS, Davi Simões. Uma infraestrutura assistida por robô para detecção de perda de dados em aplicativos Android. 2022. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Pernambuco, Recife, 2022.
ark:/64986/0013000011pd4
url https://repositorio.ufpe.br/handle/123456789/46787
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv http://creativecommons.org/licenses/by-nc-nd/3.0/br/
info:eu-repo/semantics/openAccess
rights_invalid_str_mv http://creativecommons.org/licenses/by-nc-nd/3.0/br/
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv Universidade Federal de Pernambuco
dc.publisher.program.fl_str_mv Programa de Pos Graduacao em Ciencia da Computacao
dc.publisher.initials.fl_str_mv UFPE
dc.publisher.country.fl_str_mv Brasil
publisher.none.fl_str_mv Universidade Federal de Pernambuco
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFPE
instname:Universidade Federal de Pernambuco (UFPE)
instacron:UFPE
instname_str Universidade Federal de Pernambuco (UFPE)
instacron_str UFPE
institution UFPE
reponame_str Repositório Institucional da UFPE
collection Repositório Institucional da UFPE
bitstream.url.fl_str_mv https://repositorio.ufpe.br/bitstream/123456789/46787/4/DISSERTA%c3%87%c3%83O%20Davi%20Sim%c3%b5es%20Freitas.pdf.txt
https://repositorio.ufpe.br/bitstream/123456789/46787/5/DISSERTA%c3%87%c3%83O%20Davi%20Sim%c3%b5es%20Freitas.pdf.jpg
https://repositorio.ufpe.br/bitstream/123456789/46787/2/license_rdf
https://repositorio.ufpe.br/bitstream/123456789/46787/3/license.txt
https://repositorio.ufpe.br/bitstream/123456789/46787/1/DISSERTA%c3%87%c3%83O%20Davi%20Sim%c3%b5es%20Freitas.pdf
bitstream.checksum.fl_str_mv 99fd893e7efb946dfa597369aa5afe46
f22c90277a8de9f2818bf82c36642656
e39d27027a6cc9cb039ad269a5db8e34
5e89a1613ddc8510c6576f4b23a78973
7d8efff08ca5a5972b0e2311eb4a06ba
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)
repository.mail.fl_str_mv attena@ufpe.br
_version_ 1815172974407319552