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

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

朱少民ID:KerryZhu
621880次访问,排名63好友9人,关注者95
从事软件开发、测试、QA和过程改进等工作近二十年, 目前领导一支几百人的软件测试和QA队伍,先后出版专著《全程软件测试》和主编《软件测试方法和技术》、《软件质量保证和管理》、《软件过程管理》等教材,高级职称、硕士生导师,先后获得多项省、部科技进步奖。
KerryZhu的文章
原创 119 篇
翻译 6 篇
转载 65 篇
评论 770 篇
KerryZhu的公告
....产品的质量依赖于过程的质量,而过程的质量依赖于企业文化和管理
Locations of visitors to this page
最近评论
lusebingdian:不错 !
正是我想要找的东西!
Thank you very much!
Eleanorshui:谢谢
zhm450:十分感谢
非常有用
TS
dlsys:谢了!
tousky:感谢,全下载了!
文章分类
收藏
相册
发现的诱惑
同学之情
测试
CSDN软件测试圈
卖烧烤的鱼博客
天行健,君子当自强不息
开源测试工具
探索中国软件测试之道
测试专业论坛
测试最佳实践
祖洪自动化维客系统
自动化测试资源(英文)
软件测试之家
软件开发和管理
CSDN-质量圈(RSS)
寸锐斋-
有效工作和管理
计算机电子书
同学友人
江湖一萍- 古徽州婺源人
聂造的客厅
文化名人的Blog
余秋雨
易中天
综合
家乡美-中国第一状元县
MIT Open Courses
家乡美-徽州文化-荫余堂
徽州文化-建筑、版画、雕刻...
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

原创 测试执行中非常有效的策略收藏

新一篇: 测试自动化普遍存在的问题 | 旧一篇: 功能测试自动化的投入和产出

版权所有 :-)

对于大型项目,软件测试的执行,除了需要很好的测试范围分析、测试计划制定和测试资源的分配与组织之外,还是有一个容易被大家忽视的策略问题。

对于大多数应用项目(非国防、载入飞船上天、净室工程等),我们都知道,测试不是为了证明所有的功能能正常工作,恰恰相反,测试就是为了找出那些不能正常工作、不一致性的问题,也就是说,测试的一般工作就是发现缺陷 (detect bug),当然这些缺陷包括需求分析、设计等的缺陷,不仅仅是程序中的运行。测试的启动和项目启动是同时发生的,测试的重要工作是在测试用例的设计,这是随后测试执行的基础。同时,我们应该承认,测试的主要工作是在测试的执行,当自动化测试工具在功能测试中发挥作用比较困难时,测试执行的工作量还是很大的。

如何更早地发现缺陷又不增加风险?测试的本质是什么,发现缺陷还是风险评估?如何引导大家向着一个目标——产品及时高质量发布努力?

1. 首先就要向测试人员灌输一个概念——“测试的一般工作就是发现缺陷 (detect bug)”,达成共识,这是很重要。这样,测试人员,就知道什么是自己真正的工作。这一点,不仅在测试执行时发挥作用,而且在设计测试用例时更能发挥作用。

2. 测试执行阶段可以划分为两个子阶段,前一个阶段的目的非常清楚,就是发现缺陷,督促大家就是找出缺陷。测试用例的执行,应该是帮助我们更快地发现缺陷,而不是成为“发现缺陷”的障碍——使发现缺陷的能力降低。从理论上说,如果缺陷都找出来了,质量也就有保证了。所以在这一阶段,要不顾风险,就是发现缺陷,这样不仅对开发团队也非常有利,能尽早地修正大部分缺陷;对测试有利,测试效率高,后面的回归测试也会稳定,信心更充分。

3. 在代码冻结或产品发布前的稍后的子阶段,目的是减少风险,增加测试的覆盖度,这时测试的效率会低一些,以损失部分测试效率以极大降低风险、获得更高质量的收益。

4. 在前一阶段,测试用例的执行速度要低一些,测试人员多思考,多做些ad-hoc 测试,这样又帮助提高测试用例的质量,从而对随后的回归测试提供了更有力的保障。

 5. 测试执行要进行有效监控,包括测试执行效率(缺陷数/KTC, KTC = 1000 test cases)、Bug历史情况和发展趋势等。根据获得的数据,必要时对测试范围、测试重点等进行调整,包括对测试人员的调整、互换模块等手段,提高测试覆盖度,降低风险

6. 测试总是是有风险的,正是始终存在的风险,使之测试更具有艺术性。

发表于 @ 2006年06月14日 18:50:00|评论(loading...)|编辑

新一篇: 测试自动化普遍存在的问题 | 旧一篇: 功能测试自动化的投入和产出

评论

#freeguy 发表于2006-06-14 19:44:00  IP: 61.191.27.*
我也常遇到这个问题,看了这篇文章,豁然开朗...
#vickey 发表于2006-06-15 09:55:00  IP: 192.168.0.*
请问ad_hoc测试是什么测试?发现缺陷是第一要义,但是目的存在,执行上的策略还是比较模糊
#CSDN BLOG编辑 发表于2006-06-15 11:07:00  IP: 218.247.0.*
朱少民:您好;
我是CSDN Blog的编辑,你的文章写得不错,经专家顾问团商议决定将你加入专家群,希望继续给我们的网友分享好的文章。有任何问题可以和我联系crj(AT)csdn.net 或者 msn:rjchen_et(AT)hotmail.com。
#Kerry 发表于2006-06-15 12:13:00  IP: 61.191.27.*
CSDN Blog的编辑, 谢谢!乐意和大家共享最佳实践。
#summerfang 发表于2006-06-15 11:45:00  IP: 61.191.27.*
Ad Hoc就是不按照事先设计好的测试用例,根据经验或感觉测试。这在实践中会发现根据测试用例不易测出来的Bug。
#Derek 发表于2006-06-15 14:22:00  IP: 218.108.8.*
根据自己的理解给Ad-hoc下一个定义:
Ad-hoc测试方法就是不按照事先设计好或针对性的测试用例,而根据经验、感觉和一般(通用)与隐含的应用规则及常识,结合不同的测试方法、手段、条件和应用环境所做的常规或较系统层次上的自由组合或随机方式而进行的测试。
另外提一点,任何随机的东西都是隐含着一定规律的。统计学是一种科学的话,任何实际应用操作意义上合理而有效的倾向性尝试(可能内含一定的合理性,也可以通过信息的关联性和全息性导出相关的部分)也是一种科学——或至少是一种具有科学倾向的艺术。:)
#Derek 发表于2006-06-15 13:58:00  IP: 218.108.8.*
想补充一点:开放式地去发现BUG事实上在去迎合设计的规则(隐含构造的逻辑,正确的和不正确的),即尽一切实际可能的手段,从各个方向去构造现实的可能性,同时使验证的活动集中到设计目标隐含和明确的区域。当这种现实的验证活动,在设计的目标对象的性能不是很稳定或内含逻辑混乱的时候,发现的缺陷也可能是层出不穷而没有层次和规律可循,所以,严格地说,很难进入到所需验证的隐含或明确区域。有此可看到,测试前期如果仅是借助比较偶然而非系统的手段,可能并不能明确测试的重点,而这个重点正是有完整的需求决定的,是被用户需求、技术本身的领域及层次、应用范围与方式所界定的。换句话说,哪怕是有漏洞但基本功能与特征符合需求的基本精神与原则要求的,即使有一些系统整体上的漏洞,也可以通过整体的安全手段予以补上(这是一般技术处理上完全可以理解的——而且也正是一种重要的技术),但结构混乱的缺陷则是不可控制的最危险的缺陷。因此,从这点看,严格地补充一下,测试的目的是用隐含或界定的系统规则去创造开放式的临界区域或条件,从而暴露界定的应用或操作范围内的异常现象或界定与 规定特征相违背的本质所在。
在测试的中后期,除了要继续界定正确和不正确的区域,还要关注系统设计上结构改动引起的新的结构特征和非结果改动引起的系统稳定性的扰动。因而,在关注缺陷的同时,还必须考虑到缺陷得以参照对比的结构本身的稳定性,这就是回归测试所必须考虑的,也就是说除了发现缺陷,为了保证产品沿着不断上升的基线稳定前进,核心功能区和关键结构的可靠性和稳定是必须被充分印证的,随着产品愈趋完善,这也许是某种意义上工作越来越集中的部分,是要通过更复杂的方案、技术手段和更多时间去做的。“减少风险”的理解,并不是说有缺陷但因怕承担责任而少做或不做针对性的复杂测试,而是一方面考虑到设计改动的风险而去确保测试基线的稳定性、可靠性,在充分保证的前提下去界定设计改动的风险范围,另一方面避免过多的资源投入在低风险或缺陷少的区域而引起成本与管理风险。说到底,发现缺陷的结果对产品线的整个来说还是好的,可以最大程度地帮助技术的改进和避免由缺陷引起的应用损失。最大程度地发现缺陷在合理的资源约束下始终是一个最基本的原则。
#Phyllis 发表于2006-06-21 01:52:00  IP: 64.68.115.*
很高兴Kerry提供这样一个地方让各路高手切磋测试的理论问题.
#skinapi 发表于2006-06-26 14:25:00  IP: 218.80.208.*
个人觉得这种测试执行阶段上的划分也不一定完全正确,毕竟还是要具体情况具体分析的,但有一点是可以确定的:
测试执行的目的很重要,目的不同,执行的过程有很大区别,这些Kerry已经说得很清楚了。
#Kerry 发表于2006-07-08 12:03:00  IP: 61.191.27.*
To skinapi: 同意你的看法,不过,可以做一些有意义的尝试、创新,发现更有效的测试策略。
#plnflyinghigh 发表于2006-09-01 15:26:00  IP: 172.16.74.*
一直没有看明白“风险”在本文中的所指?说的含糊其词
#Kerry 发表于2006-09-03 18:48:00  IP: 61.191.27.*
测试的 "风险"就是指不能达到“100%”的覆盖率,或者说,测试只是发现缺陷,发现的缺陷是存在的,没有发现的缺陷不能证明不存在,即测试不是严密的逻辑或数学的推理。
发表评论  


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