CN109446106B - 基于车身电子模块实现自动化软件测试的方法及*** - Google Patents

基于车身电子模块实现自动化软件测试的方法及*** Download PDF

Info

Publication number
CN109446106B
CN109446106B CN201811486100.4A CN201811486100A CN109446106B CN 109446106 B CN109446106 B CN 109446106B CN 201811486100 A CN201811486100 A CN 201811486100A CN 109446106 B CN109446106 B CN 109446106B
Authority
CN
China
Prior art keywords
signal
test
module
output
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811486100.4A
Other languages
English (en)
Other versions
CN109446106A (zh
Inventor
周煜波
朱莉雅
陈新宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dongfeng Electronic Technology Co ltd
Original Assignee
Dongfeng Electronic Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dongfeng Electronic Technology Co ltd filed Critical Dongfeng Electronic Technology Co ltd
Priority to CN201811486100.4A priority Critical patent/CN109446106B/zh
Publication of CN109446106A publication Critical patent/CN109446106A/zh
Application granted granted Critical
Publication of CN109446106B publication Critical patent/CN109446106B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

本发明涉及一种基于车身电子模块实现自动化软件测试的方法,包括以下步骤:(1)***配置车身电子模块的测试用例;(2)所述的上位机测试模块根据用例的配置发送控制指令改变所述的下位机测试模块的输入缓存状态;(3)所述的下位机测试模块根据输入状态执行内部功能逻辑,并将输出转化为CAN信号反馈给上位机测试模块;(4)所述的上位机测试模块通过输入输出对应关系判断所述的下位机测试模块软件功能逻辑是否正确,如果是,则生成测试报表,结束测试;否则,更新本测试用例的输入状态并继续步骤(1)。本发明还涉及一种基于车身电子模块实现自动化软件测试的***。采用了该方法及***,具备高扩展性和兼容性,可自动化进行高效的软件集成测试。

Description

基于车身电子模块实现自动化软件测试的方法及***
技术领域
本发明涉及汽车嵌入式软件测试领域,尤其涉及车身电子模块嵌入式软件测试领域,具体是指一种基于车身电子模块实现自动化软件测试的方法及***。
背景技术
在汽车电子领域,对项目开发进度影响及风险最大的是项目开发后期提出的需求变更,究其原因,在项目开发过程中,有些问题往往在***测试阶段,甚至到产品交付以后才被发现,导致需求变更处于后期阶段,最终延误了产品上线节点。因此,发明一种适用于项目前中期的自动化软件集成测试方法格外重要,它既能提升传统集成测试的覆盖率和测试效率,又能使问题尽可能地提前暴露。如此一来,开发人员只需要更加关注产品功能逻辑的合理性,而不是设计实现与测试,对项目管理各方面都有不可预估的提升。
发明内容
本发明的目的是克服了上述现有技术的缺点,提供了一种具备高扩展性、具备兼容性、自动化进行高效测试的基于车身电子模块实现自动化软件测试的方法及***。
为了实现上述目的,本发明的基于车身电子模块实现自动化软件测试的方法及***如下:
该基于车身电子模块实现自动化软件测试的方法,所述的***包括上位机测试模块、下位机测试模块和CAN通信模块,其主要特点是,所述的方法包括以下步骤:
(1)***配置车身电子模块的测试用例;
(2)所述的上位机测试模块根据用例的配置发送控制指令改变所述的下位机测试模块的输入缓存状态;
(3)所述的下位机测试模块根据输入状态执行内部功能逻辑,并将输出转化为CAN信号反馈给上位机测试模块;
(4)所述的上位机测试模块通过输入输出对应关系判断所述的下位机测试模块软件功能逻辑是否正确,如果是,则生成测试报表,结束测试;否则,更新本测试用例的输入状态并继续步骤(1)。
较佳地,所述的步骤(1)中的测试用例包括输入信号、输出信号和CAN信号。
较佳地,所述的输入信号包括不相关信号Rand_In、常规开关信号Normal_In、轻触式开关信号Touch_In、模拟信号Analog_In和频率信号Freq_In。
较佳地,所述的输出信号包括不相关输出Rand_Out、常规输出Normal_Out、模拟量输出Analog_Out、频率输出Freq_Out、跳变输出Change_Out和蜂鸣器输出Buzzer_Out。
较佳地,所述的CAN信号包括无关信号Rand_Signal、周期信号Period_Signal和触发信号Trigger_Signal。
较佳地,所述的输入信号类型配置为{0,1,2,3,4}。
较佳地,所述的输出信号类型配置为{0,1,2,3,4,5}。
较佳地,所述的CAN信号类型配置为{0,1,2}。
较佳地,所述的步骤(2)具体包括以下步骤:
(2.1)所述的上位机测试模块读取测试用例,遍历所述的测试用例的输入信号、输出信号和CAN信号,并存入输入缓存In_Conf_Buffer、输出缓存Out_Conf_Buffer、CAN缓存Can_Conf_Buffer;
(2.2)所述的上位机测试模块将信号数据根据自定义协议编译为固定格式,发送至下位机测试模块。
较佳地,所述的步骤(3)具体包括以下步骤:
(3.1)所述的下位机测试模块将所述的输入信号解析,并根据数组下标找出对应输入的相关定义;
(3.2)所述的下位机测试模块在校验数据类型匹配后将对应输入状态更新至对应缓存中;
(3.3)所述的下位机测试模块根据输入状态运行内部逻辑处理模块,并将输出状态根据自定义协议编译为固定格式发送至上位机测试模块。
较佳地,所述的步骤(4)具体包括以下步骤:
(4.1)所述的上位机测试模块解析输出信号状态;
(4.2)所述的上位机测试模块判断所述的测试用例是否存在未完成对象,如果是,则更新本测试用例的输入状态,继续步骤(1);否则,继续步骤(4.3);
(4.3)记录测试结果及数据,进入下一条测试用例,继续步骤(1),直至所有测试用例测试完毕,退出测试模式。
该基于上述方法的基于车身电子模块实现自动化软件测试的***,其主要特点是,所述的***包括:
上位机测试模块,用于集成测试车身电子模块的核心算法和通信主导;
下位机测试模块,与所述的上位机测试模块相连接,用于测试车身电子模块的测试用例;
CAN通信模块,与所述的上位机测试模块和下位机测试模块相连接,用于实现与测试对象进行数据交互;
测试程序,所述的测试程序根据配置的测试用例对测试对象内部功能逻辑进行测试,最终生成测试报表,具体进行以下步骤处理:
(1)***配置车身电子模块的测试用例;
(2)所述的上位机测试模块根据用例的配置发送控制指令改变所述的下位机测试模块的输入缓存状态;
(3)所述的下位机测试模块根据输入状态执行内部功能逻辑,并将输出转化为CAN信号反馈给上位机测试模块;
(4)所述的上位机测试模块通过输入输出对应关系判断所述的下位机测试模块软件功能逻辑是否正确,如果是,则生成测试报表,结束测试;否则,更新本测试用例的输入状态并继续步骤(1)。
较佳地,所述的步骤(1)中的测试用例包括输入信号、输出信号和CAN信号。
较佳地,所述的输入信号包括不相关信号Rand_In、常规开关信号Normal_In、轻触式开关信号Touch_In、模拟信号Analog_In和频率信号Freq_In。
较佳地,所述的输出信号包括不相关输出Rand_Out、常规输出Normal_Out、模拟量输出Analog_Out、频率输出Freq_Out、跳变输出Change_Out和蜂鸣器输出Buzzer_Out。
较佳地,所述的CAN信号包括无关信号Rand_Signal、周期信号Period_Signal和触发信号Trigger_Signal。
较佳地,所述的输入信号类型配置为{0,1,2,3,4}。
较佳地,所述的输出信号类型配置为{0,1,2,3,4,5}。
较佳地,所述的CAN信号类型配置为{0,1,2}。
较佳地,所述的步骤(2)具体包括以下步骤:
(2.1)所述的上位机测试模块读取测试用例,遍历所述的测试用例的输入信号、输出信号和CAN信号,并存入输入缓存In_Conf_Buffer、输出缓存Out_Conf_Buffer、CAN缓存Can_Conf_Buffer;
(2.2)所述的上位机测试模块将信号数据根据自定义协议编译为固定格式,发送至下位机测试模块。
较佳地,所述的步骤(3)具体包括以下步骤:
(3.1)所述的下位机测试模块将所述的输入信号解析,并根据数组下标找出对应输入的相关定义;
(3.2)所述的下位机测试模块在校验数据类型匹配后将对应输入状态更新至对应缓存中;
(3.3)所述的下位机测试模块根据输入状态运行内部逻辑处理模块,并将输出状态根据自定义协议编译为固定格式发送至上位机测试模块。
较佳地,所述的步骤(4)具体包括以下步骤:
(4.1)所述的上位机测试模块解析输出信号状态;
(4.2)所述的上位机测试模块判断所述的测试用例是否存在未完成对象,如果是,则更新本测试用例的输入状态,继续步骤(1);否则,继续步骤(4.3)
(4.3)记录测试结果及数据,进入下一条测试用例,继续步骤(1),直至所有测试用例测试完毕,退出测试模式。
采用了本发明的基于车身电子模块实现自动化软件测试的方法及***,具备高扩展性和兼容性,可自动化进行高效的软件集成测试,既能提升传统集成测试的覆盖率和测试效率,又能使问题尽可能地提前暴露。如此一来,开发人员只需要更加关注产品功能逻辑的合理性,而不是设计实现与测试,对项目管理各方面都有不可预估的提升。
附图说明
图1为本发明的基于车身电子模块实现自动化软件测试的方法的流程图。
图2为本发明的基于车身电子模块实现自动化软件测试的方法及***的上位机软件主要的UML类图。
图3为本发明的基于车身电子模块实现自动化软件测试的方法及***的输入输出及CAN信号关系的映射图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
该基于车身电子模块实现自动化软件测试的方法,所述的***包括上位机测试模块、下位机测试模块和CAN通信模块,其主要特点是,所述的方法包括以下步骤:
(1)***配置车身电子模块的测试用例;
(2)所述的上位机测试模块根据用例的配置发送控制指令改变所述的下位机测试模块的输入缓存状态;
(3)所述的下位机测试模块根据输入状态执行内部功能逻辑,并将输出转化为CAN信号反馈给上位机测试模块;
(4)所述的上位机测试模块通过输入输出对应关系判断所述的下位机测试模块软件功能逻辑是否正确,如果是,则生成测试报表,结束测试;否则,更新本测试用例的输入状态并继续步骤(1)。
作为本发明的优选实施方式,所述的步骤(1)中的测试用例包括输入信号、输出信号和CAN信号。
作为本发明的优选实施方式,所述的输入信号包括不相关信号Rand_In、常规开关信号Normal_In、轻触式开关信号Touch_In、模拟信号Analog_In和频率信号Freq_In。
作为本发明的优选实施方式,所述的输出信号包括不相关输出Rand_Out、常规输出Normal_Out、模拟量输出Analog_Out、频率输出Freq_Out、跳变输出Change_Out和蜂鸣器输出Buzzer_Out。
作为本发明的优选实施方式,所述的CAN信号包括无关信号Rand_Signal、周期信号Period_Signal和触发信号Trigger_Signal。
作为本发明的优选实施方式,所述的输入信号类型配置为{0,1,2,3,4}。
作为本发明的优选实施方式,所述的输出信号类型配置为{0,1,2,3,4,5}。
作为本发明的优选实施方式,所述的CAN信号类型配置为{0,1,2}。
作为本发明的优选实施方式,所述的步骤(2)具体包括以下步骤:
(2.1)所述的上位机测试模块读取测试用例,遍历所述的测试用例的输入信号、输出信号和CAN信号,并存入输入缓存In_Conf_Buffer、输出缓存Out_Conf_Buffer、CAN缓存Can_Conf_Buffer;
(2.2)所述的上位机测试模块将信号数据根据自定义协议编译为固定格式,发送至下位机测试模块。
较佳地,所述的步骤(3)具体包括以下步骤:
(3.1)所述的下位机测试模块将所述的输入信号解析,并根据数组下标找出对应输入的相关定义;
(3.2)所述的下位机测试模块在校验数据类型匹配后将对应输入状态更新至对应缓存中;
(3.3)所述的下位机测试模块根据输入状态运行内部逻辑处理模块,并将输出状态根据自定义协议编译为固定格式发送至上位机测试模块。
作为本发明的优选实施方式,所述的步骤(4)具体包括以下步骤:
(4.1)所述的上位机测试模块解析输出信号状态;
(4.2)所述的上位机测试模块判断所述的测试用例是否存在未完成对象,如果是,则更新本测试用例的输入状态,继续步骤(1);否则,继续步骤(4.3);
(4.3)记录测试结果及数据,进入下一条测试用例,继续步骤(1),直至所有测试用例测试完毕,退出测试模式。
该基于上述方法的基于车身电子模块实现自动化软件测试的***,其主要特点是,所述的***包括:
上位机测试模块,用于集成测试车身电子模块的核心算法和通信主导;
下位机测试模块,与所述的上位机测试模块相连接,用于测试车身电子模块的测试用例;
CAN通信模块,与所述的上位机测试模块和下位机测试模块相连接,用于实现与测试对象进行数据交互;
测试程序,所述的测试程序根据配置的测试用例对测试对象内部功能逻辑进行测试,最终生成测试报表,具体进行以下步骤处理:
(1)***配置车身电子模块的测试用例;
(2)所述的上位机测试模块根据用例的配置发送控制指令改变所述的下位机测试模块的输入缓存状态;
(3)所述的下位机测试模块根据输入状态执行内部功能逻辑,并将输出转化为CAN信号反馈给上位机测试模块;
(4)所述的上位机测试模块通过输入输出对应关系判断所述的下位机测试模块软件功能逻辑是否正确,如果是,则生成测试报表,结束测试;否则,更新本测试用例的输入状态并继续步骤(1)。
作为本发明的优选实施方式,所述的步骤(1)中的测试用例包括输入信号、输出信号和CAN信号。
作为本发明的优选实施方式,所述的输入信号包括不相关信号Rand_In、常规开关信号Normal_In、轻触式开关信号Touch_In、模拟信号Analog_In和频率信号Freq_In。
作为本发明的优选实施方式,所述的输出信号包括不相关输出Rand_Out、常规输出Normal_Out、模拟量输出Analog_Out、频率输出Freq_Out、跳变输出Change_Out和蜂鸣器输出Buzzer_Out。
作为本发明的优选实施方式,所述的CAN信号包括无关信号Rand_Signal、周期信号Period_Signal和触发信号Trigger_Signal。
作为本发明的优选实施方式,所述的输入信号类型配置为{0,1,2,3,4}。
作为本发明的优选实施方式,所述的输出信号类型配置为{0,1,2,3,4,5}。
作为本发明的优选实施方式,所述的CAN信号类型配置为{0,1,2}。
作为本发明的优选实施方式,所述的步骤(2)具体包括以下步骤:
(2.1)所述的上位机测试模块读取测试用例,遍历所述的测试用例的输入信号、输出信号和CAN信号,并存入输入缓存In_Conf_Buffer、输出缓存Out_Conf_Buffer、CAN缓存Can_Conf_Buffer;
(2.2)所述的上位机测试模块将信号数据根据自定义协议编译为固定格式,发送至下位机测试模块。
作为本发明的优选实施方式,所述的步骤(3)具体包括以下步骤:
(3.1)所述的下位机测试模块将所述的输入信号解析,并根据数组下标找出对应输入的相关定义;
(3.2)所述的下位机测试模块在校验数据类型匹配后将对应输入状态更新至对应缓存中;
(3.3)所述的下位机测试模块根据输入状态运行内部逻辑处理模块,并将输出状态根据自定义协议编译为固定格式发送至上位机测试模块。
作为本发明的优选实施方式,所述的步骤(4)具体包括以下步骤:
(4.1)所述的上位机测试模块解析输出信号状态;
(4.2)所述的上位机测试模块判断所述的测试用例是否存在未完成对象,如果是,则更新本测试用例的输入状态,继续步骤(1);否则,继续步骤(4.3)
(4.3)记录测试结果及数据,进入下一条测试用例,继续步骤(1),直至所有测试用例测试完毕,退出测试模式。
在本发明的具体实施方式中,本发明旨在提供针对车身电子模块的自动化测试的方法。上位机根据每一条用例的配置发送控制指令改变下位机的输入缓存状态,下位机软件根据不断变化的输入状态执行内部功能逻辑,并将所有的输出转化为CAN信号反馈给上位机,上位机通过输入输出对应关系判断当前下位机软件功能逻辑是否正确,最终所有用例测试完毕后生成测试报表。
为了实现上述目的,方案中的测试用例是这样配置的:
一个测试用例中包含若干输入信号,输出信号,CAN信号。
输入信号分为不相关信号Rand_In,常规开关信号Normal_In,轻触式(自复位)开关信号Touch_In,模拟信号Analog_In,频率信号Freq_In。
输出信号分为不相关输出Rand_Out,常规输出Normal_Out,模拟量输出Analog_Out,频率输出Freq_Out,跳变输出Change_Out,蜂鸣器输出Buzzer_Out。CAN信号分为无关信号Rand_Signal,周期信号Period_Signal,触发信号Trigger_Signal。
对以上信号配置说明:输入信号类型在具体配置项中分为{0,1,2,3,4},分别对应上述各输入信号类型,如不相关信号对应配置为0;同理,输出信号类型在具体配置项中分为{0,1,2,3,4,5},CAN信号类型在具体配置项中分为{0,1,2}。所有信号量若为无关项,则填写0。
测试用例配置完成后,即可开始测试。上位机读取测试用例后,进行一系列处理后对下位机进行控制,并根据反馈信息判断该用例测试结果。
为了实现上述目的,上位机软件是这样工作的:
上位机在逐行读取每一条测试用例过程中,遍历每一个输入信号、输出信号、CAN信号,存到输入缓存In_Conf_Buffer[][],输出缓存Out_Conf_Buffer[][],CAN缓存Can_Conf_Buffer[]中。对于In_Conf_Buffer[]中的每一个数组成员,调用Input_Ctrl_Dealing()函数处理该信号量的发送状态,存储到In_Send_Buffer[]中。其中Input_Ctrl_Dealing()函数涉及到输入量是否需要随机变化的处理;频率信号的占空比处理;模拟信号值的计算,轻触式开关的按键有效性处理等。之后通过CAN_Msg_Dealing()函数将需要发送的信号数据根据自定义协议编译为固定格式后发送。
下位机软件接收到符合协议的固定格式数据后,通过CAN_InMsg_Parsing()函数将每一个输入信号解析出来,并存储到In_Parsed_Buffer[]中,根据该数组下标找到对应输入的相关定义。校验数据类型匹配后,将对应输入状态更新到对应缓存中。之后下位机根据输入状态自动运行内部逻辑处理模块,并更新输出状态缓存Out_Status_Buffer[]。每个while大循环结尾执行Out_CAN_Feedback()函数将每一个Out_Status_Buffer[]中的状态根据自定义协议编译为固定格式发送到上位机。
上位机通过CAN_OutMsg_Parsing()解析输出信号状态后存入Out_Parsed_Buffer[],接着调用Case_Judge()函数判断该用例逻辑是否正确。其中涉及到各输入输出信号的遍历校验以及当前输入状态缓存与输出状态缓存的版本号校验。若该用例存在未完成对象,如频率信号,则继续更新输入状态,进行下一个测试循环。若该用例测试已完成,则记录测试结果及数据,进入下一条测试用例,直到所有用例测试完毕并退出测试模式。
上述方法中上位机软件设计可通过Visual Studio的MFC或其他界面开发IDE完成;下位机测试模块中各输入输出信号的映射需根据各项目的具体定义修改,单片机型号不限;CAN通信可根据实际现有设备建立底层开发库,以适配上位机开发环境。
为了能够更清楚地理解本发明的技术内容,举一条测试用例的测试循环实例。上位机软件以MFC C++编程实现,CAN通信工具采用Valuecan,下位机单片机采用16位富士通MB96F386RSB。
某条测试用例中包含以下信号量:
In1:左转向开关,类型3,有效值为24(V);In2:点火锁IGN开关,类型1,有效值为1;In3:车速信号,类型4,频率值为15Hz;In4:门锁状态信号,类型1,有效值为1;In5:后视镜加热开关,类型2,有效值为1;其他输入项为无关项。
Out1:左转向灯,类型3,频率1.5Hz,Out2:门锁输出,类型4,跳变时间300ms;Out3:后视镜加热输出,类型1,有效值为1;蜂鸣器输出,类型5,声音类型1,其他均为无关项。
以下为一个测试用例中的单一时序:
上位机读取该条用例并经过处理后,左转向开关信号状态In_Send_Buffer[0][0]赋类型3,In_Send_Buffer[0][1]赋值24,代表该信号为模拟信号,电压值为24V;点火锁IGN开关In_Send_Buffer[1][0]赋类型1,In_Send_Buffer[1][1]赋值1,代表该信号为常规开关,有效值为高电平;车速信号In_Send_Buffer[2][0]赋类型4,In_Send_Buffer[2][1]赋值150,代表该信号为频率信号,频率值为15Hz;以此类推。CAN数据的编译及解析则根据自定义协议通信即可。
下位机接收到上位机CAN控制信号后,根据In_Send_Buffer[i][0]的类型执行Switch函数,跳转到对应输入Buffer寻址函数中,如左转向开关信号类型通过读取In_Send_Buffer[0][0]的值得到类型为3,对应寻址函数Analog_In_Update(char index),找到编号index为0的模拟量信号——该信号已在下位机软件头文件中定义,用于映射上位机信号编号与下位机开关量定义的对应关系。类似地,常规开关为类型1,对应寻址函数Common_In_Update(char index),
轻触式开关信号类型为2,对应寻址函数Touch_In_Update(char index);频率信号类型为4,对应寻址函数Freq_In_Update(char index);找到对应类型的寻址函数后,根据In_Send_Buffer[i][1]中的值更新对应输入信号的值。当前循环中功能逻辑模块运行完毕后,按照CAN协议将输出信号状态返回上位机。
上位机判断用例正确的标准:判断所有输入输出相关项的信号是否与用例中的配置相符。因此,对于下位机返回的输出信号数据,须遍历输出相关项。其中,Out_Conf_Buffer[i][0]的值决定了该输出项的类型,Out_Conf_Buffer[i][1]中的值决定了该输出项需要测试的循环时长,该时长决定了单用例需由多少个测试循环时序组成。由于一个用例中存在一个或多个输出项,因此需要以最长时长为测试标准,确定每一个输出项均符合测试用例正确判断标准。
Out_Conf_Buffer[i][2]中的值决定了该类型的参数值,常规信号记录了有效电平,频率信号记录了频率,跳变信号记录了多少时间后跳变,模拟量信号记录了参考值,蜂鸣器输出记录了声音类型。
对于常规输出信号,只需持续监测该信号是否保持有效状态即可;对于频率输出信号,需要根据多个时序测出输出信号的频率,根据该输出项的参数值决定一个范围阈值判定是否正确;对于模拟量输出信号,同样根据该输出项的参数值决定一个范围阈值判定是否正确;对于跳变信号,需要根据多个时序,记录信号量跳变的时间节点,并与该信号的参数值做范围比对,判断是否在合理的跳变时间内;对于蜂鸣器输出,只需要对比声音类型参数是否与下位机反馈的声音类型匹配。
当该用例的所有时序运行完毕后,即可判断该测试用例是否完全正确。在经过数据处理服务将测试数据存储到数据库并发布到上位机界面后,即可进入下一条测试用例,直到该项目所有测试用例执行完毕。
采用了本发明的基于车身电子模块实现自动化软件测试的方法及***,具备高扩展性和兼容性,可自动化进行高效的软件集成测试,既能提升传统集成测试的覆盖率和测试效率,又能使问题尽可能地提前暴露。如此一来,开发人员只需要更加关注产品功能逻辑的合理性,而不是设计实现与测试,对项目管理各方面都有不可预估的提升。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。

Claims (14)

1.一种基于嵌入式软件***针对车身电子模块实现自动化软件测试控制的方法,所述的***包括上位机测试模块、下位机测试模块和CAN通信模块,其特征在于,所述的方法包括以下步骤:
(1)***配置车身电子模块的测试用例;
(2)所述的上位机测试模块根据用例的配置发送控制指令改变所述的下位机测试模块的输入缓存状态;
(3)所述的下位机测试模块根据输入状态执行内部功能逻辑,并将输出转化为CAN信号反馈给上位机测试模块;
(4)所述的上位机测试模块通过输入输出对应关系判断所述的下位机测试模块软件功能逻辑是否正确,如果是,则生成测试报表,结束测试;否则,更新本测试用例的输入状态并继续步骤(1),所述的下位机测试模块中各输入输出信号的映射需根据各项目的具体定义修改;
所述的步骤(1)中的测试用例包括输入信号、输出信号和CAN信号;
所述的输入信号包括不相关信号Rand_In、常规开关信号Normal_In、轻触式开关信号Touch_In、模拟信号Analog_In和频率信号Freq_In;
所述的输出信号包括不相关输出Rand_Out、常规输出Normal_Out、模拟量输出Analog_Out、频率输出Freq_Out、跳变输出Change_Out和蜂鸣器输出Buzzer_Out;
所述的CAN信号包括无关信号Rand_Signal、周期信号Period_Signal和触发信号Trigger_Signal。
2.根据权利要求1所述的基于嵌入式软件***针对车身电子模块实现自动化软件测试控制的方法,其特征在于,所述的输入信号类型配置为{0,1,2,3,4}。
3.根据权利要求1所述的基于嵌入式软件***针对车身电子模块实现自动化软件测试控制的方法,其特征在于,所述的输出信号类型配置为{0,1,2,3,4,5}。
4.根据权利要求1所述的基于嵌入式软件***针对车身电子模块实现自动化软件测试控制的方法,其特征在于,所述的CAN信号类型配置为{0,1,2}。
5.根据权利要求1所述的基于嵌入式软件***针对车身电子模块实现自动化软件测试控制的方法,其特征在于,所述的步骤(2)具体包括以下步骤:
(2.1)所述的上位机测试模块读取测试用例,遍历所述的测试用例的输入信号、输出信号和CAN信号,并存入输入缓存In_Conf_Buffer、输出缓存Out_Conf_Buffer、CAN缓存Can_Conf_Buffer;
(2.2)所述的上位机测试模块将信号数据根据自定义协议编译为固定格式,发送至下位机测试模块。
6.根据权利要求1所述的基于嵌入式软件***针对车身电子模块实现自动化软件测试控制的方法,其特征在于,所述的步骤(3)具体包括以下步骤:
(3.1)所述的下位机测试模块将所述的输入信号解析,并根据数组下标找出对应输入的相关定义;
(3.2)所述的下位机测试模块在校验数据类型匹配后将对应输入状态更新至对应缓存中;
(3.3)所述的下位机测试模块根据输入状态运行内部逻辑处理模块,并将输出状态根据自定义协议编译为固定格式发送至上位机测试模块。
7.根据权利要求1所述的基于嵌入式软件***针对车身电子模块实现自动化软件测试控制的方法,其特征在于,所述的步骤(4)具体包括以下步骤:
(4.1)所述的上位机测试模块解析输出信号状态;
(4.2)所述的上位机测试模块判断所述的测试用例是否存在未完成对象,如果是,则更新本测试用例的输入状态,继续步骤(1);否则,继续步骤(4.3);
(4.3)记录测试结果及数据,进入下一条测试用例,继续步骤(1),直至所有测试用例测试完毕,退出测试模式。
8.一种针对车身电子模块实现自动化软件测试的嵌入式软件***,其特征在于,所述的***包括:
上位机测试模块,用于集成测试车身电子模块的核心算法和通信主导;
下位机测试模块,与所述的上位机测试模块相连接,用于测试车身电子模块的测试用例;
CAN通信模块,与所述的上位机测试模块和下位机测试模块相连接,用于实现与测试对象进行数据交互;
测试程序,所述的测试程序根据配置的测试用例对测试对象内部功能逻辑进行测试,最终生成测试报表,具体进行以下步骤处理:
(1)***配置车身电子模块的测试用例;
(2)所述的上位机测试模块根据用例的配置发送控制指令改变所述的下位机测试模块的输入缓存状态;
(3)所述的下位机测试模块根据输入状态执行内部功能逻辑,并将输出转化为CAN信号反馈给上位机测试模块;
(4)所述的上位机测试模块通过输入输出对应关系判断所述的下位机测试模块软件功能逻辑是否正确,如果是,则生成测试报表,结束测试;否则,更新本测试用例的输入状态并继续步骤(1);
所述的步骤(1)中的测试用例包括输入信号、输出信号和CAN信号;
所述的输入信号包括不相关信号Rand_In、常规开关信号Normal_In、轻触式开关信号Touch_In、模拟信号Analog_In和频率信号Freq_In;
所述的输出信号包括不相关输出Rand_Out、常规输出Normal_Out、模拟量输出Analog_Out、频率输出Freq_Out、跳变输出Change_Out和蜂鸣器输出Buzzer_Out;
所述的CAN信号包括无关信号Rand_Signal、周期信号Period_Signal和触发信号Trigger_Signal。
9.根据权利要求8所述的针对车身电子模块实现自动化软件测试的嵌入式软件***,其特征在于,所述的输入信号类型配置为{0,1,2,3,4}。
10.根据权利要求9所述的针对车身电子模块实现自动化软件测试的嵌入式软件***,其特征在于,所述的输出信号类型配置为{0,1,2,3,4,5}。
11.根据权利要求10所述的针对车身电子模块实现自动化软件测试的嵌入式软件***,其特征在于,所述的CAN信号类型配置为{0,1,2}。
12.根据权利要求8所述的针对车身电子模块实现自动化软件测试的嵌入式软件***,其特征在于,所述的步骤(2)具体包括以下步骤:
(2.1)所述的上位机测试模块读取测试用例,遍历所述的测试用例的输入信号、输出信号和CAN信号,并存入输入缓存In_Conf_Buffer、输出缓存Out_Conf_Buffer、CAN缓存Can_Conf_Buffer;
(2.2)所述的上位机测试模块将信号数据根据自定义协议编译为固定格式,发送至下位机测试模块。
13.根据权利要求8所述的针对车身电子模块实现自动化软件测试的嵌入式软件***,其特征在于,所述的步骤(3)具体包括以下步骤:
(3.1)所述的下位机测试模块将所述的输入信号解析,并根据数组下标找出对应输入的相关定义;
(3.2)所述的下位机测试模块在校验数据类型匹配后将对应输入状态更新至对应缓存中;
(3.3)所述的下位机测试模块根据输入状态运行内部逻辑处理模块,并将输出状态根据自定义协议编译为固定格式发送至上位机测试模块。
14.根据权利要求8所述的针对车身电子模块实现自动化软件测试的嵌入式软件***,其特征在于,所述的步骤(4)具体包括以下步骤:
(4.1)所述的上位机测试模块解析输出信号状态;
(4.2)所述的上位机测试模块判断所述的测试用例是否存在未完成对象,如果是,则更新本测试用例的输入状态,继续步骤(1);否则,继续步骤(4.3);
(4.3)记录测试结果及数据,进入下一条测试用例,继续步骤(1),直至所有测试用例测试完毕,退出测试模式。
CN201811486100.4A 2018-12-06 2018-12-06 基于车身电子模块实现自动化软件测试的方法及*** Active CN109446106B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811486100.4A CN109446106B (zh) 2018-12-06 2018-12-06 基于车身电子模块实现自动化软件测试的方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811486100.4A CN109446106B (zh) 2018-12-06 2018-12-06 基于车身电子模块实现自动化软件测试的方法及***

Publications (2)

Publication Number Publication Date
CN109446106A CN109446106A (zh) 2019-03-08
CN109446106B true CN109446106B (zh) 2020-11-20

Family

ID=65558267

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811486100.4A Active CN109446106B (zh) 2018-12-06 2018-12-06 基于车身电子模块实现自动化软件测试的方法及***

Country Status (1)

Country Link
CN (1) CN109446106B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111340976B (zh) * 2020-02-24 2022-11-15 北京百度网讯科技有限公司 调试自动驾驶车辆模块的方法、装置、电子设备
CN111766845B (zh) * 2020-05-14 2021-09-07 北京国铁盛阳技术有限公司 列控***信号设备的测试方法、测试***以及测试装置
CN113219952B (zh) * 2021-05-10 2022-07-19 东风电子科技股份有限公司 基于车身控制模块bcm功能实现总体控制的方法、装置、处理器及其计算机可读存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102565563B (zh) * 2010-12-29 2016-01-13 上海汽车集团股份有限公司 用于汽车电子电器***的自动化集成测试***和方法
CN102854877A (zh) * 2012-10-12 2013-01-02 山东省科学院自动化研究所 汽车车身控制模块的功能测试***及测试方法
CN104331068B (zh) * 2014-10-21 2018-03-27 普华基础软件股份有限公司 一种基于电子控制单元的测试装置

Also Published As

Publication number Publication date
CN109446106A (zh) 2019-03-08

Similar Documents

Publication Publication Date Title
CN109446106B (zh) 基于车身电子模块实现自动化软件测试的方法及***
CN109840207B (zh) 一种基于autosar网络管理自动化测试***及测试方法
CN102597964B (zh) 用于启用并行测试的计算装置
US8286125B2 (en) Model for a hardware device-independent method of defining embedded firmware for programmable systems
JP2007518148A (ja) 車両遠隔測定データを送信するのに使用される車両タグ、車両遠隔測定データを送信するシステムおよび方法
CN111679836B (zh) 一种汽车ecu刷写***及方法
CN111176984A (zh) 一种面向信号的自动测试实现方法
CN109426239B (zh) 一种机车顺序控制***及方法
CN110989549B (zh) 用于列车控制***的软件测试通用自动化控制方法及装置
CN114460925B (zh) 一种电动汽车控制器can接口hil自动化测试方法
US20070234253A1 (en) Multiple mode approach to building static timing models for digital transistor circuits
CN113342643B (zh) 一种车辆fota功能自动化测试方法及***
CN108009092B (zh) 一种车载网络管理通用测试用例协议的设计方法
CN103425055A (zh) 一种半虚拟式的控制***功能测试装置及方法
CN110799951A (zh) 用于计算机辅助地自动化地检查需求的方法
CN115878146A (zh) 基于零部件子功能配置的车用软件变更方法
CN114488997A (zh) Ecu刷写的方法、装置、电子设备及存储介质
CN113985849A (zh) 一种基于CANoe软件编写自动清读整车DTC读ECU版本的方法
US20100191710A1 (en) Network Meta-Data Libraries And Related Methods
CN112685322A (zh) 一种客制化测试方法、装置及***
CN110968071A (zh) 铁路车辆电气屏柜功能测试用例的生成方法及***
CN115865193B (zh) 一种用于反射内存组网性能测试的装置及其方法
Grosu et al. Visual description of hybrid systems
JPH1139378A (ja) システム設計仕様を規定する装置
CN116820798B (zh) 数据处理方法、装置以及车辆

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant