masterThesis
Aiding exploratory testing with pruned GUI models
Autor
REIS, Jacinto Filipe Silva
Institución
Resumen
Exploratory testing is a software testing approach that emphasizes the tester’s experience in the attempt to maximize the chances to find bugs and minimize the time effort applied on satisfying such a goal. It is naturally a GUI-oriented testing activity for GUI-based systems. However, inmost cases,exploratory testing strategies may not be accurate enough to reach changed code regions. To reduce this gap, in this work, we propose a way of aiding exploratory testing by providing a GUI model of the regions impacted by internal code changes (for example, as result of change requests to fix previous bugs as well as for software improvement). We create such a delimited GUI model by pruning an original GUI model, quickly built by static analysis, using a reachability relation between GUI elements (i.e., windows, buttons, text fields, etc.) and internal source code changes (classes and methods). To illustrate the idea we provide promising data from two experiments, one from the literature and another from our industrial partner. Teste exploratório é uma abordagem de teste de software que enfatiza a experiência do testador na tentativa de maximizar as chances de encontrarbugs e minimizar o esforço de tempo aplicado na satisfação desse objetivo. É naturalmente uma atividade de testes orientada à GUI aplicada em sistemas que dispõem de GUI. No entanto, na maioria dos casos, as estratégias de testes exploratórios podem não ser suficientemente precisas para alcançar as regiões de código alteradas. Para reduzir esta lacuna, neste trabalho nós propomos uma forma de auxiliar os testes exploratórios, fornecendo um modelo de GUI das regiões impactadas pelas mudanças internas de código (por exemplo, como resultado de solicitações de mudanças para corrigirbugs anteriores, bem como, para realização de melhorias do software). Criamos um modelo de GUI delimitado, podando um modelo de GUI original, construído rapidamente através de análise estática, usando uma relação de alcançabilidade entre elementos de GUI (janelas, botões, campos de textos) e alterações de código interno (classes e métodos). Para ilustrar a ideia, nós fornecemos dados promissores de dois experimentos, um da literatura e outro de nosso parceiro industrial.