Return to search

Test automation from natural language with reusable capture & replay and consistency analysis

Submitted by Pedro Barros (pedro.silvabarros@ufpe.br) on 2018-08-01T20:03:01Z
No. of bitstreams: 2
license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5)
DISSERTAÇÃO Filipe Marques Chaves Arruda.pdf: 2317425 bytes, checksum: 0739c60d4cc06fe57fcf2d3611f976cc (MD5) / Approved for entry into archive by Alice Araujo (alice.caraujo@ufpe.br) on 2018-08-02T20:13:13Z (GMT) No. of bitstreams: 2
license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5)
DISSERTAÇÃO Filipe Marques Chaves Arruda.pdf: 2317425 bytes, checksum: 0739c60d4cc06fe57fcf2d3611f976cc (MD5) / Made available in DSpace on 2018-08-02T20:13:13Z (GMT). No. of bitstreams: 2
license_rdf: 811 bytes, checksum: e39d27027a6cc9cb039ad269a5db8e34 (MD5)
DISSERTAÇÃO Filipe Marques Chaves Arruda.pdf: 2317425 bytes, checksum: 0739c60d4cc06fe57fcf2d3611f976cc (MD5)
Previous issue date: 2017-03-31 / CNPq / A 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. / Um 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.

Identiferoai:union.ndltd.org:IBICT/oai:repositorio.ufpe.br:123456789/25354
Date31 March 2017
CreatorsARRUDA, Filipe Marques Chaves de
Contributorshttp://lattes.cnpq.br/3977760354511853, SAMPAIO, Augusto Cezar Alves, BARROS, Flávia de Almeida
PublisherUniversidade Federal de Pernambuco, Programa de Pos Graduacao em Ciencia da Computacao, UFPE, Brasil
Source SetsIBICT Brazilian ETDs
LanguageEnglish
Detected LanguagePortuguese
Typeinfo:eu-repo/semantics/publishedVersion, info:eu-repo/semantics/masterThesis
Sourcereponame:Repositório Institucional da UFPE, instname:Universidade Federal de Pernambuco, instacron:UFPE
RightsAttribution-NonCommercial-NoDerivs 3.0 Brazil, http://creativecommons.org/licenses/by-nc-nd/3.0/br/, info:eu-repo/semantics/embargoedAccess

Page generated in 0.0023 seconds