songfun 2004-6-30 14:24
黑盒测试方法揭密
作者:陈樵 2002年04月08日 本文选自:中国计算机报
一、黑盒测试在快速应用开发(rad)环境中的重要作用
软件测试方法一般分为两种:白盒测试与黑盒测试。其中,白盒测试又称为结构测试、逻辑驱动测试或基于程序本身的测试,着重于程序的内部结构及算法,通常不关心功能与性能指标。黑盒测试又被称为功能测试、数据驱动测试或基于规格说明的测试,实际上是站在最终用户的立场上,检验输入输出信息及系统性能指标是否符合规格说明书中有关功能需求及性能需求的规定。
随着rad环境的发展,软件工程面临新的挑战,其中包括:
●应用系统的规模越来越庞大,结构越来越复杂;
●开发团队人员越来越多,分工越来越细;
●项目投资日益提高,导致投资风险增大。
在这样一种背景下,软件质量面临着更大的危机,而解决问题的关键正是黑盒测试,可是由于传统的黑盒测试往往局限于手工测试,凭借工程人员的经验自发地进行,缺乏严格的测试管理机制,因而效果并不明显。
在分发一个应用系统之前,若没有经过科学、周密的黑盒测试,就相当于将大量隐含的缺陷(defect)交付到最终用户手中,这对于开发团队自身、项目投资方及最终用户来说都是不负责任的表现,也将严重损害三方的利益。
今天,软件的质量要求越来越受到重视,在对软件的质量监督中,黑盒测试起着重要的、不可替代的作用;而随着软件开发平台及软件设计思想的进步和发展,特别是rad技术的发展,对黑盒测试提出了更明确的要求,人们发现,必须遵循一定的测试理论,依赖于优秀的测试工具,才能进行科学、完备的测试。
二、黑盒测试的操作步骤
在传统的软件开发生命周期当中,测试工作往往被搁置到整个开发过程的后期进行,也就是说,当应用程序的编码工作已经基本完成,才开始进行测试,这样做的缺点在于:
a)由于应用程序庞大而复杂,测试工作千头万绪,测试人员难以组织科学、全面的测试用例,从而大幅度提高了测试成本,并严重影响测试的全面性和有效性;
b)由于缺陷所涉及的模块从开发到测试之间的时间间隔较长,使得程序员的修改和维护工作要付出更大的代价;
c)由于受到分发日期的限制,测试工作往往是在忙碌中结束的,而将大量的缺陷遗留给最终用户,也就是说,真正的测试工作实际上是由最终用户来完成的。
因此,为了保证测试工作科学、精确、全面、有序地进行,应该采取一边开发一边测试的策略,使得开发工作与测试工作平行进行,这也就是俗话所说的“越早测试越好”的概念。
一套完整的测试应该由五个阶段组成:
1.测试计划
首先,根据用户需求报告中关于功能要求和性能指标的规格说明书,定义相应的测试需求报告,即制订黑盒测试的最高标准,以后所有的测试工作都将围绕着测试需求来进行,符合测试需求的应用程序即是合格的,反之即是不合格的;同时,还要适当选择测试内容,合理安排测试人员、测试时间及测试资源等。
2.测试设计
将测试计划阶段制订的测试需求分解、细化为若干个可执行的测试过程,并为每个测试过程选择适当的测试用例(测试用例选择的好坏将直接影响到测试结果的有效性)。
3.测试开发
建立可重复使用的自动测试过程。
4.测试执行
执行测试开发阶段建立的自动测试过程,并对所发现的缺陷进行跟踪管理。测试执行一般由单元测试、组合测试、集成测试、系统联调及回归测试等步骤组成,测试人员应本着科学负责的态度,一步一个脚印地进行测试。
5.测试评估
结合量化的测试覆盖域及缺陷跟踪报告,对于应用软件的质量和开发团队的工作进度及工作效率进行综合评价。
显然,黑盒测试只有严格按照步骤进行,才可能对应用程序的质量进行把关。然而,如果没有一种优秀的测试工具的帮助,单纯凭借手工测试,不但将耗费大量的人力、物力和财力,而且有很多测试工作是难以实现甚至是无法实现的。
三、手工测试与自动测试的比较
手工测试无法保证黑盒测试的科学性与严密性,这是因为:
●测试人员要负责大量文档、报表的制订和整理工作,会变得力不从心;
●受软件分发日期、开发成本及人员、资源等诸多方面因素的限制,难以进行全面的测试;
●如果修正缺陷所花费的时间相当长,回归测试将变得异常困难;
●对测试过程中发现的大量缺陷缺乏科学、有效的管理手段,责任变得含混不清,没有人能向决策层提供精确的数据以度量当前的工作进度及工作效率;
●反复测试带来的倦怠情绪及其他人为因素使得测试标准前后不一,测试花费的时间越长,测试的严格性也就越低;
●难以对不可视对象或对象的不可视属性进行测试。
因此,自动测试成为最佳的解决方案。所谓自动测试,实际上是将大量的重复性工作交给计算机去完成,一个优秀的自动测试工具,不但可以满足科学测试的基本要求,而且可以节约大量的时间、成本、人员和资源,并且测试脚本可以被重复利用(包括被不同的项目所利用)。
Song 2004-6-30 16:50
斑竹辛苦了!
谢谢斑竹啊,我现在刚刚入门,进行的就全是黑盒测试,这对我来说太有用了。
greenhouse 2004-8-15 14:01
谢谢斑竹指导,那么以后还请斑竹多多帮助进测试开发。请问我单位是电子商务方面的软件,那么用什么样的测试工具比较好?
欣欣 2004-8-15 16:36
谢谢斑竹!!!
我也想咨询一下,我的公司主要是开发面向石油石化方面的应用软件,我应该怎样选择测试用具?
欣欣 2004-8-15 16:41
请教斑竹,对于测试用语,有没有什么标准?
shindomsnake 2004-8-16 10:20
应用黑盒测试中的自动化测试,可否提示一些工具,谢谢!!我是新手。
testing 2004-8-16 10:23
WinRunner,LoadRunner,Rational Robot,SilkTest,SilkPerformer等等
szjerry 2004-9-15 09:30
我公司是做DVD,EVD测试的,
请问哪个软件最适合啊,
qingyu0306 2004-9-19 17:09
斑竹大人 我是测试电力系统软件的请问该用什么测试工具啊
真水无香 2004-10-21 08:47
谢谢,呵呵,,努力学习ing 。。。。。
lhy 2004-12-22 17:21
我公司是做通讯方面软件的请问什么自动化工具比较适合呢?
虽然我们公司还没有用,但我想提前了解一些,好做好准备,谢谢
lhj_ice 2005-1-5 12:42
非常感谢斑竹,我这一阵在学习测试理论,经常看得时候明白,看完又糊涂了。请斑竹多指教有关测试理论的内容,不胜感激!
Nokia0906 2005-1-13 13:14
我还没看
我还没看呢,先收藏!呵呵
wangjihui1980 2005-3-15 16:22
哈哈哈,好不happy啊!
ami冰河 2005-3-25 13:19
我们现在大多数做的都是黑盒测试吗?
那系统测试,有些什么工具呢!
我才开始实习,公司规模比较小!估计所有的测试都要做的 !希望斑竹指点!
阿伯大哥 2005-4-5 16:53
谢谢斑竹的整理,把02年的都拿出来了!!
feifei5008 2005-4-15 17:00
pp……
霞子 2005-4-20 17:14
谢谢斑竹,受益匪浅!!
2t 2005-5-10 13:58
谁会PC-LINT软件的使用啊
我是个绝对新手我想知道这个软件的使用方法,还有此软件的下载地址,请斑竹给一指教.我在这里先拜谢了.
2t 2005-5-17 11:27
谁有关于手机测试方面的论文给小弟发一篇好吗?
此论文关系小弟的身家性命啊!!
在着跪谢了,
2t 2005-5-26 15:59
不会吧怎么这么长时间没人来了啊!!!
个为大哥大姐都干什么去了啊???
hpaolo 2005-7-8 11:34
感谢楼主 我是刚入行的新手 做的几乎全是黒盒测试 这东东对我来说太有用了 呵呵
chriswu0102 2005-7-14 19:53
学习ing
zijieer 2005-7-27 10:21
能介绍几个测试工具吗?上手难吗?
我们公司比较不正规,都没有相应的培训就让我从事测试工作
让自己学习,简直是乱搞!
93326736 2005-8-18 15:03
近年来,软件测试自动化技术的研究取得了很大进步,市场出现了一些商业化的专用自动测试工具,并且已经成功地应用在某些软件的自动化测试过程中。自动测试具有测试效率高、人工干涉少、灵活方便等优点。但是,自动测试技术的仍然处于不断发展中,当前市场上的自动测试工具仍然只能满足某些软件的部分测试特性,应用范围受到限制,需要针对被测软件,单独编写和调试比较复杂的测试脚本,而且自动测试工具价格通常十分昂贵,非一般软件公司可以购买的起。在当前的软件测试领域,测试工程师的手工测试仍然处于十分重要的地位,目前软件自动测试仅是手工测试的辅助手段。由于软件自身的复杂性和灵活性,而高度发达的人类思维的优势,决定了无论自动测试技术多么发达,手工测试将不会消失。
cxsquirrle 2005-8-23 21:29
斑竹:
你好,我是测试方面的新手.我想问一下,我公司是做防火墙的,但是没有什么培训的,刚开始都没事情就是看文档,现在要进行这方面的测试我都不知道从什么地方着手,测试防火墙一般可以用什么测试工具loadrunner?robot?哪种比较好。
happy058 2006-3-24 00:03
讨论
基于楼上有人问到什么工具适合自己,你们可以到51testing主页上看看,大部分工具都有。
tutu2006 2006-3-24 10:42
蛋Q蛋Q!!斑主辛苦了……
阿珊 2006-3-24 17:26
斑竹大人~
我下载了winrunner,可是是英文版的,俺连装都不会,就更别提用了!
怎么办啊??苦死我了!!!
zhezhe2008 2006-3-30 16:09
谢谢斑竹,
受益匪浅!!
李逍遥 2006-4-10 17:01
谢谢斑竹!
karkoy 2006-4-12 12:02
正在进行黑盒测试,谢谢
wolfnc 2006-4-27 22:53
??
有没有相对应的白盒测试的相关解释?
xingzunxi 2006-6-16 14:30
不错的文章,但是自动化测试,也有很多不足的地方,它是不可能完全代替手动测试的
阳光岁月 2006-6-19 17:29
测试工具只是辅助的手段,最重要的还是自己要多积累各方面的经验和教训.....不过还是想问一下,我们公司做的主要是网络游戏方面的测试,请问一下什么工具比较合适?
jokie 2006-7-4 09:34
说得太深厚,噢都听不懂了!
[font=宋体][color=Pink]希望大家能够交我这个朋友!我的QQ:215143066,MSN:jickllyloveshe@hotmail.com
欢迎加入我的群!26526836
[/color][/font]
冰焰琉璃 2006-8-21 16:19
绝对支持~~~
walker_lai 2006-8-27 12:20
怎么都变成让别人给自己挑工具的了
漂漂宝贝 2006-10-13 23:55
入门级~~~~
谢谢~~斑竹~~!
enjoytest 2006-12-7 19:43
回复 #14 的帖子
我觉得先要系统的学习软件测试理论,这是软件测试的第一步,也是重重要的一步,打好功底再说,呵呵