Skip navigation
Por favor, use este identificador para citar o enlazar este ítem: https://repositorio.ufpe.br/handle/123456789/25354

Comparte esta pagina

Registro completo de metadatos
Campo DC Valor Lengua/Idioma
dc.contributor.advisorSAMPAIO, Augusto Cezar Alves-
dc.contributor.authorARRUDA, Filipe Marques Chaves de-
dc.date.accessioned2018-08-02T20:13:13Z-
dc.date.available2018-08-02T20:13:13Z-
dc.date.issued2017-03-31-
dc.identifier.urihttps://repositorio.ufpe.br/handle/123456789/25354-
dc.description.abstractA common scenario when automating tests begins with a test engineer writing test cases with no formal specification or software supervision. Then, there is a developer that tries to understand what an ambiguous test means in order to transform it into code. Finally, there is an experienced tester that is responsible to supervise the execution and to verify whether the failures are indeed bugs, or a mistake from the developer or test engineer, or just a matter of change in the requirements or user interface. To reduce these recurring problems in test automation, we propose a unified process, to write test cases using a controlled natural language to check consistency and dependencies automatically or search for similar test descriptions written in free natural language. The proposed process is applied to a reusable capture & replay strategy, so anyone can automate tests even without previous knowledge about coding, besides mitigating scalability/maintainability issues by reusing actions with granularity ranging from simple commands, such as open an application, to entire test cases or even test suites. The actions are represented by an abstract, framework-free notation. Besides, the implementation covers plugins, including voice recording and image processing; and a proactive traceability for elements in the user interface. The strategy was consolidated through its implementation in a tool, in the context of a partnership with Motorola Mobility. It has been adopted in practice for different test suites, achieving a reuse ratio up to 71% for test cases written with no standard whatsoever, yet presenting time gains similar to traditional C&R approaches when compared to coding. Furthermore, through standardization, it was possible to define a consistency notion and to capture an association graph (whose edges represent dependency and cancellation relations) among test actions. From these associations, it was possible to establish a mechanism to ensure that each test action is preceded by actions on which it depends to be granted to execute. An editor (Kaki) was implemented to mechanize both adherence to the CNL and the dependencies between tests. From the associations informed within the user interface, Kaki generates an Alloy model automatically and uses Alloy Analyzer to verify consistency, besides possibly suggesting the insertion of test actions to satisfy the dependencies, automatically.pt_BR
dc.description.sponsorshipCNPqpt_BR
dc.language.isoengpt_BR
dc.publisherUniversidade Federal de Pernambucopt_BR
dc.rightsopenAccesspt_BR
dc.rightsAttribution-NonCommercial-NoDerivs 3.0 Brazil*
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/3.0/br/*
dc.subjectEngenharia de softwarept_BR
dc.subjectLinguagem de programaçãopt_BR
dc.subjectAutomação de testespt_BR
dc.titleTest automation from natural language with reusable capture & replay and consistency analysispt_BR
dc.typemasterThesispt_BR
dc.contributor.advisor-coBARROS, Flávia de Almeida-
dc.contributor.authorLatteshttp://lattes.cnpq.br/4240670677976713pt_BR
dc.publisher.initialsUFPEpt_BR
dc.publisher.countryBrasilpt_BR
dc.degree.levelmestradopt_BR
dc.contributor.advisorLatteshttp://lattes.cnpq.br/3977760354511853pt_BR
dc.publisher.programPrograma de Pos Graduacao em Ciencia da Computacaopt_BR
dc.description.abstractxUm cenário comum na automação de testes inicia-se a partir da escrita dos casos de testes por um engenheiro de testes, sem alguma especificação formal ou supervisão por software. Então, um desenvolvedor tenta interpretar o que o teste potencialmente ambíguo significa antes de transformá-lo em código executável. Finalmente, um testador é responsável por verificar se as falhas são realmente bugs, ou erros cometidos pelo desenvolvedor, pelo engenheiro de teste ou apenas uma mudança nos requisitos ou na interface de usuário. Para reduzir estes problemas recorrentes na automação de testes, nós propomos um processo unificado de escrita de casos de testes usando linguagem natural controlada que permite a verificação automática de consistência e dependências na escrita de ações de teste, ou usando uma busca por descrições similares de ações quando escritas em linguagem natural livre. O processo proposto é aplicado em uma estratégia de capture & replay reusável, assim permitindo a automação por pessoas sem background em programação, além de mitigar problemas intrínsecos de escalabilidade e manutenabilidade através do reuso de ações de teste com granularidade que pode variar desde comandos simples, como abrir um aplicativo, um caso de teste inteiro, ou mesmo uma suite de testes. As ações são representadas através de uma notação abstrata e framework-agnóstica. Além disso, a implementação ainda abrange plugins que incluem captura de voz e processamento de imagem; e rastreabilidade proativa para os artefatos. A estratégia foi concretizada através de sua implementação em uma ferramenta (Zygon) e avaliada no contexto de uma parceria com a Motorola Mobility, tendo sido adotada na prática em diferentes suítes de testes usando a linguagem natural livre, atingindo um reuso de até 71% com ganho de tempo similar a abordagens de capture & replay quando comparadas à programação. Além disso, através da padronização da linguagem natural controlada, foi possível definir uma noção de consistência e capturar um grafo de associações (dependências e cancelamentos) entre ações de teste. A partir destas associações, foi possível estabelecer mecanismos para garantir que cada ação de um teste devesse ser precedida por ações das quais a mesma depende para ser executada. Um editor (Kaki) foi implementado para mecanizar tanto aderência à CNL, como a dependência entre ações de teste. A partir das associações informadas na interface gráfica, Kaki cria automaticamente um modelo Alloy e usa o Alloy Analyzer para fazer a verificação de consistência, além de possivelmente sugerir a inserção de ações de teste para satisfazer as relações de dependências, automaticamente.pt_BR
Aparece en las colecciones: Dissertações de Mestrado - Ciência da Computação

Ficheros en este ítem:
Fichero Descripción Tamaño Formato  
DISSERTAÇÃO Filipe Marques Chaves Arruda.pdf2,26 MBAdobe PDFVista previa
Visualizar/Abrir


Este ítem está protegido por copyright original



Este ítem está sujeto a una licencia Creative Commons Licencia Creative Commons Creative Commons