CN111162972B - 基于语义分析的车载以太网协议栈自动化测试方法 - Google Patents
基于语义分析的车载以太网协议栈自动化测试方法 Download PDFInfo
- Publication number
- CN111162972B CN111162972B CN201911412584.2A CN201911412584A CN111162972B CN 111162972 B CN111162972 B CN 111162972B CN 201911412584 A CN201911412584 A CN 201911412584A CN 111162972 B CN111162972 B CN 111162972B
- Authority
- CN
- China
- Prior art keywords
- test
- code
- analysis
- protocol stack
- module
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于语义分析的车载以太网协议栈自动化测试方法,包括以下步骤:步骤1)将车载以太网协议栈接口代码注入源码分析模块进行分析,生成语法树;步骤2)将语法树送入测试代码生成模块进行分析,生成测试代码;步骤3)将测试代码发送给测试代码编译模块,根据平台的类型编译出对应的测试程序文件,适配不同平台的测试程序文件被传递到程序部署及运行控制模块中,通过程序部署及运行控制模块对协议栈进行测试,本发明全自动化的流程保证车载以太网协议栈接口测试高效、快速、精准的完成,大大减少软件测试中的人力资源投入,同时减少人为因素干扰;保证软件的可靠性。
Description
技术领域
本发明涉及一种车载以太网协议栈测试方法,特别涉及一种基于语义分析的车载以太网协议栈自动化测试方法。
背景技术
近几年,随着车联网、无人驾驶、5G、V2X等技术在车载领域的运用,汽车已经不仅仅满足人们的出行要求,也在朝着数字化、信息化、娱乐化的方向发展。在车载总线架构中传统的车内总线CAN总线,已经慢慢的无法胜任大数据高并发的网络需求。车载总线架构迫切需要一种新型总线来满足车内信息交换需求。于是车载以太网诞生了。
我们日常生活中电脑插着网线上网,使用的是标准以太网,以太网作为物理连接介质需要在其上层构建软件协议栈。和标准协议栈一样车载以太网也需要在其上层构建软件协议栈从而使得应用层可以便利的使用以太网技术。而不同于传统以太网的是车载***总线对于消息传递的有效性、消息传递消耗的时间、以及消息响应的时间有着较为严苛的需求。这些差异内容也对车载***总线的测试方法提出了更高的要求。软件的功能测试以及性能测试迫切希望能够有一种方便、易用、快捷、准确的车载以太网测试方法。
传统软件测试一般通过人工或者半人工的方式实现软件功能性测试,而软件性能测试一般是通过过程监控来粗略的测试。而目前对于车载以太网协议栈的功能及性能测试一般通过人工编写测试用例对协议栈接口进行测试,而当需求变更时就需要根据重新编写测试用例,这样不仅费时费力,还容易引入人为错误。
发明内容
本发明的目的是提供一种基于语义分析的车载以太网协议栈自动化测试方法,让整个测试过程无需人工介入,保证软件开发的快速迭代,减少人为错误。
本发明的目的是这样实现的:一种基于语义分析的车载以太网协议栈自动化测试方法,包括以下步骤:
步骤1)将车载以太网协议栈接口代码注入源码分析模块进行分析,生成语法树;
步骤2)将语法树送入测试代码生成模块进行分析,生成测试代码;
步骤3)将测试代码发送给测试代码编译模块,根据平台的类型编译出对应的测试程序文件,适配不同平台的测试程序文件被传递到程序部署及运行控制模块中,通过程序部署及运行控制模块对协议栈进行测试。
作为本发明的进一步限定,步骤1)中源码分析模块将对源码的词法、语法、语义进行分析,生成包含函数名、参数、结构的语法树。
作为本发明的进一步限定,步骤2)中测试代码生成模块具体包括:
步骤2-1)接口数据结构分析;获取语法树的接口数据类型,根据数据类型生成调用回复数据内容,生成调用回复数据内容会展开函数参数的数据结构直到类型是POD类型时停止展开,然后读取测试数据库中的测试元数据,生成类型实例,并将元数据赋值给实例;如果需要指定目标数据类型的数据也可以在数据库中声明并填写默认值;
步骤2-2)接口函数分析;获取语法树的接口函数名,通过分析接口函数从而确定函数作用,根据函数名分析调用关系生成调用关系框架代码,根据函数作用的不同,确定生成代码的内容;
步骤2-3)测试程序源代码将收集步骤2-1)中测试接口参数以及步骤2-2)中测试代码框架,生成测试程序源代码,并在测试代码中***测试过程监控代码;监控代码指的是在程序运行时发生函数调用的过程、时间、内容,可以用于测试用户分析;简要概括测试代码生成模块的作用就是,获取函数名以及函数参数,读取测试数据库,***运行监控代码,最后生成测试代码。
作为本发明的进一步限定,步骤3)中通过程序部署及运行控制模块嵌入式场景有:ssh远程登录控制,scp程序部署,adb安装部署。
作为本发明的进一步限定,还包括步骤4)运行的过程信息将被发送给测试报告生成模块生成测试报告,测试报告生成模块用以收集测试的信息,按照信息时间戳排列报告;最终按照一定的格式生成测试报告。
与现有技术相比,本发明的有益效果在于:本发明全自动化的流程保证车载以太网协议栈接口测试高效、快速、精准的完成,大大减少软件测试中的人力资源投入,同时减少人为因素干扰;保证软件的可靠性。
附图说明
图1为本发明流程图。
图2为本发明中源码分析流程图。
图3为本发明中测试代码生成流程图。
图4为本发明中实施例示意图。
图5为本发明中测试调用时序图。
图6为本发明中事件触发时序图。
具体实施方式
如图1-3所示的一种基于语义分析的车载以太网协议栈自动化测试方法,包括以下步骤:
步骤1)将车载以太网协议栈接口代码注入源码分析模块进行分析,源码分析模块将对源码的词法、语法、语义进行分析,生成包含函数名、参数、结构的语法树;
步骤2)将语法树送入测试代码生成模块进行分析,生成测试代码,具体包括:
步骤2-1)接口数据结构分析;获取语法树的接口数据类型,根据数据类型生成调用回复数据内容,生成调用回复数据内容会展开函数参数的数据结构直到类型是POD类型时停止展开,然后读取测试数据库中的测试元数据,生成类型实例,并将元数据赋值给实例;如果需要指定目标数据类型的数据也可以在数据库中声明并填写默认值;
步骤2-2)接口函数分析;获取语法树的接口函数名,通过分析接口函数从而确定函数作用,根据函数名分析调用关系生成调用关系框架代码,根据函数作用的不同,确定生成代码的内容;
步骤2-3)测试程序源代码将收集步骤2-1)中测试接口参数以及步骤2-2)中测试代码框架,生成测试程序源代码,并在测试代码中***测试过程监控代码;监控代码指的是在程序运行时发生函数调用的过程、时间、内容,可以用于测试用户分析;简要概括测试代码生成模块的作用就是,获取函数名以及函数参数,读取测试数据库,***运行监控代码,最后生成测试代码;
步骤3)将测试代码发送给测试代码编译模块,根据平台的类型编译出对应的测试程序文件,适配不同平台的测试程序文件被传递到程序部署及运行控制模块中,嵌入式场景有:ssh远程登录控制,scp程序部署,adb安装部署,通过程序部署及运行控制模块对协议栈进行测试;
步骤4)运行的过程信息将被发送给测试报告生成模块生成测试报告,测试报告生成模块用以收集测试的信息,按照信息时间戳排列报告;最终按照一定的格式生成测试报告。
下面结合具体实施例对本发明做进一步说明。
SOME/IP的协议栈进行测试包含:
1. 调用可用性测试:客户端调用协议栈接口,服务端是否能收到相应的数据;
2. 接口数据序列化与反序列化测试:发送端要将数据通过SOME/IP协议栈发给对方,需要先将参数按照约定的数据格式进行打包,这个过程称为序列化;接收端收到数据后,按照约定的格式将数据进行解包,这个过程称之为反序列化;测试时需要判断接收方和发送方的数据是否一致;
3. 调用时序与延迟测试:接口测试时,客户端调用接口向服务端请求数据,或者服务端主动的将事件通知给已经注册的事件接受者,协议栈的接口在这些过程中是否按照正确的顺序,以及在允许的延迟下被触发。
SOME/IP协议栈接口分为这么几种:方法调用、方法返回、事件通知、属性设置及属性获取接口。
如图4所示,测试的协议栈代码首先导入到编译及测试服务器中,编译及测试服务器中的代码生成模块将分析SOME/IP协议栈的接口代码,按照如图2的流程生成语法树。语法树将接口信息传递给测试代码生成模块。对于SOME/IP协议栈方法调用以及方法返回的测试用例生成,方法调用的输入参数需要获取数据的“指纹”(这里的指纹指的是通过一定算法生成的校验字节,可以使用hash、CRC等),在图3中,当生成调用回复数据内容时,“指纹”也会被一并生成;有了“指纹”,接下来就需要触发调用协议栈的接口函数,将数据从一端传递到另一端。编译及测试服务器在测试过程中为了控制SOME/IP协议栈发送和监控数据接收,需要增加额外的测试链路作为“测试通道”,“测试通道”建议使用其他的协议栈比如TCP/IP。图 5中“TestChannel”表示的就是“测试通道”。“测试通道”会在监控代码生成的流程中,被***到测试代码中。“测试通道”会记录发送端发送数据的“指纹”以及时间戳,如果有数据需要返回给调用端,那么“测试通道”还会相应的记录返回数据的“指纹”以及时间戳,测试服务器通过“测试通道”来判断数据的发送、接收以及返回的可靠性。
方法调用、方法返回测试:整体流程如图 5所示:
1.编译及测试服务器通过“测试通道”向测试平台A发送“TestChannel::triggerMethodCall”方法,测试平台A触发对应的协议栈接口将数据发送给测试平台B;
2.测试平台B收到协议栈发送的消息后,使用校验函数生成对应的校验字节;
3.如果消息需要返回,则返回数据并生成返回数据校验字节,然后通过“测试通道将”将调用信息发送给编译及测试服务器;
4.测试平台A在收到测试数据后于发送端一样生成校验字节,并通过“测试通道”将数据传递给编译及测试服务器。
事件通知测试:测试事件通知接口时:
1.编译及测试服务器触发测试平台B发送事件消息;
2.当测试平台B监控事件方法被触发时,将收集“指纹”与时间戳,然后将调用数据通过“测试通道”发送给测试及编译服务器;
3. 测试平台B在事件发送完成后将事件发生时的“指纹”以及时间戳,通过“测试通道”发送给编译及测试服务器;
4.编译及测试服务器通过对采集到的信息进行分析。通过分析确认此次事件是否正确触发;整体流程如图 6所示。
属性测试:同方法调用。
本发明并不局限于上述实施例,在本发明公开的技术方案的基础上,本领域的技术人员根据所公开的技术内容,不需要创造性的劳动就可以对其中的一些技术特征作出一些替换和变形,这些替换和变形均在本发明的保护范围内。
Claims (4)
1.一种基于语义分析的车载以太网协议栈自动化测试方法,其特征在于,包括以下步骤:
步骤1)将车载以太网协议栈接口代码注入源码分析模块进行分析,生成语法树;
步骤2)将语法树送入测试代码生成模块进行分析,生成测试代码,具体包括:
步骤2-1)接口数据结构分析;获取语法树的接口数据类型,根据数据类型生成调用回复数据内容,生成调用回复数据内容会展开函数参数的数据结构直到类型是POD类型时停止展开,然后读取测试数据库中的测试元数据,生成类型实例,并将元数据赋值给实例;如果需要指定目标数据类型的数据也可以在数据库中声明并填写默认值;
步骤2-2)接口函数分析;获取语法树的接口函数名,通过分析接口函数从而确定函数作用,根据函数名分析调用关系生成调用关系框架代码,根据函数作用的不同,确定生成代码的内容;
步骤2-3)测试程序源代码将收集步骤2-1)中测试接口参数以及步骤2-2)中测试代码框架,生成测试程序源代码,并在测试代码中***测试过程监控代码;监控代码指的是在程序运行时发生函数调用的过程、时间、内容,可以用于测试用户分析;简要概括测试代码生成模块的作用就是,获取函数名以及函数参数,读取测试数据库,***运行监控代码,最后生成测试代码;
步骤3)将测试代码发送给测试代码编译模块,根据平台的类型编译出对应的测试程序文件,适配不同平台的测试程序文件被传递到程序部署及运行控制模块中,通过程序部署及运行控制模块对协议栈进行测试。
2.根据权利要求1所述的基于语义分析的车载以太网协议栈自动化测试方法,其特征在于,步骤1)中源码分析模块将对源码的词法、语法、语义进行分析,生成包含函数名、参数、结构的语法树。
3.根据权利要求1所述的基于语义分析的车载以太网协议栈自动化测试方法,其特征在于,步骤3)中程序部署及运行控制模块嵌入式场景有:ssh远程登录控制,scp程序部署和adb安装部署。
4.根据权利要求3所述的基于语义分析的车载以太网协议栈自动化测试方法,其特征在于,还包括步骤4)运行的过程信息将被发送给测试报告生成模块生成测试报告,测试报告生成模块用以收集测试的信息,按照信息时间戳排列报告;最终按照一定的格式生成测试报告。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911412584.2A CN111162972B (zh) | 2019-12-31 | 2019-12-31 | 基于语义分析的车载以太网协议栈自动化测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911412584.2A CN111162972B (zh) | 2019-12-31 | 2019-12-31 | 基于语义分析的车载以太网协议栈自动化测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111162972A CN111162972A (zh) | 2020-05-15 |
CN111162972B true CN111162972B (zh) | 2023-05-02 |
Family
ID=70560032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911412584.2A Active CN111162972B (zh) | 2019-12-31 | 2019-12-31 | 基于语义分析的车载以太网协议栈自动化测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111162972B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113037587B (zh) * | 2021-02-26 | 2022-07-29 | 清华大学 | 一种tcp/ip协议栈测试方法、装置及电子设备 |
CN112799653B (zh) * | 2021-03-17 | 2021-09-10 | 中汽数据有限公司 | 测试场景生成源码的编译器和测试场景生成*** |
CN114826954A (zh) * | 2021-06-30 | 2022-07-29 | 长城汽车股份有限公司 | 一种车载以太网监测***以及监测方法 |
CN115134280B (zh) * | 2022-06-23 | 2023-11-24 | 安徽江淮汽车集团股份有限公司 | 一种车载以太网的故障测试***及方法 |
CN115225552A (zh) * | 2022-07-29 | 2022-10-21 | 重庆长安汽车股份有限公司 | 实时发布订阅协议的测试方法、装置、设备及介质 |
CN115361322B (zh) * | 2022-08-15 | 2023-10-17 | 华人运通(山东)科技有限公司 | 一种some/ip协议的测试***及方法 |
CN115883431B (zh) * | 2022-11-29 | 2024-06-04 | 重庆长安汽车股份有限公司 | 一种终端通讯协议性能测试***、方法、车辆及存储介质 |
CN115865193B (zh) * | 2023-02-27 | 2023-05-09 | 中国人民解放***箭军工程大学 | 一种用于反射内存组网性能测试的装置及其方法 |
CN117354208B (zh) * | 2023-09-28 | 2024-04-16 | 广州翼辉信息技术有限公司 | 基于ci/cd的codesys总线协议栈自动化测试方法及*** |
CN117667709B (zh) * | 2023-12-07 | 2024-05-17 | 长园智能装备(广东)有限公司 | 一种制造业自动化测试方向标准协议栈的设计方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107315679A (zh) * | 2017-05-12 | 2017-11-03 | 昆明奥多智能科技有限公司 | 一种嵌入式软件自动化确认测试方法及测试*** |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407973B (zh) * | 2014-11-25 | 2018-04-06 | 珠海格力电器股份有限公司 | 一种自动化单元测试的实现方法及装置 |
CN106776343A (zh) * | 2017-01-13 | 2017-05-31 | 中国科学院软件研究所 | 一种Web应用程序自动化测试工具及方法 |
US10628284B2 (en) * | 2017-04-24 | 2020-04-21 | Tektronix, Inc. | System and method for bitstream decoding with compiler-generated syntax trees |
CN107656873A (zh) * | 2017-10-23 | 2018-02-02 | 扬州航盛科技有限公司 | 基于Linux车载软件的自动化测试***及测试方法 |
CN110543421B (zh) * | 2019-08-31 | 2022-03-29 | 华南理工大学 | 基于测试用例自动生成算法的单元测试自动执行方法 |
-
2019
- 2019-12-31 CN CN201911412584.2A patent/CN111162972B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107315679A (zh) * | 2017-05-12 | 2017-11-03 | 昆明奥多智能科技有限公司 | 一种嵌入式软件自动化确认测试方法及测试*** |
Also Published As
Publication number | Publication date |
---|---|
CN111162972A (zh) | 2020-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111162972B (zh) | 基于语义分析的车载以太网协议栈自动化测试方法 | |
CN110377438B (zh) | 跨进程通信接口的路由方法、装置和*** | |
CN110058864B (zh) | 微服务的部署方法及装置 | |
CN108459850B (zh) | 生成测试脚本的方法、装置及*** | |
CN111355802B (zh) | 信息推送方法和装置 | |
US8175256B2 (en) | Call center system and method for obtaining interface invoke information | |
CN111506311A (zh) | 互联网快速迭代开发、集成、发布方法和中台赋能引擎 | |
CN112380229A (zh) | 业务数据同步方法及装置、非易失性存储介质、处理器 | |
CN113946559A (zh) | 数据处理方法、目标数据库***及数据处理*** | |
CN115422036A (zh) | 基于OpenTelemetry的车端SOA服务调用链追踪的方法 | |
CN107122307B (zh) | 一种物联网执行*** | |
CN114143369A (zh) | 一种云平台的服务监控*** | |
CN112399446A (zh) | 边缘网关通信方法、装置、计算机设备和存储介质 | |
CN111597020A (zh) | 一种应用程序编程接口api调试方法以及调试终端 | |
CN111751776A (zh) | 一种数字化继电保护测试仪时间验证***及方法 | |
CN113010432B (zh) | 基于流量时序回放的白盒仿真测试方法及*** | |
CN114500348A (zh) | 一种cdn网关测试方法及*** | |
CN111953796A (zh) | 一种带内管理文件传输方法、装置、设备及可读存储介质 | |
CN103546463A (zh) | 集成信息平台额外参数传输方法和装置以及应用*** | |
CN113377361B (zh) | 一种基于linux的crontad和jar包实现定时校验数据源的方法 | |
CN115529244B (zh) | 车辆终端的数据采传规则配置方法、装置、服务器及介质 | |
CN117827680A (zh) | 一种接口测试的方法、装置及服务器 | |
CN118264708A (zh) | 一种服务调用链跟踪方法与***、存储介质、电子设备 | |
CN117194196A (zh) | 数据处理方法及装置 | |
CN117478694A (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 |