本公开涉及软件测试,尤其涉及一种软件功能测试方法、装置、设备及存储介质。
背景技术:
1、在相关技术中,在整车电子领域,软件测试仍然停留在使用大量人力、大量时间对所有功能逐项进行测试和判断,测试一般分为两个阶段,第一阶段为单件测试阶段,开发人员使用通讯工具对信号进行测试,以达到测试目标。第二阶段为集成测试,测试人员操作车辆在静止或运动过程中测试功能是否达到开发要求。虽然两个阶段可以测试处绝大多数软件问题,但每项测试均为针对单一功能的测试,难以发现一些隐藏的软件问题。
2、此外,还可通过硬件在环(hardware-in-the-loop,hil)系统进行测试,但该系统仍然是针对单一功能的测试,既,发送一个信号,收到对应的响应信号,即可完成该功能的测试。
3、尽管上述测试方法对于简单的功能逻辑有效,但需要测试的功能或者运行逻辑复杂时,难以发现隐藏的缺陷,例如,在多种功能组合运行时,可能误触发某项功能或某种模式等。
4、公开于本技术背景技术部分的信息仅旨在加深对本技术的一般背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。
技术实现思路
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、在一种可能的实现方式中,所述测试结果确定模块进一步用于:
54、根据所述反馈信号,确定测试结果,包括:
55、记录异常的反馈信号以及所述异常的反馈信号对应的测试用例;
56、根据所述异常的反馈信号以及所述异常的反馈信号对应的测试用例,生成测试报告。
57、根据本公开的一方面,提供了一种软件功能测试设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。
58、根据本公开的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。
59、根据本公开的实施例的软件功能测试方法,可基于多种单一功能操作逻辑之间的关联性、单一功能的使用习惯关联性和/或单一功能对应的功能单元之间的关联性,获得组合测试集,并生成测试脚本,对组合后的复杂功能进行测试,从而可在车辆的多个功能单元协同执行测试信号时,更易发现潜在的缺陷,减少漏检的可能性,提升车辆功能的可靠性。还可基于异常的反馈信号生成测试报告,为排除功能缺陷或漏洞提供数据基础。
60、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将更清楚。