郑宣佩,李 丹
舰船电力推进逆变器软件测试模型的构建与实现
郑宣佩,李 丹
(武汉船用电力推进装置研究所,武汉 430064)
本文分析了舰船电力推进逆变器软件的特点,讨论了经典软件测试模型的特点和优缺点,提出了一种适用于舰船电力推进逆变器软件的新型测试模型;通过在舰船电力推进逆变器软件开发的三种模型中的应用,应用结果表明,此软件测试模型相对于经典模型能更好的适用于舰船电力推进逆变器软件开发、测试活动,更早地发现问题,提高软件的开发效率。
舰船电力推进逆变器软件 软件测试模型
舰船电力推进逆变器通过改变电机定子电流的频率来实现电机调速[1],由逆变桥、控制电路、滤波电路组成。逆变器软件是逆变器的核心,是一组烧写在逆变器各组件控制器上的监控软件,用于监视并控制逆变器,使其按实际需求进行电机调速。
舰船电力推进逆变器软件具有采集精度高、层次多、算法复杂、可靠性安全性要求高、开发周期短等特点,软件测试的效率和有效性直接影响到舰船电力推进逆变器的质量和研制进度。
软件测试和软件开发都应遵循软件工程原理,遵循管理学原理[2]。对于软件测试模型的探讨从未间断,目前已产生了一些经典的测试模型,这些模型对测试活动进行了抽象,明确了测试与开发之间的关系,成为软件测试活动的理论依据[3]。一个好的软件测试模型,应具有以下特征:
1) 它将测试计划、测试用例设计、测试执行、还有测试结果收集与分析结合在一起;
2) 不同的测试技术,应用于不同的时间点;
3) 使软件设计中的错误尽可能早地暴露[4]。
结合舰船电力推进逆变器软件特点,本文提出一种舰船电力推进逆变器软件测试模型。通过在舰船电力推进逆变器软件开发、测试中的应用并比对经典测试模型,得出本文提出的测试模型能更好的适用于舰船电力推进逆变器软件开发、测试活动,更早地发现问题,提高开发、测试效率。
经典测试模型主要有V模型、W模型、H模型。
V模型又叫RAD模型是软件测试模型中广泛应用的一种模型,反映了测试活动与软件分析和软件设计之间的关系,如图1所示,描述了软件需求分析、软件概要设计、软件详细设计、编码等基本开发过程和验收测试、系统测试、集成测试、单元测试等测试行为及开发与测试级间对应关系[5]。
图1 V模型
W模型如图2所示,在V模型基础上进行了改进,相对于V模型,增加了软件开发各阶段中同步进行的验证和确认活动。W模型的核心在于测试伴随着整个软件开发周期,测试对象不仅有代码,文档、设计同样需要测试。测试与开发是并行的。
图2 W模型
H模型如图3,相对于V模型和W模型,将测试活动完全独立,形成一个完全独立的流程。
图3 H模型
相比较而言,V模型的优点在于结构清晰,测试过程和开发过程各阶段一一对应;局限性是各阶段顺序执行不可跨越,编码后直接进入单元测试,无法测出由需求、设计输入的缺陷,导致缺陷发现时机过晚。待系统测试阶段测试人员测出需求问题,开发人员修复缺陷、进行单元测试、集成测试,测试人员进行回归测试,工作量大增,风险极高。适合于需求明确,技术成熟的项目。
W模型的优点在于将测试活动作为开发活动的一部分,在各个阶段将开发活动与测试活动并行,从而发现能尽早发现缺陷;局限性在于每个阶段的测试输入不明,应交付的产品不明,与V模型类似,阶段不可跨越。适合于开发周期较长的项目。
H模型的优点在于测试活动独立,一旦测试条件准备到位就可以开始测试,从而加快项目进度;局限性在于未明确测试活动的切入点,如何与开发协调。适合于测试保障到位、对资源要求不高的项目。
舰船电力推进逆变器软件测试有其专业特殊性,经典测试模型直接移植到舰船电力推进逆变器软件测试并不完全适用,必须结合军用软件测试要求,并将军用软件测试流程、测试输出结合到软件测试模型中。在软件测试过程中,必须与舰船电力推进逆变器软件开发模型进行融合,而舰船电力推进逆变器软件开发模型分通用模型、简化模型和增量模型。因此,舰船电力推进逆变器软件测试模型会根据软件开发模型的不同输出略有不同,具体体现在简化模型时,配置项测试阶段和系统测试阶段合并,文档只输出一次;其他两个模型,配置项测试阶段和系统测试阶段分别独立,文档分别输出。但共同点是:测试活动有独立于开发模型的完全、独立的流程和准则,在项目成立之初平行介入项目开发各个阶段,在介入后,在各个阶段明确地对代码、文档、设计进行测试,并形成结论、闭环。每个阶段均有明确的输入、输出和确认准则。依据测试流程和准则如图4所示,在开发的每个阶段,进行测试活动,是一种基于H模型和W模型的测试模型。
舰船电力推进逆变器软件开发模型分通用模型、简化模型和增量模型。
通用模型如图5所示,其开发活动按顺序执行。在需求规格说明评审后,开始进行软硬件集成测试计划的策划及输出文档的编写。此阶段结束后,进入软件设计阶段,针对设计进行单元测试级、集成测试级的测试策划、测试用例设计,形成单元测试文档,而编码活动和测试活动可以同步开始。编码完成后,依次执行单元测试、集成测试、软硬件集成测试、系统测试等测试活动。
通用模型中,必选的里程碑有两个,分别为需求里程碑和软件发布里程碑,其余可选里程碑时间点可根据项目的实际情况自行定义。
简化模型是对通用模型的简化,主要思想是简化通用模型,提高开发交付速度。简化模型中只需针对软件非复用部分进行可行性分析与设计,必选的里程碑有两个,分别为需求里程碑和软件发布里程碑,其余可选里程碑时间点可根据项目的实际情况自行定义。简化模型流程图见图6所示。
增量模型是增量式地进行分析、设计、实现的软件开发模型。其特点在于,需求一旦明确一点便可进行设计、编码、单元测试形成构件,随着需求的逐步明确,构件分步完成,最终形成组件成软件系统。增量模型具有过程渐进性。
增量模型开发过程中,无需等待所有需求都确认,只要某个增量已得到确认且满足进入下一个阶段的条件,就可以进行下一阶段的工作。后一个增量所在的开发阶段可能滞后于前一个增量的开发阶段,例如:后一个增量可能正处于需求分析阶段,而前一个增量已经进入设计阶段。所以,各个增量的开发阶段可能存在进度不同或重叠的情况。但是在提交集成测试前,需要将所有增量产生的代码进行整合。
增量模型的必选的里程碑有两个,分别为需求里程碑和产品发布里程碑,其余可选里程碑时间点可根据项目的实际情况自行定义。增量模型见图7所示。
图5 通用模型流程图
舰船电力推进逆变器软件开发模型虽然分为通用模型、简化模型、增量模型三种,但本质上均基于瀑布开发模型进行简化和阶段内局部增量,因此属于瀑布开发模型。而瀑布开发模型的特点在于各阶段按线性序列组织,每个阶段有确认、入口和出口标准[6]。结合测试模型,软件生命周期分六个阶段,分别是系统分析阶段、软件需求分析阶段、软件设计阶段、软件实现和单元测试阶段、软硬件集成测试阶段和系统测试阶段。其中,软件实现和单元测试阶段集合了软件单元测试与集成测试,软硬件集成测试阶段的测试对应配置项测试,而系统测试对应于验收测试。
系统分析阶段,测试人员参与到软件研制任务书的制定。工程方面,测试人员参与到利益相关方与项目负责人间的需求沟通,从测试的角度,对软件研制任务书的编制,提供源头上的对需求的理解一致性。在系统分析阶段各工程文档的评审中,依据测试规程,按文档审查要求,从测试的角度对需求漏洞进行检查并提交,问题未闭环不得转阶段。
软件需求分析阶段,测试人员工程方面,测试人员参与到项目负责人与软件项目负责人间的需求沟通。由于测试人员直接从源头开始跟踪需求,从测试的角度,对软件需求规格说明的编制,进一步提供对需求的理解一致性。与系统分析阶段一样,测试人员依据测试规程,按文档审查要求,从测试的角度对需求漏洞、需求一致性进行检查并提交问题,问题未闭环不得转阶段。管理方面,测试人员参与软件项目的WBS分解,工作量估算,关键路径的确认等,将测试管理活动与软件开发活动从计划的制定开始融合。有效的梳理整个软件生命周期的流程,确定最优的关键路径。从而减少需求变更率,同时提高SPI。
图6 简化模型流程图
图7 增量模型流程图
软件设计阶段,测试人员在工程文档方面的作用与前两个阶段一样,从文档上对设计进行漏洞检查。不同点在于,此阶段末,进行配置项级测试策划,并形成策划的输出,明确测试需求、测试项、测试方法及测试进度等。
软件实现和单元测试阶段,按传统瀑布开发模型需要等到编码完成进行单元测试、集成测试。而测试模型在编码过程中介入,每个单元边编码,边测试,边回归。单元一旦达到组合条件,进入集成测试。一旦编码与测试活动完毕,版本受控,便可进入下一阶段,软硬件集成测试阶段。
软硬件集成测试阶段和系统测试阶段是独立的测试活动。此二阶段均开始与对前期工程文档和数据的文档审查,但测试侧重点依据测试规程不同。后续的活动按测试流程,进行测试策划、测试设计、测试执行和测试结论。具体活动与H模型同,此处不一一分解。
通过具体实践,H模型无法直接移植到舰船电力推进逆变器软件测试活动中,舰船电力推进逆变器软件测试模型相对于单纯的W模型节省软件实现和单元测试阶段的时间,通过测试与开发并行,节省时间近三分之一。后续的测试活动按H模型,极大地提高了软件研发周期。
此测试模型在简化模型和增量模型中应用,进一步节省原型、成熟项目的开发时间。其中,增量模型的测试模型由于设计、编码、测试活动的进一步整合,开发周期相对于瀑布开发模型进一步提高近四分之一。
舰船电力推进逆变器软件测试模型相对于经典模型能更好的适用于舰船电力推进逆变器软件开发、测试活动,更早地发现问题,提高软件的开发效率。
[1] R. Krishnan. 永磁无刷电机及其驱动技术[M]. 柴凤,译. 2013.
[2] Pressman R S. 软件工程:实践者的研究方向[M]. 郑人杰,马素霞,译. 7版. 北京: 机械工业出版社, 2011.
[3] 王建强,杨欣,张鼎周. 指挥信息系统软件测试模型构建与应用[J]. 指挥信息系统与技术, 2014,(4): 85-90.
[4] 孟庆鑫, 张龙. 软件测试模型的探讨[J]. 计算机与网络, 2014,(5): 66-69.
[5] 柳纯录. 软件评测师教程[M]. 北京:清华大学出版社, 2005.
[6] Kan S H. 软件质量工程的度量与模型[M]. 王振宇,陈利, 余扬, 译. 北京: 机械工业出版社, 2003.
Construction and Realization of Software Testing Model for the Inverter of Electric Propulsion Ship
Zheng Xuanpei, Li Dan
(Wuhan Institute of Marine Electric Propulsion, Wuhan 430064, China)
TM351 TP216
A
1003-4862(2016)10-0001-04
2016-05-06
郑宣佩(1974-),男,高级工程师。主要研究方向:质量管理。