论文部分内容阅读
摘要:蜕变测试技术能够通过检测输入输出数据之间满足的关系来验证程序的正确性,能有效解决复杂计算软件输出数据无法构造的问题,即Oracle问题。目前我国在核电软件自主化进程中,验证测试阶段遇到的Oracle问题还在探索阶段。该文介绍当前核电软件的测试流程,并结合在核电软件测试中的工作经验,对蜕变测试(MT)技术在核电软件PANTO(运行瞬态分析软件)测试中的应用作进一步探讨,为我国核电软件自主化的测试工作提供借鉴和参考。
关键词:蜕变测试;核电自主化;PANTO;应用探讨
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)35-0253-02
1 背景
目前我国在吸收采纳国外先进核电技术的同时进行再创新,形成具有自主知识产权的核电技术,对我国的核电软件事业进行发展和提升[1]。核电设计与分析软件主要是通过模拟核反应堆的物理过程,依据物理模型设计开发的数值计算程序。核电软件是一种数值计算类软件,因此在运行过程中需要准确、高效地完成各种科学计算,这类型的计算程序具有计算因子多、数据精度要求高、计算代码复杂等特征[2]。
我国核电软件的测试已进入到验证测试阶段,数值计算类软件的验证中通常难以直接给出解析解,或者通过高精确度基准来进行测试,这是测试过程中Oracle问题。目前我国核电设计与分析软件的验证方法主要是通过某些实验数据和基准题进行比较分析得出测试结果,但由于基准题和实验数据有限,可能存在部分数据没有被验证从而带来巨大的风险和代价[6]。
新一代测试技术——蜕变测试技术能够通过检测输出数据之间满足的关系来验证程序的正确性,有效解决Oracle问题。本文介绍当前核电软件的测试流程,并结合在核电软件测试中的工作经验,对蜕变测试(MT)技术在核电软件测试中的应用作进一步探讨,为我国核电软件自主化的测试工作提供借鉴和参考。
2 核电软件测试流程介绍
我国核电软件测试的基本流程主要包括静态测试、单元测试、集成测试、功能测试和回归测试等。下面详细介绍核电软件的测试流程:
(1) 测试工作组的组建,以及工作计划和日程安排。
(2) 收集测试需求,确认测试入口条件与开发的规范性。
(3) 测试计划的制定与评审。计划中包括测试目标、项目背景、测试范围、测试需求、参考与提交文档、进度安排、测试资源、测试策略和方法、管理方式等。
(4) 测试用例的设计与评审。测试用例是对测试场景和操作的描述,所以必须给出测试目标、测试对象、测试环境需求、输入数据和操作步骤,概括为5W1H(Why、What、Where、Which、When、How)。
(5) 测试用例的执行与记录。在测试用例执行前应做好测试环境的搭建、测试人员的培训等准备工作,实际执行过程就会顺利,执行的效率和质量都会有所保证。
(6) 测试结果分析与回归测试。依据测试执行结果的记录分析确定BUG,并形成缺陷报告文档提供给程序员进行程序修改。
(7) 测试报告的编制与提交。
3 蜕变测试技术介绍
在软件测试的过程当中我们常常会遇到期望输出难以构造的问题。Chen等人提出蜕变测试的概念,在不需要构造预期输出的情况下,通过检查程序执行结果之间的关系来验证程序的正确性[2]。蜕变测试的过程可分为如下几个阶段:
(1)生成原始测试用例(使用其他测试用例生成策略);
(2)分析程序的属性并进行蜕变关系的构造;
(3) 基于蜕变关系衍生测试用例;
(4)检测衍生用例与原始用例执行结果是否满足蜕变关系,给出测试结果。
下图为蜕变测试过程,其中关键的是蜕变关系的构造。
蜕变测试技术经过近十几年的研究已经比较成熟,并在数值计算软件、计算机图形处理软件等领域的测试中取得了广泛的应用。本文结合项目实践,将蜕变测试技术应用到核电软件的测试过程中作进一步探索和尝试。
4 蜕变测试技术在运行瞬态分析软件PANTO测试中的应用探讨
4.1 PANTO(运行瞬态分析软件)简介
运行瞬态分析软件PANTO能够模拟核电厂运行瞬态中关键参数的变化情况。
软件基于成熟可靠的系统分析模型和特殊部件模型,采用模块化的软件设计理念,应用java语言(输入界面部分)和面向对象的C 语言(核心计算部分),具有完全自主知识产权。作为系统级的设计与分析软件,PANTO涉及的物理模型較多。主要包括一回路冷却剂流量计算模型、中子动力学模型、堆芯传热计算模型、稳压器模型、蒸汽发生器模型、控制系统模型[5]。
4.2 蜕变测试技术在PANTO软件中应用的必要性
PANTO软件属于数值计算类软件,这类程序复杂并且计算因子多。对于运行瞬态的分析,通常依赖于专门的分析软件,比如用于法国M310核电厂的CATIA2软件、用于美国AP1000核电厂的CENTS软件等[5]。
由于PANTO软件在测试过程中依赖于专门的分析软件,导致测试成本非常之昂贵,同时测试效率也不高。测试过程中提供的基准题和实验数据不能满足测试需求,所以在测试过程中出现程序的预期输出结果难易构造等问题。针对这类问题传统的测试技术已经不能满足测试需求,而新一代软件测试技术—蜕变测试技术能有效解决此类问题。蜕变测试的关键是蜕变关系的构造,目前针对较简单的数值计算类程序可通过数值计算方法、物理模型推导等方法得到蜕变关系,进而衍生测试用例。对于PANTO这种系统级复杂计算软件,上述蜕变关系的构造方法对于测试人员提出了更高的要求。因此将蜕变测试技术应用到PANTO软件的验证测试中做些初步探讨十分必要。 4.3 蛻变测试技术在PANTO软件中应用的可行性
我国核电产业经过近几十年来的蓬勃发展,在核电厂运行过程中积累了大量实验数据,这些实验数据对于核电软件的测试有很大用处。在核电软件的验证测试阶段所使用的基准题和实验数据,其中的数据就来自于核电软件运行环境中具有的各种环境数据以及其他相关参数。
蜕变测试可以从成功的测试用例中衍生出新的测试用例,进一步挖掘成功用例中蕴含的有用信息,提高程序覆盖率。基于PANTO软件已有的基准题衍生出新的测试用例,在节约测试成本的同时提高测试效率。
结合核电厂大量的实验数据,充分利用蜕变测试的这一优势,在核电软件测试过程中可以衍生出新的测试用例,对于提高核电软件的质量和安全性具有一定的可行性。
5 结论
本文中仅以核电领域的计算类软件为例进行阐述说明,另外针对航天领域、军事国防领域等计算类软件,也可以通过分析程序特点构造出实用的蜕变关系,进而有效地应用蜕变测试方法进行,解决预期输出难以构造的难题,弥补传统测试方法的不足。现有的蜕变测试技术虽然能够有效解决Oracle问题,但是在研究过程中仍然存在一些问题,比如:蜕变关系难以构造,特别是对于计算复杂的软件;原始测试用例的选取问题等。正因为存在着这样的问题,同时也为蜕变测试技术在未来的研究和发展道路上提供了新的研究方向。总之,蜕变技术为我们打开了一个新的测试思路,对其进行深入的研究具有很高的实用价值,软件开发无止境,测试研究亦无止境。
参考文献:
[1] 陈晓凡.基于RuleWizard的定制规则在核电软件中的应用[J].电脑知识与技术,2016,12(5):55-56.
[2] 朱玲莉,阳小华.核电软件单元测试用例集约简研究[D].湖南:南华大学,2013.
[3] 熊梦,刘小同,阳小华.基于K-V模型集成测试工具的设计与实现[J].电脑知识与技术,2017(8).
[4] 董国伟,徐宝文,陈林.蜕变测试技术综述[J].计算机科学与探索,2009,3(2):131-132.
[5] 刘余,任春明,汤琪芬.核电厂运行瞬态分析软件PANTO的研发[J].核技术,2017(8).
[6] 闫仕宇.基于蜕变测试的热传导程序的验证测试研究[J].核科学与工程,2017(9).380-382.
关键词:蜕变测试;核电自主化;PANTO;应用探讨
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)35-0253-02
1 背景
目前我国在吸收采纳国外先进核电技术的同时进行再创新,形成具有自主知识产权的核电技术,对我国的核电软件事业进行发展和提升[1]。核电设计与分析软件主要是通过模拟核反应堆的物理过程,依据物理模型设计开发的数值计算程序。核电软件是一种数值计算类软件,因此在运行过程中需要准确、高效地完成各种科学计算,这类型的计算程序具有计算因子多、数据精度要求高、计算代码复杂等特征[2]。
我国核电软件的测试已进入到验证测试阶段,数值计算类软件的验证中通常难以直接给出解析解,或者通过高精确度基准来进行测试,这是测试过程中Oracle问题。目前我国核电设计与分析软件的验证方法主要是通过某些实验数据和基准题进行比较分析得出测试结果,但由于基准题和实验数据有限,可能存在部分数据没有被验证从而带来巨大的风险和代价[6]。
新一代测试技术——蜕变测试技术能够通过检测输出数据之间满足的关系来验证程序的正确性,有效解决Oracle问题。本文介绍当前核电软件的测试流程,并结合在核电软件测试中的工作经验,对蜕变测试(MT)技术在核电软件测试中的应用作进一步探讨,为我国核电软件自主化的测试工作提供借鉴和参考。
2 核电软件测试流程介绍
我国核电软件测试的基本流程主要包括静态测试、单元测试、集成测试、功能测试和回归测试等。下面详细介绍核电软件的测试流程:
(1) 测试工作组的组建,以及工作计划和日程安排。
(2) 收集测试需求,确认测试入口条件与开发的规范性。
(3) 测试计划的制定与评审。计划中包括测试目标、项目背景、测试范围、测试需求、参考与提交文档、进度安排、测试资源、测试策略和方法、管理方式等。
(4) 测试用例的设计与评审。测试用例是对测试场景和操作的描述,所以必须给出测试目标、测试对象、测试环境需求、输入数据和操作步骤,概括为5W1H(Why、What、Where、Which、When、How)。
(5) 测试用例的执行与记录。在测试用例执行前应做好测试环境的搭建、测试人员的培训等准备工作,实际执行过程就会顺利,执行的效率和质量都会有所保证。
(6) 测试结果分析与回归测试。依据测试执行结果的记录分析确定BUG,并形成缺陷报告文档提供给程序员进行程序修改。
(7) 测试报告的编制与提交。
3 蜕变测试技术介绍
在软件测试的过程当中我们常常会遇到期望输出难以构造的问题。Chen等人提出蜕变测试的概念,在不需要构造预期输出的情况下,通过检查程序执行结果之间的关系来验证程序的正确性[2]。蜕变测试的过程可分为如下几个阶段:
(1)生成原始测试用例(使用其他测试用例生成策略);
(2)分析程序的属性并进行蜕变关系的构造;
(3) 基于蜕变关系衍生测试用例;
(4)检测衍生用例与原始用例执行结果是否满足蜕变关系,给出测试结果。
下图为蜕变测试过程,其中关键的是蜕变关系的构造。
蜕变测试技术经过近十几年的研究已经比较成熟,并在数值计算软件、计算机图形处理软件等领域的测试中取得了广泛的应用。本文结合项目实践,将蜕变测试技术应用到核电软件的测试过程中作进一步探索和尝试。
4 蜕变测试技术在运行瞬态分析软件PANTO测试中的应用探讨
4.1 PANTO(运行瞬态分析软件)简介
运行瞬态分析软件PANTO能够模拟核电厂运行瞬态中关键参数的变化情况。
软件基于成熟可靠的系统分析模型和特殊部件模型,采用模块化的软件设计理念,应用java语言(输入界面部分)和面向对象的C 语言(核心计算部分),具有完全自主知识产权。作为系统级的设计与分析软件,PANTO涉及的物理模型較多。主要包括一回路冷却剂流量计算模型、中子动力学模型、堆芯传热计算模型、稳压器模型、蒸汽发生器模型、控制系统模型[5]。
4.2 蜕变测试技术在PANTO软件中应用的必要性
PANTO软件属于数值计算类软件,这类程序复杂并且计算因子多。对于运行瞬态的分析,通常依赖于专门的分析软件,比如用于法国M310核电厂的CATIA2软件、用于美国AP1000核电厂的CENTS软件等[5]。
由于PANTO软件在测试过程中依赖于专门的分析软件,导致测试成本非常之昂贵,同时测试效率也不高。测试过程中提供的基准题和实验数据不能满足测试需求,所以在测试过程中出现程序的预期输出结果难易构造等问题。针对这类问题传统的测试技术已经不能满足测试需求,而新一代软件测试技术—蜕变测试技术能有效解决此类问题。蜕变测试的关键是蜕变关系的构造,目前针对较简单的数值计算类程序可通过数值计算方法、物理模型推导等方法得到蜕变关系,进而衍生测试用例。对于PANTO这种系统级复杂计算软件,上述蜕变关系的构造方法对于测试人员提出了更高的要求。因此将蜕变测试技术应用到PANTO软件的验证测试中做些初步探讨十分必要。 4.3 蛻变测试技术在PANTO软件中应用的可行性
我国核电产业经过近几十年来的蓬勃发展,在核电厂运行过程中积累了大量实验数据,这些实验数据对于核电软件的测试有很大用处。在核电软件的验证测试阶段所使用的基准题和实验数据,其中的数据就来自于核电软件运行环境中具有的各种环境数据以及其他相关参数。
蜕变测试可以从成功的测试用例中衍生出新的测试用例,进一步挖掘成功用例中蕴含的有用信息,提高程序覆盖率。基于PANTO软件已有的基准题衍生出新的测试用例,在节约测试成本的同时提高测试效率。
结合核电厂大量的实验数据,充分利用蜕变测试的这一优势,在核电软件测试过程中可以衍生出新的测试用例,对于提高核电软件的质量和安全性具有一定的可行性。
5 结论
本文中仅以核电领域的计算类软件为例进行阐述说明,另外针对航天领域、军事国防领域等计算类软件,也可以通过分析程序特点构造出实用的蜕变关系,进而有效地应用蜕变测试方法进行,解决预期输出难以构造的难题,弥补传统测试方法的不足。现有的蜕变测试技术虽然能够有效解决Oracle问题,但是在研究过程中仍然存在一些问题,比如:蜕变关系难以构造,特别是对于计算复杂的软件;原始测试用例的选取问题等。正因为存在着这样的问题,同时也为蜕变测试技术在未来的研究和发展道路上提供了新的研究方向。总之,蜕变技术为我们打开了一个新的测试思路,对其进行深入的研究具有很高的实用价值,软件开发无止境,测试研究亦无止境。
参考文献:
[1] 陈晓凡.基于RuleWizard的定制规则在核电软件中的应用[J].电脑知识与技术,2016,12(5):55-56.
[2] 朱玲莉,阳小华.核电软件单元测试用例集约简研究[D].湖南:南华大学,2013.
[3] 熊梦,刘小同,阳小华.基于K-V模型集成测试工具的设计与实现[J].电脑知识与技术,2017(8).
[4] 董国伟,徐宝文,陈林.蜕变测试技术综述[J].计算机科学与探索,2009,3(2):131-132.
[5] 刘余,任春明,汤琪芬.核电厂运行瞬态分析软件PANTO的研发[J].核技术,2017(8).
[6] 闫仕宇.基于蜕变测试的热传导程序的验证测试研究[J].核科学与工程,2017(9).380-382.