Uma infraestrutura assistida por robô para detecção de perda de dados em aplicativos Android
Autor(a) principal: | |
---|---|
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 |