铁路系统中安全嵌入式软件测试模型研究
2020-02-03李海海陈晓轩
李海海 陈晓轩
(卡斯柯信号有限公司 上海市 200070)
1 引言
软件测试是嵌入式软件开发中一个重要的环节,软件测试过程是一种抽象的模型,用于定义软件测试流程和方法,一种好的测试模型,在一定程度上决定了软件开发成本以及质量,在整个软件生命周期中,越早的发现问题,整个项目的费用也就越低。
在铁路系统中,安全嵌入式软件被广泛应用,为了保证产品的安全和可靠性,测试流程同样重要,目前传统的模型为V 模型以及W 模型,但是这两种模型都存在一定的问题,无法满足铁路安全软件的安全流程认证要求,为了更好的满足安全认证的要求,实现对安全软件流程SIL4 的要求,对W 进行改进,完善了测试文档测试的流程,以保证测试的准确性和有效性。
2 传统软件测试模型概述
2.1 V模型
V 模型目前广泛应用于嵌入式软件的测试过程,如图1 所示,测试分别是从单元测试、软件集成测试、软件确认测试、系统集成测试,系统确认测试,验收测试。V 模型的优点是明确的定义了测试阶段和开发阶段的对应关系,但是缺点也是很明显:
(1)测试活动是在编码以后才介入,早期的需求设计导致错误可能在后期才发现,导致返工,基于错误越早发现,成本越低的原则,会导致成本增大;
(2)人员利用率低,早期测试等着编码完成,后期开发人员编码完成后,需要等着测试提交缺陷,所以这种模型已经如法满足要求。
2.2 W模型
如图2 所示,W 模型是V 模型的改进, W 模型由两个“V”重叠而成。其中一个“V”表示开发过程,包括用户需求、系统需求说明、系统架构设计,软件需求说明,软件架构设计,软件详细设计,编码。另一个“V”表示测试过程,包括用户需求分析、系统需求测试、系统架构测试,软件需求测试,软件架构测试,软件单元测试,W 模型的优点有:
(1)W 模型保证了需求的完整性,准确性和一致性,能较早的发现问题,避免后期编码人员的功能实现错误;
(2)人员利用率高,前期测试人员介入,也能够较早了解产品;
(3)测试与开发并行且相对独立。但是W 模型也存在一定安全隐患,在前期注重的是开发文档的测试,没有对测试文档进行测试,不能在前期发现测试文档的准确性,后期可能导致测试执行的错误。
3 3V软件测试模型概述
图3 为3V 模型整个流程图,在W 模型的基础上增加一个V,V 左边主要是用例的设计以及用例的确认和验证,“V”的右边主要是测试报告,以控制阶段的进行,详细描述如下:
图1:V 模型流程图
图2:W 模型流程图
(1)用户需求阶段:①通过分析用户需求,识别不可能实现的用户需求;②通过分析,明确细化客户目的。用户需求阶段是项目的开始,与顾客的交谈不够多和不够彻底,一些重要的需求被忽视,会导致后续开发工作有大的偏差,因此,需要做好用户需求的分析,能够保证功能的不遗漏。
(2)系统需求设计阶段:①通过验证系统需求和用户需求之间的追踪关系,验证系统需求的完整性和一致性;②通过编写用例,确定系统功能的可测性;③通过系统确认用例的V&V,验证系统测试用例准确性和追踪的完整性,防止漏测功能。
(3)系统架构设计阶段:①通过验证架构和系统需求之间的追踪关系,验证系统架构的完整性与一致性,并验证软件之间交互数据的一致性;②通过编写用例,以及对系统集成用例的V&V,验证系统集成用例的准确性和追踪的完整性,确保软件之间数据交互的准确性。
图3:3V 模型流程图
(4)软件需求设计阶段:①通过验证和确认软件需求和系统架构之间的追踪关系,验证各个软件功能的完整和一致性;②通过编写软件确认用例,确定软件功能的可测性;③通过软件确认用例的V&V,验证软件确认测试用例准确性和追踪的完整性,防止漏测功能。
(5)软件架构设计阶段:①通过验证和确认软件架构和软件需求之间的追踪关系,软件架构与软件需求的一致性,验证软件模块之间接口的一致性;②通过编写软件集成用例并对软件集成用例的V&V,验证软件集成测试用例准确性和追踪的完整性,防止漏测模块之间的接口数据。
(6)软件概要设计阶段:① 通过验证和确认软件详细设计与软件建构之间的追踪关系,验证详细设计的完整性和准确性,提编码提供详细的设计依据;② 通过编写单元测试用并对单元测试用例的V&V,验证了单元测试用例的准确性和追踪完整性。
(7)编码到软件单元测试阶段以及报告阶段:完成编码后,测试人员依据单元测试用例执行测试,完成对软件的动态测试以及静态的代码走读,如有问题,提交缺陷,编码问题只需对应软件概要设计修改,待测试通过,提交单元测试通过的测试报告。
(8)其他阶段的测试:为了防止下一阶段测试无效,下一阶段必须在收到上一阶段测试通过报告才能开展。
4 3V模型的实际应用与不足
对于安全软件的开发来说,基于3V 模型的测试模型有利于通过流程来保证软件质量,同时测试人员的早期介入,也能更好的对产品了解,不仅仅是前期通过文档质量来保证开发代码的质量,更是通过技术文档来保证产品的开发质量,在我们进行开发文档测试的同时,我们也对后面开发阶段对应的测试阶段-单元测试、软件集成测试、软件确认测试、系统集成测试、系统确认测试以及验收测试做出测试设计以及验证,保证了后面测试质量。3V 模型完全符合SIL4 软件的开发流程,可以广泛应用到安全产品。
在采用3V 模型时,对于“V”模型左边,当某个阶段发现问题时,我们只要回到上一个阶段即可,不必回答最初,有利于节省时间,但是在“V”模型右边,当某个测试阶段发现问题并修改时,往往要回到单元测试开始,所以3V 模型不适合敏捷开发。
5 结束语
本文结合软件测试模型的实际原则,提出一种新的安全软件测试模型-W 模型,该模型吸取了V 模型和W 模型的有点,同时弥补了改模型的不足之处,体现了“尽早测试,尽早发现问题,开发测试文档全面测,代码文档全面测”的原则,在遵循安全软件测试原则上,将问题尽早暴漏,减少反正,也通过流程来全面确保文档的正确性。