CN115543781A - 汽车软件模型自动化验证的方法及交互系统 - Google Patents

汽车软件模型自动化验证的方法及交互系统 Download PDF

Info

Publication number
CN115543781A
CN115543781A CN202211101643.6A CN202211101643A CN115543781A CN 115543781 A CN115543781 A CN 115543781A CN 202211101643 A CN202211101643 A CN 202211101643A CN 115543781 A CN115543781 A CN 115543781A
Authority
CN
China
Prior art keywords
software
verification
automobile
model
flow
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.)
Pending
Application number
CN202211101643.6A
Other languages
English (en)
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.)
Zhiji Automobile Technology Co Ltd
Original Assignee
Zhiji Automobile 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 Zhiji Automobile Technology Co Ltd filed Critical Zhiji Automobile Technology Co Ltd
Priority to CN202211101643.6A priority Critical patent/CN115543781A/zh
Publication of CN115543781A publication Critical patent/CN115543781A/zh
Pending legal-status Critical Current

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation

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)
  • Software Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种汽车软件模型自动化验证的方法及系统,所述方法包括:当检测到开发流程有新的提交或变更时触发自动化验证的验证脚本;拉取GitLab上更新的汽车软件模型、配置文件、单元测试用例、集成测试用例;根据静态检查规则配置对汽车软件模型进行静态检查,对汽车软件模型进行编译处理并自动调取及执行相应的动态检查、集成测试用例;将编译处理结果、测试结果生成执行日志,将执行日志解析后存入数据库,自动将数据库中存储的执行日志生成验证结果发出通知。

Description

汽车软件模型自动化验证的方法及交互系统
技术领域
本发明涉及车辆控制领域,尤其涉及一种汽车软件模型自动化验证的方法及交互系统。
背景技术
自动驾驶汽车智驾软件,由算法开发工程师使用MatLab工具开发各个模块的模型、生成C代码、处理C代码,由集成工程师集成PIE包和C代码进行编译,部署工程师刷写编译产物到IPD(Integrated Product Development,即集成产品开发)台架上测试验证。
上述汽车软件开发与验证方案至少存在以下问题:
Matlab模型生成的C代码需要经过工程师手动处理,存在准确性风险;
Matlab模型和C代码,版本一致性存在风险;
验证软件功能,依赖部署工程师的资源调度情况,测试效率低;
刷写和验证依赖部署工程师业务熟练程度,测试准确性存在风险;
从开发到集成、验证过程,人工操作步骤多,效率和准确度较低。
发明内容
针对上述技术问题,本发明提供了一种汽车软件模型自动化验证的方法及交互系统,可实现自动化汽车软件模型测试验证。
本发明实施例的第一方面,提供一种汽车软件模型自动化验证的方法,包括:
当检测到开发流程有新的提交或变更时触发自动化验证的验证脚本;
拉取GitLab上更新的汽车软件模型、配置文件、单元测试用例、集成测试用例;
根据静态检查规则配置对汽车软件模型进行静态检查,对汽车软件模型进行编译处理并自动调取及执行相应的动态检查、集成测试用例;
将编译处理结果、测试结果生成执行日志,将执行日志解析后存入数据库,自动将数据库中存储的执行日志生成验证结果发出通知。
在一可选地实施例中,所述当检测到开发流程有新的提交或变更时触发自动化验证的验证脚本,包括:
利用GitLab检测到开发流程中有新的汽车软件版本提交或者检测到开发流程有新的流程分支建立,当有汽车软件版本提交或检测到开发流程有新的流程分支建立时触发Jenkins软件调用验证脚本自动构建开发流水线流程、并自动按照流水线流程执行各流程的验证脚本。
在一可选地实施例中,所述根据静态检查规则配置对汽车软件模型进行静态检查,包括:
传入包括由模型分支参数的 Jenkins参数,根据模型分支参数从GitLab项目中拉取流程分支,将流程分支名称的字符串参数处理为列表,读取该列表中的元素,对于元素不为空的执行以下步骤;
读取列表的元素,拷贝测试脚本及检测规则至该流程分支对应的汽车模型软件所在模型路径,并执行静态检查测试脚本;当元素为空时生成静态检查报告并上传。
在一可选地实施例中,所述对汽车软件模型进行编译处理并自动调取及执行相应的动态检查、集成测试用例,包括:
依次调用不同的python自动化执行脚本调用MatLab软件执行单元测试用例对汽车软件模型进行单元测试、调用MatLab软件将汽车软件模型编译生成C代码、根据代码处理配置文件自动化处理C代码、根据资源配置文件获取集成编译资源进行自动化集成编译、调用TRACE32软件自动刷写编译产物至IPD台架、在IPD台架自动执行集成测试用例。
在一可选地实施例中,所述拉取GitLab上更新的汽车软件模型、配置文件、单元测试用例、集成测试用例,包括:
利用Jenkins软件识别所述开发流程上触发流程的汽车软件模型,向GitLab拉取有关该汽车软件模型的汽车软件模型、配置文件、单元测试用例、集成测试用例,以及可执行调用GitLab功能与测试验证的不同python自动化执行脚本。
本发明实施例的第二方面,提供一种汽车软件模型自动化验证的系统,包括:
触发模块,用于当检测到开发流程有新的提交或变更时触发自动化验证的验证脚本,并拉取GitLab上更新的汽车软件模型、配置文件、单元测试用例、集成测试用例;
检测验证模块,用于根据静态检查规则配置对汽车软件模型进行静态检查,对汽车软件模型进行编译处理并自动调取及执行相应的动态检查、集成测试用例;
生成通知模块,用于将编译处理结果、测试结果生成执行日志,将执行日志解析后存入数据库,自动将数据库中存储的执行日志生成验证结果发出通知。
在一可选地实施例中,
所述触发模块包括:
创建单元,用于利用GitLab检测到开发流程中有新的汽车软件版本提交或者检测到开发流程有新的流程分支建立,当有汽车软件版本提交或检测到开发流程有新的流程分支建立时触发Jenkins软件调用验证脚本自动构建开发流水线流程、并自动按照流水线流程执行各流程的验证脚本。
在一可选地实施例中,所述检测验证模块包括:
第一静态检查单元,用于传入包括由模型分支参数的 Jenkins参数,根据模型分支参数从GitLab项目中拉取流程分支,将流程分支名称的字符串参数处理为列表,读取该列表中的元素,对于元素不为空的执行以下步骤;
第二静态检查单元,用于读取列表的元素,拷贝测试脚本及检测规则至该流程分支对应的汽车模型软件所在模型路径,并执行静态检查测试脚本;当元素为空时生成静态检查报告并上传。
在一可选地实施例中,所述检测验证模块包括:
验证子模块,用于依次调用不同的python自动化执行脚本调用MatLab软件执行单元测试用例对汽车软件模型进行单元测试、调用MatLab软件将汽车软件模型编译生成C代码、根据代码处理配置文件自动化处理C代码、根据资源配置文件获取集成编译资源进行自动化集成编译、调用TRACE32软件自动刷写编译产物至IPD台架、在IPD台架自动执行集成测试用例。
在一可选地实施例中,所述触发模块包括:
触发子单元,用于利用Jenkins软件识别所述开发流程上触发流程的汽车软件模型,向GitLab拉取有关该汽车软件模型的汽车软件模型、配置文件、单元测试用例、集成测试用例,以及可执行调用GitLab功能与测试验证的不同python自动化执行脚本。
本发明实施例的第三方面,提供一种服务器,其包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如本发明实施例的第一方面所述的方法。
本发明实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被计算机运行时,执行如本发明实施例的第一方面所述的方法。
本发明提供的GitLab软件可以实现对汽车软件模型的自动化验证,减少人工的操作,使得测试验证流程标准化,降低测试的不准确性,从而提高开发的效率,降低维护和学习的成本。本发明可在开发流程状态发生变化时自动化触发验证脚本,自动生成后续的开发流程以及对于开发过程中集成测试验证过程,过程中利用规则或配置文件即可实现标准化验证,减少人工干扰。
附图说明
图1为本发明实施例中一种汽车软件模型自动化验证的方法的流程示意图;
图2为本发明实施例中所述方法构建的流水化流程的示意图;
图3为本发明实施例中一种汽车软件模型自动化验证的方法执行的系统架构图;
图4为本发明另一实施例中汽车软件模型自动化验证的方法的流程示意图;
图5为本发明实施例中一种汽车软件模型自动化验证的系统的模块示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
基于模型设计(Model Based Design)是一种流程管理,较之传统软件开发流程而言,使开发者能够更快捷、以更少的成本花费进行开发。在此基础上,电动汽车软件代码数量的指数级别递增,用户需求的高频率变化,原有的研发方案和工具链也需要随之优化升级。此技术希望通过自动化的优化流程,降低工程师的参与,进一步提高从汽车软件模型开发、软件集成、集成测试过程的性能和效率。针对于一些固定的汽车软件功能的模型开发,会有比较频繁的迭代,开发过程中过多的人工操作反而会造成不必要的问题,因此可寻求一种解决方案达到模块化的测试验证的目的。
模型涉及会涉及到的软件有GitLab、ArtifactoryGitLab、JenkinsJIRA等。GitLab是由GitLabInc开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能;其使用Git作为代码管理工具,并在此基础上搭建起来的web服务。Artifactory是一款Maven仓库服务端软件,可以用来在内网搭建maven仓库,供公司内部公共库的上传和发布,以提高公共代码使用的便利性。Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。
基于上述各软件,本发明提供一种汽车软件模型自动化验证的方法,如图1所示,所述方法包括以下步骤:
步骤101:当检测到开发流程有新的提交或变更时触发自动化验证的验证脚本。
当算法开发人员在GitLab Web端上传新版本的汽车软件模型或新建立开发流程分支时,无需人工操作,由部署的多个验证脚本执行构建一系列流水线流程及流程过程。
作为一种实施方式,可参见图2所示,当触发构建时,连续构建多个连续的集成测试验证流程,该流程包括模型静态检查、模型单元测试、MatLab模型编译、代码处理、Tasking(一种编译软件)编译PIE、产物部署、集成测试、报告管理。其中模型静态检查和模型单元测试可直接输出至报告管理,然后由集成测试的结果输出至报告管理,中间过程中还有编译失败后的时效报警机制。上述流程由Before Actions开始至Post Actions结束。
步骤102:拉取GitLab上更新的汽车软件模型、配置文件、单元测试用例、集成测试用例。
形成上述流程之后,将拉取应用于上述流程的自动化资源,包括但不限于汽车软件模型、配置文件、单元测试用例、集成测试用例;其中配置文件可以包括数据库地址、缓存地址、部署环境集群地址等。还可以拉取测试环境、生产环境、开发环境相对应的配置文件,测试用例、集成测试用例,以及不同环境中的不同版本的汽车软件模型等。即在构建好测试验证流程后,针对流程每个部分构建好预设功能的可利用资源或环境配置。
步骤103:根据静态检查规则配置对汽车软件模型进行静态检查,对汽车软件模型进行编译处理并自动调取及执行相应的动态检查、集成测试用例。
在该步骤中可以利用Jenkins软件完成,当Jenkins完成触发构建后,将运行Jenkinsfile脚本(Groovy语言),此脚本中定义了一系列流水线阶段,每个阶段将调用不同的Python脚本,实现自动化步骤。
例如,如果检测到开发分支有提交变更,将触发自动化构建流水线流程、自动化编译模型、编译软件、部署验证。或者如果检测到开发分支合并提交到发布分支,将触发自动化构建流水线流程、自动化编译模型、编译软件、部署验证。当然,还可以设置开发人员等都Jenkins Web端时,由用户选择构建参数,主动触发流程构建。
步骤104:将编译处理结果、测试结果生成执行日志,将执行日志解析后存入数据库,自动将数据库中存储的执行日志生成验证结果发出通知。
在该步骤中可以定义一个自动化脚本执行日志解析后存储数据库的功能,然后再由一个自动化脚本执行将日志作为验证结果发出的功能。比如可以利用python程序调用邮件或钉钉软件发出通知,当然还可以是通过软件内部操作端的信息通知。
本发明可通过部署的Jenkins脚本以及不同执行功能的python程序使得开发至汽车模型版本提交、单元测试、集成化自动测试、部署验证等具有技术栈统一性,克服传统前端开发过程中人工实现流程弊端,通过形成统一全流程自动化处理流程,可大幅度提高效率与加快开发项目交付速度。
如图3所示,示出了本发明汽车软件模型自动化集成、验证的架构图,该架构中包括底层的运行环境与数据存储,部署的业务模块以及前端页面。其中,运行环境包括阿里云主机MatLab、阿里云主机Tasking(编译)、物理机服务器Trace32(刷写软件)、IPD台架;数据存储包括GitLab服务端、Jira服务端、Jenkins服务端、Artifactory服务端、MySQL数据库。开发人员将代码提交到阿里云主机MatLab,通过Artifactory服务端构建仓库打包Docker镜像,然后由阿里云主机Tasking进行编译,再由物理机服务器Trace32刷写到IPD台架,过程中可有Jenkins服务端提供自动化控制。
业务模块可以分为定制业务和基础业务,其中基础业务包括数据存储、数据清理、配置管理、报告管理、日志记录、统计分析、钉钉通知、软件通知;定制业务包括静态测试、单元测试、MatLab编译、代码处理、Taskping编译、产物部署、集成测试、MD5检查(MD5是通过对接收的传输数据执行散列运算来检查数据的正确性)。前端页面的GitLab Web、Jira Web、Jenkins Web、Artifactory Web供开发人员操作。
本发明架构模块可以实时监测开发人员提交代码版本变化或流程变化,并会在一个完整部署发布流程内,对代码进行测试或集成测试,可在前端实时查看,统一了技术流程,方便开发操作。
参考图4,为本发明具体实施例的自动化验证方法流程示意图。如图4所示,具体流程为:
步骤401:拉取GitLab上更新的汽车软件模型、配置文件、单元测试用例、集成测试用例。
举例而言,利用Jenkins软件识别所述开发流程上触发流程的汽车软件模型,由Jenkins服务端识别GitLab软件上某汽车软件模型的开发分支提交变更或开发分支合并提交到发布分支等,Jenkins软件向GitLab拉取有关该汽车软件模型及其的配置文件、单元测试用例、集成测试用例,以及可执行调用GitLab功能与测试验证的不同python自动化执行脚本。
在本发明的一实施例中,对汽车软件模型进行静态检查、对汽车软件模型进行动态检查、C代码处理、C代码编译、集成化测试等均由python脚本取代人工执行,构建一套自动化的管理流程。
步骤402:利用GitLab检测到开发流程中有新的汽车软件版本提交或者检测到开发流程有新的流程分支建立,当有汽车软件版本提交或检测到开发流程有新的流程分支建立时触发Jenkins软件调用验证脚本自动构建开发流水线流程、并自动按照流水线流程执行各流程的验证脚本。
具体可参阅图2所示的流水线流程示意图,所示验证脚本可包括多个自动化执行脚本,用于执行特定的资源调取以及对资源的执行操作。各脚本具体执行可参考下述内容。
步骤403:对于汽车软件模型进行静态检查。
在一实施例中,传入 Jenkins参数和汽车软件模型分支参数。判断构建的模块是否为空,若否则传入参数后,根据该模型分支参数从GitLab项目中拉取流程分支,将流程分支名称的字符串参数处理为列表,读取该列表中的元素。首先读取该列表中第一个元素,判断该模块名是否在列表中为空,若否(对于元素不为空的执行)则拷贝测试脚本及检测规则至该流程分支对应的汽车模型软件所在模型路径,并执行静态检查测试脚本。继续读取列表中的下一个元素,继续判断模块名是否在列表中为空,若否则继续执行拷贝测试脚本及检测规则至该流程分支对应的汽车模型软件所在模型路径,并执行静态检查测试脚本。直至读取的模块名为空时生成静态检查报告并上传。
步骤404:对汽车软件模型进行编译处理并自动调取及执行相应的动态检查、集成测试用例。
完成静态检查报告后,进行动动态检查及后续流程。依次调用不同的python自动化执行脚本调用MatLab软件的不同功能。执行的功能包括由单元测试、模型编译、代码处理、代码编译产物部署、集成测试。
在一些实施例中,由unittest.py执行单元测试用例对汽车软件模型进行单元测试和模型编译,以实现动态检查。运行build.py调用MatLab软件将汽车软件模型编译生成C代码。运行processcode.py根据代码处理配置文件自动化处理C代码。运行deployment.py进行产物部署,根据资源配置文件获取集成编译资源进行自动化集成编译;运行sit.py调用TRACE32软件(一种刷写软件)自动刷写编译产物至IPD台架、在IPD台架自动执行集成测试用例。
步骤405:将编译处理结果、测试结果生成执行日志,将执行日志解析后存入数据库,自动将数据库中存储的执行日志生成验证结果发出通知。
在该步骤中可以定义一个自动化脚本执行日志解析后存储数据库的功能,然后再由一个自动化脚本执行将日志作为验证结果发出的功能。比如可以利用python程序调用邮件或钉钉软件发出通知。
如图5所示,本发明海提供一种汽车软件模型自动化验证的系统,包括:
触发模块51,用于当检测到开发流程有新的提交或变更时触发自动化验证的验证脚本,并拉取GitLab上更新的汽车软件模型、配置文件、单元测试用例、集成测试用例;
检测验证模块52,用于根据静态检查规则配置对汽车软件模型进行静态检查,对汽车软件模型进行编译处理并自动调取及执行相应的动态检查、集成测试用例;
生成通知模块53,用于将编译处理结果、测试结果生成执行日志,将执行日志解析后存入数据库,自动将数据库中存储的执行日志生成验证结果发出通知。
所述触发模块51包括:
创建单元,用于利用GitLab检测到开发流程中有新的汽车软件版本提交或者检测到开发流程有新的流程分支建立,当有汽车软件版本提交或检测到开发流程有新的流程分支建立时触发Jenkins软件调用验证脚本自动构建开发流水线流程、并自动按照流水线流程执行各流程的验证脚本。
所述检测验证模块52包括:
第一静态检查单元,用于传入包括由模型分支参数的 Jenkins参数,根据模型分支参数从GitLab项目中拉取流程分支,将流程分支名称的字符串参数处理为列表,读取该列表中的元素,对于元素不为空的执行以下步骤;
第二静态检查单元,用于读取列表的元素,拷贝测试脚本及检测规则至该流程分支对应的汽车模型软件所在模型路径,并执行静态检查测试脚本;当元素为空时生成静态检查报告并上传。
所述检测验证模块52还包括:
验证子模块,用于依次调用不同的python自动化执行脚本调用MatLab软件执行单元测试用例对汽车软件模型进行单元测试、调用MatLab软件将汽车软件模型编译生成C代码、根据代码处理配置文件自动化处理C代码、根据资源配置文件获取集成编译资源进行自动化集成编译、调用TRACE32软件自动刷写编译产物至IPD台架、在IPD台架自动执行集成测试用例。
在一些实施例中,由unittest.py执行单元测试用例对汽车软件模型进行单元测试和模型编译,以实现动态检查。运行build.py调用MatLab软件将汽车软件模型编译生成C代码。运行processcode.py根据代码处理配置文件自动化处理C代码。运行deployment.py进行产物部署,根据资源配置文件获取集成编译资源进行自动化集成编译;运行sit.py调用TRACE32软件自动刷写编译产物至IPD台架、在IPD台架自动执行集成测试用例。
所述触发模块53包括:
触发子单元,用于利用Jenkins软件识别所述开发流程上触发流程的汽车软件模型,向GitLab拉取有关该汽车软件模型的汽车软件模型、配置文件、单元测试用例、集成测试用例,以及可执行调用GitLab功能与测试验证的不同python自动化执行脚本。
上述自动化验证系统执行各功能过程可参考关于自动化验证方法,不再赘述。
本发明还提供一种服务器,其包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述的汽车软件模型自动化验证的方法的步骤。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上述的汽车软件模型自动化验证的方法的步骤。
可以理解,计算机可读存储介质可以包括:能够携带计算机程序的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器 (ROM ,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、以及软件分发介质等。计算机程序包括计算机程序代码。计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读存储介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、以及软件分发介质等。
在本发明的某些实施方式中,装置或系统可以包括控制器,控制器是一个单片机芯片,集成了处理器、存储器,通讯模块等。处理器可以是指控制器包含的处理器。处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (12)

1.一种汽车软件模型自动化验证的方法,其特征在于,包括:
当检测到开发流程有新的提交或变更时触发自动化验证的验证脚本;
拉取GitLab上更新的汽车软件模型、配置文件、单元测试用例、集成测试用例;
根据静态检查规则配置对汽车软件模型进行静态检查,对汽车软件模型进行编译处理并自动调取及执行相应的动态检查、集成测试用例;
将编译处理结果、测试结果生成执行日志,将执行日志解析后存入数据库,自动将数据库中存储的执行日志生成验证结果发出通知。
2.根据权利要求1所述的汽车软件模型自动化验证的方法,其特征在于,所述当检测到开发流程有新的提交或变更时触发自动化验证的验证脚本,包括:
利用GitLab检测到开发流程中有新的汽车软件版本提交或者检测到开发流程有新的流程分支建立,当有汽车软件版本提交或检测到开发流程有新的流程分支建立时触发Jenkins软件调用验证脚本自动构建开发流水线流程、并自动按照流水线流程执行各流程的验证脚本。
3.根据权利要求1所述的汽车软件模型自动化验证的方法,其特征在于,所述根据静态检查规则配置对汽车软件模型进行静态检查,包括:
传入包括由模型分支参数的 Jenkins参数,根据模型分支参数从GitLab项目中拉取流程分支,将流程分支名称的字符串参数处理为列表,读取该列表中的元素,对于元素不为空的执行以下步骤;
读取列表的元素,拷贝测试脚本及检测规则至该流程分支对应的汽车模型软件所在模型路径,并执行静态检查测试脚本;当元素为空时生成静态检查报告并上传。
4.根据权利要求1所述的汽车软件模型自动化验证的方法,其特征在于,所述对汽车软件模型进行编译处理并自动调取及执行相应的动态检查、集成测试用例,包括:
依次调用不同的python自动化执行脚本调用MatLab软件执行单元测试用例对汽车软件模型进行单元测试、调用MatLab软件将汽车软件模型编译生成C代码、根据代码处理配置文件自动化处理C代码、根据资源配置文件获取集成编译资源进行自动化集成编译、调用TRACE32软件自动刷写编译产物至IPD台架、在IPD台架自动执行集成测试用例。
5.根据权利要求1所述的汽车软件模型自动化验证的方法,其特征在于,所述拉取GitLab上更新的汽车软件模型、配置文件、单元测试用例、集成测试用例,包括:
利用Jenkins软件识别所述开发流程上触发流程的汽车软件模型,向GitLab拉取有关该汽车软件模型的汽车软件模型、配置文件、单元测试用例、集成测试用例,以及可执行调用GitLab功能与测试验证的不同python自动化执行脚本。
6.一种汽车软件模型自动化验证的系统,其特征在于,包括:
触发模块,用于当检测到开发流程有新的提交或变更时触发自动化验证的验证脚本,并拉取GitLab上更新的汽车软件模型、配置文件、单元测试用例、集成测试用例;
检测验证模块,用于根据静态检查规则配置对汽车软件模型进行静态检查,对汽车软件模型进行编译处理并自动调取及执行相应的动态检查、集成测试用例;
生成通知模块,用于将编译处理结果、测试结果生成执行日志,将执行日志解析后存入数据库,自动将数据库中存储的执行日志生成验证结果发出通知。
7.根据权利要求6所述的汽车软件模型自动化验证的系统,其特征在于,
所述触发模块包括:
创建单元,用于利用GitLab检测到开发流程中有新的汽车软件版本提交或者检测到开发流程有新的流程分支建立,当有汽车软件版本提交或检测到开发流程有新的流程分支建立时触发Jenkins软件调用验证脚本自动构建开发流水线流程、并自动按照流水线流程执行各流程的验证脚本。
8.根据权利要求6所述的汽车软件模型自动化验证的系统,其特征在于,所述检测验证模块包括:
第一静态检查单元,用于传入包括由模型分支参数的 Jenkins参数,根据模型分支参数从GitLab项目中拉取流程分支,将流程分支名称的字符串参数处理为列表,读取该列表中的元素,对于元素不为空的执行以下步骤;
第二静态检查单元,用于读取列表的元素,拷贝测试脚本及检测规则至该流程分支对应的汽车模型软件所在模型路径,并执行静态检查测试脚本;当元素为空时生成静态检查报告并上传。
9.根据权利要求6所述的汽车软件模型自动化验证的系统,其特征在于,所述检测验证模块包括:
验证子模块,用于依次调用不同的python自动化执行脚本调用MatLab软件执行单元测试用例对汽车软件模型进行单元测试、调用MatLab软件将汽车软件模型编译生成C代码、根据代码处理配置文件自动化处理C代码、根据资源配置文件获取集成编译资源进行自动化集成编译、调用TRACE32软件自动刷写编译产物至IPD台架、在IPD台架自动执行集成测试用例。
10.根据权利要求6所述的汽车软件模型自动化验证的系统,其特征在于,所述触发模块包括:
触发子单元,用于利用Jenkins软件识别所述开发流程上触发流程的汽车软件模型,向GitLab拉取有关该汽车软件模型的汽车软件模型、配置文件、单元测试用例、集成测试用例,以及可执行调用GitLab功能与测试验证的不同python自动化执行脚本。
11.一种服务器,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至5中任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被计算机运行时,执行如权利要求1至5中任一项所述的方法。
CN202211101643.6A 2022-09-09 2022-09-09 汽车软件模型自动化验证的方法及交互系统 Pending CN115543781A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211101643.6A CN115543781A (zh) 2022-09-09 2022-09-09 汽车软件模型自动化验证的方法及交互系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211101643.6A CN115543781A (zh) 2022-09-09 2022-09-09 汽车软件模型自动化验证的方法及交互系统

Publications (1)

Publication Number Publication Date
CN115543781A true CN115543781A (zh) 2022-12-30

Family

ID=84725927

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211101643.6A Pending CN115543781A (zh) 2022-09-09 2022-09-09 汽车软件模型自动化验证的方法及交互系统

Country Status (1)

Country Link
CN (1) CN115543781A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116340186A (zh) * 2023-05-25 2023-06-27 中汽研软件测评(天津)有限公司 汽车电子软件检测系统、方法及介质
CN116431135A (zh) * 2023-06-12 2023-07-14 江西五十铃汽车有限公司 汽车代码编写方法、系统、计算机及可读存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116340186A (zh) * 2023-05-25 2023-06-27 中汽研软件测评(天津)有限公司 汽车电子软件检测系统、方法及介质
CN116340186B (zh) * 2023-05-25 2023-09-19 中汽研软件测评(天津)有限公司 汽车电子软件检测系统、方法及介质
CN116431135A (zh) * 2023-06-12 2023-07-14 江西五十铃汽车有限公司 汽车代码编写方法、系统、计算机及可读存储介质
CN116431135B (zh) * 2023-06-12 2023-09-22 江西五十铃汽车有限公司 汽车代码编写方法、系统、计算机及可读存储介质

Similar Documents

Publication Publication Date Title
JP7371141B2 (ja) リアルタイムデータフロープログラミング言語のためのツールおよび方法
CN112394922B (zh) 决策配置方法、业务决策方法和决策引擎系统
EP3816806A1 (en) Utilizing neural network and artificial intelligence models to select and execute test cases in a software development platform
US11449370B2 (en) System and method for determining a process flow of a software application and for automatically generating application testing code
CN115543781A (zh) 汽车软件模型自动化验证的方法及交互系统
US20090217246A1 (en) Evaluating Software Programming Skills
CN111104335B (zh) 一种基于多层次分析的c语言缺陷检测方法及装置
CN109857641A (zh) 对程序源文件进行缺陷检测的方法及装置
US20210406152A1 (en) Cloud Application to Automatically Detect and Solve Issues in a Set of Code Base Changes Using Reinforcement Learning and Rule-Based Learning
CN105389262A (zh) 一种针对界面测试生成测试建议的方法和装置
CN113377431A (zh) 一种代码处理方法、装置、设备及介质
CN116521512A (zh) 代码的精准测试方法、装置、电子设备及计算机可读介质
CN114968817A (zh) 代码改动影响范围的评估方法、装置、设备及存储介质
US12001823B2 (en) Systems and methods for building and deploying machine learning applications
CN117632710A (zh) 测试代码的生成方法、装置、设备及存储介质
CN112416333A (zh) 软件模型训练方法、装置、系统、设备和存储介质
WO2022134001A1 (zh) 基于容器化技术的机器学习模型框架的开发方法与系统
CN115185907A (zh) 一种前端资源管理方法、装置、设备以及存储介质
CN114691197A (zh) 代码分析方法、装置、电子设备和存储介质
CN113448851A (zh) 一种rust编程语言编译器的自动化测试方法及系统
Fatima et al. Towards a sustainability-aware software architecture evaluation for cloud-based software services
CN117234765B (zh) 一种国产操作系统内核性能下降补丁自动二分定位方法
CN110928535A (zh) 衍生变量部署方法、装置、设备及可读存储介质
Taky Automated Testing With Cypress
Carvalho Structural Clustering of Web Pages for Usage Pattern Mining

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