移动应用业务流程的验证方法及系统与流程

摘要: 本技术涉及软件自动化测试领域,尤其涉及一种移动应用业务流程的验证方法及系统。背景技术:1、对移动应用的业务流程进行功能回归验证时,相关技术通常将待验证流程中的每...
移动应用业务流程的验证方法及系统与流程

本技术涉及软件自动化测试领域,尤其涉及一种移动应用业务流程的验证方法及系统。

背景技术:

1、对移动应用的业务流程进行功能回归验证时,相关技术通常将待验证流程中的每一个操作步骤,绑定到页面中某一控件的标识上来定位操作目标。该标识为控件的资源标识、控件在屏幕上的坐标或控件承载的文案。完成操作后,相关技术依据页面上可见的内容是否出现预期的文案或图像,来判定该步骤是否通过。

2、这种做法成立的前提是:同一操作步骤在不同版本的应用中对应同一个稳定的控件标识,且一个步骤是否成功可以由前端页面的可见内容完全反映。

3、在多步骤、且步骤之间存在前置状态依赖、并由服务端参与业务判定的业务流程中,上述前提不再成立。其一,同一应用在不同构建、不同实验分流、不同语言与不同机型下,控件的资源标识、坐标与文案会发生变化。绑定到具体控件标识的步骤,在应用界面改版后无法再定位到原操作目标。其二,在该类业务流程中,一个步骤是否真正完成,其判据有一部分落在服务端的响应或服务端的数据状态上,而非前端页面的可见内容上。

4、由此引出的矛盾是:当应用前端已显示提交成功并完成页面跳转、而服务端实际因校验未通过拒绝了该次提交时,依据前端可见内容的判定会把这一步判为通过。该步在业务上实际失败,验证却报告通过。

5、最终,跨版本的验证脚本在界面改版后成批失配而需要逐版本重写;同时,服务端拒绝、前端却已跳转的步骤被持续误报为通过,使回归验证放过本应拦截的业务失败,验证结论与真实业务结果背离。

技术实现思路

1、本技术提供一种移动应用业务流程的验证方法及系统,以克服相关技术中验证用例因控件标识跨版本不稳定而成批失配、且服务端拒绝而前端已跳转的业务失败被误报为通过的问题。

2、根据本技术实施例的第一方面,提供一种移动应用业务流程的验证方法,所述方法包括:

3、获取待验证业务流程的意图序列,所述意图序列中的每一个意图关联有该意图对应的证据集,所述证据集包括界面证据与服务端契约证据;

4、针对当前待执行的意图,采集当前界面的控件树与界面截图,将所述控件树与所述界面截图输入页面语义对齐模型,得到与所述当前待执行的意图匹配的目标控件,所述目标控件的确定不依赖控件的资源标识与坐标;

5、在所述目标控件上执行所述当前待执行的意图对应的操作;

6、在执行所述操作的时间窗内,以所述当前待执行的意图为粒度,联合采集第一证据与第二证据,所述第一证据为所述当前界面在执行所述操作前后的状态变化,所述第二证据为所述操作所触发的服务端响应字段以及与所述操作关联的服务端数据状态字段;

7、将所述第一证据与所述当前待执行的意图的界面证据比对,得到界面满足结果,将所述第二证据与所述当前待执行的意图的服务端契约证据比对,得到契约满足结果;

8、当所述界面满足结果与所述契约满足结果均为满足时,判定所述当前待执行的意图通过;当所述界面满足结果与所述契约满足结果中存在不满足时,判定所述当前待执行的意图不通过,并依据所述界面满足结果与所述契约满足结果的组合,输出所述当前待执行的意图对应的契约错位类型。

9、在本技术的一种示例性实施例中,所述获取待验证业务流程的意图序列之后,还包括:将所述待验证业务流程表示为带前置条件的有向步骤图,所述有向步骤图中的每一个节点对应一个意图,所述节点标注有进入该节点所需的入口门控,所述入口门控为前序节点应达成的服务端数据状态;在采集当前界面的控件树与界面截图之前,校验所述当前待执行的意图对应节点的入口门控是否达成;当所述入口门控未达成时,依据所述有向步骤图确定缺失的前序节点,执行所述前序节点对应的意图,直至所述入口门控达成。

10、在本技术的一种示例性实施例中,所述得到与所述当前待执行的意图匹配的目标控件,包括:将所述控件树中的候选控件归一化为业务语义指纹,所述业务语义指纹包括所述候选控件的角色、可达性标签与值域;将所述当前待执行的意图与所述业务语义指纹比对,将所述业务语义指纹与所述意图匹配的候选控件作为所述目标控件。

11、在本技术的一种示例性实施例中,所述将所述候选控件归一化为业务语义指纹之后,还包括:在执行所述待验证业务流程之前,对所述当前界面建立语义索引,将所述意图与所述目标控件之间的对应关系缓存为意图控件指纹;在执行所述待验证业务流程时,将所述当前界面的控件与所述意图控件指纹进行匹配;当匹配成功时,将匹配到的控件作为所述目标控件;当匹配失败时,将所述控件树与所述界面截图输入所述页面语义对齐模型得到所述目标控件,并以所述目标控件更新所述意图控件指纹。

12、在本技术的一种示例性实施例中,所述输出所述当前待执行的意图对应的契约错位类型,包括:当所述界面满足结果为满足且所述契约满足结果为不满足时,将所述契约错位类型确定为前端表现通过且服务端拒绝;当所述界面满足结果为不满足且所述契约满足结果为满足时,将所述契约错位类型确定为服务端已处理且前端未反映;依据所述第一证据与所述第二证据中导致不满足的字段,截取使所述当前待执行的意图不通过的意图子序列以及所述字段,作为复现切片输出。

13、在本技术的一种示例性实施例中,所述方法还包括:当所述当前界面或所述服务端契约证据发生变更时,依据所述意图与所述业务语义指纹之间的对应关系,确定受所述变更影响的意图集合;对所述意图集合中匹配失败的意图,更新其对应的目标控件,保留所述意图集合之外的意图对应的目标控件不变。

14、根据本技术实施例的第二方面,提供一种移动应用业务流程的验证系统,所述系统包括:

15、意图获取模块,用于获取待验证业务流程的意图序列,所述意图序列中的每一个意图关联有该意图对应的证据集,所述证据集包括界面证据与服务端契约证据;

16、意图定位模块,用于针对当前待执行的意图,采集当前界面的控件树与界面截图,将所述控件树与所述界面截图输入页面语义对齐模型,得到与所述当前待执行的意图匹配的目标控件,所述目标控件的确定不依赖控件的资源标识与坐标;

17、执行模块,用于在所述目标控件上执行所述当前待执行的意图对应的操作;

18、证据采集模块,用于在执行所述操作的时间窗内,以所述当前待执行的意图为粒度,联合采集第一证据与第二证据,所述第一证据为所述当前界面在执行所述操作前后的状态变化,所述第二证据为所述操作所触发的服务端响应字段以及与所述操作关联的服务端数据状态字段;

19、判定模块,用于将所述第一证据与所述界面证据比对得到界面满足结果,将所述第二证据与所述服务端契约证据比对得到契约满足结果,在所述界面满足结果与所述契约满足结果均为满足时判定所述当前待执行的意图通过,在存在不满足时判定所述当前待执行的意图不通过,并依据所述界面满足结果与所述契约满足结果的组合,输出所述当前待执行的意图对应的契约错位类型。

20、在本技术的一种示例性实施例中,所述系统还包括门控模块;所述门控模块用于将所述待验证业务流程表示为带前置条件的有向步骤图,所述有向步骤图中的每一个节点对应一个意图,所述节点标注有进入该节点所需的入口门控,所述入口门控为前序节点应达成的服务端数据状态;所述门控模块还用于在所述意图定位模块采集当前界面的控件树与界面截图之前,校验所述当前待执行的意图对应节点的入口门控是否达成,并在所述入口门控未达成时,依据所述有向步骤图确定缺失的前序节点,触发所述执行模块执行所述前序节点对应的意图,直至所述入口门控达成。

21、在本技术的一种示例性实施例中,所述意图定位模块还用于:将所述控件树中的候选控件归一化为业务语义指纹,所述业务语义指纹包括所述候选控件的角色、可达性标签与值域;在执行所述待验证业务流程之前,将所述意图与所述目标控件之间的对应关系缓存为意图控件指纹;在执行所述待验证业务流程时,将所述当前界面的控件与所述意图控件指纹进行匹配,在匹配成功时将匹配到的控件作为所述目标控件,在匹配失败时将所述控件树与所述界面截图输入所述页面语义对齐模型得到所述目标控件,并以所述目标控件更新所述意图控件指纹。

22、在本技术的一种示例性实施例中,所述判定模块输出所述契约错位类型时,用于:在所述界面满足结果为满足且所述契约满足结果为不满足时,将所述契约错位类型确定为前端表现通过且服务端拒绝;在所述界面满足结果为不满足且所述契约满足结果为满足时,将所述契约错位类型确定为服务端已处理且前端未反映;依据所述第一证据与所述第二证据中导致不满足的字段,截取使所述当前待执行的意图不通过的意图子序列以及所述字段,作为复现切片输出。

23、本技术实施例提供的移动应用业务流程的验证方法与系统,以业务语义意图的形式声明待验证流程,并通过页面语义对齐模型由控件树与界面截图定位目标控件,使目标控件的定位不依赖控件的资源标识与坐标。当被测移动应用界面在不同构建、不同分流、不同语言或不同机型下发生控件标识、坐标或文案变化时,意图序列本身不随之变化,定位仍能落到与意图语义对应的控件上,从而无需逐版本重写验证脚本。本技术实施例在执行每一意图对应操作的时间窗内,以该意图为粒度联合采集界面状态变化与该操作所触发的服务端响应及数据状态字段,并要求界面满足结果与契约满足结果同时满足才判定该意图通过。由此,前端已显示成功并跳转、而服务端实际拒绝的业务失败被判定为不通过,并被归类为前端表现通过且服务端拒绝的契约错位类型。最终,回归验证在界面改版后无需逐版本重写即可复用同一意图序列,服务端拒绝而前端已跳转的业务失败不再被放过,而是被拦截、归因并以复现切片定位,使移动应用业务流程的验证结论与该流程的真实业务结果一致。

24、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。