基于可信软件的测试研究

时间:2022-08-02 05:03:06

基于可信软件的测试研究

摘 要:对着计算机技术的不断发展,软件也飞速的发展,它已经渗透到了社会的各个领域当中,软件的可信性已经成为了一个重要的问题。本文主要对可信软件测试问题进行了研究,简单分析了可信软件的特点,并对可信软件测试方法进行了一定的探讨,并对可信软件测试研究做出了展望。

关键词:可信软件;测试;问题;发展

中图分类号:TP311

随着社会经济的发展,计算机技术与信息技术也不断发展,计算机软件被普遍应用到社会的各个领域中,它发挥着重要的作用,已经占据着不可替代的地位。目前,软件已经成为了信息基础设施建设的关键因素。然而,软件的可信性却成为了一个严峻的问题,软件的可信性对人们的生活和工作会产生巨大的影响。如果软件达不到要求的可信性,就有可能造成巨大的经济损失。因此,在软件提交使用前,必须要对软件的可信性进行测试,在达到标准后,才能投入使用,保证社会生活正常有序的进行。

1 可信软件的特点

1.1 可用性。可信软件的可用性是指系统在限定时间内的运行概率,在运行中可以延迟或短暂停止但又不会导致系统发生崩溃。目前软件的可用性已经成为了软件工程发展的一个趋势,如何保证软件的可用性成为了软件开发工程师十分关注的问题。

1.2 可靠性。可信软件的可靠性是指软件在系统的规定条件下能够连续正常运行并提供需要的功能。这个条件主要包括软件的运行环境、维护、及操作、软件如果能在一定的时间内保持正常稳定的运行,程序没有产生异常和崩溃,并且能够完成制定的功能,那么该软件就具有一定的可靠性。

1.3 安全性。可信软件的安全性是指软件系统防止部分信息与数据被未授权用户非法读写的能力。它主要分为机密性和完整性。机密性是指系统保护信息与数据不被泄露的能力,而完整性是指系统防止信息和数据丢失的能力。

1.4 可维护性。可信软件的可维护性是指软件系统应该具备后期修改及维护的能力,这主要包括软件程序的修正以及软件功能的改动。记性软件维护时,维护人员根据授权游湖提出的维护请求,对软件记性分析、重新进行设计和变,后经测试正常后提交用户使用。软件的可维护性是可信软件的重要特征之一。

1.5 完整性。可信软件的完整性级别代表了该软件特性的限定范围。如果软件的特性超出这个范围就会发生失效而导致系统发生故障。在软件开发的过程中必须要满足所有的设计要求,才能保证软件的完整性。

2 可信软件测试的方法

2.1 可靠性测试。可信软件的可靠性测试是为了测试软件的可靠性,通过测试来判断软件的可靠性是否达到了设计的要求。目前,软件可靠性测试的发发主要包括了白盒测试、黑盒测试和回合测试。白盒测试是其中应用最为广泛的一种逻辑测试方法,它的主要测试原理是通过程序内部逻辑驱动。黑盒测试是对软件的功能进行测试,它是间测试的对象当作一个黑盒子来测试软件的功能模块,黑盒测试不会对软件的内部结构以及程序的执行过程进行测试。灰盒测试是将白盒测试及黑盒测试的特点综合起来进行的一种测试,它具有更好的测试效果。

2.2 安全性测试。可信软件的安全性测试是验证软件的各方面安全性能是否达到了设计的要求,安全性测试主要用于对系统的重要软件、网络软件的安全性测试以及基于错误注入的安全性评估。它主要包括软件功能的安全测试、软件的渗透性测试等。目前,可信软件的安全性测试主要包括应用程序的安全性测试及软件系统的安全性测试两个方面。安全性测试的主要方法有语法测试、模糊测试等。

2.3 容错性测试。可信软件的容错性测试是一种对抗性的测试过程。在进行软件测试的过程中,有时会出现测试故障,故障的转移是确保在软件测试出现故障时对数据的转移和保护,避免重要数据丢失对用户的使用产生影响。要对故障转移功能进行全方位测试。测试时,可以将被测试软件系统的所有对象用结构图回执出来,然后对其中可能发生故障的部分设计测试用例。可信软件的容错性测试主要包括两个方面:(1)在进行数据输入操作时,如果发生异常,这时要检验软件系统的保护新风格。如果在发生异常后,系统未发生错误或崩溃的现象,则证明该软件系统的容错性较好;(2)对软件进行灾难恢复性测试,利用多种方法,强制软件发生故障,然后测试系统是否能对用户数据进行及时有效的保存,在发生故障后,系统和数据能否及时恢复。

2.4 动态测试。可信软件的动态测试可以分为随机测试和选择性测试两类。随机测试是以数据统计理论为基础,根据软件在使用过程中输入数据空间的概率分布,随机选择数据进行测试的一种方法。这种测试方法的不足之处是在测试中会产生一定的忙的,不能全面测试出软件的质量。选择性测试是根据软件的内部结构以及功能模块的设计要求,对数据进行选择之后再进行测试。其主要包括数据流测试、功能测试及针对软件错误的测试等。其不足之处是测试的伸缩性不好,浪费资源,尤其是对一些简单软件的测试,会造成大量的资源浪费。可信软件与传统软件的差异性较大,因而测试方法会有所不同,但是都需要对测试用例进行选择。在进行可信软件的测试时需要进行实时性测试,但实时性测试用例的生成具有非常大的难度,它已经成为目前可信软件测试工程中面临的首要问题。

2.5 可信软件验证。软件的可信性是指软件系统在限定的时间与特点的条件下提供可信服务的能力,它包括多个方面的属性。目前在对一个软件的可信性的评价通常是以某个单一的标准来进行衡量,而不是进行全方位的评测,这就导致了软件可信性的评测结果与实际的可信性不符。如何判断一个软件系统是否真的可信,或者哪些方面达到了可以信赖的程度,都需要对软件系统的可信性进行精确的验证。

软件的可信性验证的目的是为了检验软件的可信性是否达到了设计的要求。目前,可信软件的验证技术主要包括模型检查和定理证明两种。模型检查在检测到系统存在问题时,能够给出反例,它的自动化程度较高,但是在检查过程中会存在状态爆炸的问题。定理证明能够基于无穷的状态空间进行系统分析,但是它的自动化程度较低,需要由人工进行证明,同时在证明失败后不能给出明确的例子。

3 可信软件测试的展望

在今后的研究工作中,需要对可信软件的可信性度量、对软件系统的可信性分级并制定详细的量化指标。可信软件的测试技术随着软件技术的发展而不断的发展。可信软件的测试方法在未来会受到下面几个方面的推动而更加的完善。(1)将新的数学思想、方法以及新的理论应用到可信软件的测试技术中;(2)利用形式化描述软件的性质来提高可信软件测试的自动化程度;(3)引入多核技术及同步分析技术到可信软件的测试工作中,使软件能够跨平台运行。

4 总结

随着社会的发展,人们对软件的可信性重视程度越来越高。本文简单分析了可信软件的特点,并对可行软件的测试进行了一定的讨论。可信软件的研究难点在与可信软件的可信性度量及测试方法的选择。可信软的测试是目前软件工程测试中面临的主要难点之一,它需要软件测试人员对软件的开发以及程序的执行规律要有深入的了解,可信软件的质量关系到了人们在信息社会对信息基础设施的可信程度的提高。

参考文献:

[1]覃志东,雷航,桑楠,熊光泽,古幼鹏.安全关键软件可靠性验证测试方法研究[J].航空学报,2005,26(3):334-339.

[2]梅宏,王千祥,张路.软件分析技术进展[J].计算机科学,2009,32(9):1697-1710.

[3]刘克,单志广,王戟.可信软件基础研究重大研究计划综述[J].中国科学基金,2008,22(3):145-151.

作者单位:南通大学计算机科学与技术学院,江苏南通 226019

基金项目:南通大学自然科学研究项目(03040844)

上一篇:酸奶发酵迟缓的原因分析 下一篇:当代诗歌的都市文化观照