因为入手自动化测试时间有限,在这里记录下近期的想法与实践,如有思想碰撞,请多多指教.
我们在上一篇已经探讨了我们要做哪些事?
这里就我个人最近的感悟,把我们最容易忽略的东西提出来.并且尝试探计一种高效的自动化模式.
以下几点是我这里引出怎么做自动化的几个关键点:
引用
极强的定制性使得引入自动化成为难事
预言性的需求设计使得自动化需求变化极快,同时要求开发周期越短越好
软件流程往往成为自动化道路中的拌脚石
根据以上几点与个人自身经历
拥抱开源社区
"HI,我们要做跨平台的web页面自动化,支持ie6,7,8,9",小李提出了自动化需求;
"你好,升级平台多不胜举,我们需要尝试升级环境的自动化,怎么办?", 某部门做设备产口的项目经理说.
"每次打新包手工验证这些功能,点QQ,点网页,点应用,费时死了,弄不好被测试经理打回来",某开发人员报怨.
一个考虑在哪个层面开展自动化的例子:
单元级自动化速度快,无须复杂的环境清理,无环境依赖,但缺乏真实用户场景(user-like-less)
功能级自动化速度慢,复杂的环境清理,环境依赖严重,具备完全的用户场景.
以上几个场景想必做我们开发行业的兄弟姐妹们经常遇到类似的场景,我们做自动化的当然要主动出击帮助解决问题.可是难题来了,各种复杂的应用,如何才能自动化?
而且,各公司的流程也各不一样,都有自己的特色,我们不能强加修改.
我想有两种方法可以实施:
1. 去购买自动化测试工具回来用
2. 自己研发
买工具固然可行,但经常遇到的问题正是自动化中的难事:
但以下场景...
HI,这个工具产生的报告不适合我们!! 去找服务商定制
OH,no,这个工具无法对我们的这种控件处理!! 定制额外的工具
God,我们需要一个新的检查工具结合之前的工具!! 找服务商买吧
但自己研发? 成本太高,公司也不会轻易批准,除了微软这种超级帝国...
我们还有一种办法: 加入开源
目前有众多的开源工具供我们使用,我们正在使用:
Ruby 一门让你编程funny与happy的语言,我们使用它做自动化脚本与框架的基础语言,其恐怖的开发效率让你害怕
Watir 十分优秀的web自动化测试框架,跨平台跨浏览器,我们用它结合其他框架做web相关操作.
patron 一个模拟浏览器请求的工具,在更需要速度与稳定性时使用它代替watir
Rails 国外十分热的WEB框架,使用它做一些基础工具的web展示与自动化平台建设.
加入开源社区的优势:
1. 各种优秀的工具和低的维护成本,自动化成本大大降低
2. 可以很容易融入定制到我们的自动化建设中
但不是说加入后就万事大吉,更不是说使用就可以了.
我们要持续不断地共同改进工具,push我们的补丁. 可以开发周边的工具,供自己与其他人使用.
例如,我们也push一些watir的bugfix,
我们改进watir封装自己的api.
开放ruby_proxy,提供popup弹框处理项目.
在如今开放的互联网领域,利用开源,贡献开源,是我们自动化测试的最好出路.
加入敏捷阵营
自动化项目面临,快速开发,迭代需求; 需求随时可能会变(例如用例变更,模块需求变更均严重影响自动化的开展) 各种通常在"不严谨"的项目过程中.
事实上,我们也不便限制这些改变,一旦限制过死或要走的流程过多,自动化就失去了自动化带来的自动化的优势,我们总在评审自动化需求,忙于自动化接口实现,忙于修改自动化失败的用例.
我想我们的最终目的只是改进项目过程,提高项目质量,提高项目发展速度,那中间的过程能省则省,应当:
快速迭代, 自动化项目本身形成每日迭代,每日验收.每天的脚本质量得到控制,随时都可以交给产品线项目组验证.
拥抱变化, 无须等待项目完全需求确定即可开始自动化,越早的提交自动化测试,产生的效果越明显. 拥抱变化,要求我们有勇气是不断调整需求,有魂力是重构或是放弃某个功能自动化,这都没有关系,只要我们拥有完美的自动化测试验证与快速高效的自动化开发效率.
高效团队, 高效率的任务执行能力,畅通快速的团队沟通,"三人行必有我师"的学习氛围. 良好的反馈与经验汲取.
这正是我们团队需要的"敏捷"思想.
关注项目过程而不是技术本身
要有人专注于技术,但不是所有;
项目过程的一次小而有效的改进往往会比团队提的自动化需求完成带的收益更多.既然我们自动化测试目的就是提高团队效率,我们就需要有人关注这里.
关注于每一次流程变更带来的影响, 例如,我们团队要求每个包发布前需要进行各种杀毒扫描,我们为什么不去提供一个一键发布扫描的工具呢? 更进一步的想,自动去发布版本的目录去搜索,自动扫描并反馈报告.
当流程要求我们每一次需要提交测试报告的时候,版本经理和每个团队成员都忙于准备各种文档,忙于整理格式的时候,我们在想,为什么不会有一个智能化的平台来实时分析测试情况并根据我们需求生成我们想要的资料呢?
有人担心我们的工作会不会太大了,会不会过于主动担当过多的事情了?
引用
团队, 流程, 人 的关系:
其实不然,
1.
我们拥有比其他团队成员更广阔的视野,我们熟悉的自动化更多,要充分利用我们的视野看法来改变提高大家的效率.
2. 拥有开源的后盾,许多东西想到了就可以很快做出来,更何况我们采用Ruby与rails如此高效简洁的工具框架,只要有想法就可以
快速转化为代码与项目.从今年Ruby技术大会上获悉,事实确如此:
- robbin分享一个类似google邮件列表的项目,2个人2周完成开发.
- zheye.org有想法到开发上线只花了一周时间. 2个人.
- 另外,自己也简单试着写一些公司内部需求,
一个文档索引服务器,花费周期不过5小时左右,可以避免大量的手工编辑与维护成本. 1个人.
引用
服务器的微图,涉及隐私,只截了表头
如某个偶像级人物所言:
我们在这个领域大有可为.
- 大小: 55.1 KB
- 大小: 9.1 KB
- 大小: 4.4 KB
分享到:
相关推荐
《软件测试基础教程》这本书籍提供了一个全面的平台,旨在帮助读者深入了解软件测试的各个方面,无论是手工测试还是自动化测试,都做了细致的讲解。这本书不仅为初入测试行业的人员提供了指导,也为经验丰富的测试...
性能测试让我们关注系统的负载和压力承受能力,自动化测试则能提高效率,降低重复劳动。此外,了解并掌握敏捷开发、持续集成/持续交付(CI/CD)等现代测试实践也是提升测试效率的重要手段。 在新的一年里,我将继续...
3. **质量管理**:书中强调了质量控制的重要性,提出了引入持续集成、代码审查和自动化测试等方法来确保软件质量,减少bug的产生。 4. **敏捷开发**:对于小型企业来说,敏捷开发方法如Scrum或Kanban可能是理想的...
【QTP高手进阶指南】是针对自动化测试工具QuickTest Professional(简称QTP)的一份深入学习资料,尤其适合已经具备一定基础的测试工程师提升技能。QTP是HP(现为Micro Focus)公司开发的一款功能强大的自动化测试...
最后,高质量软件开发人员应该坚持持续集成与自动化测试的习惯。随着软件项目的规模扩大,确保所有更改都不会破坏现有功能变得越来越困难。持续集成和自动化测试是现代软件开发的标配,它们能够帮助开发团队频繁地...
在编程世界中,Python3 是一种强大的、易学习的高级编程语言,广泛应用于数据科学、机器学习、网络开发、自动化脚本等多个领域。本资料"Python3入门与精通-PPT.zip.zip"是为初学者和希望深化Python技能的人设计的...
学校网站管理系统正式版助中国各级学校行政单位走上信息化道路,学校单位网站管理系统正式版助中国学校走上网络,为公众服务,学校网站管理系统正式版为中国政府机构实现网上 办公,提高效率,了解民众呼声提供全站程序...
在当今信息高速发展的时代,掌握一门或多门语言已经成为一项必备的技能。尤其是英语,作为国际通用语,拥有强大的词汇...因此,我们应该持续地投入时间和精力,逐步扩大自己的词汇库,才能在语言学习的道路上越走越远。
另外他对我上一集中说Microsoft越来越不要脸也极为生气,因为相比之下,Sun也不怎么样,微软已经将C#提交设在日内瓦的ECMA(European Computer Manufacturers' Association,国际标准化机构欧洲电子计算机工业会)并...
经验总结可以为IC设计新手提供指导,让他们在IC(集成电路)设计的道路上少走弯路。 描述部分强调了分享这些经验的目的,即帮助新手IC设计师更快地掌握必要的技能,避免不必要的错误,从而节省时间、精力和成本。...
**正文** 《 Micaps Java开发详解 》 Micaps(Meteorological Information CAPSulation System)是一种广泛应用于气象领域的数据...对于开发者而言,不断学习和实践,积累经验,才能在 Micaps 的开发道路上越走越远。