朱少民-软件测试和质量专栏

实践和理论之完美结合: 质量文化、SQA、测试艺术、测试方法/技术、自动化测试、过程管理、CMM/CMMI、RUP/XP、Web2.0 (声明:在此发表的所有文章仅代表个人倾向)

朱少民ID:KerryZhu
600614次访问,排名61好友12人,关注者40
从事软件开发、测试、QA和过程改进等工作近二十年, 目前领导一支几百人的软件测试和QA队伍,先后出版专著《全程软件测试》和主编《软件测试方法和技术》、《软件质量保证和管理》、《软件过程管理》等教材,高级职称、硕士生导师,先后获得多项省、部科技进步奖。
KerryZhu的文章
原创 119 篇
翻译 6 篇
转载 65 篇
评论 751 篇
KerryZhu的公告
....产品的质量依赖于过程的质量,而过程的质量依赖于企业文化和管理
Locations of visitors to this page
最近评论
meng0819:想下载来着,有个疑问,这个应该是合法的吧?
我的单位不可以下载一下盗版的资料,否则后果很严重。
希望可有一个明确的回答,谢谢!
meng0819:只问一个问题:这个时候安全隐私怎么保障?
stopbenben:您好,我看了您的文章,也想学习装一个彩信收发,自己在网上看了很久,也研究了很久,就是不会。我现在装SwirlyMMS软件都不会呢,麻烦您能教我一下吗?
syjazq:来观摩一下 留下足迹
reader111:学习!
好东西!
文章分类
收藏
相册
发现的诱惑
同学之情
测试
CSDN软件测试圈
卖烧烤的鱼博客
天行健,君子当自强不息
开源测试工具
探索中国软件测试之道
测试专业论坛
测试最佳实践
祖洪自动化维客系统
自动化测试资源(英文)
软件测试之家
软件开发和管理
CSDN-质量圈(RSS)
寸锐斋-
有效工作和管理
计算机电子书
同学友人
江湖一萍- 古徽州婺源人
聂造的客厅
文化名人的Blog
余秋雨
易中天
综合
家乡美-中国第一状元县
MIT Open Courses
家乡美-徽州文化-荫余堂
徽州文化-建筑、版画、雕刻...
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

原创 测试方法的辩证统一 (1)收藏

新一篇: 测试的革命

    软件测试的众多方法是辩证统一的,它们相互依赖而存在,相互对立又相互补充,任何一种测试方法都有其优点,在特定的测试领域能得到充分发挥。同时,任何一种测试方法都不能覆盖所有测试的需求,在某些场合存在一定的局限性和不足。这种测试的辩证统一,从下面这些相对应的测试方法就得到很好的印证。

l         白盒测试方法和黑盒测试方法

l         静态测试 (static test) 动态测试( Dynamic test)

l         手工测试(Manual test)和自动化测试(Automated Test)

l         有计划测试(Planned Test)和随机测试(Ad-hoc test Random test

l         新功能测试(new feature test)和回归测试 (Regression testing)

 

1. 白盒测试方法和黑盒测试方法

黑盒测试方法,不考虑程序内部结构和内部特性,而是从用户观点出发,针对程序接口和用户界面进行测试,根据产品应该实现的实际功能和已经定义好的产品规格,来验证产品所应该具有的功能是否实现是否满足用户的要求。

所以,黑盒测试方法技术相对要求低,方法简单有效,可以整体测试系统的行为,可以从头到尾(end-to-end)进行数据完整性测试。黑盒测试方法适合系统的功能测试、易用性测试,也适合和用户共同进行验收测试、软件确认测试。黑盒测试方法不适合单元测试、集成测试,而且测试结果的覆盖度不容易度量,其测试的潜在风险比较高。

由于白盒测试方法,已知产品的内部工作过程,针对性很强,可以对程序每一行语句、每一个条件或分支进行测试,测试效率比较高,而且可以清楚已测试的覆盖程度。如果时间足够多,可以保证所有的语句和条件得到测试,测试的覆盖程度达到很高。白盒测试方法所以适合单元测试、集成测试,而不适合系统测试。白盒测试方法准备的时间很长,如果要覆盖全部程序语句、分支的测试,一般花费比编程更长的时间。

白盒测试方法所要求的技术也较高,相应的测试成本要大。对于一个应用的系统,程序的路径数可能是一个天文数字,即使借助一些测试工具,白盒测试法也不可能进行穷举测试,企图遍历所有的路径往往是做不到的。即使,穷举路径测试,也不能查出程序违反了设计规范的地方,不能发现程序中已实现但不是用户所需要的功能,可能发现不了一些与数据相关的错误或用户操作行为的缺陷。所以白盒测试方法也存在一定的局限性。

 

2. 静态测试和动态测试

静态测试是通过对软件的程序源代码和各类文档或中间产品(产品规格说明书、技术设计文档),采用走查、同行评审、会审等方法来查找错误或收集所需要的度量数据,而不需要运行程序,所以相对动态测试,可以更早地进行。

静态分析的查错和分析功能是其他方法所不能替代的,静态分析能发现文档中问题(也只能通过静态测试实现),通过文档中问题或其他软件评审方法来发现需求分析、软件设计等问题,而且能有效地检查代码是否具有可读性、可维护性,是否遵守编程规范,包括代码风格、变量/对象/类的命名、注释行等。静态测试已被当做一种自动化的、主要的代码校验方法。

动态测试是通过观察程序运行时所表现出来的状态、行为等发现软件缺陷,包括在程序运行时,通过有效的测试用例(对应的输入 / 输出关系)来分析被测程序的运行情况、或进行跟踪对比,发现程序所表现的行为与设计规格或客户需求不一致的问题。

动态测试是一种经常运用的测试方法,无论在单元测试、集成测试中,还是在系统测试、验收测试中,都是一种有效的测试方法。但动态测试不能发现文档问题,必须等待程序代码完成后进行,发现问题相对迟得多,一旦发现问题,必须重新设计、重新编码,必然增大不良质量的成本。

<待续>

发表于 @ 2006年05月30日 13:07:00|评论(loading...)|编辑

评论

#KerryZhu 发表于2006-07-26 21:39:00  IP: 211.100.21.*
TrackBack来自《第2回 究竟什么是软件测试?》

在第2回,试图演义出一个完整的“软件测试”概念。从不同的视角获得对软件测试的不同视野,包括软件测试的狭义论和广义论、辨证论、风险论、标准论和经济学观点,从而深刻地揭示了软件测试的内涵和外延。(版权所有,软件测试演义)
#KerryZhu 发表于2006-08-17 12:43:00  IP: 211.100.21.*
TrackBack来自《第8回 测试的三维空间》

软件测试是一个过程,是哲学思想在软件工程中的运用,更是质量目标的扩展和延伸。软件测试构成了具有丰富内容的三维空间。
#skinapi 发表于2006-06-26 12:46:00  IP: 218.80.208.*
不太同意黑盒测试方法不适合单元测试、集成测试以及白盒测试方法不适合系统测试的说法。这两种方法只是看待测试的角度不同,跟是系统测试还是单元测试没有直接的对应关系,只是系统测试中主要采用黑盒测试方法,单元测试中白盒测试方法更突出罢了,呵呵。
#sandym 发表于2006-07-27 14:50:00  IP: 61.191.27.*
同意黑盒测试方法不适合单元测试.
#elevenyi 发表于2007-07-12 13:26:44  IP: 59.44.71.*
好专业哦~~~
#yiguohong 发表于2008-01-28 15:26:16  IP: 58.49.235.*
很有见的
#julian_zhu_2002 发表于2008-05-05 10:46:49  IP: 203.110.162.*
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © KerryZhu