试论软件的可靠性及其保证(四)

日期:2024-09-03 11:27
浏览次数:882
摘要:
测试前要确定测试标准、规范,测试过程中要建立完整的测试文档,把软件置于配置控制下,用形式化的步骤去改变它,保证任何错误及对错误的动作都能及时归档。
  测试规范包括以下三类文档:砂尘试验箱
  (1)测试设计规范:详细描述测试方法,规定该设计及其有关测试所包括的特性。还应规定完成测试所需的测试用例和测试规程,规定特性的通过/失败判定准则。
  (2)测试用例规范:列出用于输入的具体值及预期输出结果。规定在使用具体测试用例时对测试规程的各种限制。
  (3)测试规程规范:规定对于运行该系统和执行指定的测试用例来实现有关测试所要求的所有步骤。
  测试的方法多种多样:
  (1)走查(Walk-through),即手工执行,由不同的程序员(非该模块设计者)读代码,并进行评论。
  (2)机器测试,对给定的输入不会产生不合逻辑的输出。
  (3)程序证明或交替程序表示。
  (4)模拟测试,模拟硬件、I/O设备等。
  (5)设计审查,关于设计的所有各方面的小组讨论会,砂尘试验箱利用所获得的信息,找出缺陷及违反标准的地方等。
  以上可以交替并行循环执行,在实际测试过程中要使用测试工具提高效率。
  除正常的测试之外,还要对软件进行可靠性测试,确保软件中没有对可靠性影响较大的故障。制定测试计划方案,按实际使用的概率分布随机选择输入,准确记录运行时间和结果,并对结果进行评价。
  没有错误的程序同永动机一样是不可能达到的。一般常用排错方法有试探法、追溯法、归纳法、演绎法。还要使用适当的排错工具,如UNIX提供的sdb和dbx编码排错工具,这些排错工具只有浏览功能,没有修改功能,是实际的找错工具。
  6.容错设计
  提高可靠性的技术一般可以分为两类,一类是避免故障,砂尘试验箱在开发过程中,尽可能不让差错和缺陷潜入软件,这类常用的技术有:
  算法模型化,把可以保证正确实现需求规格的算法模型化。
  模拟模型化,为了保证在确定的资源条件下的预测性能的发挥,使软件运行时间、内存使用量及控制执行模型化。
  可靠性模型,使用可靠性模型,从差错发生频度出发,预测可靠性。
  正确性证明,使用形式符号及数学归纳法等证明算法的正确性。
  软件危险分析与故障树分析:从设计或编码的结构出发,追踪软件开发过程中潜入系统缺陷的原因。
  分布接口需求规格说明:在设计的各阶段使用形式的接口需求规格说明,以便验证需求的分布接口实现可能性与完备性。
  这些技术一般都需要比较深厚的数学理论知识和模型化技术。
  另一类就是采用冗余思想的容错技术。
  容错技术的基本思想是使软件内潜在的差错对可靠性的影响缩小控制到*低程度。
  软件的容错从原理上可分为错误分析、破坏程度断定、砂尘试验箱错误恢复、错误处理四个阶段。
  常用的软件容错技术有N-版本技术、恢复块技术、多备份技术等。
  N-版本程序设计是依据相同规范要求独立设计N个功能相等的程序(即版本)。独立是指使用不同的算法,不同的设计语言,不同的测试技术,甚至不同的指令系统等。
  恢复块技术是使用自动前向错误恢复的故障处理技术。
  以上这些技术可参考有关文献,这里要说的是防错性程序设计,在程序中进行错误检查。被动的防错性技术是当到达检查点时,检查一个计算机程序的适当点的信息。主动的防错性技术是周期性地搜查整个程序或数据,或在空闲时间寻找不寻常的条件。采用防错性程序设计,是建立在程序员相信自己设计的软件中肯定有错误这一基础上的,有的程序员可能对此不大习惯,砂尘试验箱因为他可能太相信自己,相信自己的程序只有很少错误,甚至没有错误,作为一个项目管理员应该能说服他或者强制他采用这种技术,虽然在设计时要花费一定的时间,但这对提高可靠性很有用。 

扫码浏览网站

Baidu
map