在用例推荐的时候,只要你有做用例关联,就可以推荐出用需求相关的测试用例,无论是自动化测试用例还是手工测试用例。对于推荐的用例如何执行呢?需要分情况进行讨论。
5.4.1 手工用例的执行
通过关联用例,生成追溯关系数据,在需求提测试后,分析diff代码,查询调用链路,经过一系列推荐算法可以推荐出本次需求需要回归的测试用例集。此时测试用例集在精准测试平台上展示,我们需要与用例管理平台做交互,生成一个真正的测试计划。在用例管理平台上,通过测试计划,与需求,整个项目流程做互动。当然,如果公司的用例平台不是自己的,无法进行互动的话,也可以在精准测试平台上开发测试用例集管理,把控推荐用例的执行。
5.4.2 AppUI自动化用例
通过优化AppUI自动化测试框架,在用例的setUp和tearDown函数中,通过调用deeplink请求实现代码与自动化用例的关联。当然在用例推荐环节,也可以推荐出相关的AppUI自动化用例。推荐出来的自动化用例,希望自动执行,然后再分析出自动化用例执行的覆盖情况。此时就需要另外一个平台,可以执行AppUI自动化用例的,手机云测试平台。
因为自动化测试需要在手机上执行,还需要任务的调度和管理功能。如果你没有手机云测试平台,可以使用开源项目AtxServer2相关项目来开发:
1,AtxServer2手机集群管理: https://github.com/openatx/atxserver2
2,Android手机接入Agent: https://github.com/openatx/atxserver2-android-provider
3,iOS 手机接入Agent: https://github.com/openatx/atxserver2-ios-provider
加上平台开发相关框架或代码,开发自己的手机云测试平台。由于自动化用例可以自动关联代码,可以实时实现追溯关系的更新,覆盖率数据的采集,用例执行完成后,再执行一下覆盖率分析,就可能生成相应自动化测试用例集的覆盖率报告。
5.4.3 接口自动化测试
如果是全移动端项目的话,是不会分析出代码影响的接口的;如果你的精准测试是服务端的,通过推荐用例,也会推荐出接口自动化用例。此时可以借助于接口用例平台,执行推荐出来的接口自动化用例,同时也能生成接口自动化执行的覆盖率报告。随着大模型人工智能的发展,此处有个比较高级的用法,在此讨论一下:
1,通过需求diff的代码,调用链路分析,查询影响的类和函数;
2,通过修改的代码,影响的代码,反查影响到的接口,获取需求要测试的接口列表;
3,通过接口列表,查询接口文档,获取接口对应的参数信息,接口返回值示例等信息;
4,如果有早期的接口自动化用例,流量信息,需求文档等,可以通过大模型知识库存放这些信息,以便进行业务推理。
5,调用大模型对接口生成自动化测试用例,然后自动执行测试。生成的测试用例可以保存下来,以后还可以用,也可以一次性的。
6,分析生成的用例执行的覆盖率情况,分析生成效果。
5.4.5 总结展望
现在测试各个领域都在探索大模型助力测试,真实使用起来的能达到多少效果不清楚,不过大家也在积极尝试。主要集中在以下几个方面:
1,通过AI生成手工测试用例
通过大模型解析需求文档,结合原来的需求文档,业务逻辑数据等等,解析需求对应的功能点,生成相应的手工测试用例。从一些生成的效果来看,可以节省一定编写用例的时间,对简单功能的测试用例生成还是有效果的。如果需求涉及到早期的功能逻辑,AI是无法分析出来的。也就是需求的上下文理解不足,对需求文档的编写要求较高。
2,接口自动化用例的生成
接口自动化用例通过AI生成,投放产出比挺高的,至少单个接口各种参数场景,正向逆向用例生成的用例采纳率挺高。但是,如果接口参数过多,涉及到上下文业务场景,有一定的权限限制的情况下,生成的用例关联度就较低了。可以借助于多Agent, 丰富知识库等方式提高用例生成的采纳率,这方面还在探索中。
3,UI自动化用例生成
通过手工用例详细的操作步骤,调用AI可以生成指定框架下的测试用例脚本,如playwright框架下的TypeScript或是python脚本。也可以通过录制用例,调用大模型进行优化或是扩充用例。也有人通过产品的功能地图,通过大模型进行遍历和生成场景用例,但是依然没有解决UI自动化的痛点用例维护成本高。尝试了开源的一些项目,如browse-use(https://github.com/browser-use/browser-use),可以通过描述来自动进行测试,不过执行速度较慢,有待于优化。
4,其他的大模型应用
业界还有通过大模型,分析需求,代码,借助于调用链路,分析代码影响面。分析代码中可能出现的bug, 进而分析本次需求提测的质量,推荐测试用例,自动修复bug等等想法,也有人在做这方面的尝试。大模型的出现,让一切都有可能,也希望业界出现更多优秀的想法,项目,全面提高整个项目流程的效率。