发明内容
本申请提供一种嵌入式系统的测试方法和测试装置。本申请提供的技术方案能够敏捷自动化实现嵌入式系统的测试,进而提高测试效率以及降低测试成本。
第一方面,本申请提供一种嵌入式系统的测试方法。所述方法由测试装置执行,所述测试装置包括业务流程配置文件、代码管理模块、代码规则检查模块、代码质量度量模块、单元测试模块、代码编译构建模块、虚拟运行环境构建模块和嵌入式系统动态测试模块,所述业务流程配置文件中包括所述代码管理模块、所述代码规则检查模块、所述代码质量度量模块、所述单元测试模块、所述代码编译构建模块、所述虚拟运行环境构建模块和所述嵌入式系统动态测试模块中每个模块的业务流程信息,所述每个模块的业务流程信息包括所述每个模块的业务名称、流程名称、前置流程名称、后继流程名称、流程执行策略和流程平台中间件。
所述方法包括:所述代码管理模块根据所述业务流程配置文件获取业务流程代码;所述代码管理模块执行所述业务流程代码,调用所述代码规则检查模块、所述代码质量度量模块、所述单元测试模块、所述代码编译构建模块、所述虚拟运行环境构建模块和所述嵌入式系统动态测试模块执行以下流程:
所述代码规则检查模块根据对应的业务流程信息对所述嵌入式系统进行规则检查;所述代码质量度量模块对所述嵌入式系统进行质量度量;所述单元测试模块对所述嵌入式系统进行单元测试;所述代码编译构建模块所述嵌入式系统进行编译并构建软件产品;所述虚拟运行环境构建模块构建所述待测试嵌入式系统的虚拟运行环境;所述嵌入式系统动态测试模块对所述软件产品进行集成测试、配置项测试和系统测试。
本实施例的方法中,测试装置根据预先配置好的业务流程配置文件,可以快捷自动化的实现嵌入式系统的测试,即在获取到嵌入式系统的代码到测试结束,可以不同研发人员和测试人员步步手动参与,从而可以提高测试效率。
结合第一方面,在第一种可能的实现方式中,所述测试装置还包括管道管理模块,相应地,所述代码管理模块获取待测试嵌入式系统的代码方法之前,所述方法还包括:所述管道管理模块接收用户的输入;所述管道管理模块根据所述输入生成所述业务流程配置文件。
该实现方式中,为用户提供接口来输入业务流程配置信息,从而可以灵活地根据用户的需求来实现嵌入式系统的自动化测试。
结合第一种可能的实现方式,在第二种可能的实现方式中,所述测试装置还包括显示模块,相应地,所述方法还包括:显示图像化用户交互界面。相应地,所述管道管理模块接收用户的输入,包括:所述管道管理模块接收用户在所述图形化用户交互界面的输入。
该实现方式中,通过图像化的界面为用户提供输入业务流程配置信息的接口,可以方便用户,提高业务流程配置信息的输入效率,从而可以进一步提高测试效率和测试准确率。
第二方面,本申请提供了一种嵌入式系统的测试装置。所述装置包括业务流程配置文件、代码管理模块、代码规则检查模块、代码质量度量模块、单元测试模块、代码编译构建模块、虚拟运行环境构建模块和嵌入式系统动态测试模块,所述业务流程配置文件中包括所述代码管理模块、所述代码规则检查模块、所述代码质量度量模块、所述单元测试模块、所述代码编译构建模块、所述虚拟运行环境构建模块和所述嵌入式系统动态测试模块中每个模块的业务流程信息,所述每个模块的业务流程信息包括所述每个模块的业务名称、流程名称、前置流程名称、后继流程名称、流程执行策略和流程平台中间件。
所述代码管理模块用于根据所述业务流程配置文件获取业务流程代码和执行所述业务流程代码以调用所述代码规则检查模块、所述代码质量度量模块、所述单元测试模块、所述代码编译构建模块、所述虚拟运行环境构建模块和所述嵌入式系统动态测试模块。
所述代码规则检查模块用于根据对应的业务流程信息对所述代码进行规则检查;所述代码质量度量模块用于根据对应的业务流程信息对所述代码进行质量度量;所述单元测试模块用于根据对应的业务流程信息对所述代码进行单元测试;所述代码编译构建模块用于根据对应的业务流程信息对所述代码进行编译并构建软件产品;所述虚拟运行环境构建模块用于根据对应的业务流程信息构建所述待测试嵌入式系统的虚拟运行环境;所述嵌入式系统动态测试模块用于根据对应的业务流程信息对所述软件产品进行集成测试、配置项测试和系统测试。
结合第二方面,在第一种可能的实现方式中,所述装置还包括管道管理模块。所述管理管道模块用于接收用户的输入和根据所述输入生成所述业务流程配置文件。
结合第一种可能的实现方式,在第二种可能的实现方式中,所述装置还包括显示模块,用于显示图像化用户交互界面。相应地,所述管道管理模块具体用于:接收用户在所述图形化用户交互界面的输入。
第三方面,提供了一种嵌入式系统的测试装置,该装置包括处理器;所述处理器用于执行存储器存储的程序;当所述存储器存储的程序被执行时,所述处理器用于执行第一方面或者其中任意一种实现方式中的方法。
可选地,所述装置还可以包括所述存储器。
第四方面,提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码用于执行第一方面或其中任意一种实现方式中的方法。
第五方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面或其中任意一种实现方式中的方法。
第六方面,提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行上述第一方面或其中任意一种实现方式中的方法。
可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第一方面或其中任意一种实现方式中的方法。
第七方面,提供了一种计算设备,该计算设备包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行第一方面或者其中任意一种实现方式中的方法。
第八方面,提供了一种测试系统,该测试系统包括第七方面所述的计算设备和软件产品的测试设备。
具体实施方式
本申请的测试方法的执行主体也可以称为敏捷性自动化测试平台,其核心目标是借助自动化工具实施快速频繁的集成验证,高效地反馈缺陷,并缩短发现缺陷和修复缺陷之间的时间间隔;内涵为采用持续集成的开发测试方法。
图1为本申请技术方案的应用场景示例图。如图1所示,开发工程师提供嵌入式系统的代码之后,可以对代码进行版本控制,经将代码输出至测试平台。
测试平台可以实现测试环境的构建、并在构建的测试环境中对嵌入式系统的代码进行测试,并输出测试结果给开发工程师查看。开发人员可根据测试报告结果决定直接部署软件或是对软件进行修改重新入库触发测试流程。
若开发工程师确定继续对代码进行修改以及对代码进行修改之后,可以重复执行前述流程,直到根据测试结果确定可以部署嵌入式系统。
上述过程也可以称为测试平台对嵌入式系统进行持续集成。
图2为本申请一个实施例的测试平台的示意图。敏捷性自动化测试平台基于已定义的业务模型,并对业务流程的参数进行配置,形成项目工作流,平台按照流程顺序自动调用各业务元素所需要的工具,完成相关工作,实现集成验证流程的自动化执行。
该测试平台一个开放式的自动化流程平台,具备调用各插件工具、执行业务流程和数据处理的能力。各项目基于已定义的业务模型,将模型中的业务元素及执行顺序、业务元素触发条件、业务元素执行参数、业务元素执行依赖资源、业务元素数据传递方式及内容、业务元素终止条件及终止处置策略进行参数化设定,将业务元素的参数在平台上进行配置,形成项目工作流,平台按照流程顺序自动调用各业务元素所需要的工具,完成相关工作,实现测试流程的自动化。
所述测试平台可以包括业务流程配置文件、代码管理模块、代码规则检查模块、代码质量度量模块、单元测试模块、代码编译构建模块、虚拟运行环境构建模块和嵌入式系统动态测试模块。
所述业务流程配置文件中可以包括所述代码管理模块、所述代码规则检查模块、所述代码质量度量模块、所述单元测试模块、所述代码编译构建模块、所述虚拟运行环境构建模块和所述嵌入式系统动态测试模块中每个模块的业务流程信息,所述每个模块的业务流程信息包括所述每个模块的业务名称、流程名称、前置流程名称、后继流程名称、流程执行策略和流程平台中间件。
所述代码管理模块用于根据所述业务流程配置文件获取业务流程代码和执行所述业务流程代码以调用所述代码规则检查模块、所述代码质量度量模块、所述单元测试模块、所述代码编译构建模块、所述虚拟运行环境构建模块和所述嵌入式系统动态测试模块。
所述代码规则检查模块用于对所述嵌入式系统进行规则检查;所述代码质量度量模块用于对所述嵌入式系统进行质量度量;所述单元测试模块用于对所述嵌入式系统进行单元测试;所述代码编译构建模块用于对所述嵌入式系统进行编译并构建软件产品;所述虚拟运行环境构建模块用于构建所述待测试嵌入式系统的虚拟运行环境;所述嵌入式系统动态测试模块用于对所述软件产品进行集成测试、配置项测试和系统测试。
图2所示的测试平台对嵌入式系统进行测试的方法的示意性流程图如图3所示。
301,代码管理模块根据业务流程配置文件获取业务流程代码,并执行所述业务流程代码,调用所述代码规则检查模块、所述代码质量度量模块、所述单元测试模块、所述代码编译构建模块、所述虚拟运行环境构建模块和所述嵌入式系统动态测试模块执行相应流程。
302,代码规则检查模块对所述嵌入式系统进行规则检查。
303,代码质量度量模块对所述嵌入式系统进行质量度量。
304,单元测试模块对所述嵌入式系统进行单元测试。
305,代码编译构建模块对所述嵌入式系统进行编译并构建软件产品。
306,虚拟运行环境构建模块构建所述嵌入式系统的虚拟运行环境。
307,嵌入式系统动态测试模块对所述软件产品进行集成测试、配置项测试和系统测试。
本实施例中,可选地,测试平台还包括可以管道(Pipeline)管理模块。Pipeline管理模块用于建立和管理业务流程,定义业务流程类,生成业务流程配置文件。例如,Pipeline管理模块可以实现以下功能:定义的业务流程类;建立业务流程配置文件;管理业务流程配置文件,实现对已有文件其的增、删、改、查以及存储和复用;支持单一业务的业务流程配置文件生成和组合业务的业务流程配置文件生成。
测试平台包括管道管理模块的情况下,相应地,代码管理模块获取待测试嵌入式系统的代码方法之前,本实施例的测试方法还可以包括:管道管理模块接收用户的输入;管道管理模块根据用户的输入生成业务流程配置文件。
Pipeline管理模块的工作示意图如图4所示。其中,Pipeline管理模块(例如,图4中的管理模块)可以定义业务流程类。该业务流程类的属性可以包括业务名称、流程名称、前置流程名称、后继路程名称、流程执行策略和流程平台中间件。该业务流程类的操作可以包括:定义流程、导入模板、组合流程和存储流程。
Pipeline管理模块可以根据用户输入的Pipeline配置信息(例如,图4中的配置信息)生成业务流程类的实例,从而得到Pipeline配置文件(例如,图4中的配置文件),Pipeline配置文件也可以成为业务流程配置文件。
进一步,可选地,测试平台还包括显示模块。相应地,测试方法还可以包括:显示模块显示图像化用户交互界面;管道管理模块接收用户在所述图形化用户交互界面的输入的Pipeline配置信息。
本实施例中,可选地,如图5所示,测试平台可以与数据中心进行通信。数据中心中可以包括代码库、单元测试用例库、编译器工具插件库、虚拟环境插件库、集成测试用例库、配置项测试用例库,系统测试用例库和相关文档。其中,代码库、单元测试用例库可以由软件开发人员提供或进行编辑,编译器工具插件库、虚拟环境插件库、集成测试用例库、配置项测试用例库和部分系统测试用例库和部分相关文档可以由软件测试人员提供和编辑,部分系统测试用例库和部分相关文档可以由系统测试人员提供和编辑。
本实施例中,代码管理模块可以从代码库中获取并执行业务流程代码,单元测试模块可以读取单元测试用例库中的单元测试用例来对嵌入式系统进行测试,代码编译构建模块可以调用编译器工具插件库中的插件来对嵌入式系统的代码进行编译,虚拟运行环境构建模块可以调用虚拟环境插件库中的插件来对构建嵌入式系统的虚拟运行环境,嵌入式系统动态测试模块可以分别读取集成测试用例库、配置项测试用例库和系统测试用例库中的用例对嵌入式系统对应的软件产品进行测试。此外,测试平台还可以根据相关文档的规定输出满足用户需求的测试报告。
图6为本申请一个实施例的测试装置600的示意性结构图。装置600包括处理器602、通信接口603和存储器604。装置600的一种示例为芯片,装置600的另一个示例为计算设备。
处理器602、存储器604和通信接口603之间可以通过总线通信。存储器604中存储有可执行代码,处理器602读取存储器604中的可执行代码以执行对应的方法。存储器604中还可以包括操作系统等其他运行进程所需的软件模块。操作系统可以为LINUXTM,UNIXTM,WINDOWSTM等。
例如,存储器604中的可执行代码用于实现图3中的步骤或操作;处理器602读取存储器604中的该可执行代码以执行图3中的步骤301至步骤307。
其中,处理器602可以为CPU。存储器604可以包括易失性存储器(volatilememory),例如随机存取存储器(random access memory,RAM)。存储器804还可以包括非易失性存储器(2non-volatile memory,2NVM),例如只读存储器(2read-only memory,2ROM),快闪存储器,硬盘驱动器(hard disk drive,HDD)或固态启动器(solid state disk,SSD)。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。