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

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

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

原创 如何才能做好测试自动化(TA)?收藏

新一篇: 如何更好达到测试自动化的目的(2) ? | 旧一篇: 软件测试的认识误区

在自动化测试引入和应用中,我们清楚一些基本的原则:

-选择好工具,最流行的工具不一定适合自己,真正适合自己的工具才是最好的。如Robot不一定是最好的,但它的多机交互协作能力是其它工具没有的

-根据客户端、Web和服务器的不同特点可选择不同的测试工具,如Web的链接、UI变化快和复杂的逻辑,工具的录制功能要强、稳定,适应不同的平台(Windows, Linux, Mac OS)和浏览器(IE, ForeFox, NS, ...)。而服务器一般不存在UI界面,主要是对不同协议的支持。

-负载、性能自动化测试比较容易实现,但功能性测试更困难

-软件测试自动化(TA)虽然具有很多优点,但只是对手工测试的一种补充,TA绝不能代替手工测试。在系统功能逻辑测试、验收测试、适用性测试、涉及物理交互性测试时,多采用黑盒测试的手工测试方法; 单元测试、集成测试、系统负载或性能、稳定性、可靠性测试等比较适合采用TA。

- 工具本身并没有想象力和灵活性,自动测试只能发现15-30%的缺陷,而手工测试可以发现70-85%的缺陷;TA工具在进行功能测试时,其准确的含义是回归测试工具,因为工具不能发现更多的新问题,但可以保证对已经测试过部分进行测试的准确性和客观性 

 -找准测试自动化的切入点,一般从长期的新产品开始、同步进行,并选用一些相对容易进行自动化处理的、手工测试较繁的模块着手,如大量API调用、邮件模板处理等;

 -把测试开发纳入整个软件开发体系,是必要的,系统不具有可测试性,再好的工具也无能为力。而且测试自动化前期投入大,这样软件开发的前期分配的时间要多些,测试执行的时间可短些;人力分配也不同,进行资源的合理调度。
 

-测试自动化依赖测试流程和测试用例。没有好的测试流程或者没有设计有效的测试用例,测试工具会事倍功半。
 软件测试自动化的投入较大
 

但有一个问题困扰着我们,即采用下面哪种模式更好?

1。专门的TA团队,负责自动化模块开发,开发完后交给进行功能测试的队伍。人为增加了一个交接工作、沟通层次,但TA团队全心再Scipting, 开发效率高,而且有利于留住TA engineer

2. 将产品的部分模块承包给TA团队,TA开发好了,他们手工测试就少了,让TA团队自己Drive自己,效果应该不错,但开发效率可能会低,或TA团队感觉压力太大,或不喜欢手工测试,容易被逼走去做开发。

欢迎大家评论!

发表于 @ 2006年06月07日 23:47:00|评论(loading...)|编辑

新一篇: 如何更好达到测试自动化的目的(2) ? | 旧一篇: 软件测试的认识误区

评论

#Edmond 发表于2006-07-04 19:37:00  IP: 211.162.8.*
Kerry
拜读了你的文章,关于最后的问题,我说说我自己的看法,我还是比较倾向于第二种.两种方式的好处和坏处你都已经说明的很清楚了,我只说明我选择第二种的原因.因为由专门的团队去负责会形成一种机械的方式去完成脚本.他们可能只是写些常用的scripts,因为他们对测试中某些特殊的问题并不能有正确的遇见.而测试人员只会拿着写好的脚本run一遍就可以了.如果将产品承包给团队,TA人员参与到写script和测试中去,他们对产品中的某些问题可能会产生自己的独特的case script,这样可能会更好的去发现问题.另外一方面也可能需要leader去作一下正确的引导作为辅助的措施.个人意见,如有不对,希望指正.
#Kerry 发表于2006-07-04 20:06:00  IP: 61.191.27.*
agree, thanks! TA team 自己去完整地完成一个task, 可以从TA角度去看问题,脚本结构会好些、更流畅些。作为TA engineer, 了解功能特性也是必要的。
#ll 发表于2006-07-05 08:20:00  IP: 61.191.27.*
我觉得首先,TA工程师应该是测试工程师,这一点首先得弄清楚。
如此,我也比较倾向于第二种做法,TA工程师不了解产品,不能写出很好的脚本,尽管和case完全一致;其他测试工程师执行他的脚本很费劲,好不容易得出个结果,还不一定是自己想要的;我们目前的情况就是如此。
#Derek 发表于2006-07-07 10:27:00  IP: 218.108.8.*
是否可以有这样的考虑:
1、为将来可适用性强(针对多平台,多中测试要求)的测试需求而预留合适的资源去开发基础的TA平台。毕竟我们目前所能得到的所有TA框架根本不可能是包罗万象的,可以选择比较合适的几个进行整合。并针对公司的产品做小规模的扩充,可直接在框架之上,也可以根据具体需求做些系统级的小扩展。
2、TA的实现不仅是要实现自动化。更重要的一点,或许是可以帮助严格地定位缺陷发生的位置和条件。因此,在这点上,不能光依赖于生硬的脚本执行,而要引进系统的测试方法和模式。TA脚本开发是否可以从这方面多作考虑。
3、为什么我们只能余兴事先设计的有限CASE?TA所谓自动化的一面有待更智能化的提高。有几样事情我们可以试着去做:
1)对CASE的智能化管理和跟踪,在有限基本脚本集的基础上建立动态的执行CASE集。
2)TA脚本执行步骤的精细化与监控。
3)测试的策略管理与资源优化及分配。
#Derek 发表于2006-07-07 10:46:00  IP: 218.108.8.*
TA的最伟大目标:实现结构化、智能化的动态脚本集与相应的测试模式。
可参考的模式:
1、谓词驱动的测试。
2、UML表述的CASE与TA脚本的相互映射。
3、CASE管理与执行状态集的自动机(或状态机)模型。
# Derek 发表于2006-07-07 12:16:00  IP: 218.108.8.*
从技术可行性考虑,TA几乎可以实现手工操作可能实现的所有操作。唯一的缺点是资源的约束和依赖于测试的模式。目前的TA脚本可共用性差,开发时考虑的层次过低,局限于短期应用,是引进TA过程中最头痛的问题。但,对于一个足够持续的产品开发链,TA所带来的经济效益和可靠性等方面也是显而易见的。
手工操作的好处是可以机动地引进一些操作,从宏观的角度,针对性比较强,在可操作的范围内,想到什么做什么。
#Kerry 发表于2006-07-08 11:46:00  IP: 61.191.27.*
To Derek: TA脚本相对每一个test case不是独立的,不容易形成动态执行的test suite. TA在UI验证、客户经验、逻辑、创造性等方面还是有很大局限。对于“结构化、智能化的动态脚本集与相应的测试模式”,能给出一个具体例子,或参考文献?“为将来可适用性强(针对多平台,多中测试要求)的测试需求而预留合适的资源去开发基础的TA平台”,如何理解?
#Austin 发表于2006-08-09 09:50:00  IP: 61.191.27.*
大家好,经常关注朱老师的blog.学到了不少好东西:-)
我想能不能再增加一个模式:3)将TA的工程师,派发到各个项目测试组里去。以提高每个项目组的自动化测试覆盖和自动化测试效率。提高自动化测试覆盖率和效率是每一个TA的工程师的主要工作任务和职责。这里的好处是:TA跟进项目,没有游离在项目之外;知识的互动是双向的。但TA的工程师之间缺少了沟通,不利于TA作为一个整体团队的发展。
#Kerry 发表于2006-08-09 12:27:00  IP: 61.191.27.*
Good suggestion, thanks!
#asf 发表于2006-11-15 09:35:00  IP: 59.40.182.*
现在拍马屁的越来越多了.我也来拍拍,的确不错,好文章.
#liuyang630 发表于2006-12-26 23:59:56  IP: 222.131.143.*
呵呵,99%的理论,没有实践又有什么意义呢?现在国内的测试行业已经不缺乏理论专家了。个人见解,请见谅^_^
#KerryZhu 发表于2006-12-27 09:56:53  IP: 61.191.27.*
实际上国内实干的人很多,理论专家很少。据我所知,大师级的人物99%来自国外。从我们自身讲,做出国际一流产品和服务(占全球市场份额65%), 有200多人测试的团队,7年多历练,包括在自动化测试上的经验和教训,涉及服务器、Windows/Java client、、数据库、XML和Web等,经验不少,但理论有待加强。
#am2000 发表于2006-12-30 10:20:27  IP: 61.191.16.*
理论结合实际才是最好的..........
#lantianwei 发表于2007-12-31 19:59:42  IP: 218.104.39.*
TO Kerry
个人认为自动化人员应该在手工测试就介入到项目中(也做手工测试),这样可以更好的把控自动化脚本的设计;当然如果手工人员可以提供非常详尽的自动化用例,那也可以写出好的脚本,但基本上很少有公司可以做到.
TO Derek
对于你说的自动化用例自动产生不知道你们现在有没有已经实现了,我对这方面技术非常感兴趣,我觉得自动化测试就应该做到这一步.
#KerryZhu 发表于2008-01-01 16:45:21  IP: 61.191.27.*
Lantianwei, 同意你的看法。新年快乐!
#julian_zhu_2002 发表于2008-05-05 10:58:34  IP: 203.110.162.*
拜读大作,收益匪浅
发表评论  


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