软件测试的真正目标是什么?

时间:2014-12-04 15:20:00 点击: 【字体:

软件测试从20世纪50年代开始成为软件周期中的一项独立活动,发展到今天,软件测试在方法和技术方面取得巨大的进步。但时至今日,测试活动仍然常常落后于开发活动,在很多时候,测试常常被作为软件生命周期的最后一项活动来进行。造成这种现象的一个主要原因就是没有正确的软件测试目标,没有一个对软件测试的正确认识。

1、软件测试的目标是为了确保软件不存在软件缺陷?

而实际上,根本不存在没有缺陷的软件。软件是人类智慧的结晶,是由人创造出来的,而人总是不可避免地出现各种错误,从而产生各种软件缺陷。

软件缺陷可能从软件项目进行的初期阶段,例如需求分析阶段,就存在了。

随着软件项目的进展,软件缺陷的影响范围不断扩大,到后期发现时,可能已经到了无法弥补的程度,因为如果修改这个软件缺陷很可能整个项目需要从头开始。这种情况下,项目管理者和开发人员会想尽一切办法进行补救,但所有的办法有可能也只是权宜之计,根本的缺陷仍然存在。

其次,从软件测试的角度来看,根本不可能完全测试一个程序。一是不可能测试所有的输入,二是不可能测试程序中所有的执行路径。

另外,软件测试过程中发现的软件缺陷进行了改正之后,你必须再一次进行测试,这时你有可能发现更多的软件缺陷。因为“如果对程序源代码的改动在10行以内或更少,那么首次正确改正程序的可能性有50%;如果对程序源代码的改动在50行左右,那么首次正确改正程序的可能性仅有20%”,这就意味着改正一个错误,可能会产生另一个错误。只有改正了第一个,第二个才会暴漏出来。

2、软件测试的目标是为了验证软件能够正常运转?

从心理学上讲,人总是容易看到自己想看到的东西,而对不喜欢的东西大脑会自动进行处理,因此我们总是尽力去创造和建造能够正常运行的事物,以最大的努力去避免故障。

当你开发一个软件应用程序时,你会清楚地了解应用程序所使用的数据类型、配置以及它它能运行所需要的环境,你也知道你的程序的局限性。如果你的目标是验证应用程序能够工作,你就会限制你在数据、配置和应用程序最初设计所支持的环境的边界测出故障的可能性。

如果你这样做,你有较大机会通过所有的测试。然而在现实世界中,你的客户很有可能会超越这些边界,并遇到测试中没有测出的软件缺陷。

如果我们不采用破坏性的态度和方法,那么将会设计避免故障的测试,结果将会使最终使用软件的用户失望,甚至带来经济损失。

3、软件测试的真正目标:本着对用户负责的态度,找到以前没有发现并且在用户使用过程中将对用户造成重大影响的软件缺陷,最终实现预防缺陷的目标。

我们发现问题的目的是为了改正问题。只有在测试中不断发现问题,才有机会改正问题,使软件的质量得到逐步提高。尽管在测试过程中对程序采取破坏性的态度和方法,但从更大的范围来看,测试工作是建设性的。(张雪)


关键字: 软件测试
相关文章