基于EN欧标流程的V模型软件测试

2021-03-12 02:26:16周亚男刘锦峰朱程辉
电子元器件与信息技术 2021年1期
关键词:软件测试测试方法生命周期

周亚男,刘锦峰,朱程辉

(卡斯柯信号有限公司,上海 200071)

0 引言

V模型是软件生命周期的基础模型,也是轨道交通信号系统软件开发的首选模型。在轨道交通系统自动化的发展过程中,软件功能越来越复杂,安全性成为轨道交通信号软件开发所关注的一个重点。软件开发中存在着许多不可预测的因素,可能埋藏着不少重大风险,如何将风险控制在可接受的范围内,以保证轨道交通信号软件的安全可靠,是软件开发生命周期中所必须要解决的问题,目前越来越多的企业引入了欧洲的铁路相关标准[1]。

1 欧洲铁路标准简介

轨道交通业的标准依据是欧洲电工标准化委员会(CENELEC)规定的EN5012X系列,是IEC61508在轨交行业的派生标准,涉及如下:EN50129铁路应用——信号领域的安全相关电子系统;EN50126铁路应用——可靠性、可用性、可维护性和安全性;EN50128铁路应用——通信、信号和处理系统-铁路控制和防护系统软件;EN50159-1铁路应用——通信、信号和处理系统,第一部分:封闭式传输系统中的安全通信;EN50159-2铁路应用——通信、信号和处理系统,第二部分:开放式传输系统中的安全通信。

本文主要围绕EN50128展开讨论,该标准对软件开发生命周期的不同阶段提出了包含流程、方法、技术的详细要求。通过规范软件的开发过程以及技术要求,来保证轨道交通软件的质量和可靠性。

2 软件测试流程

软件生命周期V模型是一种线性顺序模型,提供了一种结构化的、自顶向下的软件开发方法,每阶段主要工作成果从一个阶段传递到下一个阶段,每个阶段的产出物必须经过评审或者测试。

传统的V模型测试活动如图1所示,定义了单元测试、软件集成、软件确认三个阶段,分别对应详细设计、概要设计、软件需求,但是在软件生命周期过程中没有明确具体的活动以保证测试用例与需求设计之间的一致性,以及测试用例对需求覆盖的完整性,导致完整的需求满足情况一直到后期的验收才被验证。

图1 传统V 模型

相对于传统的V模型,CENELECEN50128对整个软件生命周期的过程进行控制,对各阶段的工作有具体的指导要求,对采取的技术和方法提出了建议,通过流程控制来减少人为疏漏。结合EN50128的V模型生命周期如图2所示。

图2 结合EN50128 的V 模型

蓝色字体为对比增加部分,包括:

(1)各阶段有上下级关系的文档增加追踪验证活动。该活动要求需求、设计文档标签化、条目化、结构化,同时由独立的验证人员逐条核查文档内容,保证了不同阶段的需求、设计之间的正确性、完整性、一致性。

(2)测试文档对需求、涉及覆盖情况的验证活动。同样由独立的验证人员检查每一条需求是否都被用例完整覆盖,测试用例设计正确无误可执行。

(3)各阶段的测试技术方法选择要求。对各阶段测试强制使用或者强烈推荐使用的测试方法选择提出要求,该部分在下个章节详细探讨。

(4)测试执行的验证活动。由独立的验证人员对测试执行过程以及结果进行监督以及验证,减少测试过程中人为失误导致的测试结果偏离。

(5)对整个软件的验证活动和测试活动的总结报告。通过分析或者证明所有的软件需求都是按照适用的SIL要求进行开发,测试的,并且评估各阶段所有的异常和偏离,给出软件是否满足定义的软件安全完整性等级,符合软件要求及其预期的结论。

以上活动可以看出,V模型结合EN50128以后,需求、设计以及测试文档形成了完整的可追踪关系,对整个开发过程中的需求形成了闭环管理。此外,要求研发、验证、以及测试人员保持人员独立性,通过完整的流程控制以及测试方法选用指导,保证在软件开发生命周期过程中,尽早找出需求偏离和软件缺陷,从而更高效地提高软件质量,最大可能地减少返工成本[2-3]。

3 软件测试方法

在EN50128标准中,将软件安全完整性等级划分为SIL0~SIL4五个等级,软件安全完整性等级越高,对于测试技术方法的选择要求越严格,软件的SIL等级决定了测试过程中需要实现的测试方法:▷“M”为必填项;▷“HR”为强烈建议使用;▷“R”为建议使用;▷“—”为无要求。

每一个测试阶段都有测试方法的推荐使用,对于标为R和HR的测试方法,一般都必须使用,如果不使用需要给出合理的解释[4-5]。下面详细介绍在不同的测试阶段如何根据不同的安全等级选择测试技术方法,本章节中测试技术方法表格均引自EN50128。

3.1 单元测试

单元即模块测试,一般测试对象为源代码,测试活动包括静态测试和动态测试两类。静态测试又包含代码验证和代码走读,根据软件详细设计文件,通过对源代码的编码规范、代码结构以及格式的审查和分析,在动态测试之前发现代码问题。静态测试的方法要求如表1,表2所示。

单元动态测试的对象一般为单个函数,通过测试人员编写的测试驱动函数(通过工具可实现自动化)以及测试桩函数来动态执行代码,发现软件的缺陷。对于动态测试的要求如表3,表4所示。

表1 编码规范(源自EN50128 A.12)

表2 静态分析(源自EN50128 A.19)

表3 动态分析和测试(源自EN50128 A.13)

表4 代码的测试覆盖率(源自EN50128 A.21)

3.2 集成测试

集成测试的对象是软件模块,通过将软件模块一次性或者增量的方式进行组装,根据软件设计要求,对模块功能以及模块接口的正确性进行测试,软件集成测试要求使用的方法如表5,表6所示。

表5 功能/黑盒测试(源自EN50128 A.14)

表6 性能测试(源自EN50128 A.18)

3.3 软件确认测试

软件确认测试是对整个软件的功能以及性能进行的完整测试,一般是用黑盒的测试方法,验证被测软件是否满足软件需求定义。软件确认测试要求使用的方法如上文表3,表5,表6所示,其中表3的技术方法在单元测试和软件确认测试阶段均引用到,只需保证组合起来能覆盖完整即可。软件测试是一个人为执行的过程,软件测试的流程和方法直接影响测试结果的准确性和有效性,因此,软件测试过程的指导流程至关重要。EN50128通过对以上三个不同测试阶段指定软件测试技术方法为软件测试质量的保证提供了强有力的依据。

4 结论

本文分析了传统V模型简单在轨道交通软件开发过程中应用的不足之处,归纳了EN50128结合传统V模型在软件测试过程的支持和扩充。通过分析和探讨EN50128中对V模型测试过程以及技术方法的要求,总结出适合铁路信号系统软件不同安全等级的通用软件测试方法和流程,对相关软件的测试工作具有实际应用指导作用。

猜你喜欢
软件测试测试方法生命周期
动物的生命周期
基于泊松对相关的伪随机数发生器的统计测试方法
全生命周期下呼吸机质量控制
基于OBE的软件测试课程教学改革探索
计算机教育(2020年5期)2020-07-24 08:53:20
从生命周期视角看并购保险
中国外汇(2019年13期)2019-10-10 03:37:46
基于云计算的软件自动化测试方法
电子制作(2019年16期)2019-09-27 09:34:56
DLD-100C型雷达测试方法和应用
电子制作(2019年15期)2019-08-27 01:12:02
民用飞机全生命周期KPI的研究与应用
EXCEL和VBA实现软件测试记录管理
电子制作(2018年16期)2018-09-26 03:27:18
关于软件测试技术应用与发展趋势研究
电子测试(2017年15期)2017-12-18 07:19:20