System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于移动软件自动化测试领域。涉及一种对于移动应用软件的自动化测试方法。具体涉及一种基于多探索策略的移动应用功能性质测试方法。
技术介绍
1、移动应用是一种基于图形用户界面的事件驱动程序,已深入到人们生活的各个方面,为日常生活提供了便捷的帮助。由于用户生活中对移动应用的依赖,其实用性也得到了业界的广泛重视,行业内的各大企业纷纷采取措施以保障应用程序的质量和可靠性。然而,受到测试预言等问题的限制,应用程序往往无法得到全面的测试。最近的研究表明,非崩溃类的功能错误在移动应用中的错误占比高达65.4%。因此,如何有效保障移动应用的功能正确性成为了一个关键问题。
2、行业内最常见的方式有通过手动测试来验证功能正确性,这通常包括编写ui测试脚本或直接与移动应用交互。测试人员通过将预期行为与实际行为进行比较,以识别潜在的不一致或功能错误。显然,手动测试的成本较高,覆盖面也很有限,通常只涵盖移动应用的主要功能路径,可能会遗漏关键功能错误。相比之下,自动化测试能够自动探索移动应用程序,效率较高且成本低,但由于缺乏明确的测试预言,大多数现有的自动化测试工具只能通过移动应用抛出的异常来检测崩溃错误,因此发现非崩溃的功能错误非常困难。虽然一些自动化测试工具通过启发式方法生成测试预言来检测一些非崩溃错误,但这些预言往往难以发现较为复杂的功能问题。
技术实现思路
1、为了克服现有移动应用自动化测试
存在的上述缺陷,本专利技术提出一种基于多探索策略的移动应用功能性质测试方法。该方法利
2、以达到更有效的完成移动应用功能性错误的检测。
3、实现本专利技术目的的具体技术方案是:
4、一种基于多探索策略的移动应用功能性质测试方法,包括以下步骤:
5、步骤1:分析被测移动应用功能特性和测试目标,使用软件功能性质描述语言定义被测移动应用的功能性质集合,每个功能性质包括前置条件p、交互场景i和后置条件q;
6、步骤2:计算功能性质集合的前置条件并集∪p,设置最大测试执行时长、最大执行事件个数,选择探索策略,若选择随机探索策略,则执行步骤3;若选择主路径引导策略,则根据前置条件p,定义一个用户事件序列作为主路径,继续执行步骤4;
7、步骤3:使用随机探索策略生成事件序列,执行性质检测,记录对应的测试结果和用户界面截图,直到达到最大测试执行时间,执行步骤5;
8、步骤4:使用主路径引导策略生成事件序列,执行性质检测,记录对应的测试结果和用户界面截图,直到达到最大测试执行时间,执行步骤5;
9、步骤5:基于测试结果和用户界面截图,自动生成被测移动应用的缺陷报告。
10、进一步,所述步骤3,具体包括如下步骤:
11、步骤a1:判断是否达到最大测试执行时间,若达到则结束测试,否则判断是否达到最大事件个数,如没有达到,获取当前被测移动应用状态,继续步骤a2;如果达到最大事件个数,则重启移动应用;
12、步骤a2:判断当前被测移动应用状态是否满足一个或多个前置条件p;若没有任何前置条件满足或者不进行性质检测,则继续执行步骤a3;否则,执行交互场景i中定义的事件序列,判断后置条件q是否满足,返回步骤a1;
13、步骤a3:使用外部用户界面交互工具分析当前界面状态获取可执行事件列表,从可以执行的事件列表中随机选择一项事件,并发送给被测移动应用执行,返回步骤a1。
14、进一步,所述步骤4,具体包括如下步骤:
15、步骤b1:将主路径中的每个事件ei发送到被测移动应用,得到主路径的状态序列s=[s0,s1,s2,……,sn],从而使被测移动应用到达满足前置条件p的状态sn;
16、步骤b2:判断是否达到最大测试执行时间,若达到则结束测试,否则按照s=[s0,s1,s2,……,sn]倒序探索移动应用程序;若s中的所有状态被探索完毕,则初始化被测移动应用;否则,按倒序关系取出一个未被探索的状态si,发送对应的前序事件序列[e1,e2,……,ei],使得被测移动应用到达主路径状态si,继续步骤b3;
17、步骤b3:以状态si作为探索被测移动应用的起始状态,判断当前已执行事件个数是否达到最大执行事件个数,如没有达到,获取当前被测移动应用状态,继续步骤b4;如果达到,则执行b6;
18、步骤b4:判断当前被测移动应用状态是否满足一个或多个前置条件p;若没有任何前置条件满足或者不进行性质检测,则继续执行步骤b5;否则,执行交互场景i中定义的事件序列,判断后置条件q是否满足,返回步骤b3;
19、步骤b5:使用外部用户界面交互工具分析当前界面状态获取可执行事件列表,从可以执行的事件列表中随机选择一项事件,并发送给被测移动应用执行,返回步骤b3;
20、步骤b6:判断当前状态能否转换为状态sn,若能,则发送对应的事件到被测移动应用,使得被测移动应用的状态满足前置条件;
21、步骤b7:检查当前状态是否满足前置条件,若满足则进行性质测试;
22、步骤b8:重启移动应用并返回步骤b2。
23、本专利技术的测试方法,有益效果在于:
24、本专利技术引入了一种基于多探索策略的移动应用功能性质的测试技术,用于验证移动应用程序的功能正确性。本专利技术可以有效且广泛的测试移动应用的功能性错误,提高移动应用的健壮性和可靠性。
25、为了更高效地探索并测试移动应用的功能性质,本专利技术设计了两种ui探索策略,随机探索和主路径引导探索策略。具体来说,随机探索策略在广阔的探索空间中随机探索应用程序。主路径引导探索策略的灵感来自手动测试的典型过程(测试人员通常遵循从应用程序入口到目标应用程序功能的主路径进行功能测试)。若使用该探索策略,用户可以在指定被测移动应用功能性质的过程中同时完成该性质对应的主路径的定义,从而可以有效地引导应用程序的探索过程,沿着主路径探索其它临近路径,以更有效地验证移动应用功能的正确性。
本文档来自技高网...【技术保护点】
1.一种基于多探索策略的移动应用功能性质测试方法,其特征在于,包括以下步骤:
【技术特征摘要】
1.一种基于多探索策略的移动应用功能性...
【专利技术属性】
技术研发人员:熊一衡,沈祥臣,苏亭,王珏,孙静翎,蒲戈光,
申请(专利权)人:华东师范大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。