CN113110824A - 一种汽车电子软件持续集成及自动测试方法 - Google Patents
一种汽车电子软件持续集成及自动测试方法 Download PDFInfo
- Publication number
- CN113110824A CN113110824A CN202110352359.5A CN202110352359A CN113110824A CN 113110824 A CN113110824 A CN 113110824A CN 202110352359 A CN202110352359 A CN 202110352359A CN 113110824 A CN113110824 A CN 113110824A
- Authority
- CN
- China
- Prior art keywords
- test
- software
- module
- tool
- code
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- 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/3604—Software analysis for verifying properties of programs
-
- 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
- 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/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/72—Code refactoring
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种汽车电子软件持续集成及自动测试方法打通持续集成管理系统、软件代码管理工具、软件需求及架构管理工具、软件编译及构建工具、测试执行及自动化工具、测试管理系统、邮件管理工具之间的关联,搭建汽车电子软件持续集成系统,实现汽车电子软件测试的全流程自动化测试及测试驱动开发,提高软件测试执行、测试结果分析和测试管理的效率及质量,提高产品质量。
Description
技术领域
本发明属于汽车电子软件集成检测领域,尤其是涉及一种汽车电子软件持续集成及自动测试方法。
背景技术
随着汽车智能化水平及ASPICE、功能安全ISO26262等标准规范的引入,各主机厂及其零部件供应商将汽车电子软件测试划分为软件静态代码分析、软件单元测试、软件集成与集成测试、软件合格性测试;同时引入更多的开发测试工具支持各层级软件测试工作的开展,包括软件需求及架构管理工具、测试执行工具、自动测试工具、测试管理系统等。为进一步提高测试效率,部分主机厂及其零部件公司已将持续集成技术引入到汽车电子软件测试中,但就现有的技术而言,存在以下缺陷:
软件测试层级覆盖面不全,仅覆盖静态代码分析、软件单元测试、软件集成与集成测试、软件合格性测试的一个层级或一个层级里面的部分工作;
无法进行回归测试案例的筛选,仅自动执行软件变更模块对应的变更测试案例,回归测试覆盖度低;或回归测试缺乏依据,执行测试库中全部的测试案例,影响测试效率;
无法获取测试执行工具的状态,只能在固定时间触发自动测试,测试资源存在浪费;
测试结果无法自动反馈到测试管理系统,需要测试人员手动添加测试结果及测试问题,并建立与测试案例的追溯关系,操作繁杂、影响测试效率且容易出错。
发明内容
有鉴于此,本发明旨在提出一种汽车电子软件持续集成及自动测试方法,以打通持续集成管理系统、软件代码管理工具、软件需求及架构管理工具、软件编译及构建工具、测试执行及自动化工具、测试管理系统、邮件管理工具之间的关联,搭建汽车电子软件持续集成系统,实现汽车电子软件测试的全流程自动化测试及测试驱动开发,提高软件测试执行、测试结果分析和测试管理的效率及质量,提高产品质量。
为达到上述目的,本发明的技术方案是这样实现的:
一方面,一种汽车电子软件持续集成及自动测试系统,包括软件代码管理工具、代码编译及构建工具、软件需求及软件架构管理工具、邮件管理工具、持续集成管理系统、测试管理系统、测试执行及自动化工具链;
所述持续集成管理系统包括代码变更检测模块、代码编译及构建触发模块、编译结果回馈模块、测试参数解析模块、测试工具状态解析模块、测试结果解析及回馈模块;
所述软件需求及软件架构管理工具用于存储软件需求、软件架构、软件需求间依赖关系、软件架构间依赖关系、软件需求与代码模块对应关系、软件架构与代码模块对应关系、软件需求与合格性测试脚本对应关系、软件架构与集成测试脚本对应关系信息,并与持续集成管理系统的测试参数解析模块连接,所述测试参数解析模块从软件需求及软件架构管理工具中获取相关信息进行解析,得到需执行的测试脚本信息;
所述软件代码管理工具与持续集成管理系统的代码变更检测模块连接发送生成代码变更标志位及记录变更;所述代码变更检测模块与代码编译及构建触发模块连接发送变更位的检测结果;
所述代码编译及构建工具与持续集成管理系统的代码编译及构建触发模块连接,所述代码编译及构建工具编译软件代码、构建执行文件,并将生成编译结果传输给代码编译及构建触发模块;
所述持续集成管理系统的编译结果回馈模块与代码编译及构建触发模块连接,继续将编译结果传输给邮件管理工具,所述邮件管理工具发出编译结果的邮件;
所述编译结果回馈模块将编译的标志位反馈至测试工具状态解析模块,所述测试工具状态解析模块判断成功标志位的有效性,进一步与测试管理系统及测试执行及自动化工具链连接,用于进行软件静态分析、单元分析、集成分析和合格性分析;
所述测试执行及自动化工具链与持续集成管理系统的测试结果解析及回馈模块连接反馈分析结果;所述测试结果解析及回馈模块与测试管理系统的测试结果记录模块连接实时记录测试结果,所述测试结果记录模块与测试状态实时显示模块连接将测试结果进行实时显示;
所述测试管理系统还建立有发现项记录模块,所述测试结果解析及回馈模块接受到测试失败的结果,调用发现项记录模块,所述发现项记录模块建立发现项任务,记录测试过程未通过相关信息;所述测试结果解析及回馈模块接受到测试成功的结果,调用邮件管理工具发送测试结果的邮件。
进一步的,所述测试管理系统还设置有测试工具管理模块,所述测试工具管理模块检测静态代码分析工具、软件单元测试执行及自动测试工具、软件集成测试执行及自动测试工具、软件合格性测试执行及自动测试工具的可用性。
进一步的,所述持续集成管理系统还包括静态代码分析触发及工具调用模块、软件单元测试触发及测试脚本调用模块、软件集成测试触发及测试脚本调用模块、软件合格性测试触发及测试脚本调用模块;
所述静态分析为静态代码分析触发及工具调用模块与代码编译及构建触发模块连接获取变更的代码模块,所述测试管理系统设置有静态代码分析工具,所述静态代码分析触发及工具与静态代码分析工具连接进行静态代码分析;
所述单元分析为软件单元测试触发及测试脚本调用模块与代码编译及构建触发模块连接获取变更的代码模块,所述测试管理系统设置有软件单元测试计划及测试脚本调用模块,所述软件单元测试计划及测试脚本调用模块调用与变更代码模块对应的测试脚本,所述测试执行及自动化工具链设置有软件单元测试执行及自动测试工具,所述软件单元测试执行及自动测试工具启动软件单元测试;
所述集成分析为测试参数解析模块解析从软件需求及软件架构管理工具中获取软件架构间依赖关系、软件架构与代码模块对应关系、软件架构与集成测试脚本对应关系信息,对获取的信息进行解析,得到需执行的软件集成测试脚本信息;
所述软件集成测试触发模块及测试脚本调用模块与测试参数解析模块连接获得需执行的测试脚本信息及集成测试工具状态信息,并与代码编译及构建触发模块连接获取执行文件,所述测试管理系统设置软件集成测试计划及测试脚本调用模块调用软件集成测试脚本,所述测试执行及自动化工具链设置有软件集成测试执行及自动测试工具进行软件集成测试;
所述合格性分析为测试参数解析模块解析从软件需求及软件架构管理工具中获取软件需求间依赖关系、软件需求与代码模块对应关系、软件需求与合格性测试脚本对应关系信息,对获取的信息进行解析,得到需执行的测试脚本信息;
所述软件合格性测试触发及测试脚本调用模块与测试参数解析模块连接获得需执行的测试脚本信息及合格性测试工具状态信息,并与代码编译及构建触发模块连接获取执行文件,所述测试管理系统设置软件合格性测试计划及测试脚本调用模块,所述软件合格性测试计划及测试脚本调用模块调用软件合格性测试脚本,所述测试执行及自动化工具链设置有软件合格性测试执行及自动测试工具进行软件合格性测试。
另一方面,一种汽车电子软件持续集成及自动测试方法,包括如下步骤:
S1、准备,定义软件需求、设计软件架构,编写软件代码并制定软件单元测试脚本、软件集成测试脚本、软件合格性测试脚本,将代码上传到软件代码管理工具获取变更标志位;
S2、代码编译,检测变更标志位有效性后,变更标志位无效进行周期性检查,变更标志位有效对代码进行编译并获得编译结果,解析编译结果,编译失败进行代码变更,编译成功跳转至测试工具状态解析模块;
S3、静态代码分析,编译成功标志位检测,检测无效进行周期性检查,检测有效则进行静态代码分析,静态代码分析中,分析不通过进行代码变更,通过进入测试工具状态解析模块准备软件单元测试;
S4、软件单元测试,静态代码分析成功标志位检测,无效进行周期性检测,有效通过软件单元测试脚本,进行软件单元测试,测试通过将软件单元测试成功标志位反馈至测试工具状态解析模块准备软件集成测试,测试未通过,进行代码变更;
S5、软件集成测试,软件单元测试成功标志位检测,无效进行周期性检测,有效通过软件集成测试脚本,进行软件集成测试,测试通过将软件单元测试成功标志位反馈至测试工具状态解析模块准备软件合格性测试,测试未通过,进行代码变更;
S6、软件合格性测试,静态代码分析成功标志位检测,无效进行周期性检测,有效通过软件合格性测试脚本,进行软件合格性测试,测试通过发送将软件合格性测试通过邮件,测试未通过,进行代码变更。
进一步的,所述步骤S1准备具体过程如下:
S101、软件开发人员进行软件需求分析及软件架构设计,并在软件需求及软件架构管理工具中记录软件需求、软件需求间的依赖关系、软件架构、软件架构间依赖关系、软件架构与代码模块对应关系、软件需求与代码模块对应关系;
S102、软件开发人员编写软件代码;软件测试人员在测试管理系统中制定软件单元测试计划及软件单元自动测试脚本、软件集成测试计划及软件集成自动测试脚本、软件合格性测试计划及软件合格性自动测试脚本,并将软件架构与软件集成测试脚本对应关系、软件需求与软件合格性测试脚本对应关系记录到软件需求及软件架构管理工具中;
S103、软件开发人员将软件代码上传到软件代码管理工具,代码上传成功后,软件代码管理工具将代码变更标志位发送给代码变更检测模块。
进一步的,所述S2代码编译过程如下:
S201、代码变更检测模块进行代码变更标志位进行检测;
若代码变更标志位无效,则持续进行代码变更标志位周期性检测;
若变更标志位有效,代码变更检测模块将代码变更检查结果反馈给代码编译及构建触发模块,代码编译及构建触发模块从软件代码管理工具获取软件代码,并触发代码编译及构建工具完成代码编译及执行文件生成;所述执行文件用于后期软件集成测试和软件合格性测试;
S202、代码编译及构建触发模块从代码编译及构建工具中读取编译结果,并对编译结果进行解析,同时将解析结果反馈给编译结果回馈模块;
若编译失败,编译结果回馈模块调用邮件管理工具将编译失败信息发送给软件开发人员;同时,编译结果回馈模块将编译失败标志位反馈至测试工具状态解析模块;软件开发人员收到编译失败邮件后查找原因,进行代码变更;
若编译成功,编译结果回馈模块调用邮件管理工具将编译成功信息发送给软件开发人员;同时,编译结果回馈模块将编译成功标志位反馈至测试工具状态解析模块。
进一步的,所述步骤S3静态代码分析具体过程如下:
S301、测试工具状态解析模块进行编译成功标志位检测;
若编译成功标志位无效,则持续进行编译成功标志位周期性检测;
若编译成功标志位有效,测试工具状态解析模块解析测试工具管理模块中静态代码分析工具状态信息,分析当前静态代码分析工具是否可用;若当前工具不可用,则对静态代码分析工具进行周期性解析;
S302、静态代码分析触发及工具调用模块从测试工具状态解析模块获取静态代码分析工具是否可用信息,若工具可用,静态代码分析触发及工具调用模块从代码编译及构建触发模块获取变更的代码模块,并调用静态代码分析工具进行静态代码分析;
S303、静态代码分析完毕后,静态代码分析工具自动生成静态代码分析报告;测试结果解析及回馈模块根据预先设定的度量标准对静态代码分析报告进一步解析,若在度量标准范围内,则静态代码分析通过,反之,静态代码分析不通过;
S304、若静态代码分析未通过,测试结果解析及回馈模块调用发现项记录模块进行发现项任务的创建;同时,测试结果解析及回馈模块调用邮件管理工具将静态代码分析失败信息发送给软件开发人员;同时,测试结果解析及回馈模块将静态代码分析失败标志位反馈至测试工具状态解析模块;软件开发人员收到静态代码分析失败邮件后查找原因,进行代码变更;
若静态代码分析通过,测试结果解析及回馈模块调用邮件管理工具将静态代码分析通过信息发送给软件开发人员;同时,测试结果解析及回馈模块将静态代码分析成功标志位反馈至测试工具状态解析模块。
进一步的,所述步骤S4软件单元测试具体过程如下:
S401、测试工具状态解析模块进行静态代码分析成功标志位检测,若静态代码分析成功标志位无效,则持续进行静态代码分析成功标志位周期性检测;
若静态代码分析成功标志位有效,测试工具状态解析模块解析测试工具管理模块中软件单元测试执行及自动测试工具状态信息,分析当前软件单元测试执行及自动测试工具是否可用;若当前工具不可用,则对软件单元测试执行及自动测试工具进行周期性解析;
S402、软件单元测试触发及测试脚本调用模块从测试工具状态解析模块获取软件单元测试执行及自动测试工具是否可用信息,若工具可用,软件单元测试触发及测试脚本调用模块从代码编译及构建触发模块获取变更的代码模块,并从软件单元测试计划及测试脚本调用模块中调用变更代码模块对应的测试脚本,启动软件单元测试;
S403、软件单元测试执行完毕后,软件单元测试执行及自动测试工具自动生成软件单元测试报告;测试结果解析及回馈模块对软件单元测试报告进一步解析,并将测试结果反馈到测试结果记录模块,自动创建测试结果与软件单元测试脚本之间的双向追溯性;
S404、若软件单元测试未通过,测试结果解析及回馈模块调用发现项记录模块进行单元测试发现项任务的创建,记录软件单元测试过程未通过的软件单元测试脚本;同时,测试结果解析及回馈模块调用邮件管理工具将软件单元测试失败信息发送给软件开发人员;同时,测试结果解析及回馈模块将软件单元测试失败标志位反馈至测试工具状态解析模块;软件开发人员收到软件单元测试失败邮件后查找原因,进行代码变更;
若软件单元测试通过,测试结果解析及回馈模块调用邮件管理工具将软件单元测试通过信息发送给软件开发人员;同时,测试结果解析及回馈模块将软件单元测试成功标志位反馈至测试工具状态解析模块。
进一步的,所述步骤S5软件集成测试具体过程如下:
S501、测试工具状态解析模块进行软件单元测试成功标志位检测;
若软件单元测试成功标志位无效,则持续进行软件单元测试成功标志位周期性检测;
若软件单元测试成功标志位有效,测试工具状态解析模块解析测试工具管理模块中软件集成测试执行及自动测试工具状态信息,分析当前软件集成测试执行及自动测试工具是否可用;若当前工具不可用,则对软件集成测试执行及自动测试工具进行周期性解析;若工具可用,将工具可用状态传递给软件集成测试计划及测试脚本调用模块;
S502、测试参数解析模块解析从软件需求及软件架构管理工具中获取软件架构间依赖关系、软件架构与代码模块对应关系、软件架构与集成测试脚本对应关系信息,对获取的信息进行解析,得到需执行的软件集成测试脚本信息;
S503、软件集成测试触发模块及测试脚本调用模块根据需执行的测试脚本信息及集成测试工具可用状态信息,从代码编译及构建触发模块获取执行文件,并从软件集成测试计划及测试脚本调用模块中调用变更代码模块对应的软件集成测试脚本,启动软件集成测试;
S504、软件集成测试执行完毕后,软件集成测试执行及自动测试工具自动生成软件集成测试报告;测试结果解析及回馈模块对软件集成测试报告进一步解析,并将测试结果反馈到测试结果记录模块,自动创建测试结果与测试脚本之间的双向追溯性;
S505、若软件集成测试未通过,测试结果解析及回馈模块调用发现项记录模块进行软件集成测试发现项任务的创建,记录软件集成测试过程未通过的测试脚本;同时,测试结果解析及回馈模块调用邮件管理工具将软件集成测试失败信息发送给软件开发人员;同时,编译结果回馈模块将软件集成测试失败标志位反馈至测试工具状态解析模块;软件开发人员收到软件集成测试失败邮件后查找原因,进行代码变更;
若软件集成测试通过,测试结果解析及回馈模块调用邮件管理工具将软件集成测试通过信息发送给软件开发人员;同时,测试结果解析及回馈模块将软件集成测试成功标志位反馈至测试工具状态解析模块。
进一步的,所述步骤S6软件合格性测试具体过程如下:
S601、测试工具状态解析模块进行软件集成测试成功标志位检测;
若软件集成测试成功标志位无效,则持续进行软件集成测试成功标志位周期性检测;
若软件集成测试成功标志位有效,测试工具状态解析模块解析测试工具管理模块中软件合格性测试执行及自动测试工具状态信息,分析当前软件合格性测试执行及自动测试工具是否可用;若当前工具不可用,则对软件合格性测试执行及自动测试工具进行周期性解析;若工具可用,将工具可用状态传递给软件合格性测试计划及测试脚本调用模块;
S602、测试参数解析模块解析从软件需求及软件架构管理工具中获取软件需求间依赖关系、软件需求与代码模块对应关系、软件需求与合格性测试脚本对应关系信息,对获取的信息进行解析,得到需执行的测试脚本信息;
S603、软件合格性测试触发及测试脚本调用模块根据需执行的测试脚本信息及合格性测试工具可用状态信息,从代码编译及构建触发模块获取执行文件,并从软件合格性测试计划及测试脚本调用模块中调用变更代码模块对应的软件合格性测试脚本,启动软件合格性测试;
S604、软件合格性测试执行完毕后,软件合格性测试执行及自动测试工具自动生成软件合格性测试报告;测试结果解析及回馈模块对软件合格性测试报告进一步解析,并将测试结果反馈到测试结果记录模块,自动创建测试结果与测试脚本之间的双向追溯性;
S605、若软件合格性测试未通过,测试结果解析及回馈模块调用发现项记录模块进行合格性测试发现项任务的创建,记录软件合格性测试过程未通过的测试脚本;同时,测试结果解析及回馈模块调用邮件管理工具将软件合格性测试失败信息发送给软件开发人员;软件开发人员收到软件合格性测试失败邮件后查找原因,进行代码变更;
若软件合格性测试通过,测试结果解析及回馈模块调用邮件管理工具将软件合格性测试通过信息发送给软件开发人员。
相对于现有技术,本发明所述的一种汽车电子软件持续集成及自动测试方法具有以下有益效果:
(1)本发明所述的一种汽车电子软件持续集成及自动测试方法打通持续集成管理系统、软件代码管理工具、软件需求及架构管理工具、软件编译及构建工具、测试执行及自动化工具、测试管理系统、邮件管理工具之间的关联,搭建汽车电子软件持续集成系统,实现汽车电子软件测试的全流程自动化测试及测试驱动开发,提高软件测试执行、测试结果分析和测试管理的效率及质量,提高产品质量;
(2)本发明所述的软件集成测试和合格性测试执行完毕后,软件集成测试执行及自动测试工具自动生成软件集成测试报告,软件合格性测试执行及自动测试工具自动生成软件合格性测试报告;测试结果解析及回馈模块对软件合格性测试报告进一步解析,并将测试结果反馈到测试结果记录模块,自动创建测试结果与测试脚本之间的双向追溯性;对软件测试参数进行解析,实现软件集成测试回归测试脚本及软件合格性测试回归测试脚本的自动筛选,保证了回归测试案例筛选的客观性;
(3)本发明所述的一种汽车电子软件持续集成及自动测试方法会对测试工具的状态进行解析,只要测试工具空闲即可启动软件测试验证,避免测试资源的浪费;
(4)本发明所述的代码编译、静态代码分析、软件单元测试、软件集成测试、软件合格性测试的测试结果均通过工具状态解析模块,并及时调用邮件将问题点发送给软件设计人员进行调整和修改,测试结果自动反馈到测试管理系统,并自动建立测试结果与测试案例的追溯关系,避免人为操作可能引入的错误,提高测试效率的同时保证测试质量。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例所述的一种汽车电子软件持续集成及自动测试方法整体结构示意图;
图2为本发明实施例所述的一种汽车电子软件持续集成及自动测试方法整体流程图;
图3为本发明实施例所述的一种汽车电子软件持续集成及自动测试方法的准备阶段流程图;
图4为本发明实施例所述的一种汽车电子软件持续集成及自动测试方法的代码编译流程图;
图5为本发明实施例所述的一种汽车电子软件持续集成及自动测试方法的静态代码分析流程图;
图6为本发明实施例所述的一种汽车电子软件持续集成及自动测试方法的软件单元测试流程图;
图7为本发明实施例所述的一种汽车电子软件持续集成及自动测试方法的软件集成测试流程图;
图8为本发明实施例所述的一种汽车电子软件持续集成及自动测试方法的软件合格性测试流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。
下面将参考附图并结合实施例来详细说明本发明。
如图1-图8所示,一方面,一种汽车电子软件持续集成及自动测试系统,包括软件代码管理工具、代码编译及构建工具、软件需求及软件架构管理工具、邮件管理工具、持续集成管理系统、测试管理系统、测试执行及自动化工具链;
所述持续集成管理系统包括代码变更检测模块、代码编译及构建触发模块、编译结果回馈模块、测试参数解析模块、测试工具状态解析模块、测试结果解析及回馈模块;
所述软件需求及软件架构管理工具用于存储软件需求、软件架构、软件需求间依赖关系、软件架构间依赖关系、软件需求与代码模块对应关系、软件架构与代码模块对应关系、软件需求与合格性测试脚本对应关系、软件架构与集成测试脚本对应关系信息,并与持续集成管理系统的测试参数解析模块连接,所述测试参数解析模块从软件需求及软件架构管理工具中获取相关信息进行解析,得到需执行的测试脚本信息;
所述软件代码管理工具与持续集成管理系统的代码变更检测模块连接发送生成代码变更标志位及记录变更;所述代码变更检测模块与代码编译及构建触发模块连接发送变更位的检测结果;
所述代码编译及构建工具与持续集成管理系统的代码编译及构建触发模块连接,所述代码编译及构建工具编译软件代码、构建执行文件,并将生成编译结果传输给代码编译及构建触发模块;
所述持续集成管理系统的编译结果回馈模块与代码编译及构建触发模块连接,继续将编译结果传输给邮件管理工具,所述邮件管理工具发出编译结果的邮件;
所述编译结果回馈模块将编译的标志位反馈至测试工具状态解析模块,所述测试工具状态解析模块判断成功标志位的有效性,进一步与测试管理系统及测试执行及自动化工具链连接,用于进行软件静态分析、单元分析、集成分析和合格性分析;
所述测试执行及自动化工具链与持续集成管理系统的测试结果解析及回馈模块连接反馈分析结果;所述测试结果解析及回馈模块与测试管理系统的测试结果记录模块连接实时记录测试结果,所述测试结果记录模块与测试状态实时显示模块连接将测试结果进行实时显示;
所述测试管理系统还建立有发现项记录模块,所述测试结果解析及回馈模块接受到测试失败的结果,调用发现项记录模块,所述发现项记录模块建立发现项任务,记录测试过程未通过相关信息;所述测试结果解析及回馈模块接受到测试成功的结果,调用邮件管理工具发送测试结果的邮件。
如图1-图8所示,所述测试管理系统还设置有测试工具管理模块,所述测试工具管理模块检测静态代码分析工具、软件单元测试执行及自动测试工具、软件集成测试执行及自动测试工具、软件合格性测试执行及自动测试工具的可用性。
如图1-图8所示,所述持续集成管理系统还包括静态代码分析触发及工具调用模块、软件单元测试触发及测试脚本调用模块、软件集成测试触发及测试脚本调用模块、软件合格性测试触发及测试脚本调用模块;
所述静态分析为静态代码分析触发及工具调用模块与代码编译及构建触发模块连接获取变更的代码模块,所述测试管理系统设置有静态代码分析工具,所述静态代码分析触发及工具与静态代码分析工具连接进行静态代码分析;
所述单元分析为软件单元测试触发及测试脚本调用模块与代码编译及构建触发模块连接获取变更的代码模块,所述测试管理系统设置有软件单元测试计划及测试脚本调用模块,所述软件单元测试计划及测试脚本调用模块调用与变更代码模块对应的测试脚本,所述测试执行及自动化工具链设置有软件单元测试执行及自动测试工具,所述软件单元测试执行及自动测试工具启动软件单元测试;
所述集成分析为测试参数解析模块解析从软件需求及软件架构管理工具中获取软件架构间依赖关系、软件架构与代码模块对应关系、软件架构与集成测试脚本对应关系信息,对获取的信息进行解析,得到需执行的软件集成测试脚本信息;
所述软件集成测试触发模块及测试脚本调用模块与测试参数解析模块连接获得需执行的测试脚本信息及集成测试工具可用状态信息,并与代码编译及构建触发模块连接获取执行文件,所述测试管理系统设置软件集成测试计划及测试脚本调用模块调用软件集成测试脚本,所述测试执行及自动化工具链设置有软件集成测试执行及自动测试工具进行软件集成测试;
所述合格性分析为测试参数解析模块解析从软件需求及软件架构管理工具中获取软件需求间依赖关系、软件需求与代码模块对应关系、软件需求与合格性测试脚本对应关系信息,对获取的信息进行解析,得到需执行的测试脚本信息;
所述软件合格性测试触发及测试脚本调用模块与测试参数解析模块连接获得需执行的测试脚本信息及合格性测试工具可用状态信息,并与代码编译及构建触发模块连接获取执行文件,所述测试管理系统设置软件合格性测试计划及测试脚本调用模块,所述软件合格性测试计划及测试脚本调用模块调用软件合格性测试脚本,所述测试执行及自动化工具链设置有软件合格性测试执行及自动测试工具进行软件合格性测试。
所述软件代码管理工具主要用于软件代码的版本管理、变更记录及代码变更标志位生成;
所述代码编译及构建工具主要用于软件代码的编译、执行文件的构建及编译结果生成;
所述软件需求及软件架构管理工具主要用于软件需求记录、软件需求间的依赖关系记录、软件需求与代码对应关系记录、软件需求与软件合格性测试脚本对应关系记录、软件架构记录、架构间依赖关系记录、软件架构与代码模块对应关系记录、软件架构与软件集成测试脚本对应关系记录。
所述邮件管理工具主要用于邮件发送。
所述持续集成管理系统包括:代码变更检测模块、代码编译及构建触发模块、编译结果回馈模块、测试参数解析模块、测试工具状态解析模块、静态代码分析触发及工具调用模块、软件单元测试触发及测试脚本调用模块、软件集成测试触发及测试脚本调用模块、软件合格性测试触发及测试脚本调用模块、测试结果解析及回馈模块;
所述代码变更检测模块主要用于代码变更标志位的解析并将解析结果传递给代码编译及构建触发模块;所述代码编译及构建触发模块主要用于根据代码变更检测模块的检测结果从软件代码管理工具获取代码、触发代码编译及构建工具的代码编译及构建过程、解析代码编译及构建的结果、编译结果反馈至编译结果回馈模块;所述编译结果回馈模块主要用于触发邮件管理工具将编译结果发送给软件开发人员;所述工具状态解析模块主要用于解析编译结果回馈模块或测试结果解析及回馈模块反馈的编译结果或测试结果,解析测试管理系统测试工具管理模块中测试工具状态信息,分析当前测试工具是否可用,并将结果反馈给静态代码分析触发及工具调用模块、软件单元测试触发及测试脚本调用模块、软件集成测试触发模块及测试脚本调用模块或软件合格性测试触发及测试脚本调用模块;所述静态代码分析触发及工具调用模块主要用于调用静态代码分析工具并触发变更代码的静态代码分析过程;所述软件单元测试触发及测试脚本调用模块主要用于从测试管理系统中调用软件单元测试脚本;所述测试参数解析模块主要用于解析软件需求及软件架构管理工具中的数据并得到所需执行的集成测试回归测试脚本、集成测试变更测试脚本、合格性测试回归测试脚本、合格性测试变更测试脚本;所述软件集成测试触发及测试脚本调用模块主要用于根据测试参数解析模块的集成测试参数解析结果从测试管理系统调用软件集成测试脚本;所述软件合格性测试触发及测试脚本调用模块主要用于根据测试参数解析模块的合格性测试参数解析结果从测试管理系统调用软件合格性测试脚本;所述测试结果解析及反馈模块主要用于解析测试执行及自动化工具链生成的测试结果、将测试结果反馈到测试管理系统、对于未执行通过的测试脚本触发测试管理系统中发现项任务的创建、统计测试结果并触发邮件管理系统将测试统计结果通过邮件发送给项目组成员。
所述测试管理系统包括软件单元测试计划及测试脚本管理模块、软件集成测试计划及测试脚本管理模块、软件合格性测试计划及测试脚本管理模块、测试工具管理模块、软件状态实时显示模块、测试结果记录模块、发现项记录模块;
所述软件单元测试计划及测试脚本管理模块主要用于软件单元测试计划及软件单元测试脚本的管理;所述软件集成测试计划及测试脚本管理模块主要用于软件集成测试计划及软件集成测试脚本的管理;所述软件合格性测试计划及测试脚本管理模块主要用于软件合格性测试计划及软件合格性测试脚本的管理;所述测试工具管理模块主要用于测试工具预定、测试工具使用状态监管;所述发现项记录模块主要用于记录软件测试过程未通过的测试脚本,便于后续测试问题修复的跟踪;所述测试结果记录模块主要用于记录软件静态代码分析结果、软件单元测试结果、软件集成测试结果、软件合格性测试结果;所述测试状态实时显示模块主要用于根据测试结果实时显示已执行的测试脚本数量、通过的测试脚本数量、测试执行率、测试通过率。
所述的测试执行及自动化工具链包括静态代码分析工具、软件单元测试执行及自动测试工具、软件集成测试执行及自动测试工具、软件合格性测试执行及自动测试工具;
所述静态代码分析工具主要用于软件静态代码分析并自动生成分析报告;所述软件单元测试执行及自动测试工具主要用于软件单元自动化测试执行、自动生成单元测试报告;所述软件集成测试执行及自动测试工具主要用于软件集成自动化测试执行、自动生成集成测试报告;所述软件合格性测试执行及自动测试工具主要用于软件合格性自动化测试执行、自动生成合格性测试报告。
如图1-图8所示,另一方面,一所述的汽车电子软件持续集成及自动测试系统的测试方法,包括如下步骤:
S1、准备,定义软件需求、设计软件架构,编写软件代码并制定软件单元测试脚本、软件集成测试脚本、软件合格性测试脚本,将代码上传到软件代码管理工具获取变更标志位;
S2、代码编译,检测变更标志位有效性后,变更标志位无效进行周期性检查,变更标志位有效对代码进行编译并获得编译结果,解析编译结果,编译失败进行代码变更,编译成功跳转至测试工具状态解析模块;
S3、静态代码分析,编译成功标志位检测,检测无效进行周期性检查,检测有效则进行静态代码分析,静态代码分析中,分析不通过进行代码变更,通过进入测试工具状态解析模块准备软件单元测试;
S4、软件单元测试,静态代码分析成功标志位检测,无效进行周期性检测,有效通过软件单元测试脚本,进行软件单元测试,测试通过将软件单元测试成功标志位反馈至测试工具状态解析模块准备软件集成测试,测试未通过,进行代码变更;
S5、软件集成测试,软件单元测试成功标志位检测,无效进行周期性检测,有效通过软件集成测试脚本,进行软件集成测试,测试通过将软件单元测试成功标志位反馈至测试工具状态解析模块准备软件合格性测试,测试未通过,进行代码变更;
S6、软件合格性测试,静态代码分析成功标志位检测,无效进行周期性检测,有效通过软件合格性测试脚本,进行软件合格性测试,测试通过发送将软件合格性测试通过邮件,测试未通过,进行代码变更。
如图3所示,所述步骤S1准备过程如下:
S101、软件开发人员进行软件需求分析及软件架构设计,并在软件需求及软件架构管理工具中记录软件需求、软件需求间的依赖关系、软件架构、软件架构间依赖关系、软件架构与代码模块对应关系、软件需求与代码模块对应关系;
S102、软件开发人员编写软件代码;软件测试人员在测试管理系统中制定软件单元测试计划及软件单元自动测试脚本、软件集成测试计划及软件集成自动测试脚本、软件合格性测试计划及软件合格性自动测试脚本,并将软件架构与软件集成测试脚本对应关系、软件需求与软件合格性测试脚本对应关系记录到软件需求及软件架构管理工具中;
S103、软件开发人员将软件代码上传到软件代码管理工具,代码上传成功后,软件代码管理工具将代码变更标志位发送给代码变更检测模块。
测试结果自动反馈到测试管理系统,并自动建立测试结果与测试案例的追溯关系,避免人为操作可能引入的错误,提高测试效率的同时保证测试质量。
如图4所示,所述S2代码编译过程如下:
S201、代码变更检测模块进行代码变更标志位进行检测;
若代码变更标志位无效,则持续进行代码变更标志位周期性检测;
若变更标志位有效,代码变更检测模块将代码变更检查结果反馈给代码编译及构建触发模块,代码编译及构建触发模块从软件代码管理工具获取软件代码,并触发代码编译及构建工具完成代码编译及执行文件生成;所述执行文件用于后期软件集成测试和软件合格性测试;
S202、代码编译及构建触发模块从代码编译及构建工具中读取编译结果,并对编译结果进行解析,同时将解析结果反馈给编译结果回馈模块;
若编译失败,编译结果回馈模块调用邮件管理工具将编译失败信息发送给软件开发人员;同时,编译结果回馈模块将编译失败标志位反馈至测试工具状态解析模块;软件开发人员收到编译失败邮件后查找原因,进行代码变更;
若编译成功,编译结果回馈模块调用邮件管理工具将编译成功信息发送给软件开发人员;同时,编译结果回馈模块将编译成功标志位反馈至测试工具状态解析模块。
如图5所示,所述S3静态代码分析过程如下:
S301、测试工具状态解析模块进行编译成功标志位检测;
若编译成功标志位无效,则持续进行编译成功标志位周期性检测;
若编译成功标志位有效,测试工具状态解析模块解析测试工具管理模块中静态代码分析工具状态信息,分析当前静态代码分析工具是否可用;若当前工具不可用,则对静态代码分析工具进行周期性解析;
S302、静态代码分析触发及工具调用模块从测试工具状态解析模块获取静态代码分析工具是否可用信息,若工具可用,静态代码分析触发及工具调用模块从代码编译及构建触发模块获取变更的代码模块,并调用静态代码分析工具进行静态代码分析;
S303、静态代码分析完毕后,静态代码分析工具自动生成静态代码分析报告;测试结果解析及回馈模块根据预先设定的度量标准对静态代码分析报告进一步解析,若在度量标准范围内,则静态代码分析通过,反之,静态代码分析不通过;
S304、若静态代码分析未通过,测试结果解析及回馈模块调用发现项记录模块进行发现项任务的创建;同时,测试结果解析及回馈模块调用邮件管理工具将静态代码分析失败信息发送给软件开发人员;同时,测试结果解析及回馈模块将静态代码分析失败标志位反馈至测试工具状态解析模块;软件开发人员收到静态代码分析失败邮件后查找原因,进行代码变更;
若静态代码分析通过,测试结果解析及回馈模块调用邮件管理工具将静态代码分析通过信息发送给软件开发人员;同时,测试结果解析及回馈模块将静态代码分析成功标志位反馈至测试工具状态解析模块。
如图6所示,所述S4软件单元测试过程如下:
S401、测试工具状态解析模块进行静态代码分析成功标志位检测,若静态代码分析成功标志位无效,则持续进行静态代码分析成功标志位周期性检测;
若静态代码分析成功标志位有效,测试工具状态解析模块解析测试工具管理模块中软件单元测试执行及自动测试工具状态信息,分析当前软件单元测试执行及自动测试工具是否可用;若当前工具不可用,则对软件单元测试执行及自动测试工具进行周期性解析;
S402、软件单元测试触发及测试脚本调用模块从测试工具状态解析模块获取软件单元测试执行及自动测试工具是否可用信息,若工具可用,软件单元测试触发及测试脚本调用模块从代码编译及构建触发模块获取变更的代码模块,并从软件单元测试计划及测试脚本调用模块中调用变更代码模块对应的测试脚本,启动软件单元测试;
S403、软件单元测试执行完毕后,软件单元测试执行及自动测试工具自动生成软件单元测试报告;测试结果解析及回馈模块对软件单元测试报告进一步解析,并将测试结果反馈到测试结果记录模块,自动创建测试结果与软件单元测试脚本之间的双向追溯性;
S404、若软件单元测试未通过,测试结果解析及回馈模块调用发现项记录模块进行单元测试发现项任务的创建,记录软件单元测试过程未通过的软件单元测试脚本;同时,测试结果解析及回馈模块调用邮件管理工具将软件单元测试失败信息发送给软件开发人员;同时,测试结果解析及回馈模块将软件单元测试失败标志位反馈至测试工具状态解析模块;软件开发人员收到软件单元测试失败邮件后查找原因,进行代码变更;
若软件单元测试通过,测试结果解析及回馈模块调用邮件管理工具将软件单元测试通过信息发送给软件开发人员;同时,测试结果解析及回馈模块将软件单元测试成功标志位反馈至测试工具状态解析模块。
如图7所示,所述S5软件集成测试过程如下:
S501、测试工具状态解析模块进行软件单元测试成功标志位检测;
若软件单元测试成功标志位无效,则持续进行软件单元测试成功标志位周期性检测;
若软件单元测试成功标志位有效,测试工具状态解析模块解析测试工具管理模块中软件集成测试执行及自动测试工具状态信息,分析当前软件集成测试执行及自动测试工具是否可用;若当前工具不可用,则对软件集成测试执行及自动测试工具进行周期性解析;若工具可用,将工具可用状态传递给软件集成测试计划及测试脚本调用模块;
S502、测试参数解析模块解析从软件需求及软件架构管理工具中获取软件架构间依赖关系、软件架构与代码模块对应关系、软件架构与集成测试脚本对应关系信息,对获取的信息进行解析,得到需执行的软件集成测试脚本信息;
S503、软件集成测试触发模块及测试脚本调用模块根据需执行的测试脚本信息及集成测试工具可用状态信息,从代码编译及构建触发模块获取执行文件,并从软件集成测试计划及测试脚本调用模块中调用变更代码模块对应的软件集成测试脚本,启动软件集成测试;
S504、软件集成测试执行完毕后,软件集成测试执行及自动测试工具自动生成软件集成测试报告;测试结果解析及回馈模块对软件集成测试报告进一步解析,并将测试结果反馈到测试结果记录模块,自动创建测试结果与测试脚本之间的双向追溯性;
S505、若软件集成测试未通过,测试结果解析及回馈模块调用发现项记录模块进行软件集成测试发现项任务的创建,记录软件集成测试过程未通过的测试脚本;同时,测试结果解析及回馈模块调用邮件管理工具将软件集成测试失败信息发送给软件开发人员;同时,编译结果回馈模块将软件集成测试失败标志位反馈至测试工具状态解析模块;软件开发人员收到软件集成测试失败邮件后查找原因,进行代码变更;
若软件集成测试通过,测试结果解析及回馈模块调用邮件管理工具将软件集成测试通过信息发送给软件开发人员;同时,测试结果解析及回馈模块将软件集成测试成功标志位反馈至测试工具状态解析模块。
如图8所示,所述S6软件合格性测试过程如下:
S601、测试工具状态解析模块进行软件集成测试成功标志位检测;
若软件集成测试成功标志位无效,则持续进行软件集成测试成功标志位周期性检测;
若软件集成测试成功标志位有效,测试工具状态解析模块解析测试工具管理模块中软件合格性测试执行及自动测试工具状态信息,分析当前软件合格性测试执行及自动测试工具是否可用;若当前工具不可用,则对软件合格性测试执行及自动测试工具进行周期性解析;若工具可用,将工具可用状态传递给软件合格性测试计划及测试脚本调用模块;
S602、测试参数解析模块解析从软件需求及软件架构管理工具中获取软件需求间依赖关系、软件需求与代码模块对应关系、软件需求与合格性测试脚本对应关系信息,对获取的信息进行解析,得到需执行的测试脚本信息;
S603、软件合格性测试触发及测试脚本调用模块根据需执行的测试脚本信息及合格性测试工具可用状态信息,从代码编译及构建触发模块获取执行文件,并从软件合格性测试计划及测试脚本调用模块中调用变更代码模块对应的软件合格性测试脚本,启动软件合格性测试;
S604、软件合格性测试执行完毕后,软件合格性测试执行及自动测试工具自动生成软件合格性测试报告;测试结果解析及回馈模块对软件合格性测试报告进一步解析,并将测试结果反馈到测试结果记录模块,自动创建测试结果与测试脚本之间的双向追溯性;
S605、若软件合格性测试未通过,测试结果解析及回馈模块调用发现项记录模块进行合格性测试发现项任务的创建,记录软件合格性测试过程未通过的测试脚本;同时,测试结果解析及回馈模块调用邮件管理工具将软件合格性测试失败信息发送给软件开发人员;软件开发人员收到软件合格性测试失败邮件后查找原因,进行代码变更;
若软件合格性测试通过,测试结果解析及回馈模块调用邮件管理工具将软件合格性测试通过信息发送给软件开发人员。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种汽车电子软件持续集成及自动测试系统,其特征在于:包括软件代码管理工具、代码编译及构建工具、软件需求及软件架构管理工具、邮件管理工具、持续集成管理系统、测试管理系统、测试执行及自动化工具链;
所述持续集成管理系统包括代码变更检测模块、代码编译及构建触发模块、编译结果回馈模块、测试参数解析模块、测试工具状态解析模块、测试结果解析及回馈模块;
所述软件需求及软件架构管理工具用于存储软件需求、软件架构、软件需求间依赖关系、软件架构间依赖关系、软件需求与代码模块对应关系、软件架构与代码模块对应关系、软件需求与合格性测试脚本对应关系、软件架构与集成测试脚本对应关系信息,并与持续集成管理系统的测试参数解析模块连接,所述测试参数解析模块从软件需求及软件架构管理工具中获取相关信息进行解析,得到需执行的测试脚本信息;
所述软件代码管理工具与持续集成管理系统的代码变更检测模块连接发送生成代码变更标志位及记录变更;所述代码变更检测模块与代码编译及构建触发模块连接发送变更位的检测结果;
所述代码编译及构建工具与持续集成管理系统的代码编译及构建触发模块连接,所述代码编译及构建工具编译软件代码、构建执行文件,并将生成编译结果传输给代码编译及构建触发模块;
所述持续集成管理系统的编译结果回馈模块与代码编译及构建触发模块连接,继续将编译结果传输给邮件管理工具,所述邮件管理工具可发出编译结果的邮件;
所述编译结果回馈模块将编译的标志位反馈至测试工具状态解析模块,所述测试工具状态解析模块判断成功标志位的有效性,进一步与测试管理系统及测试执行及自动化工具链连接,用于进行软件静态分析、单元分析、集成分析和合格性分析;
所述测试执行及自动化工具链与持续集成管理系统的测试结果解析及回馈模块连接反馈分析结果;所述测试结果解析及回馈模块与测试管理系统的测试结果记录模块连接实时记录测试结果,所述测试结果记录模块与测试状态实时显示模块连接将测试结果进行实时显示;
所述测试管理系统还建立有发现项记录模块,所述测试结果解析及回馈模块接受到测试失败的结果后,调用发现项记录模块,所述发现项记录模块建立发现项任务,记录测试过程未通过相关信息;所述测试结果解析及回馈模块接受到测试成功的结果,并调用邮件管理工具发送测试结果的邮件。
2.根据权利要求1所述的一种汽车电子软件持续集成及自动测试系统,其特征在于:所述测试管理系统还设置有测试工具管理模块,所述测试工具管理模块检测静态代码分析工具、软件单元测试执行及自动测试工具、软件集成测试执行及自动测试工具、软件合格性测试执行及自动测试工具的可用性。
3.根据权利要求2所述的一种汽车电子软件持续集成及自动测试系统,其特征在于:所述持续集成管理系统还包括静态代码分析触发及工具调用模块、软件单元测试触发及测试脚本调用模块、软件集成测试触发及测试脚本调用模块、软件合格性测试触发及测试脚本调用模块;
所述静态分析为静态代码分析触发及工具调用模块与代码编译及构建触发模块连接获取变更的代码模块,所述测试管理系统设置有静态代码分析工具,所述静态代码分析触发及工具与静态代码分析工具连接进行静态代码分析;
所述单元分析为软件单元测试触发及测试脚本调用模块与代码编译及构建触发模块连接获取变更的代码模块,所述测试管理系统设置有软件单元测试计划及测试脚本调用模块,所述软件单元测试计划及测试脚本调用模块调用与变更代码模块对应的测试脚本,所述测试执行及自动化工具链设置有软件单元测试执行及自动测试工具,所述软件单元测试执行及自动测试工具启动软件单元测试;
所述集成分析为测试参数解析模块解析从软件需求及软件架构管理工具中获取软件架构间依赖关系、软件架构与代码模块对应关系、软件架构与集成测试脚本对应关系信息,对获取的信息进行解析,得到需执行的软件集成测试脚本信息;
所述软件集成测试触发模块及测试脚本调用模块与测试参数解析模块连接获得需执行的测试脚本信息及集成测试工具状态信息,并与代码编译及构建触发模块连接获取执行文件,所述测试管理系统设置软件集成测试计划及测试脚本调用模块调用软件集成测试脚本,所述测试执行及自动化工具链设置有软件集成测试执行及自动测试工具进行软件集成测试;
所述合格性分析为测试参数解析模块解析从软件需求及软件架构管理工具中获取软件需求间依赖关系、软件需求与代码模块对应关系、软件需求与合格性测试脚本对应关系信息,对获取的信息进行解析,得到需执行的测试脚本信息;
所述软件合格性测试触发及测试脚本调用模块与测试参数解析模块连接获得需执行的测试脚本信息及合格性测试工具状态信息,并与代码编译及构建触发模块连接获取执行文件,所述测试管理系统设置软件合格性测试计划及测试脚本调用模块,所述软件合格性测试计划及测试脚本调用模块调用软件合格性测试脚本,所述测试执行及自动化工具链设置有软件合格性测试执行及自动测试工具进行软件合格性测试。
4.基于权利要求1-3任一所述的一种汽车电子软件持续集成及自动测试系统的测试方法,其特征在于:包括如下步骤:
S1、准备,定义软件需求、设计软件架构,编写软件代码并制定软件单元测试脚本、软件集成测试脚本、软件合格性测试脚本,将代码上传到软件代码管理工具获取变更标志位;
S2、代码编译,检测变更标志位有效性后,变更标志位无效进行周期性检查,变更标志位有效对代码进行编译并获得编译结果,解析编译结果,编译失败进行代码变更,编译成功跳转至测试工具状态解析模块;
S3、静态代码分析,编译成功标志位检测,检测无效进行周期性检查,检测有效则进行静态代码分析,静态代码分析中,分析不通过进行代码变更,通过进入测试工具状态解析模块准备软件单元测试;
S4、软件单元测试,静态代码分析成功标志位检测,无效进行周期性检测,有效通过软件单元测试脚本,进行软件单元测试,测试通过将软件单元测试成功标志位反馈至测试工具状态解析模块准备软件集成测试,测试未通过,进行代码变更;
S5、软件集成测试,软件单元测试成功标志位检测,无效进行周期性检测,有效通过软件集成测试脚本,进行软件集成测试,测试通过将软件单元测试成功标志位反馈至测试工具状态解析模块准备软件合格性测试,测试未通过,进行代码变更;
S6、软件合格性测试,静态代码分析成功标志位检测,无效进行周期性检测,有效通过软件合格性测试脚本,进行软件合格性测试,测试通过发送将软件合格性测试通过邮件,测试未通过,进行代码变更。
5.根据权利要求4所述的一种汽车电子软件持续集成及自动测试方法,其特征在于:所述步骤S1准备过程具体如下:
S101、软件开发人员进行软件需求分析及软件架构设计,并在软件需求及软件架构管理工具中记录软件需求、软件需求间的依赖关系、软件架构、软件架构间依赖关系、软件架构与代码模块对应关系、软件需求与代码模块对应关系;
S102、软件开发人员编写软件代码;软件测试人员在测试管理系统中制定软件单元测试计划及软件单元自动测试脚本、软件集成测试计划及软件集成自动测试脚本、软件合格性测试计划及软件合格性自动测试脚本,并将软件架构与软件集成测试脚本对应关系、软件需求与软件合格性测试脚本对应关系记录到软件需求及软件架构管理工具中;
S103、软件开发人员将软件代码上传到软件代码管理工具,代码上传成功后,软件代码管理工具将代码变更标志位发送给代码变更检测模块。
6.根据权利要求5所述的一种汽车电子软件持续集成及自动测试方法,其特征在于:所述步骤S2代码编译具体过程如下:
S201、代码变更检测模块进行代码变更标志位进行检测;
若代码变更标志位无效,则持续进行代码变更标志位周期性检测;
若变更标志位有效,代码变更检测模块将代码变更检查结果反馈给代码编译及构建触发模块,代码编译及构建触发模块从软件代码管理工具获取软件代码,并触发代码编译及构建工具完成代码编译及执行文件生成;所述执行文件用于后期软件集成测试和软件合格性测试;
S202、代码编译及构建触发模块从代码编译及构建工具中读取编译结果,并对编译结果进行解析,同时将解析结果反馈给编译结果回馈模块;
若编译失败,编译结果回馈模块调用邮件管理工具将编译失败信息发送给软件开发人员;同时,编译结果回馈模块将编译失败标志位反馈至测试工具状态解析模块;软件开发人员收到编译失败邮件后查找原因,进行代码变更;
若编译成功,编译结果回馈模块调用邮件管理工具将编译成功信息发送给软件开发人员;同时,编译结果回馈模块将编译成功标志位反馈至测试工具状态解析模块。
7.根据权利要求6所述的一种汽车电子软件持续集成及自动测试方法,其特征在于:所述步骤S3静态代码分析具体过程如下:
S301、测试工具状态解析模块进行编译成功标志位检测;
若编译成功标志位无效,则持续进行编译成功标志位周期性检测;
若编译成功标志位有效,测试工具状态解析模块解析测试工具管理模块中静态代码分析工具状态信息,分析当前静态代码分析工具是否可用;若当前工具不可用,则对静态代码分析工具进行周期性解析;
S302、静态代码分析触发及工具调用模块从测试工具状态解析模块获取静态代码分析工具是否可用信息,若工具可用,静态代码分析触发及工具调用模块从代码编译及构建触发模块获取变更的代码模块,并调用静态代码分析工具进行静态代码分析;
S303、静态代码分析完毕后,静态代码分析工具自动生成静态代码分析报告;测试结果解析及回馈模块根据预先设定的度量标准对静态代码分析报告进一步解析,若在度量标准范围内,则静态代码分析通过,反之,静态代码分析不通过;
S304、若静态代码分析未通过,测试结果解析及回馈模块调用发现项记录模块进行发现项任务的创建;同时,测试结果解析及回馈模块调用邮件管理工具将静态代码分析失败信息发送给软件开发人员;同时,测试结果解析及回馈模块将静态代码分析失败标志位反馈至测试工具状态解析模块;软件开发人员收到静态代码分析失败邮件后查找原因,进行代码变更;
若静态代码分析通过,测试结果解析及回馈模块调用邮件管理工具将静态代码分析通过信息发送给软件开发人员;同时,测试结果解析及回馈模块将静态代码分析成功标志位反馈至测试工具状态解析模块。
8.根据权利要求7所述的一种汽车电子软件持续集成及自动测试方法,其特征在于:所述步骤S4软件单元测试具体过程如下:
S401、测试工具状态解析模块进行静态代码分析成功标志位检测,若静态代码分析成功标志位无效,则持续进行静态代码分析成功标志位周期性检测;
若静态代码分析成功标志位有效,测试工具状态解析模块解析测试工具管理模块中软件单元测试执行及自动测试工具状态信息,分析当前软件单元测试执行及自动测试工具是否可用;若当前工具不可用,则对软件单元测试执行及自动测试工具进行周期性解析;
S402、软件单元测试触发及测试脚本调用模块从测试工具状态解析模块获取软件单元测试执行及自动测试工具是否可用信息,若工具可用,软件单元测试触发及测试脚本调用模块从代码编译及构建触发模块获取变更的代码模块,并从软件单元测试计划及测试脚本调用模块中调用变更代码模块对应的测试脚本,启动软件单元测试;
S403、软件单元测试执行完毕后,软件单元测试执行及自动测试工具自动生成软件单元测试报告;测试结果解析及回馈模块对软件单元测试报告进一步解析,并将测试结果反馈到测试结果记录模块,自动创建测试结果与软件单元测试脚本之间的双向追溯性;
S404、若软件单元测试未通过,测试结果解析及回馈模块调用发现项记录模块进行单元测试发现项任务的创建,记录软件单元测试过程未通过的软件单元测试脚本;同时,测试结果解析及回馈模块调用邮件管理工具将软件单元测试失败信息发送给软件开发人员;同时,测试结果解析及回馈模块将软件单元测试失败标志位反馈至测试工具状态解析模块;软件开发人员收到软件单元测试失败邮件后查找原因,进行代码变更;
若软件单元测试通过,测试结果解析及回馈模块调用邮件管理工具将软件单元测试通过信息发送给软件开发人员;同时,测试结果解析及回馈模块将软件单元测试成功标志位反馈至测试工具状态解析模块。
9.根据权利要求8所述的一种汽车电子软件持续集成及自动测试方法,其特征在于:所述步骤S5软件集成测试具体过程如下:
S501、测试工具状态解析模块进行软件单元测试成功标志位检测;
若软件单元测试成功标志位无效,则持续进行软件单元测试成功标志位周期性检测;
若软件单元测试成功标志位有效,测试工具状态解析模块解析测试工具管理模块中软件集成测试执行及自动测试工具状态信息,分析当前软件集成测试执行及自动测试工具是否可用;若当前工具不可用,则对软件集成测试执行及自动测试工具进行周期性解析;若工具可用,将工具可用状态传递给软件集成测试计划及测试脚本调用模块;
S502、测试参数解析模块解析从软件需求及软件架构管理工具中获取软件架构间依赖关系、软件架构与代码模块对应关系、软件架构与集成测试脚本对应关系信息,对获取的信息进行解析,得到需执行的软件集成测试脚本信息;
S503、软件集成测试触发模块及测试脚本调用模块根据需执行的测试脚本信息及集成测试工具可用状态信息,从代码编译及构建触发模块获取执行文件,并从软件集成测试计划及测试脚本调用模块中调用变更代码模块对应的软件集成测试脚本,启动软件集成测试;
S504、软件集成测试执行完毕后,软件集成测试执行及自动测试工具自动生成软件集成测试报告;测试结果解析及回馈模块对软件集成测试报告进一步解析,并将测试结果反馈到测试结果记录模块,自动创建测试结果与测试脚本之间的双向追溯性;
S505、若软件集成测试未通过,测试结果解析及回馈模块调用发现项记录模块进行软件集成测试发现项任务的创建,记录软件集成测试过程未通过的测试脚本;同时,测试结果解析及回馈模块调用邮件管理工具将软件集成测试失败信息发送给软件开发人员;同时,编译结果回馈模块将软件集成测试失败标志位反馈至测试工具状态解析模块;软件开发人员收到软件集成测试失败邮件后查找原因,进行代码变更;
若软件集成测试通过,测试结果解析及回馈模块调用邮件管理工具将软件集成测试通过信息发送给软件开发人员;同时,测试结果解析及回馈模块将软件集成测试成功标志位反馈至测试工具状态解析模块。
10.根据权利要求9所述的一种汽车电子软件持续集成及自动测试方法,其特征在于:所述步骤S6软件合格性测试具体过程如下:
S601、测试工具状态解析模块进行软件集成测试成功标志位检测;
若软件集成测试成功标志位无效,则持续进行软件集成测试成功标志位周期性检测;
若软件集成测试成功标志位有效,测试工具状态解析模块解析测试工具管理模块中软件合格性测试执行及自动测试工具状态信息,分析当前软件合格性测试执行及自动测试工具是否可用;若当前工具不可用,则对软件合格性测试执行及自动测试工具进行周期性解析;若工具可用,将工具可用状态传递给软件合格性测试计划及测试脚本调用模块;
S602、测试参数解析模块解析从软件需求及软件架构管理工具中获取软件需求间依赖关系、软件需求与代码模块对应关系、软件需求与合格性测试脚本对应关系信息,对获取的信息进行解析,得到需执行的测试脚本信息;
S603、软件合格性测试触发及测试脚本调用模块根据需执行的测试脚本信息及合格性测试工具可用状态信息,从代码编译及构建触发模块获取执行文件,并从软件合格性测试计划及测试脚本调用模块中调用变更代码模块对应的软件合格性测试脚本,启动软件合格性测试;
S604、软件合格性测试执行完毕后,软件合格性测试执行及自动测试工具自动生成软件合格性测试报告;测试结果解析及回馈模块对软件合格性测试报告进一步解析,并将测试结果反馈到测试结果记录模块,自动创建测试结果与测试脚本之间的双向追溯性;
S605、若软件合格性测试未通过,测试结果解析及回馈模块调用发现项记录模块进行合格性测试发现项任务的创建,记录软件合格性测试过程未通过的测试脚本;同时,测试结果解析及回馈模块调用邮件管理工具将软件合格性测试失败信息发送给软件开发人员;软件开发人员收到软件合格性测试失败邮件后查找原因,进行代码变更;
若软件合格性测试通过,测试结果解析及回馈模块调用邮件管理工具将软件合格性测试通过信息发送给软件开发人员。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110352359.5A CN113110824B (zh) | 2021-03-31 | 2021-03-31 | 一种汽车电子软件持续集成及自动测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110352359.5A CN113110824B (zh) | 2021-03-31 | 2021-03-31 | 一种汽车电子软件持续集成及自动测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113110824A true CN113110824A (zh) | 2021-07-13 |
CN113110824B CN113110824B (zh) | 2022-05-06 |
Family
ID=76713414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110352359.5A Active CN113110824B (zh) | 2021-03-31 | 2021-03-31 | 一种汽车电子软件持续集成及自动测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113110824B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113934640A (zh) * | 2021-11-10 | 2022-01-14 | 合众新能源汽车有限公司 | 一种软件自动化测试的方法和系统 |
CN114281682A (zh) * | 2021-12-09 | 2022-04-05 | 南京隼眼电子科技有限公司 | 软件的持续集成方法、装置及存储介质 |
US20230032686A1 (en) * | 2017-11-27 | 2023-02-02 | Lacework, Inc. | Using real-time monitoring to inform static analysis |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170010889A1 (en) * | 2014-01-27 | 2017-01-12 | Hewlett Packard Enterprise Development Lp | Continuous integration with reusable context aware jobs |
CN108388445A (zh) * | 2018-03-09 | 2018-08-10 | 北京四方继保自动化股份有限公司 | 一种基于“平台+应用”模式的持续集成方法 |
CN109426602A (zh) * | 2017-07-18 | 2019-03-05 | 中国移动通信集团公司 | 一种应用开发过程中使用的检测方法及设备 |
CN110532189A (zh) * | 2019-07-18 | 2019-12-03 | 中国人民财产保险股份有限公司 | 一种持续集成系统、方法及装置 |
CN112099842A (zh) * | 2020-09-11 | 2020-12-18 | 中国电力科学研究院有限公司 | 电网调度控制系统的持续集成测试方法、系统及存储介质 |
-
2021
- 2021-03-31 CN CN202110352359.5A patent/CN113110824B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170010889A1 (en) * | 2014-01-27 | 2017-01-12 | Hewlett Packard Enterprise Development Lp | Continuous integration with reusable context aware jobs |
CN109426602A (zh) * | 2017-07-18 | 2019-03-05 | 中国移动通信集团公司 | 一种应用开发过程中使用的检测方法及设备 |
CN108388445A (zh) * | 2018-03-09 | 2018-08-10 | 北京四方继保自动化股份有限公司 | 一种基于“平台+应用”模式的持续集成方法 |
CN110532189A (zh) * | 2019-07-18 | 2019-12-03 | 中国人民财产保险股份有限公司 | 一种持续集成系统、方法及装置 |
CN112099842A (zh) * | 2020-09-11 | 2020-12-18 | 中国电力科学研究院有限公司 | 电网调度控制系统的持续集成测试方法、系统及存储介质 |
Non-Patent Citations (1)
Title |
---|
姜文,刘立康: "基于SVN的应用软件持续集成", 《计算机策略与控制》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230032686A1 (en) * | 2017-11-27 | 2023-02-02 | Lacework, Inc. | Using real-time monitoring to inform static analysis |
US11849000B2 (en) * | 2017-11-27 | 2023-12-19 | Lacework, Inc. | Using real-time monitoring to inform static analysis |
CN113934640A (zh) * | 2021-11-10 | 2022-01-14 | 合众新能源汽车有限公司 | 一种软件自动化测试的方法和系统 |
CN114281682A (zh) * | 2021-12-09 | 2022-04-05 | 南京隼眼电子科技有限公司 | 软件的持续集成方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113110824B (zh) | 2022-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113110824B (zh) | 一种汽车电子软件持续集成及自动测试方法 | |
CN110232024B (zh) | 软件自动化测试框架及测试方法 | |
CN109542769A (zh) | 一种持续集成的自动化测试方法 | |
CN102012814B (zh) | 软件版本的构建方法和系统 | |
CN104391795A (zh) | 一种分布式系统中自动化测试覆盖率的测试方法及系统 | |
CN105302716A (zh) | 合流开发模式下的测试方法、装置 | |
CN111400198B (zh) | 一种自适应的软件测试系统 | |
CN109101680B (zh) | 基于GitLab-CI的FPGA原型自动验证方法及系统 | |
CN102053906A (zh) | 用于收集程序运行时信息的系统和方法 | |
CN104424088A (zh) | 软件的测试方法及装置 | |
CN112241360A (zh) | 一种测试用例生成方法、装置、设备及存储介质 | |
CN103678124B (zh) | 基于持续集成环境的视频监控平台自动测试方法及装置 | |
CN100451986C (zh) | 网络芯片的自动化验证方法 | |
CN115221058B (zh) | 一种软件自动化测试系统及方法 | |
CN101287266A (zh) | 手机测试系统及方法 | |
CN1713658A (zh) | 移动电话测试系统及方法 | |
CN112035348A (zh) | 自动化测试平台及其自动化测试方法 | |
CN109426602A (zh) | 一种应用开发过程中使用的检测方法及设备 | |
CN112131116A (zh) | 一种嵌入式软件自动化回归测试方法 | |
CN113177004A (zh) | Ecu软件自动化测试方法及其系统 | |
CN101673200A (zh) | 用户输入模型的检测方法及装置 | |
CN115629956A (zh) | 一种基于接口自动化测试的软件缺陷管理方法及系统 | |
CN106933713B (zh) | 硬件加速器的验证方法和验证系统 | |
CN113495750B (zh) | 一种设备的升级检测方法、装置及服务器 | |
CN111813662A (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 |