Testing is the most direct and effective technique to ensure software quality. However, it is a burden for developers to understand the poorly-commented tests, which are common in industry environment projects. Mobile applications (app) are GUI-intensive and event-driven, so test scripts focusing on GUI interactions play a more important role in mobile app testing besides the test cases for the source code. Therefore, more attention should be paid to the user interactions and the corresponding user event responses. However, test scripts are loosely linked to apps under test (AUT) based on widget selectors, making it hard to map the operations to the functionality code of AUT. In such a situation, code understanding algorithms may lose efficacy if directly applied to mobile app test scripts. We present a novel approach, TestIntent, to infer the intent of mobile app test scripts. TestIntent combines the GUI image understanding and code understanding technologies. The test script is transferred into an operation sequence model. For each operation, TestIntent extracts the operated widget selector and link the selector to the UI layout structure, which stores the detailed information of the widgets, including coordinates, type, etc. With code understanding technologies, TestIntent can locate response methods in the source code. Afterwards, NLP algorithms are adopted to understand the code and generate descriptions. Also, TestIntent can locate widgets on the app GUI images. Then, TestIntent can understand the widget intent with an encoder-decoder model. With the combination of the results from GUI and code understanding, TestIntent generates the test intents in natural language format. We also conduct an empirical experiment, and the results prove the outstanding performance of TestIntent. A user study also declares that TestIntent can save developers' time to understand test scripts.
翻译:测试是保证软件质量的最直接和有效的技术。 然而, 测试脚本对于开发者来说是一个负担, 要理解低调测试, 这是行业环境项目中常见的。 移动应用程序( 应用程序) 是用户界面密集和事件驱动的, 因此测试脚本在移动应用程序测试中除了源代码的测试案例之外, 也扮演了更重要的角色。 因此, 应该更加关注用户的相互作用和相应的用户事件响应。 但是, 测试脚本会松散地连接到基于部件选择器的测试应用程序( AUT), 使得它很难映射操作到 AUT 的功能代码。 在这种情况下, 代码理解算法算法如果直接应用到移动应用程序测试脚本的脚本, 将会失去效力。 我们提出了一个新颖的方法, TestIntent, 来推断移动应用程序测试脚本的意图。 测试脚本结合了用户的图像理解和代码。 测试脚本将转换成一个操作序列, 也可以理解操作脚本的脚本选择器与UI布局结构结构,, 将详细的脚本存储器、 、 坐标、 测试脚本、 和代码的运行源的功能的运行工具的运行、 、 和代码可以理解。