背景技术:
在目前的轨道交通信号系统等复杂软件系统的研发过程中,开发厂商在开发过程中及开发完成后,会根据需求和设计规格对系统进行测试,以保证交付的系统满足并且正确地实现设计的需求和规格。
该测试过程一般由测试人员根据系统的需求和设计规格设计测试用例,然后根据用例对系统进行不同场景、不同层级的测试,并对开发和测试过程进行验证和确认。这些活动完成后,测试人员由此提交测试报告,并且成为交付系统的重要依据文件之一。
对于类似轨道交通信号系统这样的复杂软件系统,通过当前的测试技术仍然可能导致实际运行场景与系统支持的场景不一致的情况。
原因有以下几点:
1、测试的输入文件,即系统的需求和设计规格本身不能保证其完备性,因此测试活动即使已针对所有已识别的需求和设计规格完成全面的测试,也无法保证所交付系统完全可靠无误;
2、测试用例的设计也是一种依赖于设计人员技术和经验的活动,尤其对于复杂系统,因人员技术、经验以及开发成本所限,无法设计出所有场景下的系统测试过程,因此测试完成后系统中仍有可能隐含缺陷;
3、在软件交付使用过程中,因用户等原因在不同于原定场景下使用系统时,可能使系统进入未经设计及测试的状态,极易导致软件系统发生故障。
针对上述问题,在开发高安全性要求的信号系统过程中,一般通过测试、验证、确认三重保障活动来提高最后交付系统的安全性。这些措施的目的是尽可能提高系统需求分析和设计的完备性、保证测试活动能够覆盖所有的需求和设计内容等,虽然能够显著降低系统发生故障的概率,但是因为无法完全解决以上问题,所以通过这种技术和流程开发的软件系统仍然有可能在使用过程中因出现其他场景而发生故障。