2024年4月27日发(作者:)
【软件测试】软件测试的内容
一.什么是软件测试
为了保证软件的质量和可靠性,应力求在分析、设计等各个开发阶段结束前,
对软件进行严格技术评审。但由于人们能力的局限性,审查不能发现所有的错误。
而且在编码阶段还会引进大量的错误。这些错误和缺陷如果遗留到软件交付投入
运行之时,终将会暴露出来。但到那时,不仅改正这些错误的代价更高,而且往
往造成很恶劣的后果。
软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的
最终复审,是软件质量保证的关键步骤。如果给软件测试下定义,可以这样讲:
软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发
各阶段的规格说明和程序的内部结构而精心设计的一批测试用例(即输入一些数
据而得到其预期的结果),并利用这些测试用例去运行程序,以发现程序错误的
过程。
软件测试在软件生存期中横跨两个阶段:通常在编写出每一个模块之后就对
它做必要的测试(称为单元测试)。编码与单元测试属于软件生存期中的同一个
阶段。在结束这个阶段之后,对软件系统还要进行各种终合测试,这是软件生存
期的另一个阶段,即测试阶段,通常由专门的测试人员承担这项工作。
大量统计资料表明,软件测试的工作量往往占软件开发总工作量的40%以
上,在极端情况,测试那种关系人的生命安全的软件所花费的成本,可能相当于
软件工程其他开发步骤总成本的三倍到五倍。因此,必须高度重视软件测试工作,
绝不要以为写出程序之后软件开发工作就接近完成了,实际上,大约还有同样多
的开发工作量需要完成。仅就测试而言,它的目标是发现软件中的错误,但是,
发现错误并不是我们的最终目的。软件工程的根本目标是开发出高质量的完全符
合用户需要的软件。
返回导航
二.软件测试的目的
基于不同的立场,存在着两种完全不同的测试目的。从用户的角度出发,普
遍希望通过软件测试暴露出软件中陷藏的错误和缺陷,以考虑是否可以接受该产
品。而从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的
过程,验证该软件已正确地实现了用户的要求,确立用户对软件质量的信心。
因为在程序中往往存在着许多预料不到的问题,可能会被疏漏,许多隐藏的
错误只有在特定的环境下才可能暴露出来。如果不把着眼点放在尽可能查找错误
这样一个基础上,这些隐藏的错误和缺陷就查不出来,会遗留到运行阶段中去。
如果站在用户的角度替他们设想,就应当把测试活动的目标对准揭露程序中存在
的错误。在选取测试用例时,考虑那些易于发现程序错误的数据。
下面这些规则也可以看作是测试的目的或定义:
➢ 1.测试是为了发现程序中的错误而执行程序的过程;
➢ 2.好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;
➢ 3.成功的测试是发现了至今为止尚未发现的错误的测试。
从上述规则可以看出,测试的正确定义是“为了发现程序中的错误而执行程
序的过程”。这和某些人通常想象的“测试是为了表明程序是正确的”,“成功的
测试是没有发现错误的测试”等等是完全相反的。正确认识测试的目标是十分重
要的,测试目标决定了测试方案的设计。如果为了表明程序是正确的而进行测试,
就会设计一些不易暴露错误的测试方案;相反,如果测试是为了发现程序中的错
误,就会力求设计出最能暴露错误的测试方案。
由于测试的目标是暴露程序中的错误,从心理学角度看,由程序的编写者自
己进行测试是不恰当的。因此,在综合测试阶段通常由其他人员组成测试小组来
完成测试工作。此外,应该认识到测试决不能证明程序是正确的。即使经过了最
严格的测试之后,仍然可能还有没被发现的错误潜藏在程序中。测试只能查找出
程序中的错误,不能证明程序中没有错误。
三.术语、名词定义
3.1.黑盒测试
黑盒测试也称为功能测试,它着眼于程序的外部特征,而不考虑程序的内部
逻辑结构。测试者把被测程序看成一个黑盒,不用关心程序的内部结构。黑盒测
试是在程序接口处进行测试,它只检查程序功能是否能正常使用,程序是否能接
收输入数据产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。
黑盒测试是基于用户角度进行的测试。
3.2.白盒测试
软件测试的主要方法之一,也称结构测试、逻辑驱动测试或基于程序本身的
测试。测试者需要了解待测试程序代码的内部结构、算法等信息,这是从程序设
计者的角度对程序进行的测试。它的优点是帮助软件测试人员增大代码的覆盖率,
提高代码的质量,发现代码中隐藏的问题。
3.3.灰盒测试
可以理解为静态的白盒测试或动态的黑盒测试,灰盒就是界于黑白之间, 对
软件内部有所了解, 但不见得到了如指掌的程度, 却可以结合这些了解做些比
黑盒多点的测试。
3.4.文档测试
文档测试涵盖面很大,在软件的各个版本中均有所使用。随着软件版本的变


发布评论