Reusable Testing Actions on Test Case Automation for Mobile Devices - Freitas, William do Vale Cavalcante; Ferreira, Nikson Bernardes Fernandes; Freitas Junior, Hermino Barbosa de; Alves, Arthur Binda; Rafael, Gabriel Joseph Ramos; Melo, Hallyson Luiz de Morais; Oliveira Filho, Bonifácio Leite de; Carvalho, André (Anais do Simpósio Brasileiro de Qualidade de Software (SBQS); 2024: Anais do XXIII Simpósio Brasileiro de Qualidade de Software, 2024)
Performing software tests is a crucial component to ensure the matching between software applications and their specified requirements. In the mobile device’s context, most of the test cases are executed manually, part of the automation engineer’s role is to automate these tests using tools that simulate manual interaction on the device. Automated testing reduces long-term costs, improves reproducibility, and saves time in the developing cycle. A test case can be defined as a sequence of test steps where each step is a subset of commands written to evaluate the pre-established feature. Test case automation still faces many challenges, most directly related to the development process, involving factors, such as a steep automation learning curve and test case maintenance. In an industrial scenario, as new features are incorporated, the costs associated with the maintenance of automation code become increasingly significant, to such a degree that small changes can cause expensive refactoring. This research evaluates the impact of using Reusable Test Actions (RTAs) for mitigating test development problems like refactoring and legibility while adding layers of abstraction, simplifying the automation process, and encouraging pattern adherence. As one of the main contributions of this work, we analyzed three years of a repository’s historical data, revealing the effects of this approach on automation code writing in a real scenario. We noticed a positive influence in software engineering-related processes while also reducing code size and minimizing the penalties associated with code refactoring. We also pointed out possible drawbacks related to redundancy and overlap between the RTAs. These insights, together with the description needed to create RTAs, aim to demonstrate the main motivations, benefits, and disadvantages of this approach in real development environments.