软件测试全解析:从概念到实践
1. 测试的重要性与挑战
测试是分析系统或系统组件,以检测规定行为与实际行为之间差异的过程。然而,要完全测试一个非平凡系统是不可能的。一方面,测试本身是不可判定的;另一方面,测试需要在时间和预算的约束下进行。这就导致很多系统在未经过全面测试的情况下就被部署,最终由终端用户发现故障。
以1981年哥伦比亚号航天飞机的首次发射取消为例,问题源于两年前一名程序员将延迟因子从50毫秒错误地重置为80毫秒,这增加了航天飞机发射失败的概率。尽管在更改后进行了数千小时的测试,但故障在测试阶段并未被发现,最终在实际发射时导致了同步问题,使得发射取消。
通常,发动机的测试采用组件系统或自底向上的测试方法。这种方法先深入了解所用材料的特性和局限性,然后对较大的组件进行单独设计和测试,逐步完善整个发动机的设计。而航天飞机主发动机采用了自顶向下的方法,在对材料和组件进行详细初步研究之前就将发动机设计并组装在一起。当出现问题时,很难发现原因并进行更改,而且难以彻底测试单个组件。
测试常常被认为是新手就能胜任的工作,但实际上,要有效地测试一个系统,测试人员需要对整个系统有详细的了解,包括需求、系统设计决策和实现问题,同时还需要掌握测试技术,并能在时间、预算和质量的约束下有效应用这些技术。
2. 测试概述
可靠性是衡量系统实际行为与规定行为相符程度的指标。软件可靠性是指软件系统在规定条件下和规定时间内不导致系统故障的概率。故障是导致错误状态的机械或算法原因,而错误状态可能会导致系统偏离预期行为,最终引发故障。测试的目标是尽可能多地发现故障,以便开发人员进行修正,提高系统的可靠性。
我们将测试定义为
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



