CN112270110A - 面向工业互联网平台组件的兼容性测试方法及系统 - Google Patents

面向工业互联网平台组件的兼容性测试方法及系统 Download PDF

Info

Publication number
CN112270110A
CN112270110A CN202011278026.4A CN202011278026A CN112270110A CN 112270110 A CN112270110 A CN 112270110A CN 202011278026 A CN202011278026 A CN 202011278026A CN 112270110 A CN112270110 A CN 112270110A
Authority
CN
China
Prior art keywords
test
tested component
api
tested
component
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
CN202011278026.4A
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.)
China Industrial Control Systems Cyber Emergency Response Team
Original Assignee
China Industrial Control Systems Cyber Emergency Response Team
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 China Industrial Control Systems Cyber Emergency Response Team filed Critical China Industrial Control Systems Cyber Emergency Response Team
Priority to CN202011278026.4A priority Critical patent/CN112270110A/zh
Publication of CN112270110A publication Critical patent/CN112270110A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/02Reliability analysis or reliability optimisation; Failure analysis, e.g. worst case scenario performance, failure mode and effects analysis [FMEA]

Abstract

本发明公开了一种面向工业互联网平台组件的兼容性测试方法及系统。面向工业互联网平台组件的兼容性测试方法,包括:根据被测组件与工业互联网平台运行环境的交互情况,配置测试环境;基于被测组件的配置文件和适应性指标,构建静态模型;基于被测组件的需求文档、设计文档和开发文档,采用API窗口树的建模方法,构建动态模型;在测试环境中安装被测组件,并判断被测组件是否被正确安装,若是,对被测组件进行建模测试,否则,输出不能正确安装的结果;对被测组件进行建模测试,包括:利用静态模型对被测组件进行向下兼容测试;利用动态模型对被测组件进行交错兼容测试。采用本发明,可以减少测试过程中的人工参与、提高测试效率、降低测试成本。

Description

面向工业互联网平台组件的兼容性测试方法及系统
技术领域
本发明涉及工业互联网平台软件测试领域,尤其涉及一种面向工业互联网平台组件的兼容性测试方法及系统。
背景技术
在工业互联网平台发展过程中,各大平台纷纷打造开发者社区,引入开源软件开发技术,形成功能组件模块化开发的产业生态。随着功能组件产品数量的快速增加,组件之间的互联互通能力成为了平台、用户和开发者都愈发关注的事情。对于平台而言,互联互通一方面能够提升平台的稳定性;另一方面,不同产品和不同品牌组件之间的互联互通能够为平台提供更好的供应商议价能力。对用户而言,平台功能组件的互联互通有利于其享受到更多基于功能整合的服务。从开发者的角度来看,组件的兼容性对其开发成果跨平台部署和应用具有重要意义。由此,组件的兼容性测试成为了工业互联网产业链中的重要环节。随着工业互联网平台支撑的组件功能越来越多,组件之间依赖和相互调用关系越来越复杂,人工编制的测试用例很难完全覆盖。一旦兼容性出现问题,依赖人工的方式进行追踪排查会消耗大量的人力成本,因此迫切需一种能够进行自动化排查的兼容性测试方法。
发明内容
本发明实施例提供一种面向工业互联网平台组件的兼容性测试方法及系统,用以解决现有技术中针对工业互联网平台组件兼容性测试效率低的问题。
根据本发明实施例的面向工业互联网平台组件的兼容性测试方法,包括:
根据被测组件与工业互联网平台运行环境的交互情况,配置测试环境;
基于所述被测组件的配置文件和适应性指标,构建静态模型;
基于所述被测组件的需求文档、设计文档和开发文档,采用API窗口树的建模方法,构建动态模型;
在所述测试环境中安装所述被测组件,并判断所述被测组件是否被正确安装,若是,对所述被测组件进行建模测试,否则,输出不能正确安装的结果;
对所述被测组件进行建模测试,包括:
利用所述静态模型对所述被测组件进行向下兼容测试;
利用所述动态模型对所述被测组件进行交错兼容测试。
根据本发明的一些实施例,所述基于所述被测组件的配置文件和适应性指标,构建静态模型,包括:
基于公式1-3构建静态模型:
staticMode∷=(Names,Config,SA) 公式1;
Config∷=(cID,{(cAttr,cVal)*}) 公式2;
SA∷=(sID,{(sAttr,sVal)+}) 公式3;
其中,Names表示静态模型名称,公式2为配置文件的表达式,cID表示配置文件的标识,cAttr表示配置属性名,cVal表示配置内容,公式3为适应性指标的表达式,sID表示指标标识,sAttr表示指标属性名,sVal表示指标属性值。
根据本发明的一些实施例,所述动态模型定义为(AW,aw0,E,RAW,E)形式的四元组;
其中,AW表示API窗口,所述API窗口为被测组件运行至时刻T时能够调用的所有API接口的集合,aw0表示初始API窗口且aw0∈AW,E表示API窗口出现跳转的事件,RAW,E表示API窗口之间的流转关系。
根据本发明的一些实施例,利用所述静态模型对所述被测组件进行向下兼容测试,包括:
采用配置文件一致性检测算法和适应性指标检测算法对所述被测组件的向下兼容性进行测试验证。
根据本发明的一些实施例,利用所述动态模型对所述被测组件进行交错兼容测试,包括:
对所述动态模型进行遍历,以构建测试用例集;
将所述测试用例集中的每条测试用例输入至所述被测组件;
比对测试用例输入被测组件后API接口跳转关系与该测试用例在动态模型中对应的跳转关系,以判断该测试用例是否被正确执行,并输出相应结果。
根据本发明实施例的面向工业互联网平台组件的兼容性测试系统,包括:
测试模块,用于根据被测组件与工业互联网平台运行环境的交互情况,配置测试环境;
模型构建模块,用于基于所述被测组件的配置文件和适应性指标,构建静态模型;基于所述被测组件的需求文档、设计文档和开发文档,采用API窗口树的建模方法,构建动态模型;
所述测试模块,还用于在所述测试环境中安装所述被测组件,并判断所述被测组件是否被正确安装,若是,对所述被测组件进行建模测试,否则,输出不能正确安装的结果;
对所述被测组件进行建模测试,包括:
利用所述静态模型对所述被测组件进行向下兼容测试;
利用所述动态模型对所述被测组件进行交错兼容测试。
根据本发明的一些实施例,所述模型构建模块,用于:
基于公式1-3构建静态模型:
staticMode∷=(Names,Config,SA) 公式1;
Config∷=(cID,{(cAttr,cVal)*}) 公式2;
SA∷=(sID,{(sAttr,sVal)+}) 公式3;
其中,Names表示静态模型名称,公式2为配置文件的表达式,cID表示配置文件的标识,cAttr表示配置属性名,cVal表示配置内容,公式3为适应性指标的表达式,sID表示指标标识,sAttr表示指标属性名,sVal表示指标属性值。
根据本发明的一些实施例,所述动态模型定义为(AW,aw0,E,RAW,E)形式的四元组;
其中,AW表示API窗口,所述API窗口为被测组件运行至时刻T时能够调用的所有API接口的集合,aw0表示初始API窗口且aw0∈AW,E表示API窗口出现跳转的事件,RAW,E表示API窗口之间的流转关系。
根据本发明的一些实施例,所述测试模块,用于:
采用配置文件一致性检测算法和适应性指标检测算法对所述被测组件的向下兼容性进行测试验证。
根据本发明的一些实施例,所述测试模块,用于:
对所述动态模型进行遍历,以构建测试用例集;
将所述测试用例集中的每条测试用例输入至所述被测组件;
比对测试用例输入被测组件后API接口跳转关系与该测试用例在动态模型中对应的跳转关系,以判断该测试用例是否被正确执行,并输出相应结果。
采用本发明实施例,通过模型对被测组件进行了完备的定义,实现了被测组件兼容性指标的完备抽取,通过自动化的测试用例生成方式保证了测试用例的覆盖性,从而保证了测试的完备性;兼容性测试方法采用被测对象模型描述,测试用例自动生成以及自动化测试的方式,最大限度避免了面对复杂系统的人工手段测试用例覆盖不全的问题和操作错误的问题,进而提升了兼容性测试的准确性;模型构建数据和测试流程均源自于组件本身的设计文档与开发文档,测试人员可以很容易的通过文档数据构建模型,当组件出现兼容性问题时,测试人员能够通过测试用例快定位问题所在位置;兼容性测试方法能够是应用各种架构工业互联网平台,在针对不同平台组件进行测试时,适当修改被测组件测试环境配置即可满足本领域需求。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。在附图中:
图1为本发明实施例的面向工业互联网平台组件的兼容性测试系统结构示意图;
图2为本发明实施例的面向工业互联网平台组件的兼容性测试方法流程图;
图3为本发明实施例的动态模型示意图;
图4为本发明实施例的配置一致性测试流程图;
图5为本发明实施例的适应性测试流程图;
图6为本发明实施例的测试用例自动生成流程图;
图7为本发明实施例的兼容性动态测试流程图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
在工业互联网平台组件兼容性测试中,针对于兼容性的判断标准包括:(1)组件能够正确安装部署在工业互联网平台上;(2)组件配置文件与交互环境中的各部分一致;(3)组件能够适应平台环境,即平台运行环境满足组件功能服务最低要求;(4)组件能够完整地提供正确的服务。其中,安装部署可以在测试环境配置过程中进行判断;配置一致性和适应性采用静态测试方法进行验证;判断组件提供服务正确性的方法为观察组件API接口的调用状况,若组件API接口调用正常,调用顺序正常,则可以判定为服务工作正常。
本发明实施例的面向工业互联网平台组件的兼容性测试方法,包括:
根据被测组件与工业互联网平台运行环境的交互情况,配置测试环境;
基于所述被测组件的配置文件和适应性指标,构建静态模型;例如,将被测组件放入工业互联网平台组件兼容性测试环境中,配置被测组件和与测试环境中存在交互的所有周边组件,形成测试驱动。
基于所述被测组件的需求文档、设计文档和开发文档,采用API窗口树的建模方法,构建动态模型;
在所述测试环境中安装所述被测组件,并判断所述被测组件是否被正确安装,若是,对所述被测组件进行建模测试,否则,输出不能正确安装的结果;
对所述被测组件进行建模测试,包括:
利用所述静态模型对所述被测组件进行向下兼容测试;
利用所述动态模型对所述被测组件进行交错兼容测试。
本发明实施例在明确工业互联网平台与被测组件交互范围的基础上,利用与被测组件进行交互的工业互联网平台API接口构建成测试环境。利用形式化建模方法对被测组件的配置文件、适应性环境、内外部API接口等进行建模。利用API窗口树模型对被测组件的动态运行进行抽象建模。通过API窗口树模型自动化生成测试用例,并在测试环境中在被测组件上执行测试用例。这种方式能够定位出组件兼容性问题发生的位置,减少测试过程中的人工参与,提高测试效率,节省人力资源,降低测试成本,可以解决针对工业互联网平台组件兼容性测试建模难度大,测试过程复杂,测试效率低下且手工测试过程中人为操作导致的错误率较高的问题。
在上述实施例的基础上,进一步提出各变型实施例,在此需要说明的是,为了使描述简要,在各变型实施例中仅描述与上述实施例的不同之处。
根据本发明的一些实施例,所述基于所述被测组件的配置文件和适应性指标,构建静态模型,包括:
基于公式1-3构建静态模型:
staticMode∷=(Names,Config,SA) 公式1;
Config∷=(cID,{(cAttr,cVal)*}) 公式2;
SA∷=(sID,{(sAttr,sVal)+}) 公式3;
其中,Names表示静态模型名称,公式2为配置文件的表达式,cID表示配置文件的标识,cAttr表示配置属性名,cVal表示配置内容,公式3为适应性指标的表达式,sID表示指标标识,sAttr表示指标属性名,sVal表示指标属性值。
根据本发明的一些实施例,所述动态模型定义为(AW,aw0,E,RAW,E)形式的四元组;
其中,AW表示API窗口,所述API窗口为被测组件运行至时刻T时能够调用的所有API接口的集合,aw0表示初始API窗口且aw0∈AW,E表示API窗口出现跳转的事件,RAW,E表示API窗口之间的流转关系。
所述采用API窗口树的建模方法,构建动态模型,包括:
将被测组件功能执行过程中调用的API或者API集合作为节点,建立API窗口树模型(即动态模型),当从一个节点流转到另一个节点时,会有0个,1个或者多个API被调用。
根据本发明的一些实施例,利用所述静态模型对所述被测组件进行向下兼容测试,包括:
采用配置文件一致性检测算法和适应性指标检测算法对所述被测组件的向下兼容性进行测试验证,以验证测试环境是否满足被测组件安装部署的要求。
根据本发明的一些实施例,利用所述动态模型对所述被测组件进行交错兼容测试,包括:
对所述动态模型进行遍历,以构建测试用例集;具体的,对API窗口树模型(即动态模型)进行遍历,形成API调用序列,每一条API调用序列都构成了一条测试用例,全部调用序列的集合就构成了测试用例集。
将所述测试用例集中的每条测试用例输入至所述被测组件;具体的,从测试用例集中取出一条测试用例,在测试环境中执行。
比对测试用例输入被测组件后API接口跳转关系与该测试用例在动态模型中对应的跳转关系,以判断该测试用例是否被正确执行,并输出相应结果。具体的,判断测试用例是否被正确执行,若否,记录执行结果不符合预期的测试用例,记录测试停机的位置。
根据本发明实施例的面向工业互联网平台组件的兼容性测试系统,包括:
测试模块,用于根据被测组件与工业互联网平台运行环境的交互情况,配置测试环境;
模型构建模块,用于基于所述被测组件的配置文件和适应性指标,构建静态模型;基于所述被测组件的需求文档、设计文档和开发文档,采用API窗口树的建模方法,构建动态模型;
所述测试模块,还用于在所述测试环境中安装所述被测组件,并判断所述被测组件是否被正确安装,若是,对所述被测组件进行建模测试,否则,输出不能正确安装的结果;
对所述被测组件进行建模测试,包括:
利用所述静态模型对所述被测组件进行向下兼容测试;
利用所述动态模型对所述被测组件进行交错兼容测试。
采用本发明实施例,通过模型对被测组件进行了完备的定义,实现了被测组件兼容性指标的完备抽取,通过自动化的测试用例生成方式保证了测试用例的覆盖性,从而保证了测试的完备性;兼容性测试方法采用被测对象模型描述,测试用例自动生成以及自动化测试的方式,最大限度避免了面对复杂系统的人工手段测试用例覆盖不全的问题和操作错误的问题,进而提升了兼容性测试的准确性;模型构建数据和测试流程均源自于组件本身的设计文档与开发文档,测试人员可以很容易的通过文档数据构建模型,当组件出现兼容性问题时,测试人员能够通过测试用例快定位问题所在位置;兼容性测试方法能够是应用各种架构工业互联网平台,在针对不同平台组件进行测试时,适当修改被测组件测试环境配置即可满足本领域需求。
在上述实施例的基础上,进一步提出各变型实施例,在此需要说明的是,为了使描述简要,在各变型实施例中仅描述与上述实施例的不同之处。
根据本发明的一些实施例,所述模型构建模块,用于:
基于公式1-3构建静态模型:
staticMode∷=(Names,Config,SA) 公式1;
Config∷=(cID,{(cAttr,cVal)*}) 公式2;
SA∷=(sID,{(sAttr,sVal)+}) 公式3;
其中,Names表示静态模型名称,公式2为配置文件的表达式,cID表示配置文件的标识,cAttr表示配置属性名,cVal表示配置内容,公式3为适应性指标的表达式,sID表示指标标识,sAttr表示指标属性名,sVal表示指标属性值。
根据本发明的一些实施例,所述动态模型定义为(AW,aw0,E,RAW,E)形式的四元组;
其中,AW表示API窗口,所述API窗口为被测组件运行至时刻T时能够调用的所有API接口的集合,aw0表示初始API窗口且aw0∈AW,E表示API窗口出现跳转的事件,RAW,E表示API窗口之间的流转关系。
根据本发明的一些实施例,所述测试模块,用于:
采用配置文件一致性检测算法和适应性指标检测算法对所述被测组件的向下兼容性进行测试验证。
根据本发明的一些实施例,所述测试模块,用于:
对所述动态模型进行遍历,以构建测试用例集;
将所述测试用例集中的每条测试用例输入至所述被测组件;
比对测试用例输入被测组件后API接口跳转关系与该测试用例在动态模型中对应的跳转关系,以判断该测试用例是否被正确执行,并输出相应结果。
下面参照图1-图7以一个具体的实施例详细描述根据本发明实施例的面向工业互联网平台组件的兼容性测试方法及系统。值得理解的是,下述描述仅是示例性说明,而不是对本发明的具体限制。凡是采用本发明的相似结构及其相似变化,均应列入本发明的保护范围。
随着工业互联网平台产品生态的快速成长,组件的兼容性从原本的对云平台和早期版本的向下兼容模式转变成了相关但不同的产品之间的交错兼容,这就需要对组件与其运行环境中各模块之间的互通性、互操作性和通用性进行测试验证。面对工业互联网平台这种复杂系统,基于模型的测试是一种有效的手段。
目前对于基于模型的测试方法,其建模方法主要分为三类:自然语言描述、UML等图形化建模语言描述以及基于数理逻辑的形式化方法。但这些方法都存在一些弊端,主要有:
(1)对于采用自然语言描述的建模方法,自然语言虽然能够很容易被人理解,然而自然语言无法做到表意的唯一性,其描述过程中会引入歧义。
(2)对于采用UML等图形化的建模语言的方法,这种半形式化语言不支持自动化验证。这样一方面导致测试用例仍然需要手动编写,另一方面当兼容性出现问题时依然需要通过人工排查。
(3)对于现有的形式化建模方法,如AADL(ArchitectureAnalysis and DesignLanguage),Petri网等虽然支持验证,但是在常规的模型检测中,对系统期望的性质需要采用相对应的时态逻辑公式进行规约,而时态逻辑公式存在标记相对晦涩难懂,现有工具支撑不足、工具易用性差等原因,使得这些形式化模型不适合处理具有复杂交互的系统测试问题。
综上所述,现有的基于模型的测试技术在工业互联网平台组件兼容性测试中存在多种局限:1)被测组件与其他组件之间存在复杂的依赖与调用关系,测试过程繁杂,从而导致测试效率低下;2)大量依靠人工进行测试需求分析,测试用例生成和测试任务执行,由于人为操作导致的错误率上升造成最后的测试结论可信度下降;3)针对测试过程中发现的兼容性问题,需要人工进行排查分析;4)现有的非形式化建模方法存在二义性,无法对被测组件精确描述;5)半形式化方法不支持自动化测试用例生成;6)形式化建模方法所采用的技术方法晦涩难懂,对相关人员专业知识要求较高;7)其他一些建模方法可以实现自动化测试,但存在状态空间爆炸的问题。
为解决上述问题,本发明实施例提出一种面向工业互联网平台组件的兼容性测试方法及系统。
如图1所示,面向工业互联网平台组件的兼容性测试系统包括:模型构建模块、测试准备模块、测试执行模块、以及兼容性测试模块。基于本发明实施例的面向工业互联网平台组件的兼容性测试系统的测试方法,如图2所示,包括以下步骤:
步骤一,根据被测组件的需求文档、设计文档和开发文档,整理出被测组件和平台交互的API接口,搭建完整的被测组件运行环境,从而建立测试环境。
步骤二,在测试环境中对被测组件进行安装,检测被测组件是否能够被正确地部署。若安装不成功,则需检查步骤一中的测试环境是否存在配置错误,若不存在配置错误,则反馈兼容性测试报告。若安装部署成功则继续步骤三。
步骤三,利用被测组件的需求文档、设计文档和开发文档,收集被测组件的配置文件、适应性指标和内外部API接口信息:(1)抽象配置文件、适应性指标为静态模型;(2)抽象被测组件的API窗口树模型作为动态模型。
本发明实施例通过检测配置文件(Config)和适应性指标(SA)的方式对被测组件的向下兼容性进行测试。因此,定义被测组件的静态模型staticMode∷=(Names,Config,SA)。
其中,配置文件定义为Config∷=(cID,{(cAttr,cVal)*}),其中cID表示配置文件的标识,cAttr表示配置属性名,cVal表示配置内容。
例如,被测组件的数据库连接配置文件database.ini中规定数据库地址192.168.2.221,用户名为admin,密码为psw,在建立静态模型时,该项可以采用XML格式表示:
Figure BDA0002779775390000111
Figure BDA0002779775390000121
适应性指标定义为SA∷=(sID,{(sAttr,sVal)+}),其中sID表示指标标识,sAttr表示指标属性名,sVal表示指标属性值。
又如,被测组件的系统对硬件要求是CPU主频不低于1GHz,内存不小于2GB,存储空间不小于40G,吞吐性能不小于45MB/s则XML可以表示为:
Figure BDA0002779775390000122
步骤四,采用动态模型对被测组件的功能描述,以API调用流程为核心,建立API窗口树模型。API窗口树模型用于刻画被测组件功能的API流转关系。组件状态的变化可以看成系统功能流程的集合,每一次API的流转都伴随着一次事件的触发激励。动态模型将被测组件抽象成为了两种元素,API窗口(AW)和事件(E)。
API窗口树模型中各元素定义如下:
API窗口(AW):当被测组件运行至时刻T,其能够调用的所有API接口的集合,集合中的API数量可以为零到多个。定义为AW∷=(api*)T
事件(E):当API窗口出现跳转,即对API进行了调用从而出现了新的API窗口,调用API被称为事件,事件触发了API窗口的跳转。定义为E∷=(eID,preCondition,(api,parameter*)*)
流转关系(R):流转关系可以用AW和E定义
Figure BDA0002779775390000131
如果存在(awj,awi,e)∈RAW,E,则表示API窗口节点awi与节点awj之间存在跳转关系。awi是前置节点,awj是后置节点,e是跳转事件。
API窗口树(AWT)模型可以定义为(AW,aw0,E,RAW,E)形式的四元组。其中aw0表示初始API窗口且aw0∈AW。
图3为动态模型(即API窗口树模型)示意图。在该模型中,API窗口用矩形框表示,事件用有向边表示,有向边上标明事件名称以及该事件所代表调用的API。通过触发API,该事件或事件序列将流程从当前窗口转向下一个窗口。不同的事件将窗口跳转到不同的流程序列,提供相同API的窗口可以通过窗口约减规则合并为一个窗口,从而可以减少节点数目以便提高程序处理速度,一个窗口树中所有流程可以模拟被测组件的所有执行功能引起的跳转行为。
上述的API窗口树模型是形式化定义,作为自动机模型的形式化定义可用于形式化分析,特别是可用于基于模型的兼容性测试。因此,如果采用API窗口树模型对被测组件建模,再利用模型生成测试用例,就具备了一种基于自动机的测试用例自动生成的基础。
步骤五,基于静态模型对被测组件的配置一致性和适应性进行测试。
配置一致性测试的技术本质是将被测组件的配置文件信息与标准配置信息进行比对,检查其是否与标准配置信息相一致。其形式化定义如下,假设标准配置内容sConfig∷=(scID,{(scAttr,scVal)*}),其全部属性信息集合记为sConfigSet;配置文件为Config∷=(cID,{(cAttr,cVal)*}),其全部属性信息集合记为ConfigSet;若配置文件信息与标准配置信息一致,则需满足如下条件:
(1)
Figure BDA0002779775390000141
(2)对所有cAttr=scAttr都有cVal=scVal
配置一致性测试流程如图4所示,具体包括:
步骤1,从被测组件配置文件中提取配置项configi
步骤2,检索标准配置项找出与configi相同的配置项;
步骤3,对比配置项中的属性是否存在于标准配置项中,若不存则执行步骤5,若存在则执行步骤4;
步骤4,对比配置项中的属性值是否与标准配置项相同,若不相同则执行步骤5,若相同则执行步骤6;
步骤5,将configi与标准配置项不同的属性进行记录,然后执行步骤6;
步骤6,检查配置文件是否已经被完全对比过,若已全部对比则执行步骤7,若未全部对比则执行步骤1;
步骤7,输出测试报告,包含所有被测组件配置文件与标准库不一致的属性。
其具体算法伪代码如下:
输入:配置文件Config,标准库sConfig
输出:配置不一致记录con_record
Figure BDA0002779775390000142
Figure BDA0002779775390000151
适应性测试的技术本质是将被测组件的运行所需要的系统资源与工业互联网平台运行环境所能提供的资源相比较,以测试模块是否能够在工业互联网平台上运行。其形式化定义如下,平台能够提供的运行资源RS∷=(rsID,{(rsAttr,rsVal)*}),其全部属性信息集合记为RS;适应性指标为SA∷=(sID,{(sAttr,sVal)+})其全部属性信息集合记为SA;若运行环境满足适应性指标,则需满足如下条件:
(1)sAttr∈RS;
(2)对于任意的sID=rsID都有sVal落入rsVal的取值范围内。
适配性指标测试流程如图5所示,包括以下步骤:
步骤1,从静态模型的适应性指标中提取一条指标。
步骤2,通过测试环境自带的API接口调取平台对应的状态信息。
步骤3,若平台状态满足适应性指标则执行步骤5,若不满足则执行步骤4。
步骤4,存储不满足的适应性指标,然后执行步骤5。
步骤5,检查是否全部适应性指标已经比对,若存在未必对指标则执行步骤1,若不错在未比对指标则执行步骤6。
步骤6,将所欲测试指标及结果输出。
其具体算法伪代码如下:
输入:适应性指标SA,系统资源RS
输出:不适应指标记录sa_record
Figure BDA0002779775390000152
Figure BDA0002779775390000161
步骤六,遍历API窗口树模型,通过测试用例自动生成算法生成工业互联网平台组件的兼容性测试用例集合。
本发明实施例实现的兼容性测试系统能够对API窗口树进行建模的同时,通过对模型的遍历产生检测用例。测试用例自动生成的方法基于传统的深度优先遍历算法,整体流程如图6所示。通过深度优先遍历API窗口树中所有节点,以根节点为路径起点,叶子节点为路径终点。在此基础上,通过将边作为跳转信息补充到路径中,一条从根节点到叶子节点的路径以及跳转信息,即构成了一条测试用例(test case,tc)。用路径覆盖性约束对测试用例集进行检测,若其符合覆盖性约束,最终获得了完备的兼容性测试用例集(Test CaseSet,TCS)。
本发明所提及的覆盖性约束如下:
(1)节点覆盖准则:对于
Figure BDA0002779775390000162
Figure BDA0002779775390000163
使得aw∈tc。
(2)边覆盖准则:对于
Figure BDA0002779775390000164
Figure BDA0002779775390000165
使得r∈tc。
步骤七,生成测试用例集后,将获得的每一条测试用例输入到被测组件中,如图7所示。通过比对被测组件对输入的用例时被测组件API接口跳转关系与API窗口树模型中给出的跳转关系,判断该输入用例是否满足条件,若是满足条件,则测试通过,输出对应的测试用例测试通过的结果,若不满足条件,则输出测试用例未通过的结果以及未通过测试的位置。
测试人员根据被测组件的需求、设计和开发文档建立起来的API窗口树成为被测组件功能执行正确性炎症的规约。出于软件复用的角度,将一条测试用例是否符合规则的判断过程进行模块化,形成基本检查算法(BCA,Base Checking Algorithm)。设输入测试用例(api1,e1,api2),首先进行窗口和事件的验证,验证状态窗口和事件是否属于API窗口树中已存在的元素,这一过程也就是对测试用例的正确性进行验证,如果不通过则说明测试用例中存在错误,需要重新生成。
然后遍历API窗口树中的跳转规则,找到所有符合初始窗口为api1,事件为e1的流转序列集合U,遍历判断集合U中后置状态的起始节点是否均为api2,如果全部通过则输出通过测试,测试至此结束。
步骤八,若出现了导致测试结果异于预测结果的异常事件,则将出现异常的前置状态、事件、后置状态,以及各自对应的被测组件API进行收集。列出导致异常的测试用例,该测试用例的API接口和出现异常时执行的事件,这些信息可以帮助开发人员定位兼容性异常出现的位置,并帮助其加以修正。
相比现有技术,本发明的优点和积极效果在于:
(1)测试完备性:本发明通过模型对被测组件进行了完备的定义,实现了被测组件兼容性指标的完备抽取。通过自动化的测试用例生成方式保证了测试用例的覆盖性,从而保证了测试的完备性;
(2)测试准确性:本发明所给出的兼容性测试方法,采用被测对象模型描述,测试用例自动生成以及自动化测试的方式。最大限度避免了面对复杂系统的人工手段测试用例覆盖不全的问题和操作错误的问题,进而提升了兼容性测试的准确性。
(3)工具易用性:本发明所提出的兼容性测试方法,其模型构建数据和测试流程均源自于组件本身的设计文档与开发文档,测试人员可以很容易的通过文档数据构建模型。当组件出现兼容性问题时,测试人员能够通过测试用例快定位问题所在位置。
(4)工具通用性:本发明所提出的兼容性测试方法能够是应用各种架构工业互联网平台,在针对不同平台组件进行测试时,适当修改被测组件测试环境配置即可满足本领域需求。
需要说明的是,以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

Claims (10)

1.一种面向工业互联网平台组件的兼容性测试方法,其特征在于,包括:
根据被测组件与工业互联网平台运行环境的交互情况,配置测试环境;
基于所述被测组件的配置文件和适应性指标,构建静态模型;
基于所述被测组件的需求文档、设计文档和开发文档,采用API窗口树的建模方法,构建动态模型;
在所述测试环境中安装所述被测组件,并判断所述被测组件是否被正确安装,若是,对所述被测组件进行建模测试,否则,输出不能正确安装的结果;
对所述被测组件进行建模测试,包括:
利用所述静态模型对所述被测组件进行向下兼容测试;
利用所述动态模型对所述被测组件进行交错兼容测试。
2.如权利要求1所述的方法,其特征在于,所述基于所述被测组件的配置文件和适应性指标,构建静态模型,包括:
基于公式1-3构建静态模型:
staticMode∷=(Names,Config,SA) 公式1;
Config∷=(cID,{(cAttr,cVal)*}) 公式2;
SA∷=(sID,{(sAttr,sVal)+}) 公式3;
其中,Names表示静态模型名称,公式2为配置文件的表达式,cID表示配置文件的标识,cAttr表示配置属性名,cVal表示配置内容,公式3为适应性指标的表达式,sID表示指标标识,sAttr表示指标属性名,sVal表示指标属性值。
3.如权利要求1所述的方法,其特征在于,所述动态模型定义为(AW,aw0,E,RAW,E)形式的四元组;
其中,AW表示API窗口,所述API窗口为被测组件运行至时刻T时能够调用的所有API接口的集合,aw0表示初始API窗口且aw0∈AW,E表示API窗口出现跳转的事件,RAW,E表示API窗口之间的流转关系。
4.如权利要求1所述的方法,其特征在于,利用所述静态模型对所述被测组件进行向下兼容测试,包括:
采用配置文件一致性检测算法和适应性指标检测算法对所述被测组件的向下兼容性进行测试验证。
5.如权利要求1所述的方法,其特征在于,利用所述动态模型对所述被测组件进行交错兼容测试,包括:
对所述动态模型进行遍历,以构建测试用例集;
将所述测试用例集中的每条测试用例输入至所述被测组件;
比对测试用例输入被测组件后API接口跳转关系与该测试用例在动态模型中对应的跳转关系,以判断该测试用例是否被正确执行,并输出相应结果。
6.一种面向工业互联网平台组件的兼容性测试系统,其特征在于,包括:
测试模块,用于根据被测组件与工业互联网平台运行环境的交互情况,配置测试环境;
模型构建模块,用于基于所述被测组件的配置文件和适应性指标,构建静态模型;基于所述被测组件的需求文档、设计文档和开发文档,采用API窗口树的建模方法,构建动态模型;
所述测试模块,还用于在所述测试环境中安装所述被测组件,并判断所述被测组件是否被正确安装,若是,对所述被测组件进行建模测试,否则,输出不能正确安装的结果;
对所述被测组件进行建模测试,包括:
利用所述静态模型对所述被测组件进行向下兼容测试;
利用所述动态模型对所述被测组件进行交错兼容测试。
7.如权利要求6所述的系统,其特征在于,所述模型构建模块,用于:
基于公式1-3构建静态模型:
staticMode∷=(Names,Config,SA) 公式1;
Config∷=(cID,{(cAttr,cVal)*}) 公式2;
SA∷=(sID,{(sAttr,sVal)+}) 公式3;
其中,Names表示静态模型名称,公式2为配置文件的表达式,cID表示配置文件的标识,cAttr表示配置属性名,cVal表示配置内容,公式3为适应性指标的表达式,sID表示指标标识,sAttr表示指标属性名,sVal表示指标属性值。
8.如权利要求6所述的系统,其特征在于,所述动态模型定义为(AW,aw0,E,RAW,E)形式的四元组;
其中,AW表示API窗口,所述API窗口为被测组件运行至时刻T时能够调用的所有API接口的集合,aw0表示初始API窗口且aw0∈AW,E表示API窗口出现跳转的事件,RAW,E表示API窗口之间的流转关系。
9.如权利要求6所述的系统,其特征在于,所述测试模块,用于:
采用配置文件一致性检测算法和适应性指标检测算法对所述被测组件的向下兼容性进行测试验证。
10.如权利要求6所述的系统,其特征在于,所述测试模块,用于:
对所述动态模型进行遍历,以构建测试用例集;
将所述测试用例集中的每条测试用例输入至所述被测组件;
比对测试用例输入被测组件后API接口跳转关系与该测试用例在动态模型中对应的跳转关系,以判断该测试用例是否被正确执行,并输出相应结果。
CN202011278026.4A 2020-11-16 2020-11-16 面向工业互联网平台组件的兼容性测试方法及系统 Pending CN112270110A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011278026.4A CN112270110A (zh) 2020-11-16 2020-11-16 面向工业互联网平台组件的兼容性测试方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011278026.4A CN112270110A (zh) 2020-11-16 2020-11-16 面向工业互联网平台组件的兼容性测试方法及系统

Publications (1)

Publication Number Publication Date
CN112270110A true CN112270110A (zh) 2021-01-26

Family

ID=74340007

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011278026.4A Pending CN112270110A (zh) 2020-11-16 2020-11-16 面向工业互联网平台组件的兼容性测试方法及系统

Country Status (1)

Country Link
CN (1) CN112270110A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114500324A (zh) * 2022-01-24 2022-05-13 国家工业信息安全发展研究中心 一种面向工业互联网仿真测试床的集成接入系统
CN114554537A (zh) * 2022-02-25 2022-05-27 中国人民解放军国防科技大学 一种基于软件通信体系结构的mac组件一致性测试方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101459540A (zh) * 2008-12-30 2009-06-17 公安部第三研究所 互联网上网服务营业场所上网系统使用性能的检验方法
CN101847123A (zh) * 2010-05-26 2010-09-29 北京航空航天大学 一种机载计算机软件测试通用体系的构建方法
CN104407977A (zh) * 2014-12-08 2015-03-11 北京航空航天大学 基于模型检测的分阶段任务系统的自动化联调测试方法
US20170068609A1 (en) * 2014-02-26 2017-03-09 Western Michigan University Research Foundation Apparatus and method for testing computer program implementation against a design model
CN107608894A (zh) * 2017-09-22 2018-01-19 深圳航天科技创新研究院 基于动态模型的软件测试文档生成方法、系统及存储介质
CN108920370A (zh) * 2018-07-02 2018-11-30 北京百度网讯科技有限公司 兼容性问题检测方法、装置及设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101459540A (zh) * 2008-12-30 2009-06-17 公安部第三研究所 互联网上网服务营业场所上网系统使用性能的检验方法
CN101847123A (zh) * 2010-05-26 2010-09-29 北京航空航天大学 一种机载计算机软件测试通用体系的构建方法
US20170068609A1 (en) * 2014-02-26 2017-03-09 Western Michigan University Research Foundation Apparatus and method for testing computer program implementation against a design model
CN104407977A (zh) * 2014-12-08 2015-03-11 北京航空航天大学 基于模型检测的分阶段任务系统的自动化联调测试方法
CN107608894A (zh) * 2017-09-22 2018-01-19 深圳航天科技创新研究院 基于动态模型的软件测试文档生成方法、系统及存储介质
CN108920370A (zh) * 2018-07-02 2018-11-30 北京百度网讯科技有限公司 兼容性问题检测方法、装置及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李睿 等: "《基于形式化方法的航空电子系统检测》", 《软件学报》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114500324A (zh) * 2022-01-24 2022-05-13 国家工业信息安全发展研究中心 一种面向工业互联网仿真测试床的集成接入系统
CN114500324B (zh) * 2022-01-24 2023-08-18 国家工业信息安全发展研究中心 一种面向工业互联网仿真测试床的集成接入系统
CN114554537A (zh) * 2022-02-25 2022-05-27 中国人民解放军国防科技大学 一种基于软件通信体系结构的mac组件一致性测试方法
CN114554537B (zh) * 2022-02-25 2024-01-23 中国人民解放军国防科技大学 一种基于软件通信体系结构的mac组件一致性测试方法

Similar Documents

Publication Publication Date Title
Egyed A scenario-driven approach to traceability
Gross et al. Search-based system testing: high coverage, no false alarms
US8402438B1 (en) Method and system for generating verification information and tests for software
CN112270110A (zh) 面向工业互联网平台组件的兼容性测试方法及系统
Ratiu et al. Automated testing of DSL implementations: experiences from building mbeddr
Chowdhury et al. CyFuzz: A differential testing framework for cyber-physical systems development environments
Randrianaina et al. On the benefits and limits of incremental build of software configurations: an exploratory study
Ab Rahim et al. Verifying semantic conformance of state machine-to-Java code generators
Elmqvist et al. Safety-oriented design of component assemblies using safety interfaces
US7765541B1 (en) Minimization methodology
Kelly et al. A case study on automated fuzz target generation for large codebases
Kruse Test oracles and test script generation in combinatorial testing
Motan et al. Android App Testing: A Model for Generating Automated Lifecycle Tests
CN110795338B (zh) 一种基于前后端交互的自动化测试方法、装置及电子设备
Xiao et al. Advances on improving automation in developer testing
Khorram et al. From coverage computation to fault localization: A generic framework for domain-specific languages
CN111245676B (zh) 通信协议可信性验证装置
Micskei et al. Robustness testing techniques for high availability middleware solutions
Sharma et al. Model-based testing: the new revolution in software testing
Duarte et al. Extraction of probabilistic behaviour models based on contexts
Jürjens et al. Tools for model-based security engineering
Vijayasree et al. A Review on the Process of Automated Software Testing
Miller et al. Supporting the software testing process through specification animation
Kama et al. Considering patterns in class interactions prediction
Elsaka Fault Localization Using Hybrid Static/Dynamic Analysis

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210126

RJ01 Rejection of invention patent application after publication