啦测我们

482,381 十月 独立访问用户
您目前处于:
敏捷自动化测试(1) —— 我们的测试为什么不够敏捷?
敏捷自动化测试(1) —— 我们的测试为什么不够敏捷?
相关厂商内容
相关赞助商
Windows Azure专区上线,全面了解云服务!
每日构建产生的版本要保证可用;
每个迭代都需要对历史功能做回归测试;
释放前或上线后如果打了补丁,就需要回归;
但实际情况往往不遂人愿:
实际测试周期变短:
上线时间提前确定,研发进度延期,测试计划被迫延后;
最后阶段经常会临时增加测试任务;
所有人都知道还需要再经过一轮测试,但时间没有了;
有效测试资源稀缺:
临时从其他项目抽调的测试人员不能立刻有效的开展测试工作;
&搞不清楚&本项目的研发人员到底是不会做测试还是不愿做测试;
因此由于客观上的资源和时间限制,完整的、及时回归测试在人工测试情况下,往往是不可能完成的任务。团队内部也会产生各种争执:
提交给测试的版本为什么研发人员不先做通过性测试?
这次代码改动量不大,有必要再花那么多时间回归么?
当初不是承诺这次修改肯定不会影响以前的功能么?
怎么不早说要支持Chrome浏览器,现在哪还有时间测试啊?
怎么能让现场出现这种低级的Bug,打补丁后为什么不仔细回归一遍?
争执越演越烈,最终有团队成员爆发了:&这简直不是人干的活!&。
您怎么看待这句话呢?
其实话糙理不糙,用更理性的语言翻译一下就是&有些工作不应该以人工的方式来完成&,比如:
大量机械的、重复性的回归测试;
结果的正确性不依赖主观判断的测试;
需要模拟大量数据、大量并发量的测试;
需要不间断执行的测试(比如7*24小时持续执行);
需要短时间内完成的大量测试用例执行(比如完整的功能回归测试);
通过自动化测试可以极大的提升回归测试、稳定性测试以及兼容性测试的工作效率,在保障产品质量和持续构建等方面起到举足轻重的作用。特别是在敏捷开发模式下,自动化测试是必不可少的。
目前业界的商业/开源自动化测试工具有很多,比如,功能测试工具有QTP、Selenium等,性能测试有LoadRunner、JMeter等。其工作原理无非都是通过&测试脚本&和&测试数据&来完成&测试过程&,并比较&测试结果&,进而形成&测试报告&。
本文不对这些测试工具的差异或优劣进行对比,只以作者目前采用的为例进行分析:敏捷开发模式需要自动化测试,但自动化测试本身的敏捷性又如何呢?
Selenium是针对Web应用的开源自动化测试工具,通过编写模拟用户操作的脚本,它会打开浏览器对Web应用进行黑盒测试。可以方便的用于功能测试、兼容性测试、 稳定性测试及并发测试。目前已被主流浏览器厂商广泛支持,同时也是很多其它自动化测试工具(比如,)的底层核心技术。Selenium由IDE、Remote Control(简称RC)、WebDriver、Grid四个工程组成:
Selenium IDE
是一个用于录制/回放测试脚本的Firefox附加组件,录制的脚本可以生成基于Selenium RC的测试代码(Java、Ruby、C#等)。适用于快速入门,不太适用于实际较大的测试项目;
Selenium RC
RC由Server和Client组成两部分组成,Server负责加载/关闭浏览器以及作为HTTP代理来访问Web应用,Clinet支持多种编程语言和测试框架(TestNG、JUnit、NUnit等)。
Selenium WebDriver
WebDriver作为Selenium2的核心特性提供比RC更简洁易用的API,是官方推荐的RC替代方案。可以更好的支持动态网页,不需要再额外启动一个独立的Server。
Selenium Grid
是Selenium的一个扩展工具,可以很方便地同时在多台机器上和异构环境中并行运行多个RC或WebDriver用例。
Selenium RC是通过在浏览器加载时&注入&JS函数来操纵后续的浏览器行为,Selenium WebDriver则通过直接调用各个浏览器内置的本地事件来达到这一目的。WebDriver目前已经作为,提交由Google、Mozilla等浏览器厂商讨论。
WebDriver规范定义一组与平台、语言无关的接口,包括发现和操作页面上的元素以及控制浏览器行为,主要用于支持Web应用的自动化测试。WebDriver的核心是通过findElement方法返回DOM对象(WebElement),通过WebElement可以对DOM对象进行操作(获取属性、触发事件等)。其中findElement方法需要的元素定位器(Locator)支持ID、XPath、CSS、超链接文本等多种方式。
&WebDriver&顾名思义就是&Web浏览器驱动&,它专注于解决如何通过外部命令(通常为测试用例)操作浏览器的问题。至于测试用例按照什么顺序执行、执行过程中如何传递数据、测试结果如何断言、如何报告,则可以通过集成其它优秀的专业测试框架(比如,)来实现(WebDriver没有必要重复造轮子)。
下面用以&用户管理&为例,来看看用WebDriver实现的&增加&和&删除&测试脚本(只示意部分关键代码)。
1、在用户列表页面点击&新增&按钮,跳转到新增用户页面:
webDriver.findElement(By.xpath(&//a[contains(@id,'addUserBtn')]//button&)).click();.
脚本解读:
By.xpath()表示通过XPath来定位页面元素;
click()表示在找到的当前控件上执行点击操作;
2、在新增用户页面,输入&帐号&、&密码&、&姓名&,选择&性别&、&生日&和&国籍&,然后点击&保存&按钮,回到用户列表页面,并判断是否增加成功:
String account=&autotest2&;
webDriver.findElement(By.xpath(&//div[contains(@id,'account_userForm')]//input&)).sendKeys(account);
webDriver.findElement(By.xpath(&//div[contains(@id,'password_userForm')]//input&)).sendKeys(&1&);
webDriver.findElement(By.xpath(&//div[contains(@id,'name_userForm')]//input&)).sendKeys(account);
webDriver.findElement(By.xpath(&//div[contains(@id,'sex_userForm')]//input&)).click();
webDriver.findElement(By.xpath(&//span[text()='女']&)).click();
webDriver.findElement(By.xpath(&//div[contains(@id,'birthdate_userForm')]//input&)).click();
webDriver.findElement(By.xpath(&//div[contains(@id,'nationality_userForm')]//input&)).click();
webDriver.findElement(By.xpath(&//span[text()='中国']&)).click();
10) webDriver.findElement(By.xpath(&//a[contains(@id,'userSaveBtn')]//button&)).click();
11) WebElement ele = webDriver.findElement(By.xpath(&//div[text()='&+account+&']&));
12) Assert.assertNotNull(ele);
脚本解读:
sendKeys ()表示在找到的当前控件上输入字符;
2~9行表示通过输入或点击选择的方式为用户相关属性赋值;
第10行表示点击&保存&按钮(点击后会自动转向用户列表页面);
11~12行表示查找页面上文本内容为新增帐号的div,并断言该div是存在的(不为空);
3、删除刚刚增加的人员,然后判断是否删除成功:
webDriver.findElement(By.xpath(&//a[contains(@id,'deleteUserBtn')]//button&)).click();
WebElement ele = webDriver.findElement(By.xpath(&//div[text()='&+account+&']&));
Assert.assertNull(ele);
脚本解读:
第1行表示点击&删除&按钮;
2~3行表示查找页面上文本内容为新增帐号的div,并断言该div已经不存在了(为空);
通过上面的脚本就可以实现&用户增加、删除&的自动化测试,并且可以跨浏览器。看到这里您会不会觉得整体还不错,如果测试脚本再能通过录制的方式自动生成就更好了!
&看&起来确实还不错,但在实际项目中用起来就没那么爽了。这其实是在技术/工具选型时普遍存在的现象:在验证/试用阶段的评价很高,但在投入生产使用时会遇到各种各样的问题,因此大家在选型阶段除了考虑功能,还要考虑技术/工具本身的开放性和可扩展性。
上面的方案单纯从技术的角度来讲是很不错的:开源、社区活跃、标准化程度高、支持跨浏览器、脚本回放稳定、可集成性高,等等。
但是如果就这样应用在实际项目中,会从过程的角度暴露一些棘手的问题:
测试脚本是&代码级&的,那么应该由谁来编写呢?
测试人员和开发人员好像都有编写这些测试脚本义务,但似乎又都有不写的理由。
测试脚本必须不断的修改才能在最新版本上跑通,谁该为此买单?
在敏捷开发过程中需要快速响应需求的变化(新增、变更),这一点整个团队都好理解。因此如果需求发生变化,开发人员修改代码、测试人员修改测试脚本,一切顺理成章,大家相安无事。但是在用户需求没有变化时,开发人员频繁修改代码的情况也很常见:比如,修改Bug、针对&坏味道&做重构、调整页面布局或样式。于是在&毫无征兆&的情况下,测试脚本又无法执行了!
这时候测试人员可能会质问开发人员:&做之前怎么不想清楚?都已经测试完成的功能,为什么还总是反复修改?什么时候代码才能稳定?&。
而开发人员此时也会非常理直气壮:&有Bug能不改么?页面布局不合理导致用户体验差,能不改么?而且敏捷中的一个重要的实践就是重构啊&。
大家又是似乎都有道理、也都有苦衷。我虽然作为测试人员,但是在这个问题上还是&偏向于&开发人员的: 在软件生命周期的各个阶段(需求、设计、开发、测试)中,后面的阶段对前置阶段是有一定依赖的,所以越往后期响应变化的难度越大。比如,在&开发&环节不仅需要响应&需求&的变化(新增、变更),而且需要响应&设计&的变化。从这个角度来看,&测试&本就应该响应&开发&的变化。
对于在实际项目自动化测试过程中遇到的上述问题,归根到底是因为&自动化测试方案本身的敏捷程度不够&,主要体现在如下三个方面:
学习成本高
测试人员除了要掌握WebDriver接口之外,还要掌握XPath、TestNG的用法,甚至还需要对功能的前台实现有一定了解。
脚本维护困难
敏锐的开发/测试人员从上面的示例脚本中,可以马上嗅出一些&坏味道(Bad Smell)&: 代码相似度非常高、可能变化的数据被硬编码在测试代码里、代码可读性差、测试代码与页面源码耦合度大,等等。这些坏味道的出现,通常意味着需要进行重构,否则会愈演愈烈,最终变得尾大不掉。
【注】业界常见的测试工具本质上还是针对页面源码来编写(或生成)测试脚本的,即使提供了录制工具,此类脚本的可读性和后期可维护性还是非常差的。
断言条件繁琐
业界常见的测试工具即使提供录制脚本的功能,但是对于&断言&还是需要人工插入的(工具做不到智能的判断我们想要在哪里设置断言),于是断言就成了自动化测试人员的&噩梦&。
断言对象可能很&多&,页面的信息量往往很大,需要在测试脚本中为每个断言对象(比如,页面某个文本框的值)补充断言语句。
预期结果是可能&变&化的,甚至是动态的,因此预期结果的值如果与脚本逻辑耦合在一起,将来极难维护。 断言机制比较&呆&板,对于
未设为断言对象的字段,如果发生错误也是无法感知的,并且难以对于UI样式或UI逻辑(比如,翻页图标应该灰显)进行断言。
换个角度可以理解为,如果这样的断言条件&多&的话,整个测试用例集会&变&的非常&呆&板!
想要有效的改善这些问题,就必须让自动化测试变得&敏捷&起来!
在本系列后续的文章中会就&如何让测试脚本易写、易读、易维护&、&如何让断言不再成为测试的负担&、&如何通过持续集成让测试用例发挥更大的价值&进行详细的介绍,敬请关注!
殷坤,东软集团资深测试经理、技术讲师,10年软件研发、实施、测试及项目管理工作经验。 目前专注于敏捷项目管理及质量控制、过程改善、自动化测试、持续集成、用户体验提升等方面。
感谢对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至。也欢迎大家通过新浪微博()或者腾讯微博()关注我们,并与我们的编辑和其他读者朋友交流。
告诉我们您的想法
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
Re: 例子代码对吗?
Re: 例子代码对吗?
Re: 例子代码对吗?
Shadow ShadowWalker
概括很到位
Re: 概括很到位
Re: 例子代码对吗?
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
Salah Elleithy
Sigi Kaltenecker and Peter Hundermark
Steve Mushero
Jon Whittle, John Hutchinson, Mark Rouncefield
赞助商链接
InfoQ每周精要
通过个性化定制的新闻邮件、RSS Feeds和InfoQ业界邮件通知,保持您对感兴趣的社区内容的时刻关注。
<及所有内容,版权所有 &#169;
C4Media Inc.
服务器由 提供, 我们最信赖的ISP伙伴。
北京创新网媒广告有限公司
京ICP备号-7心情日志:我们都在试着长大,然后遍体鳞伤
关注一下我们的微信吧,,微信号:vikilife
以前最不喜欢自己呆着。
总是撒着娇让你陪我去干这个,干那个。
现在,我学会独处。
不耍性子,没有小脾气。
因为我知道,没有人会像你似的一直让着我。
妈妈老了, 爸爸也老了。
妈妈有白头发了。
爸爸说话有时会变得有气无力的。
一直在为我们奔波。
你们赔上年华,等我们长大。
我想,我用心了。
我一直很认真。
如果有一天天各一方,请彼此祝福。
如果有一天携手到老,会相敬如宾。
至少,我无愧于心,无愧于你。
那可能会是我最美好的记忆。
我们一块对着摄像头做鬼脸。
我们说彼此不相忘。
我们几个形影不离,有我们在的地方总是笑声四溢。
那些单纯,会是我生命里最珍贵的养料。
这是我一直梦想的地方。
梦想中,有特别铁的好哥们。
有特别知心的朋友。
有一个我爱的人。
尽管,有成堆的作业。
生活变得不再那么丰富多彩。
周末就只有上QQ,下QQ。
进空间看着别人分享自己的喜悲。
一遍一遍翻着分组里的人。
却就是不知道,还有谁能说几句话。
- 对于曾经。
我一直都缅怀曾经,讨厌改变,总是怀念过去。
到最后,还是像枯了的落叶,一片一片凋落。
美好都变成了碎片, 拼凑在回忆里。
- 对于现在。
既来之则安之。
我承认我没有上进心,我只是不喜欢改变。
只是不喜欢,周围的人都在为学习奋斗,然后感情变成了陪衬。
- 对于将来。
那是个不可预知的空间。
我幻想过好多好多。
想带着家人去好多好多地方游玩,然后哈哈的像孩子一样大笑。
看无聊的肥皂剧,哭到眼泪遍布全脸。
- 对于初中的铁哥们。
我不想因为高中同学,关系就淡了。
可是那些千丝万缕的关系,在一丝丝减少。
我怕有一天我再叫你们出来的时候。
你推辞到“今天高中同学一起出去玩”。
- 对于爱我的人。
我承认自己没心没肺。
我爱那些爱我的人。
我相信那些相信我的人。
我只对对我好的人微笑。
- 对于自己。
我会好好待自己。
不会再为了别人伤害自己。
我一直相信自己乐观强大的心。
会好好吃饭,好好睡觉,好好的生活。
我们都在试着长大,然后遍体鳞伤。
转自网络,作者不详& 我们开始测皮纹啦!
发布成功!
扫描二维码,下载手机客户端躺着也能逛圈子,发帖回帖更方便
恬恬&&2岁5个月小女生
PS:老师的博客
&&&我们开始测皮纹啦!&&《我是最棒的--皮纹科学分析》 遗传学&权威、教授所著之&遗传咨询&一书中,曾有如下说明记载:&人的皮肤纹理在胚胎的第十三周便开始发育,至胚胎的第十九周形成。皮肤纹理一旦形成则终身不变,只有在形成期受到遗传因数和环境因素影响才会引起一些改变。& 皮纹测评的优点是(1)具有全面性:通过测评不仅可以直观的了解一个人的八大智能、学习方面的强弱分布,也可以知道每一项智能通过什么样的学习方法最为有效(2)具有客观性:完全消除了文化背景,测量结果不受环境、身体好坏、情绪的影响。(3)具有稳定性:提供可靠的遗传信息,皮纹一生不变,一辈子只测一次即可。(4)具有准确性:不管哪一项智能对于每个人来说都是很重要的,测评对每项智能测评准确度几乎没有差异。皮纹与智商有相关性,他们都属于多基因遗传,两者之间的相关性,可能是由于基因组的差异及相互作用和基因与环境因素相互作用的结果。高智商人群皮纹具有特异性,因此多数学者认为可把皮纹特征作为选拔优秀人才的辅助依据之一。 我们幼儿园就引进了这项先进的技术,对进入我园的孩子都一一进行免费的皮纹测试,既《我是最棒的--皮纹科学分析》。使我们能更准确的培养好孩子。现在我们的宝宝情绪都得到了稳定,因此我们从上个星期五就陆陆续续开始进行了皮纹的测试工作,宝宝们都能认真的配合,看我们的宝宝多棒呀!
二OO九年九月十六日恬恬做了皮纹采集> 我们如何测试?
谁让会议更轻松?10款商务投影机横评CNET中国·ZOL 作者: 责任编辑:彭文娟 【原创】
(共12页)
&&& 本次横评我们应用了全新的评测方式,力争使评测更加全面、客观、易懂。通过这些评测,我们能够对这些的性能进行全面深入的了解。下面,笔者就将整个评测的流程向大家进行简单的介绍。
&&& ●机器外观测试说明
&&& 拿到机器后,专业的摄影师会首先根据的特点进行拍照。然后我们开始对投影机的外观设计、细节做工、灯泡更换难度等方面发表个人的观点与看法。
&&& ●ANSI客观测试说明
&&& 了解完外观之后,我们首先使用照度仪对产品的真实流明、对比度、色彩饱和度等进行详测。关于评测方案请参考,在此文中我们进行了详细的介绍。
&&& ●功率及噪音测试说明
  噪音 我们让投影机至少工作30分钟以上,然后用噪声计在前、后、左、右、上五个方向距离投影机50公分处测试投影机噪音,测试结果是这五个方向的平均。
  功率 投影机正常工作30分钟左右,测得的投影机工作时功率。
  开关机时间 投影机从按下按键到亮度达到正常值之间的时间为开机时间。关机为从按下电源按键到散热结束,可断电时为止。
主观画面色彩打分
●主观测试说明
  客观测试环节之后,我们通过测试一些的风景、人物和商业应用文档、纯色图片等,来观察这款投影机对色彩还原和细节方面的表现能力。
●易用性测试说明
  易用性测试:菜单篇 针对投影机的菜单设计、操作特点等进行屏摄、分析。
&&& 易用性测试:其他篇 对投影机的操作性难易程度,操作体验舒适度以及诸如开关机时间,接口扩展性,灯泡更换难度等方面进行考察。
●测试总结
&&& 在最后,由三位评测编辑根据客观测试结果和主观感受对参评机器进行打分,并且发表各自的观点,为消费者提供最佳的购买建议。
&&&&&&...&
频道热词:&&&&&&
精彩内容推荐
投影机评测热点
排行 文章标题
TOP10周热门投影机排行榜
商家报价:
51用户点评
商家报价:
商家报价:
商家报价:
20用户点评
商家报价:
商家报价:
商家报价:
商家报价:
14用户点评
商家报价:
商家报价:小组其它话题
&Copyright by 堆糖 2010-, all rights reserved
备案沪ICP备号-1

我要回帖

更多关于 我们去上学啦 的文章

 

随机推荐