您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页基于测试覆盖的安全关键软件测试研究

基于测试覆盖的安全关键软件测试研究

来源:筏尚旅游网
行业与应用安全

基于测试覆盖的安全关键软件测试研究

◆郑明伟

摘要:随着我国科学技术的快速发展,软件的安全问题越来越受到人们的关注。据相关资料显示,软件的安全系数并不如硬件,因而在软件被广泛应用在各行业的背景下,提高软件的安全系数是大势所趋。所以本文先阐述了基于测试覆盖的安全关键软件测试方法,然后从实例详细分析了基于测试覆盖的安全关键软件测试的步骤。 关键词:测试覆盖;安全;关键软件;测试

0 引言

在现阶段,如果发生软件安全事故,不仅会给人们造成巨大的经济损失,还会影响我国经济的稳定。并且随着我国软件安全测试技术的发展,软件测试例集也在不断地增长。而基于测试覆盖的安全关键软件测试技术是一种效率高、安全的软件安全测试方法,在软件领域具有很广泛的应用。所以测试人员应该重视基于测试覆盖的安全关键软件的测试。

图1 安全关键软件的测试策略

如果主控软件的数据通讯发生通讯链路故障,那么就属于严重危险,而如果数据通讯发生数据内容错误,则属于轻度危险。当主控软件的调焦控制发生接收命令有误的故障,则属于轻度危险;如果调焦控制出现电机驱动故障,则属于严重危险。

(2)确定量化软件的测试覆盖目标。依据主控软件应用在航天型号软件中的特点。该主控软件的测试覆盖目标主要包括两个方面,一是根据实际需要,分解测试项之后,要求需求细节的覆盖率达到100%。同时测试类型必须符合相关标准。二是要应用测试工具时,要分析源程序的覆盖范围。并保证语句覆盖和分支覆盖都能达到10%。

(3)测试用例的选择。主控软件的测试项包括工基本功能、处理时间的余量等83测试项。因而其测试用例大约需要528个。并且测试用例的设计需要利用功能分解、边界值分析等方法。同时要求测试用例的覆盖目标达到100%。

(4)测试环境的准备。基于主控软件运行在太空环境下,因而测试环境配备的是以TestBed为测试工具,并标配RTInsight数据信息采集工具,同时还添加了RTInsignhtPro作为结构覆盖测试工具。此外,为主控软件提供的是DSP SMJ320运行环境和软件测试平台。

(5)测试数据信息的收集。主控软件的数据信息采集工具是RTInsight,其主要收集步骤包括硬件连接、源代码插桩、执行测试、分析数据、保存及导入测试记录。所谓硬件连接就是利用三态门将测试工具和测试系统连接起来。此外,为了能够实时掌握监控总线的写入操作状态,需要CSO和WEO分别于写信号、片选相连接。而为了实时掌握监控总线的读操作,需要DATA-CS1和DATA-RD分别于片选和输出相连接。所谓源代码插桩是利用插桩模板,将源文件引入Testbed中,然后根据运行的数据结果进行分析。如果需要二次插桩,则需要将编译后的.Obj文件转换成可存储的代码。所谓执行测试就是建立工程文件,并输入识别地址,连接后即可开始测试程序。所谓数据分析是指根据在测试过程中收集的结果数据,分析语句覆盖率、分支覆盖率、函数时间性能测量值。而数据保存就是利用RTInsight数据信息采集工具实时的保存测试数据。之所以采用专门的数据收集工具是因为软件测试过程中产生的数据流太多。最后是测试记录,测试记录需要记录缺陷数、用例个数、语句覆盖率和分值覆盖率。实际的测试结果如图2,从表中数据可以看出,测试用例个数是528,缺陷数是18,但是语句覆盖率是86.55%,分支覆盖率为67.74%。x可见,语句覆盖率和分支覆盖率并没有达到标准。

(下转第108页)

1 基于测试覆盖的安全关键软件测试方法

1.1 测试特点

所谓安全关键软件就是指安全系数高、可靠的软件。这种软件在各个领域都有很广泛的应用。常见的应用领域是在安全系统中。安全关键软件主要是通过在特定的硬件环境中应用软件。在应用软件的过程中,会产生很多的数据流,如控制执行语句、传感器信息、接口交互信息。当用户使用时,安全关键软件就会进行实时计算,并作出相对的反应。而当非法用户入侵时,安全关键软件会快速的进行信息筛选、分析,并作出应对。由此可见,在开发安全关键软件时,应该进行危险分析,并对可能会出现的非法攻击等安全问题进行预防。

因为安全关键软件具有一定的特殊性,所以基于测试覆盖的安全关键软件的测试也具有特殊性。首先,它需要配套专门的测试工具。其次,如果软件的开发环境和软件的运行环境不相同时,那么在测试完主机后,还要再进行目标机器的测试。之后,如果测试输入的语句复杂度较高,那么在进行常规的语句测试之后,还要进行时序关系等其它约束语句的测试。最后,对于软件是否具有可靠性指标,采取不同的测试方法。如果有,则需要进行可靠性增长测试。如果没有,则需要进行软件可信度的测试。

1.2 测试策略

基于测试覆盖的安全关键软件的测试需要以生命周期模型为导向,采用白盒测试或者是黑盒测试,进行测试覆盖率的信息收集,并以此而为动态参考数据。基于测试覆盖的安全关键软件测试包括三个步骤。首先,应该先排序例集,并确定优先级。例集主要是通过安全系数分类之后,采用黑盒测试法获得的。其次是对重要的模块进行有限测试。最后是在有限测试所得数据的基础上,进行回归分析,从而得出测试覆盖的增长函数。

在这个过程中,选用的测试用例应该能够促进测试覆盖有促进作用。同时,如果在测试过程中,软件产生多余的残留数据信息,如软件的缺陷属性,则需要建立缺陷模型来保证软件测试充分性和正确性。此外,测试人员还可以通过增加测试用例,来提高安全关键软件测试的精确性。其测试策略如图1。

2 基于测试覆盖的安全关键软件测试的实例

本文以主控软件的测试作为示例。在基于测试覆盖的测试方法中,增加了传统测试方法,然后将两者进行分析对比。实践证明,基于测试覆盖的安全关键软件测试方法具有高效性、短时性。

(1)软件测试的第一步是分析软件的安全性,并确定软件的危险级别。主控软件是一种嵌入式软件,其安全系数比较高。

‖106‖

行业与应用安全

业务,也要考到具有较高安全性要求或特殊要求的新增业务。

丽水市整体业务安全隔离架构如图3所示:

有较高安全性要求的业务时,如未来新增的网,可单独建设业务平台、业务汇聚网和业务接入网,并单独承载于OTN传输网新的波道上,完全能够满足其安全性要求;当新增普通业务时,可将新增业务平台直接接入普通业务汇聚网(业务汇聚网1、隔离域1),无需新增业务汇聚网和业务接入网,能够做到快速部署和节约建设成本(如带宽不足则可通过传输带宽扩容来满足需求)。

5 结语

图3 丽水业务安全隔离架构示意图

整个架构为横向分为三层,纵向根据隔离要求分为多个隔离域。横向的三层分别是市局的业务平台及业务汇聚网平面,县(区)分局的业务接入网平面,以及OTN骨干传输平台。为达到业务的隔离和安全,业务汇聚网和接入网根据各业务单位的要求,区分隔离域划分不同网段,并相互。骨干层平面采用OTN进行建设,通过波道的隔离达到业务的有效隔离,从而达到业务的安全性要求,并覆盖到各业务单位。同时,OTN波分网络因其性和封闭性,外界无法进行攻击和窃听,可保证信息的传输安全。

纵向根据业务类型针对信息网和视频专网进行传输层面的隔离,两者之间各自,并与相应的业务网进行对接后由OTN网络传输,这样业务平台和相应网络的安全和隔离是有保障的。并且在信息网内布置MPLS VPN实现不同业务间的逻辑隔离,对网络接入业务平台的权限进行控制,这样既能保证各业务平台的安全,又能把安全问题集中于一点,可以进行有效的安全管理。

这种业务安全隔离架构具备充分的扩展性,当新增业务是具(上接第106页)

作为一种先进传输技术,OTN已在各类传输网中大量应用。

本文从网络结构、IP业务承载策略、业务隔离策略等多个方面阐述了OTN技术在丽水三级网组网中的成功实践。丽水基于OTN的综合信息承载网建设是新时期系统技术创新、降本增效的科学实践,除网络建设方面的创新外,丽水还在综合信息承载网运行维护管理制度、网络安全保障等方面做了大量工作,希望在满足各类业务应用、数据标准及规范的同时,提高“自有资源池”的维护效率,确保系统安全稳定运行。

参考文献:

[1]李小羽.OTN技术与组网应用[J].数字通信,2013. [2],杨鹏,徐洪亮.OTN技术组网与应用研究[J].邮电设计技术,2010.

[3]孙海蓬,刘润. OTN在电力骨干通信网中的应用策略研究[J].电力系统通信,2012.

(丽水市科技信息化局 浙江 323000)

主要包括成像控制、时序控制、温度控制、总线通讯、像移计算。

(7)测试数据分析。在该主控软件的测试中,采用了传统的测试方法和基于测试覆盖的测试方法。其中传统测试方法的实际用例个数是1224个,执行时间是21天,发现的缺陷个数是24个。基于测试覆盖的测试方法的实际用例个数是573个,执行时间是8天,发现缺陷个数是31。两者相比不难发现,基于测试覆盖的测试方法具有很明显的优势,它不仅能够缩短软件测试的执行时间,还能提高软件测试的精确度。基于测试覆盖方法相比于传统测试方法在发现缺陷个数上,其工作效率提高了33%。由此可见,采用基于测试覆盖的软件测试方法能够快速、高效的完成测试任务。

3 总结

综上所述,安全关键软件测试的最佳方法是利用测试覆盖方法。尤其是在安全软件被广泛应用的背景下,提高安全关键软件的测试效率是提高软件的安全性能的关键。所以为了促进我国软件行业的快速发展,促进我国信息化社会的进步,应该积极利用测试覆盖方法来测试安全软件,从而保证软件的可靠性和安全性。

图2 实际的测试结果

(6)预测软件中的剩余缺陷。在预测剩余缺陷之前,需要对测量数据进行归纳和整理。首先是采用了传统软件测试方法,补充了696个测试用例,实际用例数是1224个,执行时间是21天,总共发现了23个问题。其中包括总线通讯、时序控制、指令处理、橡移计算、偏流控制、调焦控制、温度控制、新能指标、成像控制这个几个大方面。缺陷类型包括接口缺陷、输出缺陷、逻辑缺陷、输入缺陷、输出缺陷、数据缺陷、设计缺陷、文档缺陷。之后又采用了基于测试覆盖的测试方法。相比传统测试方法,该方法又补充了45个用例,总共执行了573个用例,执行时间是8天,发现了31问题。然后通过代码的人工走查方法,使语句覆盖和分支覆盖率达到100%。人工走查发现软件缺陷的模块

参考文献:

[1]黄丹丹,刘超,储开华.基于测试覆盖的安全关键软件测试策略探讨[J].数字技术与应用,2015.

[2]崔天意,肖洋.安全关键软件测试设计方法[J].甘肃科技,2015.

[3]李海峰,刘畅,郑军.安全关键软件可靠性验证测试研究[J].航空标准化与质量,2013.

(山东潍坊职业学院 山东 261041)

‖108‖

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务