一种软件测试自动化管理系统及方法
文献发布时间:2023-06-19 11:35:49
技术领域
本发明涉及软件测试自动化管理,更具体地,涉及针对车用控制软件的软件测试自动化管理系统及方法。
背景技术
汽车的研发趋势是使得汽车能够越来越智能,能够为驾驶员提供越来越多的驾驶辅助功能,直至完全自动驾驶。这些附加功能的提供需要通过软件和硬件的配合来实现,其中软件方面的进步相对硬件而言是更显著的。相对于普通的软件(例如在个人电脑或智能手机上使用的软件),汽车上使用的软件在安全性、实时性、可靠性等方面的要求显然要高得多。为此,汽车行业针对汽车软件存在行业标准,例如ISO 26262-2011、GB/T 34590-2017、ASPICE 3.0(ASPICE:Automotive Software Process Improvement and CapacitydEtermination是由欧洲的主要汽车制造商共同策定的面向汽车行业的流程评估模型,旨在改善和评估汽车电子控制器的系统和软件开发质量)、MISRA C:2012(MISRA:The MotorIndustry Software Reliability Association汽车工业软件可靠性联合会是位于英国的一个跨国汽车工业协会,该协会提出的MSIRA C系列规范已经成为国际汽车行业广泛认可并遵守的C编码规范)以及MAAB(MathWorks Automotive Advisory Board麦斯沃克汽车咨询委员会,该委员会提出的控制算法建模规范是汽车软件MBD(Model Based Development基于模型的软件开发)所必须遵守的规范)等等。因此,为了确保车用控制软件的安全性和可靠性以及符合相关行业标准,在软件开发过程中需要进行大量的测试。
然而,目前针对汽车控制软件的测试及管理还存在许多问题。一方面,从测试关联关系的角度来说,目前没有平台能够通过用例进行软件开发过程的成果物追溯。另一方面,从测试数据分析的角度来说,目前没有平台进行软件开发过程的数据进行质量度量。因此,需要一种全新的能够软件测试进行自动化管理的方法和系统。
发明内容
提供本发明内容以便以简化形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
根据本发明的一个发明,提供了一种软件测试自动化管理系统,其中所述系统包括:
测试项目管理平台102,用于提供输入用于管理测试项目的信息的用户接口,其中用于管理测试项目的信息至少包括测试模型、测试代码以及测试用例;
测试自动化平台104,用于提供输入用于配置测试自动化的信息的用户接口,并且基于所述用于配置测试自动化的信息生成测试作业配置文件;
文件管理系统106,用于存储与软件测试相关的数据;以及
测试执行单元108,用于基于所述测试模型、测试代码以及测试用例和所述测试作业配置文件执行测试,并生成测试结果。
根据本发明的一个实施例,所述测试项目管理平台102进一步包括:测试用例设计模块;测试需求分析模块;测试模型管理模块;测试代码管理模块;测试执行分析模块;以及测试缺陷管理模块,
其中,所述测试用例设计模块将测试用例与来自所述测试需求分析模块的测试需求、来自所述测试模型管理模块的测试模型、来自所述测试代码管理模块的测试代码、来自所述测试执行分析模块的测试执行结果、以及来自所述测试缺陷管理模块的测试缺陷关联在一起。
根据本发明的进一步实施例,所述测试项目管理平台102进一步包括:软件质量度量模块,用于对软件质量进行度量并提供软件质量度量报告。
根据本发明的进一步实施例,所述度量包括针对以下属性中的至少一项的度量:
软件需求覆盖率,结构覆盖率,以及规范覆盖率。
根据本发明的进一步实施例,所述测试自动化平台104的用于配置测试自动化的接口能够被用于供用户提供所述测试执行单元108执行测试所需的配置信息,并且所述测试自动化平台104被进一步配置成:
基于所述配置信息生成所述测试作业配置文件;以及
将所述测试作业配置文件发送给所述测试执行单元108。
根据本发明的进一步实施例,所述文件管理系统106被配置成提供以下服务:数据库服务;SVN服务;许可证管理服务;以及邮件服务器。
根据本发明的进一步实施例,所述测试执行单元108基于持续集成工具实现。
根据本发明的进一步实施例,所述集成工具是Jenkins。
根据本发明的另一方面,提供了一种软件测试自动化管理方法,其中所述方法包括:
接收用于管理测试项目的信息,其中用于管理测试项目的信息至少包括测试模型、测试代码以及测试用例;
接收用于配置测试自动化的信息;
基于所述用于配置测试自动化的信息生成测试作业配置文件;
基于所述测试模型、测试代码以及测试用例和所述测试作业配置文件执行测试;以及
生成测试结果。
根据本发明的一个实施例,所述方法还包括将所述测试用例与所述测试模型、所述测试代码、所述测试结果以及测试缺陷关联在一起。
为了便于描述和理解,本发明以针对车用软件的软件质量度量为例来描述本发明的原理、实施例及具体的技术手段。然而,本领域技术人员应当理解,本发明的软件质量度量方法及系统不仅限于应用于车用软件,而是能够普遍应用于任何软件的质量度量,尤其适合于基于模型开发的软件的质量评估。
与现有技术相比,本发明至少解决了以下几方面问题:
一、对控制软件开发测试过程相关成果物的追溯和管理;
二、对已有的仿真测试平台所涉及的所有控制软件的开发测试工具进行集成、管理及自动化测试;
三、对控制软件开发测试过程的数据进行分析,实现对控制软件开发过程的软件质量进行度量;。
相应地,本发明获得了至少如下的技术效果:
一、实现了后台自动化测试
针对仿真测试平台所涉及的控制软件开发测试工具,实现后台人工或自动定时触发调用相关测试软件进行自动化测试。
二、实现了测试需求及问题管理
针对控制软件开发测试过程中需求和问题等相关活动产物的记录、追溯、提交及汇报,包括MIL、SIL和HIL等过程迭代开发中的历史问题管理以及产品售后现场的问题管理。
三、实现了开发过程的软件质量度量
对控制软件开发过程中的相关数据进行分析,实现对开发过程中的软件质量的度量,通过量化的质量指标评估和指导控制软件的开发过程。
通过阅读下面的详细描述并参考相关联的附图,这些及其他特点和优点将变得显而易见。应该理解,前面的概括说明和下面的详细描述只是说明性的,不会对所要求保护的各方面形成限制。
附图说明
为了能详细地理解本发明的上述特征所用的方式,可以参照各实施例来对以上简要概述的内容进行更具体的描述,其中一些方面在附图中示出。然而应该注意,附图仅示出了本发明的某些典型方面,故不应被认为限定其范围,因为该描述可以允许有其它等同有效的方面。
图1是根据本发明的一个实施例的软件测试自动化管理系统的示例性结构框图。
图2示出了根据本发明的一个实施例的测试项目管理平台102的示例性框架图。
图3示出了根据本发明的一个实施例的测试自动化平台104的示例性框架图。
图4示出了根据本发明的一个实施例的测试自动化管理方法的示例流程图。
具体实施方式
下面结合附图详细描述本发明,本发明的特点将在以下的具体描述中得到进一步的显现。
图1是根据本发明的一个实施例的软件测试自动化管理系统100的示例性结构框图。如图1中所示,软件测试自动化管理系统100(也称“软件测试自动化管理平台”,在本文中,“系统”与“平台”可互换地使用)可包括测试项目管理平台102、测试自动化平台104、文件管理系统106以及测试执行单元108。
测试项目管理平台102为用户提供管理测试项目的接口(例如软件或web形式的用户界面),用于输入与测试项目有关的各类信息,诸如测试组织及人员信息、测试需求、测试模型、测试代码、测试用例等等,以及输出与测试项目管理有关的信息,诸如项目测试结果、质量度量报告等。测试项目管理平台102可实现的功能主要包括测试人员管理、测试项目管理、测试需求管理、测试用例管理、测试问题管理、测试报表生成以及质量度量等,这在下文中将结合图2更详细地描述。
测试自动化平台104为用户提供配置测试自动化的接口,用于输入与自动化测试有关的各类信息,诸如环境配置、集成测试工具配置等信息,以及输出与测试过程有关的信息,诸如License状态、测试工作状态等。测试自动化平台104可实现的功能主要包括自动提取配置库代码进行自动构建、自动调度静态测试工具进行静态测试、自动调度动态测试工具开展动态测试、自动调度HIL自动化测试系统等,这在下文中将结合图3更详细地描述。
文件管理系统106可存储软件测试自动化管理过程中的各类数据及文件,例如提供基于MySQL的数据库。此外,文件管理系统106还可提供SVN(开放源代码的版本控制系统的管理工具Subversion)、License管理以及邮件服务器等功能。
测试执行单元108负责具体执行测试并提供测试结果。作为本发明的一个实施例,测试执行单元108可基于持续集成(CI)工具实现,诸如Jenkins。为便于解说,以下有时直接以Jenkins来表示测试执行单元108,但本领域技术人员可以理解,也可以采用其他的持续集成工具。
软件测试自动化管理平台100的主要数据流如图1所示。测试项目管理平台102可将测试组织、测试需求、模型/代码、测试用例、测试报告、测试问题等数据上传至文件管理系统106。文件管理系统106可将测试项目数据发送给测试自动化平台104。另一方面,文件管理系统106可将模型/代码、测试用例发送给测试执行单元108。测试自动化平台104将测试任务配置文件(诸如Jenkins Job配置文件)发送给测试执行单元108。测试执行单元108可调用测试自动化平台104所集成的测试工具链来执行测试,并将测试报告提供给工程师,工程师可将报告中涉及的与软件开发相关活动的产物提供给测试项目管理平台102,用于后续的测试。例如,工程师可发现测试报告中所反映的测试缺陷等信息,该缺陷可由工程师通过测试项目管理平台102输入该信息,并且可将该缺陷与相应的测试用例相关联。
图2示出了根据本发明的一个实施例的图1中的测试项目管理平台102的示例性框架图。如图2中所示,测试项目管理平台102可包括以下模块:测试组织管理模块、测试报告生成模块、软件质量度量模块、测试工作空间模块、测试项目管理模块、测试轮次管理模块、测试任务分配模块、邮件提醒模块、测试需求分析模块、测试模型管理模块、测试代码管理模块、测试执行分析模块、测试缺陷管理模块、以及测试用例设计模块。以下结合测试项目管理平台102的主要功能来描述各模块的作用。
测试项目管理平台102的主要功能可包括平台管理、测试管理以及软件开发过程质量度量,以下分别进行具体描述。
1、平台管理
(1)项目管理
测试项目管理模块可被配置成实现对测试项目的管理,项目管理可包括但不限于提供新建项目、提交项目、配置项目、查看项目、禁用/启用项目、删除项目等。
(2)用户及权限管理
测试组织管理模块可被配置成实现对测试组织的管理,诸如对用户及权限的管理,包括但不限于提供人员管理界面创建、导入(例如导入OA系统账号List)、编辑和删除项目相关用户。此外,测试组织管理模块还提供权限管理界面自定义用户的角色类型(例如项目经理、开发人员、测试人员等)和操作权限,使得每个用户登录后可以看到自己名下所有的任务,能够点击任务直接进入操作,使用方便简单。
(3)邮件设置
邮件提醒模块可被配置成提供对邮件模板的配置以及对邮件发送规则的配置。邮件提醒模块还支持与邮件服务器联接以支持智能邮件提醒,用于提醒相关的测试任务及问题关闭情况。
2、测试管理
(1)测试需求管理
测试需求分析模块可被配置成提供测试需求的创建、修改、删除功能,以及Excel等格式的测试需求文档导入功能。
(2)测试模型管理
测试模型管理模块可被配置成提供测试模型的导入、导出以及删除功能。
(3)测试代码管理
测试代码管理模块可被配置成提供测试代码的导入、导出以及删除功能。
(4)测试用例管理
测试用例设计模块可被配置成提供用例组织架构设计、提供用例设计模板、用例辅助设计、用例管理、用例导入导出、需求-用例-模型/代码追踪等功能。
(5)测试执行分析管理
测试执行分析模块可被配置成提供测试用例执行和测试结果分析界面。
(6)测试知识库管理
测试报告生成模块可被配置成提供功能安全软件开发测试阶段文档模板的导入、删除功能,以及根据模板创建新文档等功能。
(7)漏测分析
测试缺陷管理模块可被配置成提供测试缺陷管理。对于售后现场发现的软件问题,提供管理界面辅助分析为何未通过测试发现,并针对此类问题构建测试用例,对问题进行复现。
(8)关联关系管理
测试用例设计模块还可被配置成提供测试需求—测试用例—模型/代码之间关联关系的创建、修改和删除操作;提供测试问题—测试需求—测试用例之间的创建、修改和删除操作。
(9)测试报表生成
测试报告生成模块还可被配置成生成各种测试报表,例如测试问题管理过程记录报告、关联关系矩阵报告、软件需求测试报告、软件覆盖率分析报告等。
(10)测试资源复用
隶属于某一持续集成项目的测试资源,包括测试需求、测试用例、被控对象模型等,能够通过导出/导入/拷贝等方式在其他持续集成项目中复用。
此外,测试工作空间模块可被配置成提供打开、关闭、删除、新增工作空间的功能。测试轮次管理模块可被配置成提供轮次的新增、删除、修改、开始/结束测试、固化轮次、挂起轮次等功能。测试任务分配模块可被配置成分配角色权限以及任务分配提升,该任务分配提升可被提供给邮件提醒模块。
值得注意的是,本发明的测试项目管理平台102在创建和管理测试项目中以测试用例为中心。如图2中所示,测试需求、测试模型、测试代码、测试执行分析以及缺陷都被关联到测试用例,这克服了传统的软件测试开发流程中各环节、对象、相关产物缺乏高效、有序管理和追溯的问题。
3、软件开发过程质量度量
软件开发过程质量直接影响软件的使用与维护,对软件开发过程质量进行客观、科学的评价,估计软件质量的后续走势,为软件开发公司自身、需求方和评价方提供量化的软件质量管理的手段,精确地控制软件产品的质量。
软件质量度量模块可被配置成建立软件开发过程质量度量模型、数据提取计算、以及导出软件质量度量报告。质量度量属性可至少包括:软件需求覆盖率,结构覆盖率、规范覆盖率等。软件质量度量模块可获取软件开发过程质量数据。随后,软件质量度量模块可采用质量数据处理函数对获取的数据进行处理,并分配一个或多个维度的质量度量属性。根据本发明的一个实施例,质量度量模型可包括质量度量属性、质量数据处理函数、质量度量算法、质量度量权重、质量判定规则等要素。针对每一个质量度量属性,可采用特定的质量度量算法并分配相应的质量度量权重,以便对软件从多个维度进行质量度量计算,形成最终的软件质量度量结果,并自动生成软件质量度量报告。软件质量度量结果和报告可通过诸如邮件或网页等形式导出。
图3示出了根据本发明的一个实施例的测试自动化平台104的示例性框架图。
如图3中所示,测试自动化平台104可包括以下模块:
测试项目管理模块,被配置成提供新建、打开、检出、保存、关闭测试项目的功能,并且管理和调用测试自动化平台104中的其他模块和工具;
License状态查看模块,被配置成提供显示License占用情况以及当前占用license的用户信息的界面;
环境配置管理模块,被配置成提供对环境配置的管理。环境配置可包括但不限于基本环境属性、Jenkins环境属性、SVN环境属性、工具链环境属性等。环境配置管理模块可维护这些环境属性并提供界面供用户对这些环境属性进行配置;
集成配置管理工具模块,被配置成提供集成SVN查询操作、集成SVN删除操作、集成SVN导入操作以及集成SVN导出操作等功能;
集成模型/代码管理工具模块,被配置成提供获取模型/代码、检测SVN变更、获取变更列表、配置SVN项目属性等功能;
Jenkins交互模块,被配置实现与Jenkins平台的交互,包括但不限于:提交项目、查看项目、构建项目、禁用/启用项目、以及删除项目;
工作状态查看模块,被配置成提供查看测试服务器状态、查看构建Job状态、以及取消构建任务等功能;
工作产品查看模块,被配置成提供查看构建Job工作空间、查看构建任务测试报告等功能;
集成代码编译工具模块,其中至少集成了CodeWarrior、CCS等IDE环境;以及
集成测试工具模块,其中至少集成了MATLAB/Simulink、Embedded Coder、MXAM、Simulink V&V、MXRAY、QAC、Tessy、Mx-Suite等测试工具。
通过上述模块之间的协作及相互交互,测试自动化平台104可实现工具链集成、自动测试、以及测试配置管理等主要功能,以下分别进行具体描述。
1、工具链集成
(1)自动调用已有仿真测试平台工具链
自动调用已有仿真测试平台工具链,执行软件的代码生成、编译、下载、静态检查、动态测试、HIL测试等工作,具体包括:
自动调用MATLAB/Simulink运行并确认软件模型;
自动调用Embedded Coder进行代码生成;
自动调用MXAM进行模型规范检查;
自动调用Simulink V&V进行模型检查及模型覆盖度测试;
自动调用MXRAY进行控制软件模型的复杂度计算;
自动调用QAC进行代码规范检查和静态分析;
自动调用Tessy进行软件动态回归测试和覆盖率分析(针对SIL);
自动调用Mx-Suite进行动态回归测试和覆盖率分析(针对MIL、HIL);
自动调用IDE环境(CodeWarrior、CCS)生成二进制代码并下载到目标控制器。
(2)提供配置界面
自动调用的测试工具提供配置界面,方便对测试工具的功能参数进行配置。
(3)提供合理的License管理策略
License管理模块可根据工具链license数量和应用场景,提供合理的license管理策略,具体包括:人工申请(SVN触发)优先、闲时全负荷运行、用即分配、不用即释放等,避免license被过度占用。当license被占用时,提供显示当前占用license的用户信息的界面。
2、自动测试
(1)监控SVN
以实时或近实时的方式对SVN指定文件夹的内容进行监控。
(2)支持定时构建和变更构建
以定时方式自动触发测试或根据SVN更新触发测试的执行,SVN更新包括但不限于模型/代码更新、测试用例更新、被控对象模型更新。
(3)支持邮件发送测试报告
测试执行完毕后能够通过邮件自动向相关人员发送测试报告。
(4)提供对多个测试申请的自动调度和仲裁机制
提供对多个测试申请的自动调度和仲裁机制;提供自动测试服务器的工作状态显示,例如“空闲”、“运行中”、“错误”等状态,以及“已完成xx项,剩余xx项,预计剩余时间xx分钟”等类似的构建进度信息,并以列表形式显示已完成项、未完成项及正在运行项。正在运行项还需以进度条形式显示运行进度。
3、测试配置管理
(1)支持测试配置
测试配置是指对测试工具的参数进行设置,对所需测试项目进行选择和排序,对所需测试用例进行选择,对用于构建闭环系统的被控对象模型进行选择,对所需测试报告模板进行选择,对接收测试结果邮件的相关人员进行选择。
(2)提供测试配置管理
测试配置管理是指创建、修改和删除测试配置。平台提供测试配置管理界面,完成对上述内容的配置,保存后生成测试配置文件。平台允许多个测试配置文件,但有且仅有一个全局测试配置文件。
(3)根据触发机制选择测试配置
对于自动触发的测试,默认采用全局测试配置文件进行测试;对于人工触发的测试,平台除允许任意选择一个测试配置文件进行测试外,还应提供测试配置自动生成功能,即根据SVN更新的范围,自动生成最小资源消耗的测试配置用于当次测试。
图4示出了根据本发明的一个实施例的测试自动化管理方法400的示例流程图。方法开始于框402,接收用于管理测试项目的信息。例如,可经由测试项目管理平台102接收来自用户的与测试项目有关的信息,包括测试模型、测试代码以及测试用例等。
在框404,接收用于配置测试自动化的信息。例如,可经由测试自动化平台104接收来自用户的针对测试自动化的配置信息,诸如环境配置、测试工具配置、触发机制配置等等。
接着,在框406,基于用于配置测试自动化的信息生成测试作业配置文件。如之前所提到的,为了使测试执行单元108(例如Jenkins)能够执行测试,测试自动化平台104可自动生成测试配置作业文件(例如,Jenkins Job配置文件),并发送给测试执行单元108。
在框408,基于测试模型、测试代码以及测试用例和测试作业配置文件执行测试。随后,在框410,生成测试结果。该测试结果可以报告的形式发送给工程师供工程师审阅,也可同时发送给测试项目管理平台102用于软件质量度量,另外报告也可被发送给文件管理系统106进行存档。
可选地,为了实现对需求、模型/代码、缺陷等测试相关成果物的追溯,方法还可可选地包括将所述测试用例与所述测试模型、所述测试代码、所述测试结果以及测试缺陷关联在一起。
以上描述了本发明的控制软件测试自动化管理平台,与现有技术相比,本发明提供的方案至少具有以下优点:
(1)通过测试用例实现对需求、模型/代码、缺陷等测试相关成果物的追溯,实现开发测试过程可追溯;以及
(2)提供质量度量的接口,实现对软件开发阶段的数据进行分析及度量,对软件开发过程的质量进行量化,提高软件开发过程,提高软件质量。
基于上述创新点,本发明能够辅助公司对软件开发过程的成果物进行追溯,评估软件开发阶段的软件质量指导软件开发过程。
以上所已经描述的内容包括所要求保护主题的各方面的示例。当然,出于描绘所要求保护主题的目的而描述每一个可以想到的组件或方法的组合是不可能的,但本领域内的普通技术人员应该认识到,所要求保护主题的许多进一步的组合和排列都是可能的。从而,所公开的主题旨在涵盖落入所附权利要求书的精神和范围内的所有这样的变更、修改和变化。
- 一种软件测试方法及软件测试自动化管理系统
- 一种软件测试自动化管理系统及方法