首页 / 专利库 / 软件 / 软件 / 核电软件测试系统和方法

核电软件测试系统和方法

阅读:535发布:2023-02-28

专利汇可以提供核电软件测试系统和方法专利检索,专利查询,专利分析的服务。并且本公开提供了一种核电 软件 测试系统和方法,所述系统包括:测试初始化装置,对测试项目进行预处理,获得测试项目包含的模 块 、变量以及模块之间的关联;测试对象识别装置,根据用户输入的条件,获取符合所述条件的模块及其关联的模块,作为测试对象;变量管理装置,向与测量对象有关的变量赋值;测试执行装置,根据预先建立的规则库中的测试规则,利用变量的值,执行测试对象的测试,并生成测试结果;以及测试结果管理装置,管理测试结果。本公开的系统和方法能够整合单元测试、集成测试和系统测试,并且采用静态语法 缺陷 检查和动态编译测试相结合的方式,能够有效、准确地识别和 定位 测试项目中的各类缺陷。,下面是核电软件测试系统和方法专利的具体信息内容。

1.一种核电软件测试系统,包括:
测试初始化装置,对测试项目进行预处理,获得测试项目包含的模、变量以及模块之间的关联;
测试对象识别装置,根据用户输入的条件,获取符合所述条件的模块及其关联的模块,作为测试对象;
变量管理装置,向与测量对象有关的变量赋值;
测试执行装置,根据预先建立的规则库中的测试规则,利用变量的值,执行测试对象的测试,并生成测试结果;以及
测试结果管理装置,管理测试结果。
2.根据权利要求1所述的系统,还包括:测试数据可视化装置,向用户提供关于测试的可视化报告。
3.根据权利要求1所述的系统,其中测试初始化模块对测试项目进行预处理包括:根据所述规则库中的语法规则,识别和定位所获取的模块和变量中的语法缺陷
4.根据权利要求1所述的系统,其中测试初始化装置对测试项目进行预处理包括:对测试项目进行扫描,解析出测试项目包含的全部模块、局部变量和全局变量,并对模块进行遍历和分析以获取模块之间的关联。
5.根据权利要求1所述的系统,其中变量管理装置根据用户输入或根据预设的初始值,向与测量对象有关的变量赋值。
6.根据权利要求1所述的系统,其中测试结果管理装置对测试结果进行统计分析,并利用分析结果来改进规则库中的测试规则和语法规则。
7.根据权利要求2所述的系统,其中关于测试的可视化报告包括测试是否完成、测试了哪些测试对象、测试覆盖率以及测试结果。
8.根据权利要求3所述的系统,其中语法规则包括缺陷定位算法和缺陷分布模型。
9.一种核电软件测试方法,包括:
测试初始化步骤,对测试项目进行预处理,获得测试项目包含的模块、变量以及模块之间的关联;
测试对象识别步骤,根据用户输入的条件,获取符合所述条件的模块及其关联的模块,作为测试对象;
变量管理步骤,向与测量对象有关的变量赋值;
测试执行步骤,根据预先建立的规则库中的测试规则,利用变量的值,执行测试对象的测试,并生成测试结果;以及
测试结果管理步骤,管理测试结果。
10.根据权利要求9所述的方法,其中在测试初始化步骤中,对测试项目进行预处理包括:对测试项目进行扫描,解析出测试项目包含的全部模块、局部变量和全局变量,并对模块进行遍历和分析以获取模块之间的关联。

说明书全文

核电软件测试系统和方法

技术领域

[0001] 本公开涉及软件测试领域,具体涉及核电软件测试系统和方法。

背景技术

[0002] 国际上针对通用软件系统的自动化测试理论及方法体系已经形成,IBM、Oracle等跨国企业也已发布了用于C++、Java等编程语言的自动化测试工具。然而,作为典型的科学计算程序,核电软件因其理论模型复杂、测试和验证要求极高、计算结果准确性要求高以及运行高可靠性和高稳定性的特点,一直是我国核电技术自主化发展的核心瓶颈之一,因此测试过程的自动化对于大型高可信软件系统的成功研制与交付具有重大意义,但目前国际上尚未形成针对核电软件设计与使用特点的自动化测试流程、标准与工具平台。发明内容
[0003] 本公开的示例实施例提供了一种核电软件测试系统,包括:
[0004] 测试初始化装置,对测试项目进行预处理,获得测试项目包含的模、变量以及模块之间的关联;
[0005] 测试对象识别装置,根据用户输入的条件,获取符合所述条件的模块及其关联的模块,作为测试对象;
[0006] 变量管理装置,向与测量对象有关的变量赋值;
[0007] 测试执行装置,根据预先建立的规则库中的测试规则,利用变量的值,执行测试对象的测试,并生成测试结果;以及
[0008] 测试结果管理装置,管理测试结果。
[0009] 在一个实施例中,系统还包括:测试数据可视化装置,向用户提供关于测试的可视化报告。
[0010] 在一个实施例中,测试初始化模块对测试项目进行预处理包括:根据所述规则库中的语法规则,识别和定位所获取的模块和变量中的语法缺陷
[0011] 在一个实施例中,测试初始化装置对测试项目进行预处理包括:对测试项目进行扫描,解析出测试项目包含的全部模块、局部变量和全局变量,并对模块进行遍历和分析以获取模块之间的关联。
[0012] 在一个实施例中,变量管理装置根据用户输入或根据预设的初始值,向与测量对象有关的变量赋值。
[0013] 在一个实施例中,测试结果管理装置对测试结果进行统计分析,并利用分析结果来改进规则库中的测试规则和语法规则。
[0014] 在一个实施例中,关于测试的可视化报告包括测试是否完成、测试了哪些测试对象、测试覆盖率以及测试结果。
[0015] 在一个实施例中,语法规则包括缺陷定位算法和缺陷分布模型。
[0016] 本公开的示例实施例还提供了一种核电软件测试方法,包括:
[0017] 测试初始化步骤,对测试项目进行预处理,获得测试项目包含的模块、变量以及模块之间的关联;
[0018] 测试对象识别步骤,根据用户输入的条件,获取符合所述条件的模块及其关联的模块,作为测试对象;
[0019] 变量管理步骤,向与测量对象有关的变量赋值;
[0020] 测试执行步骤,根据预先建立的规则库中的测试规则,利用变量的值,执行测试对象的测试,并生成测试结果;以及
[0021] 测试结果管理步骤,管理测试结果。
[0022] 在一个实施例中,在测试初始化步骤中,对测试项目进行预处理包括:对测试项目进行扫描,解析出测试项目包含的全部模块、局部变量和全局变量,并对模块进行遍历和分析以获取模块之间的关联。
[0023] 根据本公开的核电软件测试系统和方法,除了获得测试项目包含的模块、变量,还获得模块之间的关联,从而通过单个测试系统,不仅能够执行单元测试,还能够通过将关联模块集成来执行集成测试以及系统测试。此外,采用静态语法缺陷检查和动态编译测试相结合的方式,能够有效、准确地识别和定位测试项目中的各类缺陷。对测试结果进行管理并用于改进规则库中的预设规则,能够进一步提高缺陷识别和定位的准确率。附图说明
[0024] 根据结合附图阅读的以下描述,本发明的以上和其他方面、特征和优点将变得清楚明白,其中类似的参考数字表示相同的元件。
[0025] 图1示意性示出了根据本公开示例实施例的核电软件测试系统;
[0026] 图2示意性示出了根据本公开另一示例实施例的核电软件测试系统;以及[0027] 图3示意性示出了根据本公开示例实施例的核电软件测试方法的流程图

具体实施方式

[0028] 下面将详细描述本发明的具体实施例,应当注意,这里描述的实施例只用于举例说明,并不用于限制本发明。在以下描述中,为了提供对本发明的透彻理解,阐述了大量特定细节。然而,对于本领域普通技术人员显而易见的是:不必采用这些特定细节来实行本发明。在其他实例中,为了避免混淆本发明,未具体描述公知的电路、材料或方法。
[0029] 在整个说明书中,对“一个实施例”、“实施例”、“一个示例”或“示例”的提及意味着:结合该实施例或示例描述的特定特征、结构或特性被包含在本发明至少一个实施例中。因此,在整个说明书的各个地方出现的短语“在一个实施例中”、“在实施例中”、“一个示例”或“示例”不一定都指同一实施例或示例。此外,可以以任何适当的组合和/或子组合将特定的特征、结构或特性组合在一个或多个实施例或示例中。此外,本领域普通技术人员应当理解,这里使用的术语“和/或”包括一个或多个相关列出的项目的任何和所有组合。
[0030] 随着国家重大科技专项(例如,大型先进压堆核电站研发与建设)的稳步推进,开发具有高可信性的核电软件以及相应的核电软件测试平台已成为一项当务之急。当前流行的传统软件自动化测试工具因为多种原因不能完成满足核电软件测试需求:IBM自动化测试框架RFTRational测试平台仅集成功能测试和回归测试,采用Eclipse插件机制,需要维护复杂的脚本;Oracle推出的Oracle Application testing suit(openscript)通过录制访问网络应用的方式自动生成功能测试脚本,但是偏向于Web产品的压测试;QTP(Quick Test Professional)是惠普开发的自动测试工具,侧重于功能的回归测试,但是没有提供针对核电软件开发语言的测试功能。此外,高可信性是大型核电软件开发与应用的必然要求,而软件缺陷是严重影响软件系统可信性的重要因素。如何准确、高效地定位潜在的软件缺陷是改进、提高软件系统质量及可靠性的重要课题。鉴于现有技术存在的问题,本申请发明人在详尽理解核电设计理论知识及核电软件研发特点的基础上,提出了一种针对核电软件的自动化测试系统和方法,测试范围广,例如可以覆盖核电厂核设计、热工设计、系统安全分析概率安全分析燃料设计等核心模块,测试粒度可以细化到每一个功能点,覆盖全部的模块和模块组,测试内容覆盖静态代码检查及动态质量分析,通过预处理自动解析目标代码,获取待测模块,分配全局与局部变量初始值,中间过程分步执行静态与动态代码检查,最后生成测试报告,从而将包括单元测试、集成测试、系统测试和回归测试在内的核电软件测试全过程纳入此系统,并且还能够收集及分析测试数据,生成及管理测试报告,为开发人员及测试人员提供有力的系统评测保障,极大的节省人力,提高测试效率。此外,该测试系统和方法能够收集、分析软件测试的相关数据,为软件缺陷定位算法的改进、缺陷分布模型的生成以及开发过程的持续改进提供支持。
[0031] 下面结合附图描述本公开的示例实施例。
[0032] 图1示意性示出了根据本公开示例实施例的核电软件测试系统。图1所示的核电软件测试系统10包括测试初始化装置100,测试对象识别装置102,变量管理装置104,测试执行装置106和测试结果管理装置108。图1还示出了预先建立的规则库110,虽然所示规则库110不包括在测试系统10内,但是本领域技术人员可以理解,规则库110也可以包括在测试系统10内。规则库110可以实现为例如保存在存储器中的数据库。规则库110可以是根据历史测试数据与分析结果建立的,包括例如语法规则、测试规则等。语法规则可以包括缺陷定位算法和缺陷分布模块。测试结果管理装置108可以对测试结果进行统计分析,并利用分析结果来改进规则库中的测试规则和语法规则。
[0033] 测试初始化装置100对测试项目进行预处理,获得测试项目包含的模块、变量以及模块之间的关联。测试对象识别装置102根据用户输入的条件,获取符合所述条件的模块及其关联的模块,作为测试对象。变量管理装置104向与测量对象有关的变量赋值,测试执行装置106根据预先建立的规则库110中的测试规则,利用变量的值,执行测试对象的测试,并生成测试结果。测试结果管理装置108管理测试结果。
[0034] 在一个实施例中,测试初始化模块100通过根据规则库110中的语法规则,识别和定位所获取的模块和变量中的语法缺陷,来对测试项目进行预处理。例如,可以根据核电软件的编程语言的语法规则来设计缺陷识别定位算法,并在预处理器阶段对静态缺陷进行识别定位。例如,缺陷识别定位算法可以针对Fortran/C++等语言的语法规则进行设计,按照预定多条语义规则对软件代码进行解析,用以查找代码存在的非运行错误及不规范的编码情况,如select语句无default处理等情形。这可以称为静态代码检查阶段,这一阶段的缺陷识别与定位技术对于准确、高效的排除系统故障,提高系统可靠性起到很大作用。
[0035] 在一个实施例中,测试初始化装置100对测试项目进行预处理还可以包括:对测试项目进行扫描,解析出测试项目包含的全部模块、局部变量和全局变量,并对模块进行遍历和分析以获取模块之间的关联。根据本公开的测试初始化中的这种预处理能够将测试粒度细化到每一个功能点,覆盖项目中的全部模块(例如,包括所有函数(Function)和子程序(Subroutine))、局部变量和全局变量。除了各单独模块,该预处理过程对各模块进行遍历和分析,获取各模块之间的关联。这样,在进行动态编译测试时,不仅能够测试各模块,还能够对关联的模块进行集成测试,提高了测试效率和可靠性。
[0036] 用户或管理员可以通过连接到测试系统10或测试系统10中包括的用户接口(例如触摸屏键盘鼠标等),对要测试的模块进行查看和选择。测试对象识别装置102可以根据用户的输入,选择相应的模块,同时根据所选模块的关联性,选择相关联的模块,一起作为测试对象。
[0037] 变量管理装置104可以根据用户输入或根据预设的初始值,向与测试对象识别装置102确定的测量对象有关的变量赋值。采用手动和/或自动的赋值方式,提高了测试的灵活性。
[0038] 测试结果管理装置108可以对测试结果进行统计分析,并利用分析结果来改进规则库110中的测试规则和语法规则。例如,可以利用软件测试的相关数据,为软件缺陷定位算法的改进、缺陷分布模型的生成以及开发过程的持续改进提供支持。
[0039] 在一个实施例中,测试执行模块106可以根据规则库110中的测试规则和/或算法,对测试对象及其调用的其它模块和变量所在源文件进行编译、运行,例如,针对Fortran编程的软件项目,可以在编译运行阶段通过命令调用Interl Fortran编译器执行测试用例,生成测试结果。这可以称为动态代码检查阶段。由于上述预处理阶段不仅获取要测试的各模块,还获取各模块之间的关联,所以在动态代码检查阶段,测试执行模块106不仅能够测试各单独模块,作为单元测试,还能够对关联的多个模块进行集成测试,进而可以实现系统级测试,进一步提高了测试效率和可靠性。此外,测试执行模块106还可以对测试对象中的各个变量和函数/例程返回值进行赋值,进行回归测试。可以根据静态和动态代码检查这两个阶段的结果,来生成测试结果,并利用测试结果来改进规则库110中的规则和/或算法。
[0040] 上述各装置可以采用弱耦合方式连接,例如各装置的处理内容均为上一装置执行后生成的中间结果或数据文件,通过数据通信来进行耦合。
[0041] 以上描述根据本公开一个示例实施例的核电软件测试系统10。下面参照图2,描述根据本公开另一个示例实施例的核电软件测试系统。图2所示测试系统与图1的测试系统10的区别在于,还包括测试数据可视化装置112,除此之外,其他装置的结构和功能与图1所示相同。
[0042] 测试数据可视化装置112连接至测试结果管理装置108,用于向用户提供关于测试的可视化报告。测试数据可视化装置112可以包括例如显示屏,用户可以查看测试过程的各种信息。在一个实施例中,关于测试的可视化报告可以包括测试是否完成、测试了哪些测试对象、测试覆盖率以及测试结果等。这方便了用户监视和管理测试系统10的运行,控制测试的进展程度。
[0043] 以上描述了根据本公开实施例的测试系统。下面参照图3描述根据本公开示例实施例的核电软件测试方法300。如图所示,测试方法300可以包括:测试初始化步骤302,对测试项目进行预处理,获得测试项目包含的模块、变量以及模块之间的关联;测试对象识别步骤304,根据用户输入的条件,获取符合所述条件的模块及其关联的模块,作为测试对象;变量管理步骤306,向与测量对象有关的变量赋值;测试执行步骤308,根据预先建立的规则库中的测试规则,利用变量的值,执行测试对象的测试,并生成测试结果;以及测试结果管理步骤310,管理测试结果。
[0044] 虽然图3未示出,但是测试方法300还可以包括如下步骤中的一个或多个:测试数据可视化装步骤,向用户提供关于测试的可视化报告;以及规则库维护步骤,利用测试结果的分析数据,对规则库中的规则和/或算法进行改进。
[0045] 在一个实施例中,在测试初始化步骤302中,对测试项目进行预处理包括:对测试项目进行扫描,解析出测试项目包含的全部模块、局部变量和全局变量,并对模块进行遍历和分析以获取模块之间的关联。
[0046] 在一个实施例中,在测试初始化步骤302中,对测试项目进行预处理包括:根据所述规则库中的语法规则,识别和定位所获取的模块和变量中的语法缺陷。
[0047] 以上的详细描述通过使用方框图、流程图和/或示例,已经阐述了核电软件测试系统和方法的众多实施例。在这种方框图、流程图和/或示例包含一个或多个功能和/或操作的情况下,本领域技术人员应理解,这种方框图、流程图或示例中的每一功能和/或操作可以通过各种硬件、软件、固件或实质上它们的任意组合来单独和/或共同实现。在一个实施例中,本发明的实施例所述主题的若干部分可以通过专用集成电路(ASIC)、现场可编程阵列(FPGA)、数字信号处理器(DSP)、或其他集成格式来实现。然而,本领域技术人员应认识到,这里所公开的实施例的一些方面在整体上或部分地可以等同地实现在集成电路中,实现为在一台或多台计算机上运行的一个或多个计算机程序(例如,实现为在一台或多台计算机系统上运行的一个或多个程序),实现为在一个或多个处理器上运行的一个或多个程序(例如,实现为在一个或多个微处理器上运行的一个或多个程序),实现为固件,或者实质上实现为上述方式的任意组合,并且本领域技术人员根据本公开,将具备设计电路和/或写入软件和/或固件代码的能力。
[0048] 虽然已参照几个典型实施例描述了本发明,但应当理解,所用的术语是说明和示例性、而非限制性的术语。由于本发明能够以多种形式具体实施而不脱离发明的精神或实质,所以应当理解,上述实施例不限于任何前述的细节,而应在随附权利要求所限定的精神和范围内广泛地解释,因此落入权利要求或其等效范围内的全部变化和改型都应为随附权利要求所涵盖。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈