基于随机性质的移动应用软件功能错误自动化检测技术
批准号:
62072178
项目类别:
面上项目
资助金额:
56.0 万元
负责人:
苏亭
依托单位:
学科分类:
软件理论、软件工程与服务
结题年份:
2024
批准年份:
2020
项目状态:
已结题
项目参与者:
苏亭
中文摘要
移动应用软件是一种基于图形界面操作的非传统软件,更新迭代快、用户基数大。功能错误是其最常见的一类软件错误,如特定功能突然失效、用户信息突然丢失、界面信息出错等。不少功能错误是在软件发布后才被发现,严重影响用户体验和忠实度,降低软件竞争力,重则对用户/软件公司造成不良后果。然而,目前仍然没有相关技术能自动化检测功能错误:(1)学界已有的测试技术局限于自动检测崩溃错误,无法察觉功能错误;(2)业界普遍以人工编写测试脚本验证功能正确。为此,本课题将通过如下三点研究内容,以Android软件为对象,提出一种基于随机性质的功能错误自动化检测理论、方法和技术:(1)研究功能错误的特征、表现形式和共性机理;(2)研究利用蜕变测试思想实现全自动功能错误检测;(3)设计一种轻量级功能测试规范语言,提高测试精准度和效率。本课题的研究对移动软件(以及其他图形化软件)的自动化功能错误检测具有重要的学术和应用价值。
英文摘要
Mobile apps are GUI-based event-driven software, which are fast-evolving and have huge number of users. Functional bugs are one of most common errors in mobile apps, e.g., unexpected functionality failures, lost user information, incorrect display information. Quite a number of functional bugs in mobile apps are only noticed post-deployment. They severely disrupt user experience and loyalty, negatively affect app success, and even cause severe loss for users and software companies. However, to the best of our knowledge, no existing automated testing techniques can fully-automatically detect functional bugs: (1) current automated testing techniques for mobile apps are limited to crash bugs; (2) manual testing is the most common practice in industry to validate functional correctness...Our research project aims to fill this gap by proposing an automated property-based functional testing technique for Android apps. In particular, we will investigate the following key research topics: (1) investigate the characteristics, manifestations and root causes of functional bugs in Android apps; (2) leverage the idea of metamorphic testing to realize an effective, automated functional testing technique for Android apps, and overcome the unique challenge due to lack of functional specifications; (3) design a lightweight domain-specific language for functional testing of Android apps, and thus improving testing precision and efficiency. The research results will benefit both academic and industrial communities, and shed light on automated functional testing for other GUI-based software.
移动应用软件交互方式多样、运行环境复杂,保障此类软件的功能正确和安全至关重要。然而,如何自动化地检测移动应用软件中的功能错误这一问题在学界和业界均鲜有研究,却是业界的普遍存在的痛点问题。在业界,检测移动应用软件功能错误面临技术难度大、检错效果差、人力成本高等关键难题。为此,本项目围绕上述研究问题展开了深入的研究,并随着研究的深入,涉及到了更多的研究内容。具体来说,研究内容包括:(1)研究了功能错误的特征、表现形式和共性机理;(2)研究了基于蜕变测试的全自动功能错误检测技术;(3)研究了基于性质测试理论的自动化功能错误检测技术;(4)设计了一种通用、轻量、灵活的功能性质描述语言,支持基于性质测试理论的自动化功能错误检测技术。..在研究成果上,本项目团队(1)对移动应用软件功能错误形成了系统性的认识和理解;(2)提出了基于蜕变测试的全自动功能错误检测技术,并将其应用在与系统配置变更相关的功能错误的自动化检测上;(3)提出了基于性质测试理论的功能错误自动化检测技术,并将之前提出的基于蜕变测试技术纳入到该理论体系中,形成了一个通用且实用的功能错误自动化检测框架,并设计了一种灵活的功能性质语言,用于描述应用功能(如系统配置变更功能、应用数据处理功能、用户隐私功能)性质。在项目实施期内,我们共发表了15篇高水平论文(其中12篇CCF-A类长文论文)、申请或授权了6项中国发明专利、获得了2项ACM SIGSOFT杰出论文奖、相关成果获得了2021年CCF技术发明一等奖。相关技术成果已经应用在华为、字节跳动、微信等企业的自动化测试工具中,获得企业相关科研经费超过330余万。
国内基金
海外基金