一种基于打桩的软件集成测试方法、系统及存储介质与流程
- 国知局
- 2024-09-05 14:47:38
本发明涉及智能驾驶领域,特别是涉及一种基于打桩的软件集成测试方法、系统及存储介质。
背景技术:
1、在智能驾驶领域,智能驾驶系统的中间件在汽车软件架构中起到至关重要的作用,其可以实现软硬件解耦工作。在智能驾驶软件集成测试中,对中间件通信的测试是通信链路测试过程中最核心的部分,通过对通信链路接口层面进行精准测试,可以极大地保证整个集成系统的正确性。在进行集成测试时,由于被测试的单元模块无法单独构成可运行的集成软件系统,这就需要为单元模块开发相应的桩函数(stubbing function,stub),这些桩函数可以使得集成软件的通信链路会按照测试验证需要,将数据在通信链路的模块间传递,然后在传递的过程中输出测试结果,从而分析测试结果是否达到预期,进而达到对集成系统的通信链路的测试,从而极大提高了集成测试的正确性。
2、但在进行集成测试的过程中,对模块交互过程中的问题进行定位是比较困难的,在实际过程中经常手动使用劳特巴赫(lauterbach)公司的trace32工具提供的打断点方法去查看跟踪运行过程中的变量,来定位相应的问题,但这种方法会耗费大量的人力。此外,现有的集成测试方法随着系统的复杂性提高,很难做到较高的准确性。
3、同时,而打桩测试的方法通常应用于通信领域的单元测试,很难对复杂的通信链路进行测试,效率低;且现有的集成测试方法在复杂的系统中存在精确性低的不足。
技术实现思路
1、本发明所要解决的技术问题在于,提供一种基于打桩的软件集成测试方法、系统及存储介质。可以简化测试方案,提高测试效率以及精准度。
2、解决上述技术问题,作为本发明的一方面,提供一种基于打桩的软件集成测试方法,其包括以下步骤:
3、分析集成测试中待测的通信链路接口,生成通信链路测试的测试用例;
4、根据所述通信链路所连接的被测试模块的源代码中的原函数生成对应的桩函数,并按照测试用例在每一桩函数中设定输入和输出;
5、根据待测的通信链路接口构建参数模型,调用所述参数模型生成总线信号,实现总线仿真;
6、在总线仿真环境下,采用测试脚本进行自动化打桩测试,将每个测试用例中各原函数替换成对应的桩函数进行自动化测试,并在测试结束后恢复原函数;
7、根据测试结果,利用打桩函数中预先设置的回调函数,动态选择参数模型,触发下一轮桩函数并进行自动打桩测试。
8、其中,所述分析集成测试中待测的通信链路接口,生成通信链路测试的测试用例,进一步包括:
9、根据集成测试中待测的通信链路接口集,以通信链路上的数据结构体为单位,获得每个数据结构体所涉及的全部待测变量,生成通信链路测试的测试用例。
10、其中,根据待测的通信链路接口构建参数模型,调用所述参数模型生成总线信号,实现总线仿真,包括:
11、建立待测的通信链路接口所对应的can矩阵,所述can矩阵包含各can信号的名称、id、数据长度和取值范围;
12、根据can矩阵定义的can信号取值,采用capl脚本构建离散的参数模型和连续的参数模型,离散参数模型用于通信链路通路的点检,连续参数模型用于待测模块内部逻辑的正确性和边界的验证;
13、启动canoe仿真环境,使用capl脚本调用离散的参数模型或者连续的参数模型生成can信号,并发送can信号到虚拟总线上。
14、其中,在总线仿真环境下,采用测试脚本进行自动化打桩测试,将每个测试用例中各原函数替换成对应的桩函数进行自动化测试,并在测试结束后恢复原函数;包括:
15、运行预先编写的自动化打桩脚本,自动将测试用例中的各待测模块中的原函数接口替换为对应的桩函数,并进行测试;
16、在测试结束后将各桩函数恢复对应的原函数。
17、其中,根据测试结果,利用打桩函数中预先设置的回调函数,动态选择参数模型,触发下一轮桩函数自动打桩测试,包括:
18、canoe连接到测试台架的串口,并通过读取串口输出的结果进行分析;
19、根据分析所获得的测试结果触发不同的桩函数回调函数,利用所述回调函数动态调整参数模型,触发下一轮桩函数自动打桩测试。
20、相应地,作为本发明的另一方面,还提供一种基于打桩的软件集成测试系统,其至少包括:
21、接口分析模块,用于分析集成测试中待测的通信链路接口,生成通信链路测试的测试用例;
22、桩函数获得模块,用于根据所述通信链路所连接的被测试模块的源代码中的原函数生成对应的桩函数,并按照测试用例在每一桩函数中设定输入和输出;
23、总线仿真模块,用于根据待测的通信链路接口构建参数模型,调用所述参数模型生成总线信号,实现总线仿真;
24、自动打桩测试模块,用于在总线仿真环境下,采用测试脚本进行自动化打桩测试,将每个测试用例中各原函数替换成对应的桩函数进行自动化测试,并在测试结束后恢复原函数;
25、回调处理模块,用于根据测试结果,利用打桩函数中预先设置的回调函数,动态选择参数模型,触发下一轮桩函数并进行自动打桩测试。
26、其中,所述接口分析模块进一步用于:
27、根据集成测试中待测的通信链路接口集,以通信链路上的数据结构体为单位,获得每个数据结构体所涉及的全部待测变量,生成通信链路测试的测试用例。
28、其中,所述总线仿真模块包括:
29、can矩阵建立单元,用于建立待测的通信链路接口所对应的can矩阵,所述can矩阵包含各can信号的名称、id、数据长度和取值范围;
30、参数模型获得单元,用于根据can矩阵定义的can信号取值,采用capl脚本构建离散的参数模型和连续的参数模型,离散参数模型用于通信链路通路的点检,连续参数模型用于待测模块内部逻辑的正确性和边界的验证;
31、can信号仿真单元,用于启动canoe仿真环境,使用capl脚本调用离散的参数模型或者连续的参数模型生成can信号,并发送can信号到虚拟总线上。
32、其中,所述自动打桩测试模块包括:
33、桩函数替换单元,用于运行预先编写的自动化打桩脚本,自动将测试用例中的各待测模块中的原函数接口替换为对应的桩函数,并进行测试;
34、原函数恢复单元,用于在测试结束后将各桩函数恢复对应的原函数。
35、其中,所述回调处理模块包括:
36、串口结果分析单元,用于连接到测试台架的串口,并通过读取串口输出的结果进行分析;
37、参数模型调整单元,根据分析所获得的测试结果触发不同的桩函数回调函数,利用所述回调函数动态调整参数模型,触发下一轮桩函数自动打桩测试。
38、作为本发明的再一方面,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述方法的步骤。
39、实施本发明实施例,具有如下的有益效果:
40、本发明提供一种基于打桩的软件集成测试方法、系统及存储介质。在智驾领域的集成测试测试过程,为通信中间件模块开发了相应的桩函数,对集成软件系统中的中间件通过桩函数实现自动化测试。并通过为各桩函数设置了一组回调函数,根据原始的打桩函数的测试结果进行分析,从而触发不同打桩函数的回调函数,进行动态的参数模型选择,使得复杂的通信链路可以进行多次动态打桩,从而验证通信链路的完整性,以及接口的正确性;可以实现在接口数据层面精准测试以及通讯链路完整覆盖,提高了集成软件测试的准确性、可靠性;
41、在本发明中,通过脚本实现自动化打桩,对于每个待测版本,只需要运行自动化打桩脚本,便可以轻松生成全部测试用例的桩函数,简化了集成测试中通信链路的测试过程,并提高了测试效率。本发明以通信接口的维度,可以精确到通讯链路上的每个变量数据的流向,通过这种测试方法大大提高了集成测试的精确性。本发明通过动态选择参数模型和桩函数回调,使得集成测试更加自动化,使得通信链路测试覆盖率更高。
本文地址:https://www.jishuxx.com/zhuanli/20240905/288143.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表