测试脚本生成方法、装置、电子设备及可读存储介质与流程

摘要: 本技术涉及软件测试,具体涉及一种测试脚本生成方法、装置、电子设备及可读存储介质。背景技术:1、随着车辆座舱的功能复杂度持续提升,其用户界面所承载的交互场景日益增...
测试脚本生成方法、装置、电子设备及可读存储介质与流程

本技术涉及软件测试,具体涉及一种测试脚本生成方法、装置、电子设备及可读存储介质。

背景技术:

1、随着车辆座舱的功能复杂度持续提升,其用户界面所承载的交互场景日益增多,这对软件自动化测试的覆盖率和执行效率提出了更高要求。

2、现有技术中,测试脚本生成方式通常是利用大语言模型理解测试用例,并自动推理出可执行的测试脚本,但由于大语言模型存在语义漂移、易产生幻觉且注意力发散等因素影响,容易导致由模型自由推理得到的测试脚本准确性较低。因此,如何提高测试脚本的准确性,成为亟待解决的技术问题。

技术实现思路

1、本技术提供了一种测试脚本生成方法、装置、电子设备及可读存储介质,以解决现有的测试脚本生成方式生成的测试脚本准确性较低的问题。

2、第一方面,本技术提供了一种测试脚本生成方法,所述方法包括:

3、获取待测试界面对应的界面知识库,以及对所述待测试界面进行测试所需的测试用例,其中,所述界面知识库用于提供阶段性校验所需的依据信息;

4、基于所述测试用例,构建得到结构化的用例描述对象;

5、基于所述界面知识库和所述用例描述对象,生成中间描述对象,并对所述中间描述对象进行阶段性校验;

6、在所述中间描述对象校验通过的情况下,对所述中间描述对象进行冻结;

7、基于冻结后的中间描述对象,生成测试脚本,并对所述测试脚本进行一致性校验;

8、在所述测试脚本校验通过的情况下,对所述测试脚本进行输出。

9、可选地,所述用例描述对象包括前置条件、执行步骤和预期结果;

10、所述基于所述界面知识库和所述用例描述对象,生成中间描述对象,包括:

11、从所述界面知识库中确定出所述用例描述对象所依赖的页面对象、业务操作对象或者辅助能力对象,并基于所述页面对象、所述业务操作对象或者所述辅助能力对象,确定用于表征业务依赖声明的第一字段内容;

12、分别对所述前置条件、所述执行步骤和所述预期结果进行转义,得到用于表征前置动作序列的第二字段内容、用于表征测试动作序列的第三字段内容和用于表征断言序列的第四字段内容;

13、对所述第一字段内容、所述第二字段内容、所述第三字段内容和所述第四字段内容进行拼接,生成所述中间描述对象。

14、可选地,所述对所述中间描述对象进行阶段性校验,包括:

15、基于所述第一字段内容,从所述界面知识库中获取与所述所述第一字段内容关联的动作方法白名单、断言方法白名单、动作方法黑名单、入口链定义内容和/或页面私有规则;

16、基于所述动作方法白名单、所述断言方法白名单、所述动作方法黑名单、所述入口链定义内容和/或所述页面私有规则,对所述中间描述对象进行阶段性校验。

17、可选地,所述阶段性校验包括如下至少一项:

18、校验所述中间描述对象的字段内容是否完整;

19、校验所述中间描述对象中出现的动作名称是否属于所述动作方法白名单;

20、校验所述中间描述对象中出现的断言名称是否属于所述断言方法白名单;

21、校验所述中间描述对象中出现的动作名称是否属于所述动作方法黑名单;

22、校验所述中间描述对象的第一字段内容中是否混入了框架级依赖;

23、校验所述中间描述对象的第二字段内容中是否保留了描述性文本;

24、基于所述入口链定义内容,校验所述中间描述对象中各元素对应的入口链是否完整;

25、基于所述页面私有规则,校验所述中间描述对象中各页面是否需要额外的必经入口或页签切换动作。

26、可选地,在对所述中间描述对象进行阶段性校验之后,所述方法还包括:

27、在所述中间描述对象校验未通过的情况下,对所述中间描述对象进行原地重写,直到重写后的中间描述对象效验通过。

28、可选地,所述对所述中间描述对象进行冻结,包括:

29、获取所述中间描述对象的阶段标识、所述中间描述对象校验通过时的时间戳和所述中间描述对象的摘要哈希值;

30、对所述阶段标识、所述时间戳和所述摘要哈希值进行拼接,得到所述中间描述对象对应的版本标识;

31、对所述中间描述对象执行序列化快照,以对所述中间描述对象进行冻结;

32、将所述版本标识和冻结后的中间描述对象关联存储至预设存储区域。

33、可选地,在所述基于冻结后的中间描述对象,生成测试脚本之前,所述方法还包括:

34、基于所述版本标识,从所述预设存储区域获取所述冻结后的中间描述对象。

35、可选地,所述对所述测试脚本进行一致性校验,包括:

36、对所述测试脚本进行解析,得到结构化调用列表,其中,所述结构化调用列表包括导入列表、动作列表和断言列表;

37、将所述导入列表与所述冻结后的中间描述对象中的第一字段内容进行对比,并将所述动作列表与所述冻结后的中间描述对象中的第二字段内容和第三字段内容进行对比,以及将所述断言列表与所述冻结后的中间描述对象中的第四字段内容进行对比;

38、根据对比结果,确定所述测试脚本的一致性校验结果。

39、可选地,在所述对所述测试脚本进行一致性校验之后,所述方法还包括:

40、在所述测试脚本校验未通过的情况下,对所述测试脚本进行原地重写,直到重写后的测试脚本效验通过。

41、第二方面,本技术提供了一种测试脚本生成装置,所述装置包括:

42、第一获取模块,用于获取待测试界面对应的界面知识库,以及对所述待测试界面进行测试所需的测试用例,其中,所述界面知识库用于提供阶段性校验所需的依据信息;

43、构建模块,用于基于所述测试用例,构建得到结构化的用例描述对象;

44、阶段性校验模块,用于基于所述界面知识库和所述用例描述对象,生成中间描述对象,并对所述中间描述对象进行阶段性校验;

45、冻结模块,用于在所述中间描述对象校验通过的情况下,对所述中间描述对象进行冻结;

46、一致性校验模块,用于基于冻结后的中间描述对象,生成测试脚本,并对所述测试脚本进行一致性校验;

47、输出模块,用于在所述测试脚本校验通过的情况下,对所述测试脚本进行输出。

48、第三方面,本技术提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

49、存储器,用于存放计算机程序;

50、处理器,用于执行存储器上所存放的程序时,实现第一方面所述的测试脚本生成方法。

51、第四方面,本技术提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行第一方面所述的测试脚本生成方法。

52、本技术的有益效果:

53、(1)本技术以中间描述对象作为跨阶段唯一语义载体,在测试脚本生成前对中间描述对象实施阶段性校验,并在校验通过后冻结该中间描述对象并生成测试脚本,之后以冻结后的中间描述对象作为唯一参照对测试脚本进行一致性校验,从而将传统的模型一次性端到端自由推理流程转变为受约束、可校验、可追溯的分阶段受控生成流程,进而提升了测试脚本生成的准确率。

54、(2)本技术以界面知识库作为阶段性校验的依据信息,对中间描述对象施加约束,避免模型凭空生成界面知识库中不存在的方法名称、断言名称或导入路径等,从而进一步提高了测试脚本生成的准确率。