首页 理论教育 测试目的、原则与方法简介

测试目的、原则与方法简介

时间:2023-07-25 理论教育 版权反馈
【摘要】:测试的目的在于发现其中的错误并及时纠正,所以在测试时应想方设法使程序的各个部分都投入运行,力图找出所有错误。组织良好的人工测试可以发现程序中30%~70%的编码和逻辑设计错误,从而减少机器测试的负担,提高整个测试工作的效率。针对不同类型的错误,机器测试和人工测试各有长短。机器测试有黑盒测试和白盒测试两种方法。白盒测试考虑的是测试用例对程序内部逻辑的覆盖程度。

测试目的、原则与方法简介

1.测试的目的

管理信息系统的开发过程中,面对错综复杂的各种问题,人的主观认识不可能完全符合客观现实,开发人员间的思想交流也不可能十分完善。所以,在管理信息系统开发周期的各个阶段都不可避免地会出现差错。我们应力求在每个阶段结束之前进行认真、严格的技术审查,尽可能早地发现并纠正错误,否则等到系统投入运行后再回头来改正错误,将在人力、物力、财力上造成很大的浪费,有时甚至导致整个系统的瘫痪。然而,经验表明,单凭审查并不能发现全部差错,加之在程序设计阶段也不可避免还会产生新的错误,所以,对系统进行调试是不可缺少的,是保证系统质量的关键步骤。统计资料表明,对于一些较大规模的系统来说,系统调试的工作往往占系统开发总工作量的40%以上。

测试的目的在于发现其中的错误并及时纠正,所以在测试时应想方设法使程序的各个部分都投入运行,力图找出所有错误。错误多少与程序质量有关。即使这样,测试通过也不能证明系统绝对无误,只不过说明各模块、各子系统的功能和运行情况正常,相互之间联接无误,系统交付用户使用以后,在系统的维护阶段仍有可能发现少量错误并进行纠正,这也是正常的。

2.测试的原则

在进行系统测试时应遵循以下基本原则:

(1)开发者不参与的原则

测试工作应该避免由软件开发者个人或小组来承担。测试的目的就是尽可能多地找出源程序中的错误,而从心理上讲,软件开发人员对自己的工作成果有所偏爱,总认为自己开发的软件没有错误或错误不大,因而有一种不愿否定自己成果的心理;另一方面,如果开发人员对软件的功能有理解错误,由本人去找,肯定是找不出错误的,正所谓“当局者迷”。

(2)系统输入与结果并重的原则

设计测试方案时,不仅要包括确定的输入数据,还应包括从系统功能出发预期的测试结果。把预期测试结果作为测试方案的组成部分,有助于发现错误,提高效率,将运行结果与预期测试结果进行对比即可发现有无错误。否则,由于人们的心理作用或粗心大意,常把一些似是而非的结果当成正确结果,把本该发现的问题漏掉。

(3)测试用例设计全面的原则

测试用例不仅包括合理、有效的输入数据,还应包括无效的或不合理的输入数据。在测试中人们常常只注意从系统功能角度上合理有效、可以预想到的输入数据,而忽视那些无效的或预想不到的输入数据。实际上一个软件投入运行后,常会遇到意想不到的输入数据,如用户按错键、输错数、键入非法命令等,如果软件因不能做出适当的反应而失控,就不能说明软件是可靠的。往往使用预期不合理的数据进行测试比用合理数据收获要大。

(4)无效功能严格剔除的原则

测试时不仅要测试程序是否完成了该完成的功能,还要测试程序是否同时完成了不该完成的功能。多余的副作用会影响程序运行效率,甚至带来潜在危险。

(5)测试用例应长期保留,直至该系统被废弃不用为止

在MIS的测试中,设计测试用例很费时,如果将用过的例子丢弃了,以后一旦需要再测试有关的部分时(例如技术签定、系统维护等场合)就需再花费工夫,重新设计测试用例。保留测试用例,可以验证发现的错误是否已经改正,也可以易于发现应修改扩充可能产生的新错误。

3.测试的方法

测试的方法从总体上看可以分为两种:人工测试和机器测试。

通常源程序通过编译后,要先经过人工测试,然后再进行机器测试。人工测试采用人工方式进行,目的在于检查程序的静态结构,找出编译不能发现的错误。组织良好的人工测试可以发现程序中30%~70%的编码和逻辑设计错误,从而减少机器测试的负担,提高整个测试工作的效率。机器测试是运用事先设计好的测试用例,执行被测试的程序,对比运行结果和预期结果的差别以发现错误。针对不同类型的错误,机器测试和人工测试各有长短。机器测试只能发现错误的症状,不能进行错误定位,而人工测试一旦发现错误,同时就确定了错误位置、类型和性质。因此人工测试不可忽视,它是机器测试的准备,是测试中不可缺少的环节。

(1)人工测试(www.xing528.com)

人工测试又称代码复查,主要有以下三种方法:

①个人复查

个人复查指源程序编完后,直接由程序员自己进行检查。由于心理因素,有些习惯性的错误不易发现,如果对功能理解有误,自己更不易纠正。适用于小规模程序测试,效率不是很高。

②走查

走查一般由几个人组成测试小组,测试小组成员应该是从未参加过该程序设计工作的、有经验的程序设计人员。测试在预先阅读过该软件资料和源程序的前提下,由测试人员充当计算机的角色,用人工方法将测试数据输入被测程序,并在纸上跟踪监视程序的执行情况,让人代替机器沿着程序的逻辑走一遍,发现程序中的错误。由于人工运行很慢,因此走查只适用于少量简单的测试用例。实际上走查只是一个阶段,随着“走”的过程不断从程序中发现错误。

③会审

会审中测试小组的构成情况与走查相似,要求测试成员在会审前仔细阅读软件的相关资料,根据以往的经验形成一个错误类型清单,针对这个错误清单填写检测表,列出根据错误类型要提出的问题。会审时由程序作者逐个讲解程序,测试人员逐个审查、提问讨论可能产生的错误。会审对程序的功能、结构及风格等都要进行审定。

(2)机器测试

机器测试通过在计算机上直接运行被测程序,来发现程序中的错误。机器测试有黑盒测试和白盒测试两种方法。

①黑盒测试

黑盒测试也称功能测试,它将软件看成一个黑盒子,测试者完全不用考虑被测程序中模块内部的结构以及它如何处理数据,只检查它能否根据需求规格说明书完成所指定的功能,因此测试用例的设计是完全根据程序的功能说明进行设计的,但要列举所有可能的输入数据来检查该程序是否能产生正确结果是十分困难的,甚至是不大可能的,所以只能选择一个适当的子集,即选择一个能够发现最多错误概率的最大子集。

②白盒测试

白盒测试也称结构测试,它将软件看成一个透明的白盒子,要求测试者了解程序的内部结构,按照程序的内部结构和处理逻辑来选择测试用例,对软件的逻辑路径及过程进行测试,检查与设计是否相符。白盒测试时将包括:

·语句测试:要求程序中的每个语句至少检查一次。

·分支测试:要求程序中的每个分支路径至少检查一次。

·路径测试:要求程序中的每条路径至少检查一次。

白盒测试考虑的是测试用例对程序内部逻辑的覆盖程度。为了衡量测试的覆盖程度,需要建立一些标准。覆盖程序从低到高分别为:语句覆盖、判定覆盖、条件覆盖、条件组合覆盖等。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈