一种测试调度系统及方法与流程

文档序号:26942556发布日期:2021-10-12 17:11阅读:125来源:国知局
一种测试调度系统及方法与流程

1.本发明属于汽车功能测试技术领域,具体涉及一种测试调度系统及方法。


背景技术:

2.在整车控制器的功能测试中,常用的测试方法有mil(model in loop,模型在环)测试、sil(software in loop,软件在环)测试、hil(hardware in loop,硬件在环)测试。传统的测试流程是收到功能需求后,需求工程师进行需求分解,软件工程师进行软件建模,集成工程师进行软件集成,标定工程师进行标定,测试工程师进行测试并反馈测试结果,在此过程中往往一个测试工程师要负责多个项目多个功能的测试,如何根据多个项目的进度和优先级来合理有效安排测试团队成员的工作,优化工作流程,提升工作效率,已经成为一大热门研究课题。
3.传统的mil/sil测试任务调度一般都由测试主管根据测试资源、测试人员工作负荷、测试任务等指标,通过会议的形式进行决策。但是一旦有任意环节出现问题(多项目并行开发大概率出现),整个测试链条衔接不上就会导致测试任务的调度出现混乱,不仅降低整个测试团队的效率还会浪费有限的测试资源。


技术实现要素:

4.本发明实施例所要解决的技术问题在于,提供一种有效提高测试效率的测试调度系统及方法。
5.为解决上述技术问题,本发明提供一种测试任务调度系统,包括:基于jenkins构建的持续集成测试平台、基于redmine构建的测试需求管理平台和基于svn构建的模型及代码管理平台,
6.所述测试需求管理平台用于配置与其通信连接的测试控制端和测试执行端的权限,供所述测试控制端根据总的测试需求为各测试执行端分配测试任务以及设置测试任务的测试优先级;
7.所述模型及代码管理平台用于提供待测软件模型或代码;
8.所述持续集成测试平台用于从所述测试需求管理平台获取各测试执行端的测试任务及测试优先级,生成自动测试任务调度表;并从所述模型及代码管理平台调用待测软件模型或代码,按照所述自动测试任务调度表通过预设脚本启动模型在环测试工具或者软件在环测试工具进行测试。
9.其中,所述测试需求管理平台还用于分别建立测试控制端的测试任务分配模板和测试执行端的测试任务执行模板,所述测试任务分配模板包含关键字段为:项目,开发阶段,待测任务,测试人员,优先级;所述测试任务执行模板包含关键字段为:待测软件的svn版本号,测试工程路径,测试状态,测试结果,父任务编号,测试方式,自动测试开启时间段。
10.其中,所述测试需求管理平台还用于设置与其通信连接的、处于所述测试控制端和测试执行端之间的中间层级的测试子控制端的权限,并建立测试任务子分配模板,所述
测试任务子分配模板包含关键字段为:项目测试状态,待测功能优先级,计划测试完成时间,父任务编号。
11.其中,所述持续集成测试平台通过读取所述测试任务分配模板、测试任务子分配模板和测试任务执行模板,获得各测试执行端的测试任务及其测试优先级,并据此生成自动测试任务调度表,所述自动测试任务调度表中,测试优先级为包括项目优先级和功能优先级,分别以数值表示,所述项目优先级和功能优先级的数值范围均为0-100。
12.其中,所述持续集成测试平台按照自动测试任务调度表进行测试时,在多个项目中按项目优先级数值从小到大进行,同一项目中按功能优先级数值从小到大进行。
13.其中,所述持续集成测试平台具有一管理员账户,所述测试控制端、测试子控制端和测试执行端的账号通过jenkins插件设置在所述管理员账户中。
14.其中,所述持续集成测试平台具体用于在自动测试开始时间段到达时,通过所述测试任务执行模板中的测试工程路径,调用测试执行端已开发好的测试用例,启动模型在环测试工具或者软件在环测试工具进行测试。
15.其中,某一测试任务完成后,所述持续集成测试平台在所述测试需求管理平台上将所述测试任务执行模板中的测试状态设置为已完成,并启动所述自动测试任务调度表上的下一个测试任务,直到所有测试任务完成或者超出自动测试时间段。
16.其中,所述持续集成测试平台还设置有测试结果接收端的接收地址,用于在测试完成后将测试结果发送给测试结果接收端。
17.其中,所述持续集成测试平台还用于冻结超出自动测试时间段的测试任务的测试优先级,并将其放入下次自动测试任务调度表中进行排序。
18.其中,所述测试执行端根据已完成状态的测试任务进行测试结果确认,完成后在测试需求管理平台上将所述测试任务执行模板中的测试状态设置为关闭,同时释放对应的功能优先级;如果某一项目的所有功能测试均完成,则将该项目的所有测试任务执行模板中的测试状态设置为关闭,同时释放对应的项目优先级。
19.本发明还提供一种测试任务调度方法,所述测试任务调度方法通过基于jenkins构建的持续集成测试平台、基于redmine构建的测试需求管理平台和基于svn构建的模型及代码管理平台实施,所述测试任务调度方法包括以下步骤:
20.所述持续集成测试平台从所述测试需求管理平台获取各测试执行端的测试任务及测试优先级,生成自动测试任务调度表;所述测试需求管理平台配置有与其通信连接的测试控制端和测试执行端的权限,并供所述测试控制端根据总的测试需求为各测试执行端分配测试任务以及设置测试任务的测试优先级;
21.所述持续集成测试平台从所述模型及代码管理平台调用待测软件模型或代码,按照所述自动测试任务调度表通过预设脚本启动模型在环测试工具或者软件在环测试工具进行测试。
22.其中,所述测试任务调度方法,还包括:
23.所述测试需求管理平台分别建立测试控制端的测试任务分配模板和测试执行端的测试任务执行模板,所述测试任务分配模板包含关键字段为:项目,开发阶段,待测任务,测试人员,优先级;所述测试任务执行模板包含关键字段为:待测软件的svn版本号,测试工程路径,测试状态,测试结果,父任务编号,测试方式,自动测试开启时间段。
24.其中,所述持续集成测试平台在自动测试开始时间段到达时,通过所述测试任务执行模板中的测试工程路径,调用测试执行端已开发好的测试用例,启动模型在环测试工具或者软件在环测试工具进行测试。
25.其中,某一测试任务完成后,所述持续集成测试平台在所述测试需求管理平台上将所述测试任务执行模板中的测试状态设置为已完成,并启动所述自动测试任务调度表上的下一个测试任务,直到所有测试任务完成或者超出自动测试时间段。
26.其中,所述持续集成测试平台在测试完成后将测试结果发送给测试结果接收端。
27.其中,所述持续集成测试平台冻结超出自动测试时间段的测试任务的测试优先级,并将其放入下次自动测试任务调度表中进行排序。
28.其中,所述测试执行端根据已完成状态的测试任务进行测试结果确认,完成后在测试需求管理平台上将所述测试任务执行模板中的测试状态设置为关闭,同时释放对应的功能优先级;如果某一项目的所有功能测试均完成,则将该项目的所有测试任务执行模板中的测试状态设置为关闭,同时释放对应的项目优先级。
29.实施本发明实施例,具有如下有益效果:本发明在测试任务确定后,测试主管和测试经理只需要按照优先级进行任务分配就可以能完全知晓测试节奏,测试工程师能根据测试任务比较自由地掌控测试进程,只需要专注于开发测试用例等测试准备工作和测试结果分析即可,测试任务已经按照优先级排序自动执行了,无需考虑测试规划问题,减少了人工干预带来的影响,极大地提高了测试效率;出现紧急任务时,高优先级调度可以保证不影响或少影响现有测试任务;
30.本发明可以基于少量脚本调用的形式,利用测试需求管理平台不同角色权限的设定,构建mil/sil测试任务调度系统,使得测试工作能够以周为单位进行合理的分配和调度,并且利用持续集成测试平台,在空闲时间可以进行多任务顺序执行。
附图说明
31.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
32.图1为本发明实施例一一种测试任务调度系统的架构示意图。
具体实施方式
33.以下各实施例的说明是参考附图,用以示例本发明可以用以实施的特定实施例。
34.jenkins是一个开源软件项目,是基于java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能;redmine是用ruby开发的基于web的项目管理软件,是用ror框架开发的一套跨平台项目管理系统,通过“项目(project)”的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、文档等内容来推动项目的进度,同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度;svn是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理实现共享资源,最终实现集中式的管理。在本发明实施例中,根
据jenkins,redmine和svn开源并且免费的特性,jenkins与各类工具的插件,可以基于少量脚本调用的形式,利用redmine不同角色权限的设定,构建mil/sil测试任务调度系统,使得测试工作能够进行合理的分配和调度。
35.请参照图1所示,本发明实施例一提供一种测试任务调度系统,包括:基于jenkins构建的持续集成测试平台、基于redmine构建的测试需求管理平台和基于svn构建的模型及代码管理平台,
36.所述测试需求管理平台用于配置与其通信连接的测试控制端和测试执行端的权限,供所述测试控制端根据总的测试需求为各测试执行端分配测试任务以及设置测试任务的测试优先级;
37.所述模型及代码管理平台用于提供待测软件模型或代码;
38.所述持续集成测试平台用于从所述测试需求管理平台获取各测试执行端的测试任务及测试优先级,生成自动测试任务调度表;并从所述模型及代码管理平台调用待测软件模型或代码,按照所述自动测试任务调度表通过预设脚本启动模型在环测试工具或者软件在环测试工具进行测试。
39.具体地,测试需求管理平台还用于分别建立测试控制端的测试任务分配模板和测试执行端的测试任务执行模板,其中测试任务分配模板包含关键字段为:项目,开发阶段,待测任务,测试人员,优先级(0-100,数值越大优先级越低,0为紧急任务专用,测试执行端确认测试任务后在测试未完成前不可更改);测试任务执行模板包含关键字段为:待测软件的svn版本号,测试工程路径,测试状态(待确认/进行中/已完成/关闭),测试结果(通过/未通过),父任务编号,测试方式(手动/自动),自动测试开启时间段。可以理解的是,测试控制端供测试主管使用,测试执行端供测试工程师使用。
40.若测试项目较多,还可设置中间层级的测试子控制端权限和模板,专门负责单一项目的测试任务跟进,测试控制端只需要定义当前各项目优先级即可,测试子控制端针对单独项目情况定义各项待测功能优先级,在此情况下测试子控制端的测试任务子分配模板包含关键字段为:项目测试状态(未开始/进行中/已完成),待测功能优先级(0-100,数值越大优先级越低,0为紧急任务专用,测试执行端确认测试任务后在测试未完成前不可更改),计划测试完成时间,父任务编号。测试控制端对各个项目优先级进行定义,将测试任务指派给各个测试子控制端,redmine编号为n0。测试子控制端新建项目的测试需求,定义各个功能的优先级,redmine编号为n1并且设置父任务编号为n0,将测试任务指派给各测试执行端。测试执行端收到测试任务后在redmine新建功能测试需求,redmine编号为n2并且设置父任务编号为n1,完成mil/sil测试工程调试后,将测试状态设置为进行中,此时父任务中优先级顺序不可变更直到测试执行端确认测试完成,将测试状态设置为已完成。可以理解的是,测试子控制端供测试经理(或其他行使与本实施例的测试经理相同权限和功能的人员,本实施例不对此做限制)使用。
41.持续集成测试平台通过读取上述测试任务分配模板和测试任务执行模板(有测试子控制端时还包括读取测试任务子分配模板),获得各测试执行端的测试任务及其测试优先级,并据此生成自动测试任务调度表。自动测试任务调度表中,测试优先级包括项目优先级和功能优先级,分别以数值表示,例如(3.2)表示项目优先级为3、功能优先级为2的测试任务。可以理解的是,数值越大优先级越低,在多个项目中按项目优先级数值从小到大进
行,同一项目中按功能优先级数值从小到大进行。举例来说,如果测试任务的测试优先级为(2.2),其将先于测试优先级为(3.2)的测试任务被执行(由于其项目优先级2小于3);同样地,如果测试任务的测试优先级为(2.1),其将先于测试优先级为(2.2)的测试任务被执行(由于其功能优先级1小于2)。如前所述,优先级数值0仅限于紧急事件处理,可以跳过其他优先级,但是需要测试控制端或测试子控制端在测试需求管理平台上进行指派,指派给某一测试执行端。
42.持续集成测试平台具有一管理员账户,前述测试控制端、测试子控制端和测试执行端的账号(能够访问测试需求管理平台和模型及代码管理平台)通过jenkins插件——redmine plugin v0.2设置在该管理员账户中,使得操作该管理员账户可以调用测试需求管理平台和模型及代码管理平台的开放接口,获知测试需求管理平台和模型及代码管理平台是否发生变化,其意义在于,可以确认测试需求管理平台的测试需求是否发生了变化、模型及代码管理平台的待测软件模型或代码是否发生了变化。例如,测试需求管理平台生成了新的测试任务分配模板或测试任务执行模板,或者模板中的测试状态已更新(例如由“未开始”更新为“进行中”)。
43.持续集成测试平台还设置有测试结果接收端的接收地址,通常为邮件地址,以便于在测试完成后将测试结果发送给测试结果接收端。通常来说,测试结果接收端至少是该测试的测试控制端、测试子控制端、测试执行端中的任一个,其接收地址已随其账号设置在管理员账户中。但本发明实施例并不限制于此,还可以根据需要设置新的测试结果接收端的接收地址。
44.持续集成测试平台还藉由测试任务执行模板中的测试工程路径,可在通过预设脚本启动模型在环测试工具或者软件在环测试工具进行测试时调用测试执行端已开发好的测试用例。当自动测试开始时间段到达,持续集成测试平台优先执行自动测试任务调度表中数值小的自动测试任务。测试完成后获取测试结果,将其(通过邮件)发送给设定的测试结果接收端,最后关闭本次测试,在测试需求管理平台上将所述测试任务执行模板中的测试状态设置为已完成,并启动任务调度表上的下一个测试任务,直到所有测试任务完成或者超出自动测试时间段。对于超出自动测试时间段的测试任务,由持续集成测试平台冻结其测试优先级,并放入下次自动测试任务调度表中进行排序。需要说明的是,如果自动测试任务调度表是以天为单位,则前述下次自动测试任务调度表为第二天的自动测试任务调度表。
45.测试执行端(由测试工程师操作)根据已完成状态的测试任务进行测试结果确认,完成后在测试需求管理平台上将所述测试任务执行模板中的测试状态设置为关闭,同时释放对应的功能优先级;如果某一项目的所有功能测试均完成,则将该项目的所述测试任务执行模板中的测试状态设置为关闭,同时释放对应的项目优先级。
46.在构建本实施例的测试任务调度系统时,可将基于jenkins构建的持续集成测试平台、基于redmine构建的测试需求管理平台和基于svn构建的模型及代码管理平台安装于一服务器中,并对三个平台进行配置,使得在局域网中可以通过网页等形式访问这三个平台。
47.为增强适用性,本实施例中,新的或正在进行的测试任务可以被测试执行端关闭或终止,已关闭的测试任务可以被测试执行端重新激活打开进行测试。
48.相应于本发明实施例一,本发明实施例二还提供一种测试任务调度方法,所述测试任务调度方法通过基于jenkins构建的持续集成测试平台、基于redmine构建的测试需求管理平台和基于svn构建的模型及代码管理平台实施,所述测试任务调度方法包括以下步骤:
49.所述持续集成测试平台从所述测试需求管理平台获取各测试执行端的测试任务及测试优先级,生成自动测试任务调度表;所述测试需求管理平台配置有与其通信连接的测试控制端和测试执行端的权限,并供所述测试控制端根据总的测试需求为各测试执行端分配测试任务以及设置测试任务的测试优先级;
50.所述持续集成测试平台从所述模型及代码管理平台调用待测软件模型或代码,按照所述自动测试任务调度表通过预设脚本启动模型在环测试工具或者软件在环测试工具进行测试。
51.其中,所述测试任务调度方法,还包括:
52.所述测试需求管理平台分别建立测试控制端的测试任务分配模板和测试执行端的测试任务执行模板,所述测试任务分配模板包含关键字段为:项目,开发阶段,待测任务,测试人员,优先级;所述测试任务执行模板包含关键字段为:待测软件的svn版本号,测试工程路径,测试状态,测试结果,父任务编号,测试方式,自动测试开启时间段。
53.其中,所述持续集成测试平台在自动测试开始时间段到达时,通过所述测试任务执行模板中的测试工程路径,调用测试执行端已开发好的测试用例,启动模型在环测试工具或者软件在环测试工具进行测试。
54.其中,某一测试任务完成后,所述持续集成测试平台在所述测试需求管理平台上将所述测试任务执行模板中的测试状态设置为已完成,并启动所述自动测试任务调度表上的下一个测试任务,直到所有测试任务完成或者超出自动测试时间段。
55.其中,所述持续集成测试平台在测试完成后将测试结果发送给测试结果接收端。
56.其中,所述持续集成测试平台冻结超出自动测试时间段的测试任务的测试优先级,并将其放入下次自动测试任务调度表中进行排序。
57.其中,所述测试执行端根据已完成状态的测试任务进行测试结果确认,完成后在测试需求管理平台上将所述测试任务执行模板中的测试状态设置为关闭,同时释放对应的功能优先级;如果某一项目的所有功能测试均完成,则将该项目的所有测试任务执行模板中的测试状态设置为关闭,同时释放对应的项目优先级。
58.有关本实施例的具体工作原理及过程,请参见本发明实施例一的说明,此处不再赘述。
59.通过上述说明可知,实施本发明实施例,具有如下有益效果:
60.本发明在测试任务确定后,测试主管和测试经理只需要按照优先级进行任务分配就可以能完全知晓测试节奏,测试工程师能根据测试任务比较自由地掌控测试进程,只需要专注于开发测试用例等测试准备工作和测试结果分析即可,测试任务已经按照优先级排序自动执行了,无需考虑测试规划问题,减少了人工干预带来的影响,极大地提高了测试效率;出现紧急任务时,高优先级调度可以保证不影响或少影响现有测试任务;
61.本发明可以基于少量脚本调用的形式,利用测试需求管理平台不同角色权限的设定,构建mil/sil测试任务调度系统,使得测试工作能够以周为单位进行合理的分配和调
度,并且利用持续集成测试平台,在空闲时间可以进行多任务顺序执行。
62.以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1