基于测试覆盖的安全关键软件测试策略探讨

时间:2022-07-13 04:53:00

基于测试覆盖的安全关键软件测试策略探讨

摘要:随着电子信息技术的不断发展和进步,软件在社会诸多领域当中,都得到了十分广泛的应用。而在军事、航天、航空等安全关键系统当中,软件更是发挥着重要的作用。一旦这些软件失效,系统将会面临巨大的风险,甚至引发灾难和事故。这类软件成为安全关键软件。在安全关键软件测试当中,测试覆盖能够有效的对测试效率与测试充分进行度量。它和软件可靠性、软件缺陷等方面的关系都十分密切。

关键词:测试覆盖 安全关键软件 测试策略探讨

中图分类号:TP309 文献标识码:A 文章编号:1007-9416(2015)04-0219-01

随着计算机技术和软件技术的发展和应用,安全关键软件在社会各个领域当中,都发挥着越来越重要的作用。根据相关统计调查可知,在安全关键系统当中,软件的可靠性低于硬件的可靠性,软件可靠性和质量已经对软件的发展产生了阻碍的作用。而随着安全关键软件复杂性和规模性的不断增加,软件测试例集也在不断增长。在当前软件测试领域,以测试覆盖为基础的测试策略能够很好的实现对安全关键软件的测试。但是,在实际应用中,仍然有一些缺陷需要进行优化和改善。

1 现有的软件测试策略

1.1 基于生命周期模型

在软件工程当中,软件的生命周期模型对软件的各项活动,包括软件开发和软件测试等,进行了规定。目前较为常用的软件生命周期模型主要有瀑布模型、V模型、W模型、多V模型等。这些软件生命周期模型都是以线性原理为基础,由于开始测试的时间较晚,因此往往会受到测试期限的影响,导致测试周期过短,难以完整的进行测试。

在航天、航空等安全关键系统当中,通常要经历正样阶段、初样阶段和模样阶段[1]。因此,安全关键软件也要经历三个阶段。在每一个阶段当中,软件的开发都是根据V模型来进行的,总的来说,安全关键软件的开发模型主要是多V模型。但是,由于其本身存在测试时间的滞后性,因此测试的可信度较为有限。

1.2 基于测试方法

目前,基于测试方法的测试策略主要包括软件白盒测试和软件黑盒测试两种方法。其中,白盒测试的出发点是程序的机构和逻辑,进行覆盖准则的建立,能够客观度量测试的充分性。黑盒测试如果想要取得全面和有效的结果,需要具有清晰和全面的软件需求规格说明。这两种测试方法虽然具有一定的效果,但是侧重点不同。因此,可将二者结合使用,利用灰盒测试来进行软件测试。这样,能够更为全面、系统的进行软件测试,发现更多潜在的bug,完善测试肌机理,提高软件的安全性和可靠性。

1.3 基于软件控制论

将待测试软件作为被控对象,在测试过程中,控制器选择的软件测试策略应当按照实际的测试情况来进行改变。这样,就能够将待测试软件和测试策略共同构成一个闭环的反馈控制系统,将软件测试问题转化为控制问题。而由于事先不知道待测试软件的状态参数,因此在软件测试当中,应当在引入在线估计自适应控制[2]。

2 基于测试覆盖的安全关键软件测试策略

2.1 测试特点

安全关键软件具有较高的安全性和可靠性的要求,具有较为宽广的应用领域,通常用于制定的安全关键系统当中。通常都是在专门设计的硬件环境当中,进行安全关键软件的应用,其中包含很多硬件的操作信息。需要控制执行机构、传感器,同时还要与其它的系统、各类接口总线交互信息。如果外界环境发生变化,安全关键软件需要及时的做出反应,对变化结果进行实时计算。因此,不但要掌握安全关键软件的行为和功能特性,还要掌握时间性,才能保证其正确性。由于安全关键软件的任务较为特殊,因此需要严格的要求其进度[3]。在研制和开发安全关键软件的过程中,会同时进行相应的危险分析报告和安全性分析报告,对软件的安全性进行分析,从而对可能出现的危险情况及其原因进行明确。

基于上述特点,基于测试覆盖的安全关键软件测试也具有一定的特殊性,需要利用专门的开发配套测试工具来进行测试。如果软件的开发环境和运行环境存在差异,在完成主机的测试之后,还要在目标机上进行测试。对于复杂度较高的测试输入,处理常规测试执行之外,还需要对时序关系等约束条件进行考虑。对于软件较高的安全性和可靠性要求,如果有可靠性指标要求,就要对软件进行可靠性增长测试。如果没有可靠性指标要求,则对于软件可信度的提高,应利用度量测试充分性等方式来实现。

2.2 测试策略

在基于测试覆盖的安全关键软件测试策略中,应当将当前软件生命周期模型作为基本的指导,结合白盒测试方法与黑盒测试方法,在测试过程中进行测试覆盖率信息进行采集,并在度量测试过程当中,将其作为动态监测数据。在测试开始之前,应当按照危险级别的划分,将黑盒测试方法中生成的例集进行排序,对测试优先级进行确定,对测试覆盖率权重较高的模块和安全关键性模块进行有限测试。在测试过程当中,对测试覆盖率的相关数据,应当实时的进行采集和分析,其中测试覆盖率的增长函数可以通过回归分析法进行获取[4]。

反馈控制的内环使通过测试覆盖率选择的测试用例形成的,选择的测试用例应当度测试覆盖率有积极作用,避免选择无效和冗余的用例,从而使测试效率得到有效提高。对软件中的残留缺陷和缺陷属性进行预测和分析,需要对以测试覆盖为基础的缺陷预测模型来对软件测试的充分性进行度量。测试过程利用缺陷数据进行指导,完成闭环反馈控制外环的形成。此外,为了能够使软件测试的充分性得到提高,还应当对必要的测试用例进行补充。

3 结语

在当前的计算机软件系统应用领域当中,安全关键软件的重要性已经得到了充分的体现。为了能够更好的对安全关键软件进行进行测试,应当采用基于测试覆盖的安全关键软件测试策略,确保软件的安全性和可靠性,使安全关键软件能够更好的发挥作用。

参考文献

[1]张波.基于测试覆盖的安全关键软件测试策略研究[D].中国科学院研究生院(长春光学精密机械与物理研究所),2012.

[2]沈永清.基于ARM的嵌入式安全关键软件仿真测试平台的研究[D].同济大学,2013.

[3]马金梭.基于模型的安全关键软件全覆盖测试方法的研究与实现[D].上海交通大学,2011.

[4]张鹏.在C/S中软件测试策略基于报表测试的应用和改进[D].吉林大学,2012.

上一篇:网络化软件的复杂网络特性分析 下一篇:大数据时代数据挖掘技术浅析